You are here

function Markdown_Parser::_doAnchors_reference_callback in Markdown 5

Same name and namespace in other branches
  1. 6 markdown.php \Markdown_Parser::_doAnchors_reference_callback()

File

./markdown.php, line 722

Class

Markdown_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}\"";
    }
    $link_text = $this
      ->runSpanGamut($link_text);
    $result .= ">{$link_text}</a>";
    $result = $this
      ->hashPart($result);
  }
  else {
    $result = $whole_match;
  }
  return $result;
}