/ 生活记录 / 9浏览

修改typecho的md解析器支持脚注

文章目录

2017-11-13更新:此项功能在typecho新版本中已经集成,无需更改即可实现。

用过markdown的同学都知道,原生是不支持脚注的。

开源的东西就在于我们可以修改它,使之符合我们的口味。

随着知识在互联网的普及,我们越来越多地需要从网上收集各种信息,很多网站都是用了知识共享署名-非商业性使用-禁止演绎 3.0 中国大陆许可协议许可,如本站,拿来可以非商业使用,但是需要注明出处,这样也有好处,既能让知识共享,又能让作者的付出得到尊重。

之前老何的博客引用都是直接在原文添加相应链接,而fooleap同学的文章1比较高深,看不懂,只能作罢。

今天逛官方论坛的时候,发现开发版2支持新的md语法,于是升级到1.1(17.10.13版),果然支持,但是还不够完美,于是又找到新的解析方法3,复制里面的文件内容,复制到var/HyperDown.php文件里,恩,能实现了,开心。

不过它的注脚还是只是一个1字,不容易看到,于是再修改,在HyperDown.php的295行,改成其中注是注字的Unicode编码,具体效果看本文就知道了。

"<sup id=\"fnref-{$id}\"><a href=\"#fn-{$id}\" class=\"footnote-ref\">[&#27880;{$id}]</a></sup>"

不过根据实际情况,对css进行相应的添加或者修改,我的css如下:

.fn a {
    color: #08d;
}
.fn a:hover{
    color: #f00;
}
.footnotes ol {
    -webkit-margin-after: 1em;
    -webkit-margin-start: 0px;
    -webkit-margin-end: 0px;
    padding-left: 20px;
    display: block;
   font-size: 14px;
}
.footnotes ol li{
list-style-type: decimal;
}

经过这样一番改造,我们就可以使用md语法来达到脚注的目的。
例如:

我是老何[^1]
[^1]: 老何是本博客的博主。

参考资料

更新于
guest
6 评论
Inline Feedbacks
View all comments
fooleap
7 年 之前

看样子老何天天在折腾,几乎每次来都有新变化。

山小炮
7 年 之前

这个功能挺好的。你升级到最新版了吗?

祈里
祈里
7 年 之前

博主你好,我按照您的方法修改了一下(我的typecho是开发版1.2 (18.1.29)),您说的“复制里面的文件内容,复制到var/HyperDown.php文件里”,是指把Parser.php里面的代码复制进HyperDown.php去吗?

我改了之后发现在Markdown的预览里可以看到成功了,但是发布之后在日志页面里却只能显示“我是老何^1”

我小白一个,期盼回复_(:3 」∠)_