[英]How to include simple JavaScript within Hugo
鉴于以下代码:
$('img').mouseenter(function(){
//...
}).mouseleave(function(){
//...
});
我希望它包含在我的文章中。 如果可能的话,我想避免编辑主题,以避免分叉等。
这在一定程度上取决于您使用的主题。 这可能是我们可以做得更好的领域,但请这样做:
在主题中,查看
layouts/partials
文件夹。
如果您找到header.html
或类似文件,请将其复制到您的本地layouts/partials
。 然后,您只能覆盖此文件的内容。 或者,您可以通过复制用于单个页面的模板进行自定义,通常是: layouts/_default/single.html
。
bep的回答非常好,但这里有一些额外的细节给像我这样的雨果/前端新人
首先,您应该将 Hugo 主题的header.html
或footer.html
(或类似的)复制到您的layouts/partials
文件夹中。 它不一定是页眉或页脚,而是包含在 html 的每个页面中的文件(这就是您通常使用header.html
或footer.html
)。
我有一个主题,其页脚位于<theme_folder>\\layouts\\partials\\_shared\\footer.html
,然后我从主题文件夹复制到项目布局文件夹<project_root>\\layouts\\partials\\_shared\\footer.html
。
然后,我添加到footer.html
的底部
<script defer language="javascript" type="text/javascript" src="{{ "/js/myscripts.js" | urlize | relURL }}"></script>
defer属性可以稍微改善页面加载时间, "/js/myscripts.js"
是我的javascripts 的位置。 该位置是相对于<project_root>\\static\\
路径。 这里是关于relURL和urlize的文档。
示例脚本文件只包含
// myscripts.js
function myFunction(x) {
let d = new Date();
alert("Current datetime: " + d + "\nYou passed in: " + x);
}
这是在 Hugo 模板(属于模板的任何 .html)中使用 JS 函数的示例:
{{ $somevar := "spam"}}
<button onclick="myFunction( {{ $somevar}} )">Click me</button>
看起来内联 JS 也运行得很好; 例如,添加
<script>
alert("Script loaded!");
</script>
到模板 html 文件运行得很好。 我只会将它用于快速测试,因为在多个 html 文件中可能需要一些脚本,并且将相同的脚本添加到多个文件只会增加您的整体网站文件大小。
我将 themes/whatever/layouts/_default/baseof.html 复制到 layout/_default/baseof.html 并在 html 标签的末尾添加以下块:
{{ 块“页面脚本”。 }}{{ 结尾 }}
然后我可以添加
{{- define "page-script" -}} <script>console.log("Hello!")</script> {{- end -}}
在我的布局文件中放入脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.