マークダウン変換にMichelFortinのPHPMarkdownを使用していますが、画像をインラインではなくリンクとして表示したいと思います。誰でもImgurから5MBのjpgを挿入して、ページの速度を落とすことができるからです。
画像を画像にリンクするように変更するにはどうすればよいですか?
マークダウン変換にMichelFortinのPHPMarkdownを使用していますが、画像をインラインではなくリンクとして表示したいと思います。誰でもImgurから5MBのjpgを挿入して、ページの速度を落とすことができるからです。
画像を画像にリンクするように変更するにはどうすればよいですか?
オーバーライドの例は次のようになります。
class CustomMarkdown extends Markdown
{
function _doImages_reference_callback($matches) {
$whole_match = $matches[1];
$alt_text = $matches[2];
$link_id = strtolower($matches[3]);
if ($link_id == "") {
$link_id = strtolower($alt_text); # for shortcut links like ![this][].
}
$alt_text = $this->encodeAttribute($alt_text);
if (isset($this->urls[$link_id])) {
$url = $this->encodeAttribute($this->urls[$link_id]);
$result = "<a href=\"$url\">$alt_text</a>";
} else {
# If there's no such link ID, leave intact:
$result = $whole_match;
}
return $result;
}
function _doImages_inline_callback($matches) {
$whole_match = $matches[1];
$alt_text = $matches[2];
$url = $matches[3] == '' ? $matches[4] : $matches[3];
$title =& $matches[7];
$alt_text = $this->encodeAttribute($alt_text);
$url = $this->encodeAttribute($url);
return "<a href=\"$url\">$alt_text</a>";
}
}
Parsedownをご覧ください。これは最近のもので、Markdown の実装を拡張するのはより簡単だと思います。