【问题标题】:Submitting Hugo Form As JSON/TOML/YAML以 JSON/TOML/YAML 形式提交 Hugo 表单
【发布时间】:2021-06-15 03:07:00
【问题描述】:

我正在尝试创建一个网站,该网站的表单允许人们将数据直接输入到 json/yaml/toml 文件中(不管是哪个,我没有偏好)。

从文件中提取数据以显示很容易,但我希望人们提交自己的信息并将其保存到文件中。

我还没有任何代码,因为我什至不知道从哪里开始表单。我认为它会超级简单,只需创建一个表单并将数据提交到文件中,但我无法在我的 Hugo 书或在线,这里或其他地方找到说明。

如果有人有时间帮助我,我很乐意提供帮助。

谢谢!

【问题讨论】:

    标签: json yaml hugo toml


    【解决方案1】:

    Hugo 是一个静态网站生成器。对用户提交的数据进行操作是一种动态操作。雨果无法帮助你。 Hugo 所做的就是根据您的输入创建.html,然后您通过网络服务器提供这些文件。文件在创建后无法更改,并且 Hugo 是运行以创建文件的处理器,而不是在您提供文件时运行的活动服务。因此,您不能对用户提交的数据采取行动。

    您要么需要通过 JavaScript(或 WASM)在客户端实现所有内容,要么需要有一个活动的后端来执行您想要的操作。在这两种情况下,Hugo 都帮不了你。

    【讨论】:

    • 感谢您的回复。我想我可以用 Node.JS 实现它,但我似乎无法弄清楚如何写入 JSON 文件(我知道它应该是一个简单的 fs.write(),但我不确定如何将它与 Hugo 集成。在 Hugo 中读取 JSON 非常简单,我知道它是静态的,这就是重点。但它只是将琐碎的数据(没有 PII 或任何东西)提交到 json 文件。我只是希望它更简单. 我认为 ajax 也可以,但我对 ajax 不是很了解,所以我不确定/在哪里实现它。感谢您的周到回复。
    • @T.J.问题在于时间线:Hugo 在显示网站之前运行。当用户看到表单并输入内容时,Hugo 的工作已经完成,与网站无关。您当然可以拥有一个 Node.JS 后端并通过 ajax 与它通信(或者更确切地说,fetch,除非您需要支持 IE),但 Hugo 将不再在这方面发挥任何作用。如果您希望在运行时支持类似 Hugo 的模板,您可以通过拥有基于 Go 的后端并使用 Hugo 也使用的 html/template 包来实现。
    • 非常感谢,这也是我的想法,我很高兴有人知道更多,我确认了这一点。我希望我的简单项目更简单!
    • @T.J.你可以通过不使用 Hugo 而是使用动态网站框架来保持项目的简单性。对于一个简单的项目,使用 Hugo 对静态部分的性能提升并不真正相关,如果以相同的方式渲染所有内容,熵会显着减小。
    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多