在 Hugo 内容中使用变量
Use variable inside Hugo content
我正在尝试在 Hugo 静态生成网站的内容中使用一个变量。例如,内容如下所示:
- 转到您网站的 url (
{{ .Site.BaseURL }}
)
- 输入您的凭据
- .....(等等等等)
渲染时,{{ .... }}
部分不会得到处理...它与我在上面放置的一样。我也尝试过在前面加上 $
。模板中的变量似乎工作得很好。我是否需要创建一个短代码以在内容页面中使用?
所以看起来短代码是执行此操作的方法。为了它的价值,我将文档更改为如下所示:
- 转到您网站的 url ({{< siteurl >}})
在layouts/shortcodes
中,我创建了文件siteurl.html
。它看起来像下面这样:
{{ .Page.Site.BaseURL }}
我需要在其中添加 .Page 才能访问站点变量。有关详细信息,请参阅此 Issue Report。
我遇到了同样的问题,这个 post 帮助了我。
我想在我的站点内容中显示一个站点参数,但发现您不能在内容文件中使用常规模板。
最后我创建了一个短代码来加载请求的站点参数。谁知道此信息可能会对某人有所帮助。
/config.yml
params:
appName: My app
/content/about.html
<p>My app's name is {{< param "appName" >}}</p>
/layouts/shortcodes/param.html
{{/* Usage: {{< param "siteParamName" }} */}}
{{ index .Site.Params (.Get 0) }}
结果
<p>My app's name is My app</p>
在 Hugo 中,当你想在 markdown (.md) 文件中使用变量时,你需要先为其创建一个短代码。
您可以按照以下步骤操作:-
创建简码
layouts/shortcodes/siteurl.html
{{ .Page.Site.BaseURL }}
用法
content/post/myblogpost.md
---
# front-matter
---
1. Go to your site's url ({{< siteurl >}})
2. Enter your credentials
3. .....(blah blah blah)
结果
post/myblogpost.html
1. Go to your site's url (https://codingnconcepts.com)
2. Enter your credentials
3. .....(blah blah blah)
这是尝试通过一个简单的示例来稍微改进@minitauros 的回答,以查找(站点)参数子键(又名遍历 YAML 树、推断元素等)。
我希望 Hugo 有 JSONPath 或 jq 语法,显然,这个例子远不能与任何一种解决方案竞争。
config.yml
params:
mode: one
support:
mailing: info@example.net
layouts/shortcodes/param.html
{{ $v := .Site.Params }}
{{ range (split (.Get 0) ".") }}{{ $v = index $v (.) }}{{ end }}
{{ $v }}
content/_index.md
We are in mode {{< param "mode" >}}.
In case of turbulence, [reach the support](mailto:{{< param "support.mailing" >}}) for help.
我正在尝试在 Hugo 静态生成网站的内容中使用一个变量。例如,内容如下所示:
- 转到您网站的 url (
{{ .Site.BaseURL }}
) - 输入您的凭据
- .....(等等等等)
渲染时,{{ .... }}
部分不会得到处理...它与我在上面放置的一样。我也尝试过在前面加上 $
。模板中的变量似乎工作得很好。我是否需要创建一个短代码以在内容页面中使用?
所以看起来短代码是执行此操作的方法。为了它的价值,我将文档更改为如下所示:
- 转到您网站的 url ({{< siteurl >}})
在layouts/shortcodes
中,我创建了文件siteurl.html
。它看起来像下面这样:
{{ .Page.Site.BaseURL }}
我需要在其中添加 .Page 才能访问站点变量。有关详细信息,请参阅此 Issue Report。
我遇到了同样的问题,这个 post 帮助了我。
我想在我的站点内容中显示一个站点参数,但发现您不能在内容文件中使用常规模板。
最后我创建了一个短代码来加载请求的站点参数。谁知道此信息可能会对某人有所帮助。
/config.yml
params:
appName: My app
/content/about.html
<p>My app's name is {{< param "appName" >}}</p>
/layouts/shortcodes/param.html
{{/* Usage: {{< param "siteParamName" }} */}}
{{ index .Site.Params (.Get 0) }}
结果
<p>My app's name is My app</p>
在 Hugo 中,当你想在 markdown (.md) 文件中使用变量时,你需要先为其创建一个短代码。
您可以按照以下步骤操作:-
创建简码
layouts/shortcodes/siteurl.html
{{ .Page.Site.BaseURL }}
用法
content/post/myblogpost.md
---
# front-matter
---
1. Go to your site's url ({{< siteurl >}})
2. Enter your credentials
3. .....(blah blah blah)
结果
post/myblogpost.html
1. Go to your site's url (https://codingnconcepts.com)
2. Enter your credentials
3. .....(blah blah blah)
这是尝试通过一个简单的示例来稍微改进@minitauros 的回答,以查找(站点)参数子键(又名遍历 YAML 树、推断元素等)。
我希望 Hugo 有 JSONPath 或 jq 语法,显然,这个例子远不能与任何一种解决方案竞争。
config.yml
params:
mode: one
support:
mailing: info@example.net
layouts/shortcodes/param.html
{{ $v := .Site.Params }}
{{ range (split (.Get 0) ".") }}{{ $v = index $v (.) }}{{ end }}
{{ $v }}
content/_index.md
We are in mode {{< param "mode" >}}.
In case of turbulence, [reach the support](mailto:{{< param "support.mailing" >}}) for help.