protected 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
(?:\\n+|\\Z)
}xm', array(&$this, '_stripLinkDefinitions_callback'), $text);
return $text;
}