0%

Hexo内支持“internal links”的语法

一、问题背景

站点内文章引用相同站点内其他资源时如果采用站点域名地址形式的话,下次迁移站点域名时,会造成很大成本。
为了应对以上情形,有两种思路:

  1. 购买一个域名,长期持有,使得不必要迁移域名
  2. 引用相同站点内其他资源时采用站点内地址形式

接下来讨论第二种思路的实现。

二、引用相同站点内其他资源时采用站点内地址形式

使用Markdown语言语法引用站点内其他资源有两种形式:1)站点域名地址;2)站点内地址。
不过,经过Hexo转换引擎转换后,最终得到的站点内资源会被置于一定层次结构目录下,该种情形下使用Markdown语言语法的“站点内地址”形式,会比较繁琐。
经过Hexo转换引擎转换后,最终站点内资源的存放路径例子如:

1
2016/06/25/使用Github Pages搭建个人博客/index.html

因此,使用Hexo转换引擎原生支持的“Hexo自带语法”才是最完美的解决方案,幸运的是,自3.0版本开始,Hexo提供满足上述要求的语法。具体语法定义如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% post_path hello-world %}
// /2015/01/16/hello-world/
{% post_link hello-world %}
// <a href="/2015/01/16/hello-world/">Hello World</a>
{% post_link hello-world Custom Title %}
// <a href="/2015/01/16/hello-world/">Custom Title</a>

{% asset_path example.jpg %}
// /2015/01/16/hello-world/example.jpg
{% asset_link example.jpg %}
// <a href="/2015/01/16/hello-world/example.jpg">example.jpg</a>
{% asset_link example.jpg Example %}
// <a href="/2015/01/16/hello-world/example.jpg">Example</a>
{% asset_img example.jpg %}
// <img src="/2015/01/16/hello-world/example.jpg">

参考文献: [1]https://github.com/hexojs/hexo/wiki/Breaking-Changes-in-Hexo-3.0
您的支持将鼓励我继续分享!