【问题标题】:Hugo JS assets for single pages or sections单个页面或部分的 Hugo JS 资产
【发布时间】:2021-10-08 09:30:35
【问题描述】:

较新的 Hugo 版本确实提供了高级 JS 资产管理,甚至可以处理来自 node_modules 的资源 - 但我不明白。

我阅读了文档和相关新闻文章,但我需要更多的教程,比如开始。或者一个存储库链接,按照当前 Hugo 版本 (~ 80+) 的预期方式完成此操作。

如果您网站中的单个页面需要三个.js 场景或另一个更大的 JS 导入,您是如何做到的?您在哪里告诉 hugo 导入所需的库以及如何/在哪里放置使用该库的脚本?

我觉得这不对:

  • 包括所有页面的资产
  • 只需在 content/section/page.html 中添加所需的 cdn 脚本并使用即可

这就是我要找的:

  • 根据需要导入脚本
  • 使用提供的机制从 node_modules 包含和捆绑
  • 每个任务的单个 js 文件(设置 threejs 场景,初始化 alpinejs,...)以某种方式绑定到需要的页面或部分。
  • 一种适用于 Hugo 模块的系统方法

【问题讨论】:

    标签: javascript node-modules hugo


    【解决方案1】:

    如果您只想包含或排除特定页面(如页面、部分、主页)的静态 js,那么您可以将 HUgo 页面变量添加到您的部分“footer.html”:

    .IsHome
    .IsPage
    .IsSection
    

    前:

    {{ .isHome }}
     <script src="home.js">
    {{ end }}
    
    {{ .isPage }}
     <script src="page.js">
    {{ end }}
    

    所以你不需要创建多个footer.html或手动插入。

    更多细节请阅读 Hugo Page Variable DOC 这里https://gohugo.io/variables/page/

    【讨论】:

    • 这很好,但没有使用资产/管道等。即没有JS管理。 gohugo.io/hugo-pipes 用于入门。 (注意 OP,虽然没有写清楚,但引用了 Hugo 中的 Assets Management)
    • 我正在寻找“单一来源”的解决方案。在您的示例中,头部和页面需要了解所有选项
    【解决方案2】:

    很遗憾,您没有列出您看过的内容。 但是,我会开始(并在实施 HUGO 的资产/管道等系统时开始):

    1. https://gohugo.io/hugo-pipes/
    2. https://gohugo.io/hugo-pipes/js/
    3. https://gohugo.io/hugo-pipes/js/#import-js-code-from-assets
    4. https://www.regisphilibert.com/blog/2018/07/hugo-pipes-and-asset-processing-pipeline/ 在 ES 构建方面: 从“我的/模块”导入{你好};是上面3中给出的例子。 然后有选择地使用,上面4给出了一个很好的例子。 如果有帮助,请告诉我。

    【讨论】:

    • 4.是一个很棒的资源。我是老实说:我忽略了那么旧的资源。有了这个清晰的描述,我最终可能会更好地理解 hugo 文档 ;-)
    • 丹尼尔不用担心。不过,在真正的 Hitchhiker 的银河时尚指南中,我确实建议您研究一下这个问题本身——他们可能是对 Hugo 开发方式的假设,我发现维护者,尤其是 BEP,非常优秀,并且遵循了优秀的设计模式,即如果它被构建,它们将是明确和详细的拉取请求,如果它发生变化,将保持不变,这些都是公开的并且能够被审查。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2014-04-24
    • 1970-01-01
    • 2011-09-02
    • 2012-12-12
    相关资源
    最近更新 更多