javascript - 无法在 Hugo 静态站点生成器中将 JavaScript 变量作为参数传递

标签 javascript hugo static-site

我正在使用静态站点生成器 hugo。我有一些变量需要从 url 字符串中提取并存储在本地存储中。然后我需要在整个站点的不同位置访问这些变量。

在 Hugo 中,我知道如何在 global.yml 文件中存储和访问全局变量,并且我还可以将变量传递到整个站点的局部变量中。但是,在这些情况下,我传递的变量必须定义为字符串或数字。例如,我可以像这样访问全局变量:

{{ .Site.Data.sitewide.global.randomTest }}

我什至可以在脚本标签中设置字符串,然后将它们作为变量传入:

<script>
{{ .Scratch.Set "greeting" "Hello" }}
</script>

但是,我的问题是我无法传递/插入 JavaScript 变量(例如来自 sessionStorage 的变量)作为可以访问的参数、传递到 Hugo 局部变量或设置为全局变量。

有没有办法将 JavaScript 变量插入为 Hugo 变量,然后可以在整个静态站点中访问?

最佳答案

我认为您需要将 Hugo 视为框架/库,而不是像 jQuery、React 或 PHP 等。

Hugo 仅在构建时使用,不在运行时使用。 Hugo 在构建时使用自己的模板、部分等和变量(无论范围如何)来构建普通的旧 HTML。

现在,您可以包含任何 javascript,就像老派在客户端创建动态站点一样——如您所知,jQuery 是一个很棒的库。因此,您需要考虑页面中的 javascript,以及您将如何使用它。

如果您查看任何 Hugo themes/*theme*/layouts/partials/header./footer,您会看到包含了 javascript。这显然是您放置代码以访问 sessionStorage 并在任何需要的地方使用这些变量的地方。

如果您提供更多详细信息,我们可以帮助给出更具体的答案。

关于javascript - 无法在 Hugo 静态站点生成器中将 JavaScript 变量作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927063/

相关文章:

javascript - Zurb/Foundation 框架 : how to align top-bar-section to the left instead to the right

hugo - 使用 Hyde-Hyde 主题按标题对 Hugo 主页帖子摘要进行排序

ruby - 更新中间商站点,无需编辑源代码

jekyll - 什么是静态网站生成器?

javascript - ExtJS 网格面板不从商店填充数据

javascript - 查找匹配项并按匹配项排序,然后按字母顺序排序

javascript - 为什么 String.raw 不能以反斜杠结尾?

hugo - 如何仅显示来自特定类别的 1 个具有特定参数的帖子 "true"

go - 特拉维斯错误: The command "go get -u -v github.com/spf13/hugo" failed and exited with 1 during

ruby - Jekyll 2.0 中的 SCSS 生成错误