You are here

function MarkdownExtra_Parser::stripLinkDefinitions in Markdown 6

Overrides Markdown_Parser::stripLinkDefinitions

File

./markdown.php, line 1845

Class

MarkdownExtra_Parser

Code

function stripLinkDefinitions($text) {

  #

  # Strips link definitions from text, stores the URLs and titles in

  # hash references.

  #
  $less_than_tab = $this->tab_width - 1;

  # Link defs are in the form: ^[id]: url "optional title"
  $text = preg_replace_callback('{
							^[ ]{0,' . $less_than_tab . '}\\[(.+)\\][ ]?:	# id = $1
							  [ ]*
							  \\n?				# maybe *one* newline
							  [ ]*
							(?:
							  <(.+?)>			# url = $2
							|
							  (\\S+?)			# url = $3
							)
							  [ ]*
							  \\n?				# maybe one newline
							  [ ]*
							(?:
								(?<=\\s)			# lookbehind for whitespace
								["(]
								(.*?)			# title = $4
								[")]
								[ ]*
							)?	# title is optional
					(?:[ ]* ' . $this->id_class_attr_catch_re . ' )?  # $5 = extra id & class attr
							(?:\\n+|\\Z)
			}xm', array(
    &$this,
    '_stripLinkDefinitions_callback',
  ), $text);
  return $text;
}