You are here

function MarkdownExtra_Parser::doFencedCodeBlocks in Markdown 6

Same name and namespace in other branches
  1. 5 markdown.php \MarkdownExtra_Parser::doFencedCodeBlocks()

File

./markdown.php, line 2908

Class

MarkdownExtra_Parser

Code

function doFencedCodeBlocks($text) {

  #

  # Adding the fenced code block syntax to regular Markdown:

  #

  # ~~~

  # Code block

  # ~~~

  #
  $less_than_tab = $this->tab_width;
  $text = preg_replace_callback('{
				(?:\\n|\\A)
				# 1: Opening marker
				(
					~{3,} # Marker: three tilde or more.
				)
				[ ]*
				(?:
					\\.?([-_:a-zA-Z0-9]+) # 2: standalone class name
				|
					' . $this->id_class_attr_catch_re . ' # 3: Extra attributes
				)?
				[ ]* \\n # Whitespace and newline following marker.
				
				# 4: Content
				(
					(?>
						(?!\\1 [ ]* \\n)	# Not a closing marker.
						.*\\n+
					)+
				)
				
				# Closing marker.
				\\1 [ ]* \\n
			}xm', array(
    &$this,
    '_doFencedCodeBlocks_callback',
  ), $text);
  return $text;
}