巧用Markdown语法添加本地文章链接

Ghostzhang 发表于 更新于

我喜欢在当前文章中提到以前写过的文章,所以常常会需要找到之前文章的链接再复制进来,很显然,如果链接有变动的话,对我来说就是一个灾难。

因为前段时间已经把博客迁到了[github][https://github.com/],现在也渐渐习惯用 markdown 格式来写,相关的格式可以看这里,markdown 提供了很多种添加链接的方式,其中有一种是隐式链接标记


[CSS森林][]

[CSS森林]:http://www.cssforest.org/

在需要链接的地方只需要写名称,具体的链接可以放在文件中任何的位置。于是我们可以把链接集中放到下方,然后在上方需要的位置引用。

只是这样,方便在哪呢?如果用文章列表由程序自动生成呢?哈哈,看看可以怎么做:

1.在_includes目录中新建一个文件links.md


/ username.github.com
    / _includes #如果需要用到页面片可以建这个目录
        |-- links.md

2.在links.md里写入


{% for post in site.posts %}
[{{ post.title }}]:{{ post.url }}
{% endfor %}

3.在需要引用的文件中加入


{% include links.md %}

这样就会在文件中生成一个包含所有文章的隐式链接列表,于是要引用之前文章的时候就很简单啦。同样的方法也可以用于文章中经常出现的外站引用。不过关于友情链接,可以看《使用 Jekyll - Data Files 简介》,用了递归的方法,很赞。我简单改了下,也做成了隐式链接标记:

1.在_includes目录中新建一个文件data_links.md


/ username.github.com
    / _includes #如果需要用到页面片可以建这个目录
        |-- data_links.md

2.在data_links.md里写入


{% for node in include.nodes %}
{% if node.meta == false and node.data %}
{% include data_links.md nodes=node.data %}{% else %}
[{{ node.name }}]:{{ node.url }}
{% endif %}
{% endfor %}

3.在需要引用的文件中加入


{% include data_links.md nodes=site.data.nerd_urls %}

讨论