流量统计
国内可以使用百度统计、cnzz、51la、或者cloudflare等免费统计工具
文章阅读统计
卜算子,或者自己搭个云函数
站内统计
文章数统计
直接使用hugo变量,但网站有点问题
官方:
{{ $posts := (where .Site.RegularPages "Section" "==" "posts") }}
{{ $postCount := len $posts }}
林木木:
共 {{ len (where .Site.RegularPages "Section" "posts") }} 篇文章
有些主题是做过优化的,不用.Site,直接使用site变量,还有就是如果你的文章目录不是posts,像我的改成post,这个相应也要更改,不然运行报错。
运行天数
function show_run_day() {
var BirthDay = new Date("12/27/2022 00:00:00");
var today = new Date();
var timeold = (today.getTime() - BirthDay.getTime());
var sectimeold = timeold / 1000
var msPerDay = 24 * 60 * 60 * 1000
var e_daysold = timeold / msPerDay
var daysold = Math.floor(e_daysold);
console.log('stat day',daysold)
document.getElementById("run-num").innerHTML = daysold;
}
show_run_day();
放到html的body结束前就好了
评论数
遍历sitemap.xml,获取post的路径list,调用twikoo的api接口,获取总评论数
总字数
林木木(基于他的小改):
{{ $scratch := newScratch}}
{{ range (where site.Pages "Kind" "page") }}
{{ $scratch.Add "total" .WordCount }}
{{ end }}
{{ $wordnum := div ($scratch.Get "total") 10000}}
放在head,调用时如下
<span> {{ printf "%.1f" $wordnum }}w</span>
标签数
{{ len site.Taxonomies.tags.ByCount }}
友邻数
{{ $linknum := "-"}}
{{ range (where site.Pages "RelPermalink" "/links/") }}
{{ $linklist := findRE `(?s)<div class="archive-item links-item cf-friends" .*?>.*?</div>` .Content }}
{{ $linknum = len $linklist }}
{{ end }}
/links/ 为你.md的文件名
编辑内容
文章编写方式
obsidian:
本地使用obsidian 或者 部署云obsidian实现在线编辑
vscode:
本地使用VScode+md即时可视化插件
两者各有优缺,前者偏向非技术的,后者偏向经常改技术的。当站点趋于稳定后,基本只有内容变更的话,前者会香一点。因为我是前端技术开发的,喜欢折腾功能,所有会倾向后者。后者命令调试+可视化+代码编写,无敌。
代码块折叠
{{<github title="jiridj/hugo-collapsible-code">
}}
详细看教程
功能系统
评论功能
twikoo + vercel + free mongodb
广播广场
memos + vps主机 + docker (racknerd一年费用80左右)
豆瓣书影
github + action
友邻文集
vercel
有意思的404页面
总结
以上都是基于最低成本的做法,使用免费的资源与开源的技术为宗旨,来搭建一个十年的博客。
之前,我用过WP/Typecho/Hexo/Solo/VuePress等博客系统,像Hugo这样的静态博客是我认为最简单,上手最舒服的,拓展性与自由度都非常地好。
作为前端开发者,它是我心目中最好的开源博客系统。