Typecho 默认 Markdown 里的网址超链接的解析
最近在折腾了一个类似老生常谈(laosheng.top)的网站,因为文章里包含有大量网址,然而Typecho默认的Markdown会将网址文本转换成网址超链接,如果我给网址文本添加其它超链接就会失效,为此我想到了一个最原始的方案,直接修改Typecho的Markdown解析文件,具体的文件位置是:var/Utils/HyperDown.php
第389行的parseInline方法,直接将其参数$enableAutoLink
改成false
即可,默认是true
,修改后如下图所示:
修改以后文章中写入的网址文本将不再转换成超链接,这样你就可以给网址文本添加新的链接了,这不是很好的习惯(ps.理论上Markdown应该保持所见即所得,没人愿意看到的网址是百度,跳转的却是谷歌),所以这次改动只是算我的一个小需求而已。比如我在文章中写了一个https://www.baidu.com
的网址,typecho解析后会给这个网址自动添加超链接效果如下<a href="https://www.baidu.com">https://www.baidu.com</a>
,当我想让 https://www.baidu.com
跳转到 https://www.google.com/
,默认我们会这么写[https://www.baidu.com](https://www.google.com)
,可是如果不修改上面的文件,这种写法经过Typecho的HyperDown.php解析后出来的结果依然会是<a href="https://www.baidu.com">https://www.baidu.com</a>
,它并不能实现我想要的跳转到https://www.google.com
,我看有网友提供了一个方法就是在原来的链接里添加一个占位span标签也可以解决这个问题,如下:[https://<span></span>www.baidu.com](https://www.google.com)
,这样Typecho的markdown默认网址解析就会失败,从而跳转到我们定义的链接。但由于我其它几个网站里使用的aff链接太多,没法一个个的去更改,所以才有了今天这篇文章直接修改HyperDown.php文件,这样来的也更加快捷!