Hugo:添加随机浏览文章功能

Posted by Nefelibata on Sat 2024-03-30 | | about 1 mins
Last Modified on Thu 2024-05-23

偶然看见了一位大佬的博客 给 Hugo 博客添加随机文章入口 ,发现了他做了这个功能,感觉可以搞一下,于是借鉴了她的代码,感谢。

1 显示效果

在博客的右上角添加了一个叫 STROLL 的随机访问入口,点击后即可随机浏览一篇文章。

image-20240330202907703

2 解决方案

新增 layouts\partials\random.html ,并且在其中添加代码:

 1<script>
 2  function goToRandomPost() {
 3    const pages = [
 4      {{ range ((where .Site.RegularPages "Type" "post")) }}
 5      "{{ .RelPermalink }}?utm_source=random",
 6      {{ end -}}
 7    ];
 8    const rand = Math.floor(Math.random() * pages.length);
 9    window.location.href = pages[rand];
10  }
11</script>

然后再导航栏的html中添加一个入口,在 layouts\partials\nav.html 中添加:

1<li>
2    {{ partial "random" . }}
3    <a class="random" onclick='goToRandomPost()'>STROLL</a>
4</li>

这样就可以完成这个随机访问的功能了~