diff --git a/docs/developer-guide/theme/config.md b/docs/developer-guide/theme/config.md index 9ecf62a9..db14bcda 100644 --- a/docs/developer-guide/theme/config.md +++ b/docs/developer-guide/theme/config.md @@ -62,9 +62,9 @@ spec: | `spec.issues` | 主题问题反馈地址,如果你的主题是开源在 GitHub 上,可以直接配置为 GitHub Issues 地址。 | 否 | | `spec.settingName` | 设置表单定义的名称,需要同时创建对应的 `settings.yaml` 文件 | 否 | | `spec.configMapName` | 设置持久化配置的 ConfigMap 名称 | 否 | -| `spec.customTemplates.post` | 文章的自定义模板配置,详细文档可查阅 [模板路由](./template-route-mapping#custom-templates) | 否 | -| `spec.customTemplates.category` | 分类的自定义模板配置,详细文档可查阅 [模板路由](./template-route-mapping#custom-templates) | 否 | -| `spec.customTemplates.page` | 独立页面的自定义模板配置,详细文档可查阅 [模板路由](./template-route-mapping#custom-templates) | 否 | +| `spec.customTemplates.post` | 文章的自定义模板配置,详细文档可查阅 [模板编写](./template-variables.md) | 否 | +| `spec.customTemplates.category` | 分类的自定义模板配置,详细文档可查阅 [模板编写](./template-variables.md) | 否 | +| `spec.customTemplates.page` | 独立页面的自定义模板配置,详细文档可查阅 [模板编写](./template-variables.md) | 否 | | `spec.version` | 主题版本 | 是 | | `spec.requires` | 所需 Halo 的运行版本 | 是 | | `spec.license` | 协议 | 否 | diff --git a/docs/developer-guide/theme/structure.md b/docs/developer-guide/theme/structure.md index ac5efe98..560973d8 100644 --- a/docs/developer-guide/theme/structure.md +++ b/docs/developer-guide/theme/structure.md @@ -27,7 +27,7 @@ my-theme 详细说明: -1. `/templates/` - 主题模板目录,存放主题模板文件,所有模板都需要放在这个目录。关于模板的详细说明,请查阅 [模板路由](./template-route-mapping)。 +1. `/templates/` - 主题模板目录,存放主题模板文件,所有模板都需要放在这个目录。关于模板的详细说明,请查阅 [模板编写](./template-variables.md)。 2. `/templates/assets/` - 主题静态资源目录,存放主题的静态资源文件,目前静态资源文件只能放在这个目录,引用方式请查阅 [静态资源](./static-resources)。 3. `/theme.yaml` - 主题配置文件,配置主题的基本信息,如主题名称、版本、作者等。详细文档请查阅 [配置文件](./config)。 4. `/settings.yaml` - 主题设置定义文件,配置主题的设置项表单。详细文档请查阅 [设置选项](./settings)。 diff --git a/docs/developer-guide/theme/template-variables.md b/docs/developer-guide/theme/template-variables.md index 84cb6185..48dd15c6 100644 --- a/docs/developer-guide/theme/template-variables.md +++ b/docs/developer-guide/theme/template-variables.md @@ -1,7 +1,11 @@ --- -title: 模板变量 +title: 模板编写 --- +此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板: + +```mdx-code-block import DocCardList from '@theme/DocCardList'; +``` diff --git a/docs/developer-guide/theme/template-variables/archives.md b/docs/developer-guide/theme/template-variables/archives.md index 82436fb8..de3bc2df 100644 --- a/docs/developer-guide/theme/template-variables/archives.md +++ b/docs/developer-guide/theme/template-variables/archives.md @@ -8,6 +8,8 @@ import TagVo from "../vo/_TagVo.md"; import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md"; +文章归档页面,用于列出网站的所有文章,如果你编写的主题首页不显示文章列表,那么可以利用这个模板为网站单独提供一个查看文章列表的页面。 + ## 路由信息 - 模板路径:`/templates/archives.html` diff --git a/docs/developer-guide/theme/template-variables/author.md b/docs/developer-guide/theme/template-variables/author.md index 02f4feb6..5021047c 100644 --- a/docs/developer-guide/theme/template-variables/author.md +++ b/docs/developer-guide/theme/template-variables/author.md @@ -9,6 +9,8 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md" import ListedPostVo from "../vo/_ListedPostVo.md" +根据作者列出所有文章的页面,如果你的主题偏向于社区类型,那么可以添加一个这样的模板,用于提供作者的页面。 + ## 路由信息 - 模板路径:`/templates/author.html` diff --git a/docs/developer-guide/theme/template-variables/categories.md b/docs/developer-guide/theme/template-variables/categories.md index b32c32ad..4e6b2099 100644 --- a/docs/developer-guide/theme/template-variables/categories.md +++ b/docs/developer-guide/theme/template-variables/categories.md @@ -5,6 +5,8 @@ description: categories.html - /categories import CategoryTreeVo from "../vo/_CategoryTreeVo.md" +用于列出所有文章分类的页面。 + ## 路由信息 - 模板路径:`/templates/categories.html` diff --git a/docs/developer-guide/theme/template-variables/category.md b/docs/developer-guide/theme/template-variables/category.md index 730f6a72..3a7e7429 100644 --- a/docs/developer-guide/theme/template-variables/category.md +++ b/docs/developer-guide/theme/template-variables/category.md @@ -8,11 +8,52 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md" +用于根据分类列出所有文章的页面。 + ## 路由信息 - 模板路径:`/templates/category.html` - 访问路径:`/categories/:slug` +### 自定义模板 + +除了上面提到的 `category.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,可以通过这个功能实现将网站上的文章内容进行领域划分,比如网站上同时存在新闻、文档、博客等分区,那么就可以利用这个功能提供多个模板,同时 Halo 还支持为分类设置文章渲染模板,详情可见[新建文章分类](../../../user-guide/posts.md#新建文章分类)。 + +定义方式为: + +```yaml title="theme.yaml" +customTemplates: + category: + - name: {name} + description: {description} + screenshot: {screenshot} + file: {file}.html +``` + +- `name`:模板名称 +- `description`:模板描述 +- `screenshot`:模板预览图 +- `file`:模板文件名,需要在 `/templates/` 目录下创建 + +示例: + +```yaml title="theme.yaml" +customTemplates: + category: + - name: 新闻 + description: 用于展示新闻分类下的文章 + screenshot: + file: category_news.html + - name: 博客 + description: 用于展示博客分类下的文章 + screenshot: + file: category_blog.html +``` + +:::info +需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +::: + ## 变量 ### category diff --git a/docs/developer-guide/theme/template-variables/index_.md b/docs/developer-guide/theme/template-variables/index_.md index ca268c1c..6188b567 100644 --- a/docs/developer-guide/theme/template-variables/index_.md +++ b/docs/developer-guide/theme/template-variables/index_.md @@ -8,6 +8,8 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md" +网站的首页模板,在这个模板中默认设置了最新文章列表的变量,也可以通过调用 [Finder API](../finder-apis.md) 和 [主题设置](../settings.md) 来展示其他数据。 + ## 路由信息 - 模板路径:`/templates/index.html` diff --git a/docs/developer-guide/theme/template-variables/page.md b/docs/developer-guide/theme/template-variables/page.md index b646f54f..56cac963 100644 --- a/docs/developer-guide/theme/template-variables/page.md +++ b/docs/developer-guide/theme/template-variables/page.md @@ -1,5 +1,5 @@ --- -title: 独立页面 +title: 单页面 description: page.html - /:slug --- @@ -7,11 +7,48 @@ import SinglePageVo from "../vo/_SinglePageVo.md" import ContributorVo from "../vo/_ContributorVo.md" import ContentVo from "../vo/_ContentVo.md" +页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。 + ## 路由信息 - 模板路径:`/templates/page.html` - 访问路径:`/:slug` +### 自定义模板 + +除了上面提到的 `page.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型。 + +定义方式为: + +```yaml title="theme.yaml" +customTemplates: + page: + - name: {name} + description: {description} + screenshot: {screenshot} + file: {file}.html +``` + +- `name`:模板名称 +- `description`:模板描述 +- `screenshot`:模板预览图 +- `file`:模板文件名,需要在 `/templates/` 目录下创建 + +示例: + +```yaml title="theme.yaml" +customTemplates: + page: + - name: 关于公司 + description: 用于展示公司的一些信息 + screenshot: + file: page_about.html +``` + +:::info +需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +::: + ## 变量 ### singlePage diff --git a/docs/developer-guide/theme/template-variables/post.md b/docs/developer-guide/theme/template-variables/post.md index 1f7538bf..d798709b 100644 --- a/docs/developer-guide/theme/template-variables/post.md +++ b/docs/developer-guide/theme/template-variables/post.md @@ -9,10 +9,47 @@ import ContentVo from "../vo/_ContentVo.md" import ContributorVo from "../vo/_ContributorVo.md" import PostVo from "../vo/_PostVo.md" +文章详情页面的模板。 + ## 路由信息 - 模板路径:`/templates/post.html` -- 访问路径:`/archives/:slug` +- 访问路径:默认为 `/archives/:slug`,用户可手动更改为其他路由形式,可参考:[主题路由设置](../../../user-guide/settings.md#主题路由设置) + +### 自定义模板 + +除了上面提到的 `post.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型,用户设置方式可参考 [文章设置](../../../user-guide/posts.md#文章设置)。 + +定义方式为: + +```yaml title="theme.yaml" +customTemplates: + post: + - name: {name} + description: {description} + screenshot: {screenshot} + file: {file}.html +``` + +- `name`:模板名称 +- `description`:模板描述 +- `screenshot`:模板预览图 +- `file`:模板文件名,需要在 `/templates/` 目录下创建 + +示例: + +```yaml title="theme.yaml" +customTemplates: + post: + - name: 文档 + description: 文档类型的文章 + screenshot: + file: post_documentation.html +``` + +:::info +需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +::: ## 变量 @@ -59,7 +96,17 @@ import PostVo from "../vo/_PostVo.md" -- [#CategoryVo](#categoryvo) -- [#TagVo](#tagvo) -- [#ContributorVo](#contributorvo) -- [#ContentVo](#contentvo) +- [路由信息](#路由信息) + - [自定义模板](#自定义模板) +- [变量](#变量) + - [post](#post) + - [变量类型](#变量类型) + - [示例](#示例) + - [\_templateId](#_templateid) + - [变量值](#变量值) +- [类型定义](#类型定义) + - [CategoryVo](#categoryvo) + - [TagVo](#tagvo) + - [ContributorVo](#contributorvo) + - [ContentVo](#contentvo) + - [PostVo](#postvo) diff --git a/docs/developer-guide/theme/template-variables/tag.md b/docs/developer-guide/theme/template-variables/tag.md index b9181574..59b9aaa7 100644 --- a/docs/developer-guide/theme/template-variables/tag.md +++ b/docs/developer-guide/theme/template-variables/tag.md @@ -8,6 +8,8 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md" +用于根据标签列出所有文章的页面。 + ## 路由信息 - 模板路径:`/templates/tag.html` diff --git a/docs/developer-guide/theme/template-variables/tags.md b/docs/developer-guide/theme/template-variables/tags.md index 4976b449..dad701f6 100644 --- a/docs/developer-guide/theme/template-variables/tags.md +++ b/docs/developer-guide/theme/template-variables/tags.md @@ -5,6 +5,8 @@ description: tags.html - /tags import TagVo from '../vo/_TagVo.md' +用于列出所有文章标签的页面,可以用于实现标签墙等功能。 + ## 路由信息 - 模板路径:`/templates/tags.html` diff --git a/docs/developer-guide/theme/vo/_ThemeVo.md b/docs/developer-guide/theme/vo/_ThemeVo.md index 02b91126..66770924 100644 --- a/docs/developer-guide/theme/vo/_ThemeVo.md +++ b/docs/developer-guide/theme/vo/_ThemeVo.md @@ -32,5 +32,5 @@ 其中: -1. `customTemplates`:一般不会在模板引擎中使用,使用文档请参考:[模板路由#自定义模板](../template-route-mapping.md#custom-templates) +1. `customTemplates`:一般不会在模板引擎中使用,使用文档请参考:[模板编写](../template-variables.md)) 2. `config`:主题配置,使用文档请参考:[设置选项](../settings.md) diff --git a/docusaurus.config.js b/docusaurus.config.js index fd9564ad..d2adad07 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -189,7 +189,7 @@ const config = { prism: { theme: darkCodeTheme, darkTheme: darkCodeTheme, - additionalLanguages: ["java","sql"], + additionalLanguages: ["java", "json", "sql"], }, zoom: { selector: ".markdown :not(a) > img", diff --git a/sidebars.js b/sidebars.js index 971cf88c..6256ad13 100644 --- a/sidebars.js +++ b/sidebars.js @@ -320,13 +320,12 @@ module.exports = { "developer-guide/theme/prepare", "developer-guide/theme/config", "developer-guide/theme/structure", - "developer-guide/theme/template-route-mapping", "developer-guide/theme/static-resources", "developer-guide/theme/settings", "developer-guide/theme/annotations", { type: "category", - label: "模板变量", + label: "模板编写", link: { type: "doc", id: "developer-guide/theme/template-variables", diff --git a/versioned_docs/version-2.20/developer-guide/theme/config.md b/versioned_docs/version-2.20/developer-guide/theme/config.md index 9ecf62a9..db14bcda 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/config.md +++ b/versioned_docs/version-2.20/developer-guide/theme/config.md @@ -62,9 +62,9 @@ spec: | `spec.issues` | 主题问题反馈地址,如果你的主题是开源在 GitHub 上,可以直接配置为 GitHub Issues 地址。 | 否 | | `spec.settingName` | 设置表单定义的名称,需要同时创建对应的 `settings.yaml` 文件 | 否 | | `spec.configMapName` | 设置持久化配置的 ConfigMap 名称 | 否 | -| `spec.customTemplates.post` | 文章的自定义模板配置,详细文档可查阅 [模板路由](./template-route-mapping#custom-templates) | 否 | -| `spec.customTemplates.category` | 分类的自定义模板配置,详细文档可查阅 [模板路由](./template-route-mapping#custom-templates) | 否 | -| `spec.customTemplates.page` | 独立页面的自定义模板配置,详细文档可查阅 [模板路由](./template-route-mapping#custom-templates) | 否 | +| `spec.customTemplates.post` | 文章的自定义模板配置,详细文档可查阅 [模板编写](./template-variables.md) | 否 | +| `spec.customTemplates.category` | 分类的自定义模板配置,详细文档可查阅 [模板编写](./template-variables.md) | 否 | +| `spec.customTemplates.page` | 独立页面的自定义模板配置,详细文档可查阅 [模板编写](./template-variables.md) | 否 | | `spec.version` | 主题版本 | 是 | | `spec.requires` | 所需 Halo 的运行版本 | 是 | | `spec.license` | 协议 | 否 | diff --git a/versioned_docs/version-2.20/developer-guide/theme/structure.md b/versioned_docs/version-2.20/developer-guide/theme/structure.md index ac5efe98..560973d8 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/structure.md +++ b/versioned_docs/version-2.20/developer-guide/theme/structure.md @@ -27,7 +27,7 @@ my-theme 详细说明: -1. `/templates/` - 主题模板目录,存放主题模板文件,所有模板都需要放在这个目录。关于模板的详细说明,请查阅 [模板路由](./template-route-mapping)。 +1. `/templates/` - 主题模板目录,存放主题模板文件,所有模板都需要放在这个目录。关于模板的详细说明,请查阅 [模板编写](./template-variables.md)。 2. `/templates/assets/` - 主题静态资源目录,存放主题的静态资源文件,目前静态资源文件只能放在这个目录,引用方式请查阅 [静态资源](./static-resources)。 3. `/theme.yaml` - 主题配置文件,配置主题的基本信息,如主题名称、版本、作者等。详细文档请查阅 [配置文件](./config)。 4. `/settings.yaml` - 主题设置定义文件,配置主题的设置项表单。详细文档请查阅 [设置选项](./settings)。 diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables.md index 84cb6185..48dd15c6 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables.md @@ -1,7 +1,11 @@ --- -title: 模板变量 +title: 模板编写 --- +此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板: + +```mdx-code-block import DocCardList from '@theme/DocCardList'; +``` diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/archives.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/archives.md index 82436fb8..de3bc2df 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/archives.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/archives.md @@ -8,6 +8,8 @@ import TagVo from "../vo/_TagVo.md"; import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md"; +文章归档页面,用于列出网站的所有文章,如果你编写的主题首页不显示文章列表,那么可以利用这个模板为网站单独提供一个查看文章列表的页面。 + ## 路由信息 - 模板路径:`/templates/archives.html` diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/author.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/author.md index 02f4feb6..5021047c 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/author.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/author.md @@ -9,6 +9,8 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md" import ListedPostVo from "../vo/_ListedPostVo.md" +根据作者列出所有文章的页面,如果你的主题偏向于社区类型,那么可以添加一个这样的模板,用于提供作者的页面。 + ## 路由信息 - 模板路径:`/templates/author.html` diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/categories.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/categories.md index b32c32ad..4e6b2099 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/categories.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/categories.md @@ -5,6 +5,8 @@ description: categories.html - /categories import CategoryTreeVo from "../vo/_CategoryTreeVo.md" +用于列出所有文章分类的页面。 + ## 路由信息 - 模板路径:`/templates/categories.html` diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/category.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/category.md index 730f6a72..3a7e7429 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/category.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/category.md @@ -8,11 +8,52 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md" +用于根据分类列出所有文章的页面。 + ## 路由信息 - 模板路径:`/templates/category.html` - 访问路径:`/categories/:slug` +### 自定义模板 + +除了上面提到的 `category.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,可以通过这个功能实现将网站上的文章内容进行领域划分,比如网站上同时存在新闻、文档、博客等分区,那么就可以利用这个功能提供多个模板,同时 Halo 还支持为分类设置文章渲染模板,详情可见[新建文章分类](../../../user-guide/posts.md#新建文章分类)。 + +定义方式为: + +```yaml title="theme.yaml" +customTemplates: + category: + - name: {name} + description: {description} + screenshot: {screenshot} + file: {file}.html +``` + +- `name`:模板名称 +- `description`:模板描述 +- `screenshot`:模板预览图 +- `file`:模板文件名,需要在 `/templates/` 目录下创建 + +示例: + +```yaml title="theme.yaml" +customTemplates: + category: + - name: 新闻 + description: 用于展示新闻分类下的文章 + screenshot: + file: category_news.html + - name: 博客 + description: 用于展示博客分类下的文章 + screenshot: + file: category_blog.html +``` + +:::info +需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +::: + ## 变量 ### category diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/index_.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/index_.md index ca268c1c..6188b567 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/index_.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/index_.md @@ -8,6 +8,8 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md" +网站的首页模板,在这个模板中默认设置了最新文章列表的变量,也可以通过调用 [Finder API](../finder-apis.md) 和 [主题设置](../settings.md) 来展示其他数据。 + ## 路由信息 - 模板路径:`/templates/index.html` diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/page.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/page.md index b646f54f..56cac963 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/page.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/page.md @@ -1,5 +1,5 @@ --- -title: 独立页面 +title: 单页面 description: page.html - /:slug --- @@ -7,11 +7,48 @@ import SinglePageVo from "../vo/_SinglePageVo.md" import ContributorVo from "../vo/_ContributorVo.md" import ContentVo from "../vo/_ContentVo.md" +页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。 + ## 路由信息 - 模板路径:`/templates/page.html` - 访问路径:`/:slug` +### 自定义模板 + +除了上面提到的 `page.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型。 + +定义方式为: + +```yaml title="theme.yaml" +customTemplates: + page: + - name: {name} + description: {description} + screenshot: {screenshot} + file: {file}.html +``` + +- `name`:模板名称 +- `description`:模板描述 +- `screenshot`:模板预览图 +- `file`:模板文件名,需要在 `/templates/` 目录下创建 + +示例: + +```yaml title="theme.yaml" +customTemplates: + page: + - name: 关于公司 + description: 用于展示公司的一些信息 + screenshot: + file: page_about.html +``` + +:::info +需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +::: + ## 变量 ### singlePage diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/post.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/post.md index 1f7538bf..d798709b 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/post.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/post.md @@ -9,10 +9,47 @@ import ContentVo from "../vo/_ContentVo.md" import ContributorVo from "../vo/_ContributorVo.md" import PostVo from "../vo/_PostVo.md" +文章详情页面的模板。 + ## 路由信息 - 模板路径:`/templates/post.html` -- 访问路径:`/archives/:slug` +- 访问路径:默认为 `/archives/:slug`,用户可手动更改为其他路由形式,可参考:[主题路由设置](../../../user-guide/settings.md#主题路由设置) + +### 自定义模板 + +除了上面提到的 `post.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型,用户设置方式可参考 [文章设置](../../../user-guide/posts.md#文章设置)。 + +定义方式为: + +```yaml title="theme.yaml" +customTemplates: + post: + - name: {name} + description: {description} + screenshot: {screenshot} + file: {file}.html +``` + +- `name`:模板名称 +- `description`:模板描述 +- `screenshot`:模板预览图 +- `file`:模板文件名,需要在 `/templates/` 目录下创建 + +示例: + +```yaml title="theme.yaml" +customTemplates: + post: + - name: 文档 + description: 文档类型的文章 + screenshot: + file: post_documentation.html +``` + +:::info +需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +::: ## 变量 @@ -59,7 +96,17 @@ import PostVo from "../vo/_PostVo.md" -- [#CategoryVo](#categoryvo) -- [#TagVo](#tagvo) -- [#ContributorVo](#contributorvo) -- [#ContentVo](#contentvo) +- [路由信息](#路由信息) + - [自定义模板](#自定义模板) +- [变量](#变量) + - [post](#post) + - [变量类型](#变量类型) + - [示例](#示例) + - [\_templateId](#_templateid) + - [变量值](#变量值) +- [类型定义](#类型定义) + - [CategoryVo](#categoryvo) + - [TagVo](#tagvo) + - [ContributorVo](#contributorvo) + - [ContentVo](#contentvo) + - [PostVo](#postvo) diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/tag.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/tag.md index b9181574..59b9aaa7 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/tag.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/tag.md @@ -8,6 +8,8 @@ import TagVo from "../vo/_TagVo.md" import ContributorVo from "../vo/_ContributorVo.md"; import ListedPostVo from "../vo/_ListedPostVo.md" +用于根据标签列出所有文章的页面。 + ## 路由信息 - 模板路径:`/templates/tag.html` diff --git a/versioned_docs/version-2.20/developer-guide/theme/template-variables/tags.md b/versioned_docs/version-2.20/developer-guide/theme/template-variables/tags.md index 4976b449..dad701f6 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/template-variables/tags.md +++ b/versioned_docs/version-2.20/developer-guide/theme/template-variables/tags.md @@ -5,6 +5,8 @@ description: tags.html - /tags import TagVo from '../vo/_TagVo.md' +用于列出所有文章标签的页面,可以用于实现标签墙等功能。 + ## 路由信息 - 模板路径:`/templates/tags.html` diff --git a/versioned_docs/version-2.20/developer-guide/theme/vo/_ThemeVo.md b/versioned_docs/version-2.20/developer-guide/theme/vo/_ThemeVo.md index 02b91126..66770924 100644 --- a/versioned_docs/version-2.20/developer-guide/theme/vo/_ThemeVo.md +++ b/versioned_docs/version-2.20/developer-guide/theme/vo/_ThemeVo.md @@ -32,5 +32,5 @@ 其中: -1. `customTemplates`:一般不会在模板引擎中使用,使用文档请参考:[模板路由#自定义模板](../template-route-mapping.md#custom-templates) +1. `customTemplates`:一般不会在模板引擎中使用,使用文档请参考:[模板编写](../template-variables.md)) 2. `config`:主题配置,使用文档请参考:[设置选项](../settings.md) diff --git a/versioned_sidebars/version-2.20-sidebars.json b/versioned_sidebars/version-2.20-sidebars.json index 5dd329c8..90d3dfd1 100644 --- a/versioned_sidebars/version-2.20-sidebars.json +++ b/versioned_sidebars/version-2.20-sidebars.json @@ -304,13 +304,12 @@ "developer-guide/theme/prepare", "developer-guide/theme/config", "developer-guide/theme/structure", - "developer-guide/theme/template-route-mapping", "developer-guide/theme/static-resources", "developer-guide/theme/settings", "developer-guide/theme/annotations", { "type": "category", - "label": "模板变量", + "label": "模板编写", "link": { "type": "doc", "id": "developer-guide/theme/template-variables"