私はPHPでMarkdownを使用しており、リンク用<h1>-<h6>
の名前付きアンカー()が付いたタグがある場合は、テキストを自動的にラップする正規表現を作成しました。<a name="Text">Text</a>
PHPは次のとおりです。
$text = '<p>This is a</p>
<h1>Test</h1>
<p>to see if this works </p>';
$regex = '/\<h([0-6]{1})\>(.+)\<\/h[0-6]{1}\>/';
echo preg_replace($regex, '<h$1><a name="$2">$2</a></h$1>', $text);
そして結果は次のとおりです。
<p>This is a</p>
<h1><a name="Test">Test</a></h1>
<p>to see if this works </p>
ここで重要なのは、Markdownは軽量で保管スペースが簡単なことです。名前付きアンカーを手動で追加すると、Markdownを使用する目的が完全に無効になります。
この方法はテスト目的では問題なく機能しますが、これを達成するためのより良い、より言語に依存しない方法があるかどうかを知りたいです(そしてここに質問があります) 。
注:これが目的のクライアントは、ネイティブのMarkdown構文でさえ、より「コンピューターの知識がない」ユーザーを遠ざける可能性があると感じているため、この方法を望んでいます# [Text](#Text)
。彼らは単にタイプしたいだけです:# Text