巧用Markdown语法添加本地文章链接
由 Ghostzhang 发表于 2014-09-30 17:11 更新于 2021-12-06 20:19
我喜欢在当前文章中提到以前写过的文章,所以常常会需要找到之前文章的链接再复制进来,很显然,如果链接有变动的话,对我来说就是一个灾难。
因为前段时间已经把博客迁到了[github][https://github.com/],现在也渐渐习惯用 markdown 格式来写,相关的格式可以看这里,markdown 提供了很多种添加链接的方式,其中有一种是隐式链接标记:
代码语言:javascript复制[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.在需要引用的文件中加入
代码语言:javascript复制{% 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.在需要引用的文件中加入
代码语言:javascript复制{% include data_links.md nodes=site.data.nerd_urls %}