美文网首页Markdown技巧集:Tips and TricksMarkdown微信公众号运营
将Markdown行内式链接转为文末参考式链接

将Markdown行内式链接转为文末参考式链接

作者: chalkit | 来源:发表于2017-12-02 21:23 被阅读46次

    微信公众号的文章中不允许添加除了公众号文章之外的站外链接,只能通过“阅读原文”、二维码等曲折方式实现。有时文章中的链接一多,就懒得改了,直接让读者通过“阅读原文”去查看超链接。但这样读者的体验并不好:一是点阅读原文之后会有一个提示不安全的跳转界面,二是HTML网文贴到公众号编辑器之后,链接样式就消失了,不手动改就看不出哪里是有链接的。

    于是想到可以借鉴科技文章的写作方式,在原引用链接处添加序号,在文末给出参考链接。

    可以先markdown写作,写作时使用inline link,写作完成之后用Python脚本批换为参考文献的形式。

    脚本功能

    markdown有三种链接形式:

    1、行内链接 inline link:

    This is [an example](http://example.com/ "Title") inline link.
    

    直接在原文字处插入链接,点击跳转。这是最直接的方式,微信公众号不支持,保存之后自动消失;可以直接把链接放到原文字旁边,但是不够优雅。

    2、参考式链接 reference link:

    This is [an example][id] reference-style link.
    
    Then, anywhere in the document, you define your link label like this, on a line by itself:
    
    [id]: http://example.com/  "Optional Title Here"
    

    这是一种并没有什么用的链接方式。对于读者来说都是直接点击跳转,但写作起来非常蛋疼,就跟手动插参考文献一样,修改起来很不方便。Copy到微信公众号编辑器,Markdown Here转换之后,也是保存不了。

    3、脚注 Footnote:

    You can create footnotes like this[^footnote].
    
    [^footnote]: Here is the *text* of the **footnote**.
    

    非常像是参考文献的形式了,但在微信公众号编辑器中保存之后[^footnote]还是会显示源代码字样,不好看。

    可以先用markdown写作,写作完成之后运行

    python convert_markdown_inline_link_to_reference_footnote.py xxx.md
    

    自动将markdown文件中inline link转换为reference link,而且文末参考链接的形式还可以轻松自定义,如改为

    [序号]+链接+网页标题

    的形式。

    需要用到的工具

    这是一个Python 3 脚本,在Microsoft Windows 10 (Home Insider Preview China 10.0.17025)、Anaconda 4.3.27、python 3.6.2、PyCharm 2017.2.4 环境调试完成。

    需要用到的模块:

    import sys
    import re
    import urllib
    import shutil
    from urllib import request
    from bs4 import BeautifulSoup
    

    实现

    源代码`convert_markdown_inline_link_to_reference_footnote.py 已上传到GitHub。此处应该有个流程图。代码中都有详细的注释。

    [图片上传失败...(image-818bb2-1512221034230)]

    替换之后的效果如下图:

    [图片上传失败...(image-775a7b-1512221034230)]

    [图片上传失败...(image-6084e1-1512221034230)]

    脚本配置

    修改脚本中的footnote_markfootnote_line 的替换格式,可以自定义生成的参考文献的格式。

    如“序号+链接”、“序号+链接+标题”等

    编程感想

    这算是自己拼凑出来的一个Python脚本,拼凑来源仍然是https://github.com/JyHu/useful_scripthttps://github.com/hxzqlh/qiniu-markdown-picshttps://github.com/JyHu/useful_scripthttps://github.com/hxzqlh/qiniu-markdown-pics 两个脚本。

    从一开始有了一个貌似可行的想法,就迫不及待地去把它实现了。一开始还想着是不是要用很复杂的方法去除match到的图片链接 ,没想到正规表达式里面一个非字符就轻松实现,print出一堆链接时很激动。

    本代码涉及的主要知识点有文件的简单读写、正规表达式基础应用、request+BeautifulSoup获取网页标题、try异常处理。

    完成这个脚本之后,发现貌似上述技能就是爬虫基础技能,于是又有了一个用爬虫批量获取内网HIS系统数据的想法,同样迫不及待地动手了。

    原文发表于:将Markdown行内式链接转为文末参考式链接

    相关文章

      网友评论

      • pfgp2n:流程图没有显示出来……
      • pfgp2n:这个有时间得试一下
        chalkit:@Alamo_Young 貌似是
        pfgp2n:@chalkit � 只放图片链接的话,简书也需要先上传到自己服务器吗?
        chalkit:简书上传七牛的图片总是失败,懒得手传了,有兴趣可以点原文链接看图

      本文标题:将Markdown行内式链接转为文末参考式链接

      本文链接:https://www.haomeiwen.com/subject/ktdobxtx.html