航班计划|No.2:快一年了 To-Do list 也该更新了
为了逃避别的事开始重新整理博客 todo……
目录
先放下一个我抽打 GPT 给我写的,在字数统计里去除 Neodb 卡片字数(是的,Neodb 卡片里那么多字都会算进字数!)的代码。
单篇文章的字数统计
由于我使用的主题是把字数统计显示的数字作为一个 partial 导入的,所以我只要修改word-count.html
即可,大家可以根据自己的主题修改。请 GPT 帮我写了代码注释,应该可以比较容易地看懂,便于自行修改!
// layouts/partials/meta/word-count.html
/* 获取当前页面的 HTML 内容 */
{{ $content := .Content }}
/* 定义一个正则表达式,匹配需要忽略的 HTML 区块(class 为 db-card-abstract 的 <div>,也就是 Neodb 卡片的简介部分) */
{{ $ignorePattern := `<div class="db-card-abstract">[\s\S]*?</div>` }}
/* 在内容中查找所有符合忽略规则的内容,并返回一个数组 */
{{ $ignoredContentMatches := findRE $ignorePattern $content }}
/* 将所有被忽略的 HTML 块拼接成一个字符串 */
{{ $ignoredContent := "" }}
{{ range $ignoredContentMatches }}
{{ $ignoredContent = printf "%s%s" $ignoredContent . }}
{{ end }}
/* 去除 HTML 标签,只保留纯文本内容 */
{{ $plainIgnoredContent := plainify $ignoredContent }}
/* 将纯文本按字符(而不是词)分割,然后计算字符数作为“忽略的字数” */
{{ $ignoredWords := len (split $plainIgnoredContent "") }}
/* 从原始字数中减去忽略的字符数,得出调整后的字数 */
{{ $adjustedWordCount := sub .WordCount $ignoredWords }}
/* 使用 i18n 翻译字符串 'article.word_count',传入调整后的字数,并支持 Markdown 和 Emoji 渲染 */
<span>
{{- i18n "article.word_count" $adjustedWordCount | markdownify | emojify -}}
</span>
页脚的总字数统计
尝试用了 Scratch 来输出我每篇文章的修正后字数统计,并且在页脚的代码里把它加起来,但发现这个 Scratch 输出的值,只有在文章界面(也就是有字数统计功能的页面)才会不为空,并且会把所有文章的字数都当成那个值来计算……于是最后的解决办法是非常不优雅地把我在字数统计功能里写过的修正代码复制粘贴到页脚的字数统计里再来一遍()。
// layouts/partials/footer.html
/* 预先统计总字数 */
{{ $totalWords := 0 }}
/* 遍历所有 posts 分区下的页面,也就是博客文章 */
{{ range (where .Site.RegularPages "Section" "posts") }}
/* 用上述方法重新统计每篇文章的字数 */
{{ $content := .Content }}
{{ $ignorePattern := `<div class="db-card-abstract">[\s\S]*?</div>` }}
{{ $ignoredContentMatches := findRE $ignorePattern $content }}
{{ $ignoredContent := "" }}
{{ range $ignoredContentMatches }}
{{ $ignoredContent = printf "%s%s" $ignoredContent . }}
{{ end }}
{{ $plainIgnoredContent := plainify $ignoredContent }}
{{ $ignoredWords := len (split $plainIgnoredContent "") }}
{{ $adjustedWordCount := sub .WordCount $ignoredWords }}
/* 累加进总字数 */
{{ $totalWords = add $totalWords $adjustedWordCount }}
{{ end }}
/* 显示自定义页脚文案 */
<p class="text-sm text-neutral-500 dark:text-neutral-400">
© 2023 - {{ now.Format "2006" }} | {{ with site.Copyright }}{{ . | emojify | markdownify }}{{ end }}<br>
万象航空已平稳运营 <span id="days">0</span> 天 ·
开辟航线 {{ len (where .Site.RegularPages "Section" "posts") }} 条 ·
累计航程 {{ printf "%.1fk" (div (float $totalWords) 1000.0) }} 海里
</p>
页脚的总字数统计最初来源于塔塔的作业,另外还有一部分<script>
代码需要添加,可参考原作业,我这边就不放了。
要统计总字数后,我才开始想要不要把笔记内容转移到别的地方去,否则总字数岂不是显得有些水分……?但当初搭博客的时候,就打算把各种乱七八糟的笔记存过来了,否则我也写不出什么多的博文了呀!
以下内容虽然不是所有点都要改(第一篇 todo 里有很多就被我废弃了),但总之先宁滥勿缺地列出来。主要起到一个存作业和有用链接的作用。
页面布局 #
- 修改 About 和 Links 的页面布局
- 修改主页 Recent 布局,原本想改成 Blowfish 的卡片式,但想起我不是所有文章都有缩略图……方案仍需完善
- 修改归档页布局,改为右侧分类标签,左侧仅列出文章标题
- 优化展柜样式,补充碎碎念
样式美化 #
- 想加入多多的马娘元素
- 好歌剧桌宠
- 自定义博客配色,调整深色模式配色
- 修改 Twikoo 评论区配色
- 修改 icon,目前是个紫色色块,在飞机、纸飞机、罗盘中纠结选哪个好,或许可以把其中一个换成自定义指针
- 修改评论区 CSS
- 修改超链接样式
- 修改 Neodb 卡片样式
- 代码块高度限制
- ■■Loading:《hugo 装修日志 02》■■,如果抄不了看这里能不能修复
- 高亮 categories 的标签
功能 #
- 评论区增加表情包
- 藏书室、放映厅、相册(不确定要不要单独开一个站点)
- 主页随机入口,想点击小图标直接跳转,因此估计需要大量魔改
- 在线聊天/提问箱/赞助
- 图片轮播,以前加过但失败了,有大量图片要加了再研究
- 图床