You are here

function MarkdownExtra_Parser::_doAnchors_reference_callback in Markdown 6

Overrides Markdown_Parser::_doAnchors_reference_callback

File

./markdown.php, line 2428

Class

MarkdownExtra_Parser

Code

function _doAnchors_reference_callback($matches) {
  $whole_match = $matches[1];
  $link_text = $matches[2];
  $link_id =& $matches[3];
  if ($link_id == "") {

    # for shortcut links like [this][] or [this].
    $link_id = $link_text;
  }

  # lower-case and turn embedded newlines into spaces
  $link_id = strtolower($link_id);
  $link_id = preg_replace('{[ ]?\\n}', ' ', $link_id);
  if (isset($this->urls[$link_id])) {
    $url = $this->urls[$link_id];
    $url = $this
      ->encodeAttribute($url);
    $result = "<a href=\"{$url}\"";
    if (isset($this->titles[$link_id])) {
      $title = $this->titles[$link_id];
      $title = $this
        ->encodeAttribute($title);
      $result .= " title=\"{$title}\"";
    }
    if (isset($this->ref_attr[$link_id])) {
      $result .= $this->ref_attr[$link_id];
    }
    $link_text = $this
      ->runSpanGamut($link_text);
    $result .= ">{$link_text}</a>";
    $result = $this
      ->hashPart($result);
  }
  else {
    $result = $whole_match;
  }
  return $result;
}