在 Hugo 站点中显示来自 Github Gist 的文本值

Display text value from Github Gist in Hugo site

我知道我可能会问一些非常简单的问题,但对于我来说,我似乎无法理解这个问题,我肯定在监督一些简单的事情,但我不知道是什么。任何帮助将不胜感激。

我正在使用 Hugo 生成静态站点。在我的一个页面上,我想创建一个类似进度条的东西,使用我需要从 Github Gist 的文件中获取的变量。

说这就是要点:https://gist.github.com/bogdanbacila/c5a9683089c74d613ad17cdedc08f56b#file-thesis-words-txt

文件只有一个编号,仅此而已。我要问的是如何从 gist 中获取该数字并将其存储在 hugo 中,或者至少只是将其显示在一些原始 html 中。我想提一下,我不想使用提供的嵌入文本,我只想获取原始值。归根结底,我需要的是在此处读取并显示原始 link 中的数字:https://gist.githubusercontent.com/bogdanbacila/c5a9683089c74d613ad17cdedc08f56b/raw/8380782afede80d234209293d4c5033a890e44b6/thesis-words.txt

我在 Hugo 论坛上问过这个问题,这不是很有帮助,我没有提供一些指导,而是被送到这里。这是我最初的问题:https://discourse.gohugo.io/t/get-raw-content-from-github-gist-to-a-variable/38781

任何帮助将不胜感激,我知道有一些我没有看到的非常明显的东西,请指导我正确的方向,这不应该那么复杂。

最好的, 博格丹

您可以获取此数据并将其作为数据文件存储在 Hugo 中,但我不推荐这样做。

由于 Hugo 是一个静态站点生成器,因此每次值更改时,您不仅需要修改存储库中的数据文件,还需要 re-build 您的站点。然后你就得担心 运行 剧本的进度了。这意味着您不能确定该值在第二次有人访问您的网站时是最新的。在我看来,这比它的价值更让人头疼。

更好的方法是编写一些 client-side JavaScript 来调用要点的原始 URL 以获取内容。这是 Hugo-agnostic 这就是为什么我怀疑你被指到这里了。

来自 Gists API 文档:

If you need the full contents of the file, you can make a GET request to the URL specified by raw_url.

您可以为这个或任何其他 JS 客户端使用类似 Fetch API 的东西。只需向 URL 发出 GET 请求,解析响应主体中的值,并写入一些 JavaScript 以在有人向其所在页面发出请求时将值插入 DOM .

@wjh18

干杯!我不知道 GET 请求,所以我不得不深入研究一下,但我设法做到了:

<script>
            fetch('https://gist.githubusercontent.com/bogdanbacila/c5a9683089c74d613ad17cdedc08f56b/raw').then(function(response) {
              return response.json();
            }).then(function(data) {
              console.log(data);
            }).catch(function() {
              console.log("Booo");
            });
</script>