我正在使用PHP中的Markdown,并编写了一个regex来自动将文本包装在其中,如果任何<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的目的。
此方法用于测试目的很好,但我想知道(以下是问题)是否有更好、更多的language-agnostic,方法来完成这一任务。
注意:客户端需要这样做,因为他们觉得即使是原生的Markdown语法也可能疏远他们更“不懂计算机”的用户:# [Text](#Text)。他们只想键入:# Text
发布于 2012-09-27 20:21:06
考虑到您已经在使用PHP,您应该真正地了解一下减价额外实现。来自MDE文档:
通过附加PHP Markdown,您可以将id属性设置为headers。您应该在行尾的标题后面添加以散列作为前缀的id,如下所示: 头1{# Header 1} ======== ## Header 2 ## {#Header 2} 然后,您可以创建指向同一文档的不同部分的链接,如下所示: 链接回标头1
https://stackoverflow.com/questions/12629366
复制相似问题