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

学习折腾
232 6
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]: 老何是本博客的博主。

参考资料

评论 ( 6 )
隐私评论
  1. 2018-03-31广东省阳江市回复
    博主你好,我按照您的方法修改了一下(我的typecho是开发版1.2 (18.1.29)),您说的“复制里面的文件内容,复制到var/HyperDown.php文件里”,是指把Parser.php里面的代码复制进HyperDown.php去吗?

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

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

    1. 2018-04-01安徽省回复
      @祈里

      新的开发版本已集成该功能。
      可能是你的格式书写不对[1]: 的冒号后面一个空格。

      1
  2. 2017-11-03广东省肇庆市回复
    这个功能挺好的。你升级到最新版了吗?
    1. 2017-11-03安徽省回复
      @山小炮
      嗯,时刻关注官方github,随时更新
  3. 2017-10-25广东省汕头市回复
    看样子老何天天在折腾,几乎每次来都有新变化。
    1. 2017-10-25安徽省回复
      @fooleap
      恨不得把你的博客一些特性全抄过来,哈哈。下一步准备抄目录树。