You are here

protected function MarkdownExtra::_doAnchors_reference_callback in Markdown 7

* Callback for reference anchors *

Parameters

array $matches: * @return string

Overrides Markdown::_doAnchors_reference_callback

File

includes/MarkdownExtra.php, line 829

Class

MarkdownExtra
Markdown Extra Parser Class

Namespace

Michelf

Code

protected 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
      ->encodeURLAttribute($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;
}