文件映射

运行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 Mattermap.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 Mattermap.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

最近更新: