# 永久链接
# 背景
在 1.x.x 版本之前,VuePress 会检索文档源目录下的所有 markdown 文件并按照文件的层次结构去定义页面链接。 比如你有以下的文件结构:
├── package.json
└── source
├── _post
│ └── intro-vuepress.md
├── index.md
└── tags.md
那么你就会获得以下的可用页面:
/source/
/source/tags.html
/source/_post/intro-vuepress.html
然而对于 blog 来说,我们希望文章的链接更加灵活,而不是局限于目录结构。VuePress 把这个功能称为永久链接 (permalinks) ,并从 1.0.0
版本开始支持。
如果使用永久链接,那么实际的页面链接会像这样:
/source/
/source/tags/
/source/2018/4/1/intro-vuepress.html
看起来我们已经看过了 blog 的阴暗面。那么让我们继续看下去。
# 永久链接
一个永久链接是一个旨在未来很多年里维持不变的 URL,由此产生一个发生链接失效(link rot1 (opens new window))的可能性较小的超链接。VuePress 支持一种灵活的方式去生成固定链接,这种方式允许你使用各种模板变量。
默认的永久链接是/:regular
。
# 配置永久链接
你可以使用全局配置来向所有页面应用永久链接:
// .vuepress/config.js
module.exports = {
permalink: "/:year/:month/:day/:slug"
};
另外,你也可以只为单独一个页面去设置永久链接。这种方式比全局配置拥有更高的优先级。
📝 hello.md:
---
title: Hello World
permalink: /hello-world
---
Hello!
# 模板变量
变量 | 介绍 |
---|---|
:year | 文章发布的年份 (4数字) |
:month | 文章发布的月份 (2数字) |
:i_month | 文章发布的月份 (前面不带0) |
:day | 文章发布的日份 (2数字) |
:i_day | 文章发布的日份 (前面不带0) |
:slug | 蛞蝓化文件路径 (不带扩展名) |
:regular | VuePress默认的生成永久链接的方式,具体实现看 这里 (opens new window) |