修改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]: 老何是本博客的博主。

参考资料

已有 6 条评论

  1. fooleap

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

    fooleap ·  Windows 7  · Google Chrome · 回复
    1. Mr.He

      恨不得把你的博客一些特性全抄过来,哈哈。下一步准备抄目录树。

      Mr.He ·  Android 7.0 · Google Chrome · 回复
  2. 山小炮

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

    山小炮 ·  Windows 7  · Google Chrome · 回复
    1. Mr.He

      嗯,时刻关注官方github,随时更新

      Mr.He ·  Windows 7  · Google Chrome · 回复
  3. 祈里

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

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

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

    祈里 ·  Windows 10  · Google Chrome · 回复
    1. Mr.He

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

      1 ↩
      Mr.He ·  Windows 10  · Firefox · 回复

发表新评论

关于博主
博主本姓何,育人廿五载。
我住长江边,君自四海来。
文字不修饰,实是无文采。
飞絮落叶雪,只待李花开。
博客分类
随机推荐
最近评论
站点统计
  • 文章总数:196篇
  • 评论总数:5497条
  • 网站运行:3285天