文件映射
运行yarn dev后可以看到,VFC 会在 docs 目录里面生成一个.temp文件,.temp是 当前 root 下所有文件 + config.srcIncludes里面的.md文件 映射结果。
例如yarn create vlib生成的.temp文件结构如下:
.temp
├── components
│ ├── button
│ │ └── index.md
│ └── loading
│ └── index.md
├── en
│ ├── components
│ │ ├── button
│ │ │ └── index.md
│ │ └── loading
│ │ └── index.md
│ └── index.md
├── index.md
└── package.json
文件映射规则有两个:
1. 根据map.path映射
VFC 在启动服务前会根据config.srcIncludes(默认[src])的目录,来扫描里面的.md文件。识别.md文件的Front Matter的map.path字段,这个 path 就是映射的目标地址。
例如:
src\loading\index.en-US.md
---
map:
path: /components/loading
---
...
会被映射成.temp\en\components\loading\index.md。
如果src\loading\index.en-US.md缺少Front Matter的map.path字段,会以当前路径映射到.temp里面,即.temp\en\components\loading\index.md。
2. locale 后缀映射规则
VFC 会根据 locale 配置生成一个lang -> path的映射表。
例如模板项目里面的 locale 配置如下: docs.vitepress\config.js
{
lang: 'zh-CN',
...
locales: {
'/': {
lang: 'zh-CN',
...
},
'/en/': {
lang: 'en-US',
...
}
}
}
会生成这样的一个映射表:
{ 'zh-CN: '/', 'en-US': '/en/', '': '/' }
映射例子:
/comp/foo.zh-CN.md -> /comp/foo.md
/comp/foo.en-US.md -> /en/comp/foo.md
/comp/foo.md -> /comp/foo.md