13

我正在尝试在 Hugo 静态生成的站点的内容中使用变量。例如,内容如下所示:

  1. 转到您网站的网址 ( {{ .Site.BaseURL }})
  2. 输入您的凭据
  3. .....(等等等等等等)

当它被渲染时,该{{ .... }}部分没有得到处理......它与我上面所说的保持不变。我也试过$在前面加上。模板中的变量似乎工作得很好。我是否需要创建一个简码以在内容页面中使用?

4

4 回答 4

17

所以看起来短代码是做到这一点的方法。对于它的价值,我将文档更改为如下所示:

  1. 转到您网站的网址 ({{< siteurl >}})

layouts/shortcodes,我创建了文件siteurl.html。它如下所示:

{{ .Page.Site.BaseURL }}

我需要在其中添加 .Page 才能访问站点变量。有关更多详细信息,请参阅此问题报告

于 2015-10-27T21:30:32.703 回答
2

在 Hugo 中,当您想在 markdown (.md)文件中使用变量时,您需要先为其创建一个短代码。

您可以按照以下步骤操作:-

创建简码

布局/简码/siteurl.html

{{ .Page.Site.BaseURL }}

用法

内容/post/myblogpost.md

---
# front-matter
---
1. Go to your site's url ({{< siteurl >}})
2. Enter your credentials
3. .....(blah blah blah)

结果

帖子/myblogpost.html

1. Go to your site's url (https://codingnconcepts.com)
2. Enter your credentials
3. .....(blah blah blah)

来源: https ://codingnconcepts.com/hugo/custom-shortcode-hugo/

于 2020-09-08T02:49:03.453 回答
1

我有同样的问题,这篇文章帮助了我。

我想在我的网站内容中显示一个网站参数,并发现您不能在内容文件中使用常规模板。

最后,我创建了一个短代码来加载请求的站点参数。谁知道这些信息可能会对某人有所帮助。

/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>
于 2020-06-01T12:28:22.760 回答
1

这是尝试通过一个简单的示例来稍微改进@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.
于 2021-11-30T16:39:49.403 回答