2

我正在使用PaperMod主题。我有以下参数config.yml

---
# some predefined variables
params:
  ShowReadingTime: true
  ShowShareButtons: true
  ShowBreadCrumbs: true
  ShowCodeCopyButtons: true 
---

对于我的帖子,参数按预期工作。但是后来我有不想使用相同参数的单个页面(例如关于页面)。index.md我尝试在我的目录中覆盖上述值/about/,但它不起作用。

所以我在文档和博客文章中阅读了更多关于 的内容_index.md,但不确定我是否理解正确,似乎我应该做这样的事情:

config.yml // remove such params
content 
  posts
     _index.md // only add params here 
     post1.md
     post2.md
  about.md // special page that doesn't need the params

但是当我这样做时,我设置的参数对 post1、post2 没有任何影响。

我这样做对吗?我以为我可以将其content/posts视为一个部分,每个部分都需要一个_index.md用于其自定义前端变量的变量。

4

2 回答 2

2

我注意到主题使用该{{ .Param KEY }}函数来获取这些自定义参数的值。

该函数首先检查页面的参数(前端),然后回退到全局配置文件。在全局配置文件中,自定义参数是在section下指定params,而在页面的 front matter 中,自定义参数是在根级别指定的。

于 2022-01-11T18:16:11.200 回答
0

我会在配置中设置它们以使它们成为站点范围的变量。然后我会在页面中设置不同的参数并用下面的逻辑覆盖。

参考站点范围的变量:

.Site.Params.yourparamkey

引用页面变量:

.Params.yourparamkey

检查使用哪一个:

{{- if .Params.yourparamkey -}}
  {{- $yourparamkey := .Params.yourparamkey -}}
{{- else -}}
  {{- $yourparamkey := .Site.Params.yourparamkey -}}
{{- endif -}}

使用您的参数键:

{{ $yourparamkey }}
于 2022-01-11T15:10:46.210 回答