_MarkdownExtra_TmpImpl::processDefListItems PHP Method

processDefListItems() protected method

protected processDefListItems ( $list_str )
    protected function processDefListItems($list_str)
    {
        #
        #	Process the contents of a single definition list, splitting it
        #	into individual term and definition list items.
        #
        $less_than_tab = $this->tab_width - 1;
        # trim trailing blank lines:
        $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str);
        # Process definition terms.
        $list_str = preg_replace_callback('{
			(?>\\A\\n?|\\n\\n+)					# leading line
			(								# definition terms = $1
				[ ]{0,' . $less_than_tab . '}	# leading whitespace
				(?!\\:[ ]|[ ])				# negative lookahead for a definition
											#   mark (colon) or more whitespace.
				(?> \\S.* \\n)+?				# actual term (not whitespace).	
			)			
			(?=\\n?[ ]{0,3}:[ ])				# lookahead for following line feed 
											#   with a definition mark.
			}xm', array($this, '_processDefListItems_callback_dt'), $list_str);
        # Process actual definitions.
        $list_str = preg_replace_callback('{
			\\n(\\n+)?						# leading line = $1
			(								# marker space = $2
				[ ]{0,' . $less_than_tab . '}	# whitespace before colon
				\\:[ ]+						# definition mark (colon)
			)
			((?s:.+?))						# definition text = $3
			(?= \\n+ 						# stop at next definition mark,
				(?:							# next term or end of text
					[ ]{0,' . $less_than_tab . '} \\:[ ]	|
					<dt> | \\z
				)						
			)					
			}xm', array($this, '_processDefListItems_callback_dd'), $list_str);
        return $list_str;
    }