Hexo官方网站上没有明确说明如何增加站内文章链接,本文说明如何给文章增加站内链接。
使用markdown的链接语法
使用markdown的语法指定url创建站内链接,有绝对地址和相对地址两种方式,绝对地址与相对地址的区别在于是否以/
开头:
使用绝对地址
代码如下:
<!-- 绝对地址 --> |
示例中,
ubuntu-enable-root
使用的是文章对应的md文件名,使用hexo n创建post时,空格会转换为中划线-。Ubuntu
是本站为了文章管理方便在_posts
目录下增加的子目录,ubuntu-enable-root.md
位于_posts/Ubuntu
目录下。
结果如下:
Hexo对绝对抵制和相对地址的处理方式是不一样的。对于绝对地址/Ubuntu/ubuntu-enable-root
,生成的目标url不会变化。
使用相对地址
代码如下:
<!-- 相对地址 --> |
对于相对地址Ubuntu/ubuntu-enable-root
,生成的目标URL会叠加文章的的URL,结果是/Hexo/hexo-link-post/Ubuntu/ubuntu-enable-root/
,这显然不是期望的结果。但是如果是文章内的锚点链接,使用这种方式非常合适。
代码如下:
<!-- 文章内锚点链接 --> |
结果如下:
anchor sample
生成的URL可以正确的跳转到文章内的锚点。注意,标题中的空格用-
代替。
使用post_link标签
由于Hexo文章的URL规则是可以配置的,在_config.yml
中可以配置URL自动添加日期、目录等信息。如果使用markdown语法的链接规则多有不便,一方面需要知道目标URL,一方面如果规则修改或者站点迁移,对应的内容需要修改。
好在Hexo提供了post_link
标签解决这个问题。
代码如下:
{% post_link Ubuntu/ubuntu-enable-root 'Ubuntu Linux上启用root账户' %} |
示例中,
ubuntu-enable-root
使用的是文章对应的md文件名,使用hexo n创建post时,空格会转换为中划线-。Ubuntu
是本站为了文章管理方便在_posts
目录下增加的子目录,ubuntu-enable-root.md
位于_posts/Ubuntu
目录下。
结果如下:
Ubuntu Linux上启用root账户这样的链接会自动适配_config.yml
中的文章URL规则。
小结
对比markdown语法和post_link
标签,推荐在文章链接到站内文章时优先使用post_link
,链接到文章内锚点时优先使用markdown语法。
anchor sample
文章内锚点跳转示例