3

私は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

4

1 に答える 1

5

すでに PHP を使用しているので、Markdown Extraの実装を実際に確認する必要があります。MDE ドキュメントから:

PHP Markdown Extra では、ヘッダーに id 属性を設定できます。次のように、行末のヘッダーの後に中括弧内にハッシュを前に付けた id を追加する必要があります。

Header 1            {#header1}
========

## Header 2 ##      {#header2}

次に、次のように、同じドキュメントのさまざまな部分へのリンクを作成できます。

[Link back to header 1](#header1)
于 2012-09-27T20:21:06.257 に答える