function doCodeBlocks($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. ) [ ]* \\n # Whitespace and newline following marker. # 2: Content ( (?> (?!\\1 [ ]* \\n) # Not a closing marker. .*\\n+ )+ ) # Closing marker. \\1 [ ]* \\n }xm', array(&$this, '_doCodeBlocks_fenced_callback'), $text); $text = parent::doCodeBlocks($text); return $text; }