diff options
152 files changed, 630 insertions, 2741 deletions
diff --git a/content/about.md b/content/about.md index 0cf7809..7427d34 100644 --- a/content/about.md +++ b/content/about.md @@ -15,41 +15,10 @@ showMeta: false 我出生于 2011 年,在天津长大。你可以用 **Verdant** 或 **五葉地錦**(五叶地锦)来称呼我。 -我知道标签是一个很无聊且有点片面的东西,但可以帮助你快速认识我,以下是我的一些标签。 - -- INTJ-T -- 金牛座 -- 业余编程爱好者:C, Golang, 前端 - -我平时喜欢看一些以文学为主的闲书、听音乐、弹贝斯,以及写作。这些都是我生活中不可或缺的事情,有时候也会写一些代码。我的数学很差,所以算法对我来说很痛苦,但还是会偶尔硬着头皮啃一点,很佩服数学厉害的人。如果不写代码,我坐在电脑前多半是在折腾 GNU/Linux 和 Emacs。 +很难描述我到底是一个什么样的人,如果想了解我,就先看一看文章吧。带有「黑历史」标签的文章观点和内容已经过时,请谨慎阅读。~~*并且不要认为现在的我还是那样的啊!*~~ ## 关于这里 -<!-- ### 有关名字 --> - -<!-- 你可能会问,既然这是我的个人博客,为什么这个网站叫做「映屿」,而不是「Verdant 的博客」,这和我以前使用过的 ID 有关。 --> - -<!-- 在以前很长一段时间里,我的 ID 一直是 "yingyu5658",没有什么特别的意思,只是因为小时候玩 Minecraft,ID 要用英文,就随便拼了个 "yingyu"(英语)。而 "5658" 则是因为有重复 ID,系统自动添加的后缀。 在之后,我的各种账号都沿用 "yingyu5658" 作为 ID。有一段时间,这个网站的域名也包括"yingyu5658"。 --> - -<!-- 之后我感觉这个昵称实在是太随便了,不仅丑,而且由于拼音,经常会被人叫成「英语五六五八」(虽然就是这个意思)。就想给这个无意义的名字加上一点意义,就起了「映屿」这个名称,作为网站的标题,也很符合一句话: --> - -<!-- > 互联网是一片海洋, --> -<!-- > --> -<!-- > 网站犹如一座座孤岛漂浮在其上, --> -<!-- > --> -<!-- > 唯有超链接将它们联系起来。 --> -<!-- > --> -<!-- > —— [皓子的小站](https://howiehz.top/) --> - -<!-- 在域名方面,我选择意译「映屿」,最终用了 "glowisle.me" 这个域名,作为我互联网身份的一部分,大部分要用到域名的地方,我都会使用这个域名。 --> - -<!-- 我的网名,当然曾经是 "yingyu5658",现在有些地方也是,如 Github, Minecraft 等地方,所以如果你看到了这个 ID,那么大概就是我的黑历史。 --> - -<!-- 现在的中文昵称:「五葉地錦」,来源于我学校的围墙上的爬山虎,「五叶地锦」是那种植物的学名,我很喜欢那片爬山虎,夏天一片翠绿,一到秋天,叶子就会变红,整面墙像是被火引燃了,就用了这个略学术化但生僻到无感的名字。之所以用繁体字,也是因为一种生僻感和庄重感。 --> - -<!-- 而 "Verdant", 意为覆盖绿色植被的、青翠的、郁郁葱葱的、*缺乏经验的*,算是意译了中文昵称。这个词源于法语 "virdeant",意为「变绿」,英语和法语都是很有意思的语言。 --> - - ### 为什么要搭建这个网站? 我在几年前就有搭建自己网站的想法,觉得有自己的网站很酷(确实是这样!),就手动编写了一些静态 HTML 页面,放在 Github Page 上,后来开始搭建博客,但并不知道该写点什么。上网冲浪多了以后,我发现我不喜欢被算法、流量、审查裹挟。在那里写东西,总感觉是在给平台做嫁妆,而且讨论往往只有结论没有过程,甚至只有情绪。我会在这里写点想写的东西,算是作为社交属性不那么强烈的社交媒体,来释放自己的表达欲吧。如果你问我这个网站到底有什么,我也说不太清楚,写过书评,也写过散文随笔,还写过一些技术类文章。有矫情的,也有幼稚的,总之是大量的黑历史。 @@ -72,11 +41,10 @@ showMeta: false ## 一些其他的东西 -- [访问我在 Tilde 社区托管的个人主页](http://rw.rs/~verdant) -- [在 Fediverse 上关注我](https://akk.glowisle.me/verdant) +- [我的主页](http://verdant.ee/) +- [在 Fediverse 上关注我](https://akk.glowisle.me/verdant/) - [Github](https://github.com/yingyu5658) - [RSS](/rss) -- [Uses](/uses) ## 鸣谢与声明 @@ -84,4 +52,4 @@ showMeta: false - 音乐卡片来自 [極客死亡計劃](https://src.eltr.ac/eltrac/geedeapro) - 博客内容承诺均**非AI创作**,所有文章内容使用[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)协议授权,源代码以 GPL-2.0 协议授权。 -目前文章字数:{{< word-count "posts" >}} +{{< word-count "posts" >}} diff --git a/content/posts/2025普鲁斯特问卷.md b/content/posts/2025普鲁斯特问卷.md deleted file mode 100644 index 9004d5c..0000000 --- a/content/posts/2025普鲁斯特问卷.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -date: '2025-12-11T20:18:45+08:00' -draft: true -title: '2025普鲁斯特问卷' -slug: '2025-proust-questionnaire' -categories: - - 随笔 -tags: - - 普鲁斯特问卷 ---- -## 01 What is your idea of perfect happiness? -你认为最完美的幸福是怎样的? - -我理想中的幸福,是类似日语中「幸せ(しあわせ)」的概念: - -有着自己的时间和空间,能干自己喜欢的事,**不会有人突然闯进来**。 - -为什么是日语?这个词给我的印象就是一种温暖、朦胧的幸福和自在,不是宏大而抽象的幸福。有时候在汉语「幸福」这个词,我也会联想到「阖家欢乐」的场面。 - -## 02 What is your greatest fear? -你最大的恐惧是什么? - -失败。虽然没有人会否定我,但我会做我的仇人,疯狂指指点点,在一次次对自己的审问里又陷入到Q3的状态。 - -## 03 What is the trait you most deplore in yourself? -你最痛恨自己的哪些特质? - -间歇性认为自己独一无二,遭受一点挫折就全盘否定自己,在踌躇满志和意志消沉之间来回挣扎却不作出改变的懦弱、愤世嫉俗的尖锐、无休止的内省。 - -04 What is the trait you most deplore in others? -你最痛恨别人的什么特点? - -自信、自大;充满向上的活力,乐观到仿佛失败没有存在过;无端的快乐;吵吵闹闹的友情。 - -05 Which living person do you most admire? -还在世的人中你最欣赏的是谁? - -没有特别欣赏的某一个人,但非常欣赏能坚持自己热爱的事的人。 - -06 What is your greatest extravagance? -你最大的奢侈品是什么? - -喝着可乐,听着歌,坐在电脑前打打字。 - -07 What is your current state of mind? -你目前的心境怎样? - -在平静和沮丧之间微妙的平衡。 - -08 What do you consider the most overrated virtue? -你认为哪种美德是被过高评价的? - -个人的勤奋。 - -09 On what occasion do you lie? -什么情况下你会撒谎? - -当事态发展到不撒谎就对我自身不利时。 - -10 What do you most dislike about your appearance? -你对自己的外表哪一点不满意? - -矮。 - -11 Which living person do you most despise? -还在世的人中你最鄙视谁? - -拾人牙慧,自以为是的他人观点的转述机器。 - -12 What is the quality you most like in a man? -你最喜欢男性身上的什么品质? - -力量、蓬勃的生命力、理性主导。 - -13 What is the quality you most like in a woman? -你最喜欢女性身上的什么品质? - -善于**发现快乐**和**感受快乐**。 - -14 Which words or phrases do you most overuse? -你最常使用的单词或短语是什么? - -除了「我」和某些不堪入耳的脏话以外,应该就是「死」了,对别人的,对自己的。 - -15 What or who is the greatest love of your life? -你这一生中最伟大的爱是谁/什么? - -寻找中。 - -16 When and where were you happiest? -何时何地让你感觉到最快乐? - -不被人打扰,做自己的事,做成功于否评判标准模糊的事,这会让我的自尊心获得官能性的快感。 - -17 Which talent would you most like to have? -你最想拥有哪种才能? - -理科能力。 - -18 If you could change one thing about yourself, what would it be? -如果你能够改变自己的一件事,那会是什么? - -减少熬夜。 - -19 What do you consider your greatest achievement? -你认为自己最大的成就是什么? - -尽管没人看,但还是唧唧歪歪词不达意水平低下地羞耻地在博客写了十几万字。 - -20 If you were to die and come back as a person or a thing, what would it be? -如果有转世,你希望成为什么样的人或物? - -狗、猫。 - -21 Where would you most like to live? -你最想住在哪里? - -长江之南 | 日本京都 | 某个高维度地区的乡村。 - -22 What is your most treasured possession? -你最珍贵的财产是什么? - -我14岁的年龄。我在这个阶段发表什么观点都会被看作「早慧」,如果认知水平的增长速度不能走在年龄增长速度的前面,那我将失去我最值得骄傲的特质。 - -23 What do you regard as the lowest depth of misery? -你认为程度最浅的痛苦是什么? - -身体上的痛苦。 - -24 What is your favorite occupation? -你最喜欢的职业是什么? - -程序员、作家、画家。 - -25 What is your most marked characteristic? -你最显著的特点是什么? - -至少朋友对我的评价是有点阴暗。 - -26 What do you most value in your friends? -你最看重朋友的什么特点? - -真诚、谦虚。 - -27 Who are your favorite writers? -你最喜欢的作家是谁? - -三岛由纪夫。 - -这是真正的男人,知行合一的艺术家。他是我写作的老师,思考的老师,尤其是对死亡观的懵懂的构建上。 - -在除了写作的方面,他是自强、清醒、对自己极高标准的人,是掌控生活,掌控生命的成功者。 - -28 Who is your hero of fiction? -谁是你心目中小说里的英雄? - -我自己那部未发布的小说里的主人公,窝窝囊囊、惨惨戚戚,拧巴的人。 - -灵感来源于我自己,正因此,我写的时候,看的时候会陷入「独一无二」的自豪感,然后陷入Q3的状态。 - -29 Which historical figure do you most identify with? -你最认同哪位历史人物? - -项羽。 - -30 Who are your heroes in real life? -谁是你现实生活中的英雄? - -一男一女。 - -31 What are your favorite names? -你最喜欢的名字是什么? - -所在、 - -32 What is it that you most dislike? -你最不喜欢什么? - -写作文。写歌舞升平的盛世,写失败后努力就取得成功的励志,写自信强大积极的处世态度。不这么写就不会获得高分。 - -33 What is your greatest regret? -你最大的遗憾是什么? - -信了政治课本的鬼话:这个阶段的感情不是真正的爱情。 - -到底什么是他妈的真正的爱情啊?老子的爱情需要你课本来定义吗? - -没有在初中阶段尝试谈恋爱,以后再也不能遇到懵懂纯洁的爱情了。 - -34 How would you like to die? -你想以何种方式死去? - -失败之后,死在温暖的热带、缤纷的花海、金黄的麦田里。 - -我有时候在想,既然某个国家政治上的言论封锁都那么严厉,那更何况一个世界呢?按照宗教的说法,基督教有天堂和地狱,佛教也有类似的概念,中国传统民俗里则是「地府」这种概念。 - -万一那些是假的呢?万一他们构建的地狱的概念根本不存在,或者说这里就是死后的世界,就是地狱呢?既然按照他们的说法,死后会下地狱,去地府,如果这是假的,他们在骗人,那是不是意味着,在这个世界死掉就会进入「活着」的世界?万一这里是痛苦的尽头呢? - -35 What is your motto? -你的座右铭是什么? - -mujou、 diff --git a/content/posts/Electron-CommonJS-require踩坑.md b/content/posts/Electron-CommonJS-require踩坑.md index de0388f..95d5157 100644 --- a/content/posts/Electron-CommonJS-require踩坑.md +++ b/content/posts/Electron-CommonJS-require踩坑.md @@ -1,10 +1,10 @@ --- abbrlink: 472869193 categories: -- 往昔 +- 技术 date: "2025-05-31T09:07:36+08:00" tags: -- 前端 +- 黑历史 - Electron title: Electron CommonJS require踩坑 --- diff --git a/content/posts/Emacs-EAF插件打开浏览器只显示opening-http-xxx-xxx的解决方法.md b/content/posts/Emacs-EAF插件打开浏览器只显示opening-http-xxx-xxx的解决方法.md index e3dfb40..a01e0c7 100644 --- a/content/posts/Emacs-EAF插件打开浏览器只显示opening-http-xxx-xxx的解决方法.md +++ b/content/posts/Emacs-EAF插件打开浏览器只显示opening-http-xxx-xxx的解决方法.md @@ -1,9 +1,10 @@ --- abbrlink: 717508352 categories: -- 往昔 +- 技术 date: "2025-04-29 10:02:49" tags: +- 黑历史 - Emacs - Linux title: Emacs EAF插件打开浏览器只显示opening http://xxx.xxx的解决方法 diff --git a/content/posts/Emacs配置记录-2——C-C++环境配置.md b/content/posts/Emacs配置记录-2——C-C++环境配置.md index 2d5b855..63ae01e 100644 --- a/content/posts/Emacs配置记录-2——C-C++环境配置.md +++ b/content/posts/Emacs配置记录-2——C-C++环境配置.md @@ -1,9 +1,10 @@ --- abbrlink: 24667834 categories: -- 往昔 +- 技术 date: "2025-06-04 18:58:37" tags: +- 黑历史 - Emacs - Linux title: Emacs配置记录 2——C/C++环境配置 diff --git a/content/posts/Emacs,我又回来了!.md b/content/posts/Emacs,我又回来了!.md index a3c8076..8951627 100644 --- a/content/posts/Emacs,我又回来了!.md +++ b/content/posts/Emacs,我又回来了!.md @@ -4,8 +4,9 @@ draft: false title: 'Emacs,我又回来了!' slug: 'emacs-i-am-back' categories: - - 往昔 + - 技术 tags: + - 黑历史 - Emacs - GNU/Linux --- diff --git a/content/posts/Java小程序之两数计算器.md b/content/posts/Java小程序之两数计算器.md index 2e7c415..c4e74a9 100644 --- a/content/posts/Java小程序之两数计算器.md +++ b/content/posts/Java小程序之两数计算器.md @@ -2,7 +2,7 @@ abbrlink: 3073696125 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 90 cover: images\2024\12\2743265221.jpg customSummary: null @@ -17,7 +17,7 @@ reprint: standard slug: 90 status: publish tags: -- Java +- 黑历史 thumb: null thumbChoice: default thumbDesc: null diff --git a/content/posts/Java方法的传参原理.md b/content/posts/Java方法的传参原理.md index 98824ce..6e715aa 100644 --- a/content/posts/Java方法的传参原理.md +++ b/content/posts/Java方法的传参原理.md @@ -2,7 +2,7 @@ abbrlink: 1642973481 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 95 cover: images\2024\12\2743265221.jpg customSummary: null @@ -17,6 +17,7 @@ reprint: standard slug: 95 status: publish tags: +- 黑历史 - Java thumb: null thumbChoice: default diff --git a/content/posts/Java方法的基本使用.md b/content/posts/Java方法的基本使用.md index 1aab77a..91ad871 100644 --- a/content/posts/Java方法的基本使用.md +++ b/content/posts/Java方法的基本使用.md @@ -2,7 +2,7 @@ abbrlink: 3033809787 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 89 cover: images\2024\12\2743265221.jpg customSummary: null @@ -18,6 +18,7 @@ slug: 89 status: publish tags: - Java +- 黑历史 thumb: null thumbChoice: default thumbDesc: null diff --git a/content/posts/Java面向对象编程——多态、抽象类、接口.md b/content/posts/Java面向对象编程——多态、抽象类、接口.md index 1581584..b238f2f 100644 --- a/content/posts/Java面向对象编程——多态、抽象类、接口.md +++ b/content/posts/Java面向对象编程——多态、抽象类、接口.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 2251989209 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 186 cover: images\2024\12\2743265221.jpg date: "2025-01-10 15:05:00" @@ -19,6 +19,7 @@ status: publish summaryContent: null tags: - Java +- 黑历史 thumb: null title: Java面向对象编程——多态、抽象类、接口 updated: 2025/01/10 15:06:08 diff --git a/content/posts/Java面向对象编程——继承.md b/content/posts/Java面向对象编程——继承.md index 04fae6c..27f3440 100644 --- a/content/posts/Java面向对象编程——继承.md +++ b/content/posts/Java面向对象编程——继承.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 850254895 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 185 cover: images\2024\12\2743265221.jpg date: "2025-01-10 13:19:11" @@ -18,6 +18,7 @@ slug: 185 status: publish summaryContent: null tags: +- 黑历史 - Java thumb: null title: Java面向对象编程——继承 diff --git a/content/posts/Java面向对象编程快速入门.md b/content/posts/Java面向对象编程快速入门.md index 33f35df..561fe9f 100644 --- a/content/posts/Java面向对象编程快速入门.md +++ b/content/posts/Java面向对象编程快速入门.md @@ -2,7 +2,7 @@ abbrlink: 1091767210 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 98 customSummary: null date: "2024-12-01 13:05:00" @@ -16,6 +16,7 @@ reprint: standard slug: 98 status: publish tags: +- 黑历史 - Java thumb: null thumbChoice: default diff --git a/content/posts/KDE桌面环境无法在Konsole切换中文输入法的解决方案.md b/content/posts/KDE桌面环境无法在Konsole切换中文输入法的解决方案.md index 4fc93c7..8030534 100644 --- a/content/posts/KDE桌面环境无法在Konsole切换中文输入法的解决方案.md +++ b/content/posts/KDE桌面环境无法在Konsole切换中文输入法的解决方案.md @@ -1,9 +1,10 @@ --- abbrlink: 3134572074 categories: -- 往昔 +- 技术 date: "2025-03-08 22:07:58" tags: +- 黑历史 - Linux title: KDE桌面环境无法在Konsole切换中文输入法的解决方案 --- diff --git a/content/posts/Kitty终端美化记录.md b/content/posts/Kitty终端美化记录.md index bee79b4..d51f0d5 100644 --- a/content/posts/Kitty终端美化记录.md +++ b/content/posts/Kitty终端美化记录.md @@ -1,10 +1,10 @@ --- abbrlink: 2218331126 categories: -- 往昔 +- 技术 date: "2025-03-09 12:41:10" tags: -- Linux +- 黑历史 title: Kitty终端美化记录 --- diff --git a/content/posts/Nodejs环境下控制台拼接字符串输出有undefind.md b/content/posts/Nodejs环境下控制台拼接字符串输出有undefind.md index 07605e6..7de2232 100644 --- a/content/posts/Nodejs环境下控制台拼接字符串输出有undefind.md +++ b/content/posts/Nodejs环境下控制台拼接字符串输出有undefind.md @@ -1,9 +1,10 @@ --- abbrlink: 2367638025 categories: -- 往昔 +- 技术 date: "2025-03-22 18:56:33" tags: +- 黑历史 - JavaScript - NodeJS title: Nodejs环境下控制台拼接字符串输出有undefind diff --git a/content/posts/Spigot服务端控制台中文乱码解决方案.md b/content/posts/Spigot服务端控制台中文乱码解决方案.md index f0bc53c..c52e89f 100644 --- a/content/posts/Spigot服务端控制台中文乱码解决方案.md +++ b/content/posts/Spigot服务端控制台中文乱码解决方案.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 4161445720 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 181 cover: images\2024\12\2743265221.jpg date: "2025-01-04 08:35:00" @@ -18,6 +18,7 @@ slug: 181 status: publish summaryContent: null tags: +- 黑历史 - Java - 服务器 - Minecraft diff --git a/content/posts/String的注意事项.md b/content/posts/String的注意事项.md index f44a781..612fc84 100644 --- a/content/posts/String的注意事项.md +++ b/content/posts/String的注意事项.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 1413738899 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 171 cover: images\2024\12\2743265221.jpg date: "2024-12-19 22:28:15" @@ -18,6 +18,7 @@ slug: 171 status: publish summaryContent: null tags: +- 黑历史 - Java thumb: null title: String的注意事项 diff --git a/content/posts/Tmux配置记录.md b/content/posts/Tmux配置记录.md index d4b4c01..d71c956 100644 --- a/content/posts/Tmux配置记录.md +++ b/content/posts/Tmux配置记录.md @@ -1,9 +1,10 @@ --- abbrlink: 1389132829 categories: -- 往昔 +- 技术 date: "2025-06-21 14:19:36" tags: +- 黑历史 - Linux title: Tmux配置记录 --- diff --git a/content/posts/Typecho不要用阿里云系统镜像.md b/content/posts/Typecho不要用阿里云系统镜像.md index 3dbd0b2..4befd18 100644 --- a/content/posts/Typecho不要用阿里云系统镜像.md +++ b/content/posts/Typecho不要用阿里云系统镜像.md @@ -2,7 +2,7 @@ abbrlink: 3097784315 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 156 customSummary: null date: "2024-12-15 21:45:47" @@ -16,6 +16,7 @@ reprint: standard slug: 156 status: publish tags: +- 黑历史 - Typecho - 阿里云 thumb: null diff --git a/content/posts/Valine评论系统踩坑记录.md b/content/posts/Valine评论系统踩坑记录.md index 5ddf1da..c7737c6 100644 --- a/content/posts/Valine评论系统踩坑记录.md +++ b/content/posts/Valine评论系统踩坑记录.md @@ -1,9 +1,10 @@ --- abbrlink: 955127510 categories: -- 往昔 +- 技术 date: "2025-04-23 21:54:03" tags: +- 黑历史 - 博客 title: Valine评论系统踩坑记录 --- diff --git a/content/posts/Vim基础操作快速入门.md b/content/posts/Vim基础操作快速入门.md index 7585f53..7d46b6b 100644 --- a/content/posts/Vim基础操作快速入门.md +++ b/content/posts/Vim基础操作快速入门.md @@ -2,7 +2,7 @@ abbrlink: 2074174141 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 147 cover: ../../images/2024/12/4041053621.jpg customSummary: null @@ -17,6 +17,7 @@ reprint: standard slug: 147 status: publish tags: +- 黑历史 - Vim thumb: null thumbChoice: default diff --git a/content/posts/WSL-Arch-Linux-ZSH输入中文乱码解决方法.md b/content/posts/WSL-Arch-Linux-ZSH输入中文乱码解决方法.md index 0e2aa27..c607350 100644 --- a/content/posts/WSL-Arch-Linux-ZSH输入中文乱码解决方法.md +++ b/content/posts/WSL-Arch-Linux-ZSH输入中文乱码解决方法.md @@ -1,10 +1,11 @@ --- abbrlink: 570074617 categories: -- 往昔 +- 技术 date: "2025-04-29 10:31:26" description: 乱码是由于没有安装字体造成的,安装字体即可 tags: +- 黑历史 - Linux title: WSL Arch Linux ZSH输入中文输入法乱码解决方法 --- diff --git a/content/posts/osu-APIv1请求示例.md b/content/posts/osu-APIv1请求示例.md index 0d51968..8c1da1c 100644 --- a/content/posts/osu-APIv1请求示例.md +++ b/content/posts/osu-APIv1请求示例.md @@ -1,9 +1,10 @@ --- abbrlink: 3260068752 categories: -- 往昔 +- 技术 date: "2025-04-11 22:29:23" tags: +- 黑历史 - JavaScript - NodeJS title: osu!APIv1请求示例 diff --git a/content/posts/rg b/content/posts/rg new file mode 100644 index 0000000..51be1ef --- /dev/null +++ b/content/posts/rg @@ -0,0 +1,93 @@ +electron-commonjs-require踩坑.md:- 往昔 +CSS鼠标指针操作.md: - 往昔 +为什么我选择Github-issues,而不是朋友圈.md:- 往昔 +记录配置SSL证书.md:- 往昔 +Valine评论系统踩坑记录.md:- 往昔 +感谢恩师夸奖.md:- 往昔 +记录Typecho博客转移到Hexo.md:- 往昔 +Java小程序之两数计算器.md:- 往昔 +给比我岁数还大的电脑装Fedora.md:- 往昔 +C语言实现简易Shell.md:- 往昔 +夏日残影.md:- 往昔 +Tmux配置记录.md:- 往昔 +KDE桌面环境无法在Konsole切换中文输入法的解决方案.md:- 往昔 +Java面向对象编程——继承.md:- 往昔 +从编译原理到物理原理剖析程序的编译与执行.md:- 往昔 +Spigot服务端控制台中文乱码解决方案.md:- 往昔 +【未解决】Windows-WSL报错:Error-0x80080005.md:- 往昔 +市井漫步.md: - 往昔 +红叶攀墙秋萧萧.md: - 往昔 +人生中第一次大考.md:- 往昔 +初折腾Emacs记录.md:- 往昔 +修复Geyser下基岩版玩家无法在地狱基岩层放置方块.md:- 往昔 +x86-64汇编学习笔记.md:- 往昔 +C语言的头文件与OOP范式的抽象类、接口的异同点.md:- 往昔 +别闲着没事自搜,黑历史啊.md:- 往昔 +第三次世界大战.md:- 往昔 +无蝉鸣夏.md:- 往昔 +未命名.md:- 往昔 +意识的消散.md: - 往昔 +万能必胜沟通法.md:- 往昔 +猫.md:- 往昔 +【无废话】全网最简单的Hexo+Obsidian图片解决方案.md:- 往昔 +会考地理复习笔记.md:- 往昔 +超市见闻.md:- 往昔 +用Javascript-TSS和Highlights构建一个句级文本阅读器.md:- 往昔 +Emacs配置记录-2——C-C++环境配置.md:- 往昔 +思想驯化不是艺术.md:- 往昔 +游戏资源下载及连接服务器相关教程.md:- 往昔 +【数据结构与算法】栈.md:- 往昔 +C语言下的二进制文件IO.md:- 往昔 +【数据结构与算法】冒泡排序.md:- 往昔 +私密朋友圈.md:- 往昔 +Vim基础操作快速入门.md:- 往昔 +Emacs-EAF插件打开浏览器只显示opening-http-xxx-xxx的解决方法.md:- 往昔 +我的4k进步史.md:- 往昔 +使用Emacs收发邮件.md: - 往昔 +把主力机系统换成Arch-Linux是我这辈子做过的最蠢的决定.md:- 往昔 +攒钱目标达成?!.md:- 往昔 +Emacs,我又回来了!.md: - 往昔 +网络死亡计划.md:- 往昔 +高效率的沟通绝不会从在吗开始.md:- 往昔 +高超的表达能力.md:- 往昔 +罪恶感.md: - 往昔 +Java方法的传参原理.md:- 往昔 +宅.md:- 往昔 +安装配置Rime输入法.md:- 往昔 +【数据结构与算法】哈希表.md:- 往昔 +上帝类是什么?该如何避免上帝类?.md:- 往昔 +杂记-2025-06-06.md:- 往昔 +怪癖.md:- 往昔 +记录Hexo搭建博客.md: - 往昔 +Java方法的基本使用.md:- 往昔 +C语言的可变参数.md:- 往昔 +博客文章加密码的意义是?.md:- 往昔 +基于身边扩列者行为观察的结论.md:- 往昔 +隐居.md:- 往昔 +深刻认识面向对象.md:- 往昔 +这可能是最好的Hexo图片管理方案.md:- 往昔 +Java面向对象编程快速入门.md:- 往昔 +Kitty终端美化记录.md:- 往昔 +八下历史复习笔记.md:- 往昔 +【数据结构与算法】众数、中位数.md:- 往昔 +我的攒钱计划.md:- 往昔 +4Key音游段位单曲成绩计算的程序实现.md:- 往昔 +多数被约分的一年.md:还有一阵子我在朋友圈转发我写得狗屁不通的文章,那些不堪回首的往昔…… +信息节食.md:- 往昔 +我说过吗?.md:- 往昔 +面向对象编程总结.md:- 往昔 +好文章.md:- 往昔 +String的注意事项.md:- 往昔 +我还是放不下Emacs!.md:- 往昔 +osu-APIv1请求示例.md:- 往昔 +对博客主题的一点想法.md: - 往昔 +【星落】关于我对命运既定的想法.md:- 往昔 +阴云.md:- 往昔 +从0开始搭建自己的终端开发环境.md:- 往昔 +我有厌蠢症.md:- 往昔 +Java面向对象编程——多态、抽象类、接口.md:- 往昔 +WSL-Arch-Linux-ZSH输入中文乱码解决方法.md:- 往昔 +面向对象编程与面向过程编程的本质区别.md:- 往昔 +weekly/1.md:当然,能意识到有这些问题,说明我的审美水平和写作能力还是有长进的,为了给以后的自己留下一个参考标准,我没有删除那些文章,而是移动到了「往昔」这个分类,并且不再展示在主页上,留下来的都是自认为写得还能看的文章,以及实用类文章。 +最膈应不爱惜书的人.md:- 往昔 +【数据结构与算法】二叉树.md:- 往昔 diff --git a/content/posts/x86-64汇编学习笔记.md b/content/posts/x86-64汇编学习笔记.md index 9ff3d35..221dab3 100644 --- a/content/posts/x86-64汇编学习笔记.md +++ b/content/posts/x86-64汇编学习笔记.md @@ -1,9 +1,10 @@ --- abbrlink: 2938437705 categories: -- 往昔 +- 技术 date: "2025-04-29 13:44:13" tags: +- 黑历史 - 汇编 title: x86-64汇编学习笔记 --- diff --git a/content/posts/《伊豆的舞女》读后感.md b/content/posts/《伊豆的舞女》读后感.md index 802e525..f79e014 100644 --- a/content/posts/《伊豆的舞女》读后感.md +++ b/content/posts/《伊豆的舞女》读后感.md @@ -5,6 +5,7 @@ date: "2025-08-21T20:37:54+08:00" draft: false slug: izu-no-odoriko tags: +- 黑历史 - 伊豆的舞女 - 川端康成 - 日本文学 diff --git a/content/posts/《奔马》书评:刀刃突入腹部的瞬间,红日在眼睑内冉冉升起.md b/content/posts/《奔马》书评:刀刃突入腹部的瞬间,红日在眼睑内冉冉升起.md index 39e0d93..745a281 100644 --- a/content/posts/《奔马》书评:刀刃突入腹部的瞬间,红日在眼睑内冉冉升起.md +++ b/content/posts/《奔马》书评:刀刃突入腹部的瞬间,红日在眼睑内冉冉升起.md @@ -6,6 +6,7 @@ slug: honba-mishima-yukio categories: - 阅读 tags: + - 黑历史 - 三岛由纪夫 - 丰饶之海 - 日本文学 diff --git a/content/posts/《春雪》书评:任何美梦都会有结束的时候,没有什么永恒的东西.md b/content/posts/《春雪》书评:任何美梦都会有结束的时候,没有什么永恒的东西.md index 87041f6..95035de 100644 --- a/content/posts/《春雪》书评:任何美梦都会有结束的时候,没有什么永恒的东西.md +++ b/content/posts/《春雪》书评:任何美梦都会有结束的时候,没有什么永恒的东西.md @@ -6,6 +6,7 @@ slug: spring-snow-mishima-yukio categories: - 阅读 tags: + - 黑历史 - 三岛由纪夫 - 春雪 - 丰饶之海 diff --git a/content/posts/【数据结构与算法】二叉树.md b/content/posts/【数据结构与算法】二叉树.md index 2e58426..cc705c5 100644 --- a/content/posts/【数据结构与算法】二叉树.md +++ b/content/posts/【数据结构与算法】二叉树.md @@ -1,9 +1,10 @@ --- abbrlink: 1421131593 categories: -- 往昔 +- 技术 date: "2025-05-25 18:46:37" tags: +- 黑历史 - 数据结构与算法 title: 【数据结构与算法】二叉树 --- diff --git a/content/posts/【数据结构与算法】众数、中位数.md b/content/posts/【数据结构与算法】众数、中位数.md index 83e1ed8..b431f9b 100644 --- a/content/posts/【数据结构与算法】众数、中位数.md +++ b/content/posts/【数据结构与算法】众数、中位数.md @@ -1,9 +1,10 @@ --- abbrlink: 2344272299 categories: -- 往昔 +- 技术 date: "2025-05-27 19:41:53" tags: +- 黑历史 - 数据结构与算法 title: 【数据结构与算法】众数、中位数 --- diff --git a/content/posts/【数据结构与算法】冒泡排序.md b/content/posts/【数据结构与算法】冒泡排序.md index f0f08d9..563fce2 100644 --- a/content/posts/【数据结构与算法】冒泡排序.md +++ b/content/posts/【数据结构与算法】冒泡排序.md @@ -1,9 +1,10 @@ --- abbrlink: 403994443 categories: -- 往昔 +- 技术 date: "2025-05-10 20:06:05" tags: +- 黑历史 - 数据结构与算法 title: 【数据结构与算法】冒泡排序 --- diff --git a/content/posts/【数据结构与算法】哈希表.md b/content/posts/【数据结构与算法】哈希表.md index 3b78524..4a2db69 100644 --- a/content/posts/【数据结构与算法】哈希表.md +++ b/content/posts/【数据结构与算法】哈希表.md @@ -1,9 +1,10 @@ --- abbrlink: 971437699 categories: -- 往昔 +- 技术 date: "2025-05-28 21:44:28" tags: +- 黑历史 - 数据结构与算法 title: 【数据结构与算法】哈希表 --- diff --git a/content/posts/【数据结构与算法】栈.md b/content/posts/【数据结构与算法】栈.md index b41b715..59176a1 100644 --- a/content/posts/【数据结构与算法】栈.md +++ b/content/posts/【数据结构与算法】栈.md @@ -1,9 +1,10 @@ --- abbrlink: 3557841346 categories: -- 往昔 +- 技术 date: "2025-05-11 10:09:21" tags: +- 黑历史 - 数据结构与算法 title: 【数据结构与算法】栈 --- diff --git a/content/posts/【无废话】全网最简单的Hexo+Obsidian图片解决方案.md b/content/posts/【无废话】全网最简单的Hexo+Obsidian图片解决方案.md index 4b9091f..450b86c 100644 --- a/content/posts/【无废话】全网最简单的Hexo+Obsidian图片解决方案.md +++ b/content/posts/【无废话】全网最简单的Hexo+Obsidian图片解决方案.md @@ -1,9 +1,10 @@ --- abbrlink: 1008281873 categories: -- 往昔 +- 技术 date: "2025-03-05 21:17:42" tags: +- 黑历史 - Hexo - Obsidain - 博客 diff --git a/content/posts/【未解决】Windows-WSL报错:Error-0x80080005.md b/content/posts/【未解决】Windows-WSL报错:Error-0x80080005.md index 4bec069..1ab4cf6 100644 --- a/content/posts/【未解决】Windows-WSL报错:Error-0x80080005.md +++ b/content/posts/【未解决】Windows-WSL报错:Error-0x80080005.md @@ -1,9 +1,10 @@ --- abbrlink: 1348465439 categories: -- 往昔 +- 技术 date: "2025-03-04 20:58:30" tags: +- 黑历史 - Windows - Linux title: '【未解决】Windows WSL报错:Error: 0x80080005 ???????' diff --git a/content/posts/一文不值的疑云.md b/content/posts/一文不值的疑云.md index 2e5b3c2..82611ee 100644 --- a/content/posts/一文不值的疑云.md +++ b/content/posts/一文不值的疑云.md @@ -6,6 +6,7 @@ slug: the-unfounded-cloud categories: - 随笔 tags: + - 黑历史 - 散文 - 记事 - 学校 @@ -68,4 +69,4 @@ tags: 我能说我的母亲愚蠢吗?我舍不得,我也不敢埋怨她。她早上确实非常忙碌,没有时间细看消息。但我如此复杂剧烈的情感,原因竟是母亲的「我以为」导致的,一切痛苦和挣扎都是徒劳吗?她也许察觉到了我的难过,就跟我说,之前参加的比赛,获奖证书到了,明天给我拿去。 -于是,本应该是荣誉的事,在此刻被彻底玷污了。
\ No newline at end of file +于是,本应该是荣誉的事,在此刻被彻底玷污了。 diff --git a/content/posts/万能必胜沟通法.md b/content/posts/万能必胜沟通法.md index e0edee3..d3dcb47 100644 --- a/content/posts/万能必胜沟通法.md +++ b/content/posts/万能必胜沟通法.md @@ -1,10 +1,11 @@ --- categories: -- 往昔 +- 随笔 date: "2025-07-21T19:04:43+08:00" draft: false slug: "" tags: +- 黑历史 - 小品 - 沟通 title: 万能必胜沟通法 diff --git a/content/posts/三岛由纪夫——文化和时代背景塑造的矛盾体.md b/content/posts/三岛由纪夫——文化和时代背景塑造的矛盾体.md index d227bf3..eb9d6f8 100644 --- a/content/posts/三岛由纪夫——文化和时代背景塑造的矛盾体.md +++ b/content/posts/三岛由纪夫——文化和时代背景塑造的矛盾体.md @@ -7,6 +7,7 @@ slug: 'yukio-mishima' categories: - 阅读 tags: + - 黑历史 - 三岛由纪夫 - 日本文学 --- diff --git a/content/posts/上帝类是什么?该如何避免上帝类?.md b/content/posts/上帝类是什么?该如何避免上帝类?.md index 2a48f0b..2e75bd9 100644 --- a/content/posts/上帝类是什么?该如何避免上帝类?.md +++ b/content/posts/上帝类是什么?该如何避免上帝类?.md @@ -1,9 +1,10 @@ --- abbrlink: 964047394 categories: -- 往昔 +- 技术 date: "2025-03-30 10:47:35" tags: +- 黑历史 - 软件开发 title: 上帝类是什么?该如何避免上帝类? --- diff --git a/content/posts/个人博客凭什么为你提供价值?.md b/content/posts/个人博客凭什么为你提供价值?.md index 2603bc3..1f2449e 100644 --- a/content/posts/个人博客凭什么为你提供价值?.md +++ b/content/posts/个人博客凭什么为你提供价值?.md @@ -6,7 +6,7 @@ slug: the-value-of-blog categories: - 随笔 tags: - - 杂文 + - 黑历史 - 博客 - 价值 - 写作 diff --git a/content/posts/为什么我选择Github-issues,而不是朋友圈.md b/content/posts/为什么我选择Github-issues,而不是朋友圈.md index 4eb8fdf..e2086ae 100644 --- a/content/posts/为什么我选择Github-issues,而不是朋友圈.md +++ b/content/posts/为什么我选择Github-issues,而不是朋友圈.md @@ -1,9 +1,10 @@ --- abbrlink: 3029910242 categories: -- 往昔 +- 随笔 date: "2025-07-05 09:09:48" tags: +- 黑历史 - 社交 title: 为什么我选择Github issues,而不是朋友圈 --- diff --git a/content/posts/人生中第一次大考.md b/content/posts/人生中第一次大考.md index 1e3f877..34db597 100644 --- a/content/posts/人生中第一次大考.md +++ b/content/posts/人生中第一次大考.md @@ -1,9 +1,10 @@ --- abbrlink: 2367861242 categories: -- 往昔 +- 随笔 date: "2025-06-23 20:18:10" tags: +- 黑历史 - 考试 title: 人生中第一次大考 --- diff --git a/content/posts/从0开始搭建自己的终端开发环境.md b/content/posts/从0开始搭建自己的终端开发环境.md index 14009c9..71131fe 100644 --- a/content/posts/从0开始搭建自己的终端开发环境.md +++ b/content/posts/从0开始搭建自己的终端开发环境.md @@ -1,9 +1,10 @@ --- abbrlink: 2799171278 categories: -- 往昔 +- 技术 date: "2025-04-15 21:15:24" tags: +- 黑历史 - 终端 - Neovim title: 从0开始搭建自己的终端开发环境 diff --git a/content/posts/从四年前的夏天说起。.md b/content/posts/从四年前的夏天说起。.md index 4addc62..60dabc7 100644 --- a/content/posts/从四年前的夏天说起。.md +++ b/content/posts/从四年前的夏天说起。.md @@ -6,6 +6,7 @@ slug: '' categories: - 随笔 tags: + - 黑历史 - 散文 - 美术 - 素描 diff --git a/content/posts/从编译原理到物理原理剖析程序的编译与执行.md b/content/posts/从编译原理到物理原理剖析程序的编译与执行.md index a969019..b7ff5e5 100644 --- a/content/posts/从编译原理到物理原理剖析程序的编译与执行.md +++ b/content/posts/从编译原理到物理原理剖析程序的编译与执行.md @@ -1,10 +1,11 @@ --- categories: -- 往昔 +- 技术 date: "2025-07-29T15:55:14+08:00" draft: false slug: "" tags: +- 黑历史 - 底层技术 - 编译器 - 编译原理 diff --git a/content/posts/会考地理复习笔记.md b/content/posts/会考地理复习笔记.md index d6ccf99..eede7b1 100644 --- a/content/posts/会考地理复习笔记.md +++ b/content/posts/会考地理复习笔记.md @@ -1,9 +1,10 @@ --- abbrlink: 4056468020 categories: -- 往昔 +- 技术 date: "2025-06-22 08:49:40" tags: +- 黑历史 - 考试 - 学业 - 笔记 diff --git a/content/posts/信息节食.md b/content/posts/信息节食.md index 743b188..3fae97a 100644 --- a/content/posts/信息节食.md +++ b/content/posts/信息节食.md @@ -1,9 +1,10 @@ --- abbrlink: 3628666444 categories: -- 往昔 +- 随笔 date: "2025-07-03 21:22:44" tags: +- 黑历史 - 信息节食 - 阅读 title: 信息节食 diff --git a/content/posts/修复Geyser下基岩版玩家无法在地狱基岩层放置方块.md b/content/posts/修复Geyser下基岩版玩家无法在地狱基岩层放置方块.md index f4bfabf..0ff08ad 100644 --- a/content/posts/修复Geyser下基岩版玩家无法在地狱基岩层放置方块.md +++ b/content/posts/修复Geyser下基岩版玩家无法在地狱基岩层放置方块.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 1177643335 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 184 cover: images/1203260069.jpg date: "2025-01-08 17:26:00" @@ -18,6 +18,7 @@ slug: 184 status: publish summaryContent: null tags: +- 黑历史 - Java - 服务器 - Minecraft diff --git a/content/posts/八下历史复习笔记.md b/content/posts/八下历史复习笔记.md index dc49364..1376cdb 100644 --- a/content/posts/八下历史复习笔记.md +++ b/content/posts/八下历史复习笔记.md @@ -1,9 +1,10 @@ --- abbrlink: 3107952300 categories: -- 往昔 +- 技术 date: "2025-06-26 19:17:46" tags: +- 黑历史 - 笔记 title: 八下历史复习笔记 --- diff --git a/content/posts/写一个下载B站视频的小工具.md b/content/posts/写一个下载B站视频的小工具.md index 795acfa..02e0b6a 100644 --- a/content/posts/写一个下载B站视频的小工具.md +++ b/content/posts/写一个下载B站视频的小工具.md @@ -4,8 +4,9 @@ draft: true title: '写一个下载B站视频的小工具' slug: 'download-bilibili-video-with-golang' categories: - - 往昔 + - 技术 tags: + - 黑历史 - Golang --- ## 前置条件 diff --git a/content/posts/写一套标准答案,答一道九分大题,讽一个共同大敌,演一出爱国大戏.md b/content/posts/写一套标准答案,答一道九分大题,讽一个共同大敌,演一出爱国大戏.md index 2d8db63..8040126 100644 --- a/content/posts/写一套标准答案,答一道九分大题,讽一个共同大敌,演一出爱国大戏.md +++ b/content/posts/写一套标准答案,答一道九分大题,讽一个共同大敌,演一出爱国大戏.md @@ -13,6 +13,7 @@ tags: - 不道德教育讲座 draft: false comments: true +summary: "" --- 初中的《道德与法治》可谓是除了化学以外,最让我讨厌的一门课程,尤其是九年级上册的部分。其中,第三单元「文明与家园」、第四单元「和谐与梦想」则是这门最让我讨厌的课中,最让我讨厌的一部分。 diff --git a/content/posts/写在九月的开头.md b/content/posts/写在九月的开头.md index d8ac9d7..757f228 100644 --- a/content/posts/写在九月的开头.md +++ b/content/posts/写在九月的开头.md @@ -6,6 +6,7 @@ slug: 'beginning-of-september' categories: - 随笔 tags: + - 黑历史 - 月度总结 - 暑假总结 - 总结 @@ -139,4 +140,4 @@ description: "挺开心的暑假。" --- -封面图作者为Dan Black, 来自[Unsplash](https://unsplash.com/photos/brown-dried-leaf-on-brown-tree-branch-K7f1BKy41aE)
\ No newline at end of file +封面图作者为Dan Black, 来自[Unsplash](https://unsplash.com/photos/brown-dried-leaf-on-brown-tree-branch-K7f1BKy41aE) diff --git a/content/posts/写在十一月的开头.md b/content/posts/写在十一月的开头.md index 033bad0..cc1ea6b 100644 --- a/content/posts/写在十一月的开头.md +++ b/content/posts/写在十一月的开头.md @@ -6,6 +6,7 @@ slug: 'beginning-of-november' categories: - 随笔 tags: + - 黑历史 - 月度总结 --- 十月的总结忘写了,原来现在已经十一月了吗! diff --git a/content/posts/初折腾Emacs记录.md b/content/posts/初折腾Emacs记录.md index 60106df..1dbf73c 100644 --- a/content/posts/初折腾Emacs记录.md +++ b/content/posts/初折腾Emacs记录.md @@ -1,9 +1,10 @@ --- abbrlink: 2193909713 categories: -- 往昔 +- 技术 date: "2025-04-13 12:15:33" tags: +- 黑历史 - Emacs title: 初折腾Emacs记录 --- diff --git a/content/posts/别吵了,大家一样烂.md b/content/posts/别吵了,大家一样烂.md index 4755da8..0c1ca85 100644 --- a/content/posts/别吵了,大家一样烂.md +++ b/content/posts/别吵了,大家一样烂.md @@ -5,6 +5,7 @@ date: "2025-08-17T14:54:06+08:00" draft: false slug: we-are-all-bull-shit tags: +- 黑历史 - 网络环境 - B站 - 知乎 diff --git a/content/posts/别闲着没事自搜,黑历史啊.md b/content/posts/别闲着没事自搜,黑历史啊.md index 11cb067..08232f2 100644 --- a/content/posts/别闲着没事自搜,黑历史啊.md +++ b/content/posts/别闲着没事自搜,黑历史啊.md @@ -5,6 +5,7 @@ date: "2025-08-06T10:07:38+08:00" draft: false slug: "" tags: +- 黑历史 - 自搜 - 搜索引擎 - SEO diff --git a/content/posts/博客一周年,谈谈感想.md b/content/posts/博客一周年,谈谈感想.md index 8058ee8..440cced 100644 --- a/content/posts/博客一周年,谈谈感想.md +++ b/content/posts/博客一周年,谈谈感想.md @@ -6,7 +6,8 @@ slug: 'first-blog-anniversary' categories: - 随笔 tags: - - 博客 + - 黑历史 + - 博客 --- ## 搭建 diff --git a/content/posts/博客文章加密码的意义是?.md b/content/posts/博客文章加密码的意义是?.md index 42954a7..ed7db32 100644 --- a/content/posts/博客文章加密码的意义是?.md +++ b/content/posts/博客文章加密码的意义是?.md @@ -4,6 +4,7 @@ categories: - 往昔 date: "2025-05-19 21:53:10" tags: +- 黑历史 - 博客 title: 这样的博客的意义是? --- diff --git a/content/posts/基于身边扩列者行为观察的结论.md b/content/posts/基于身边扩列者行为观察的结论.md index 3073398..a5e77d0 100644 --- a/content/posts/基于身边扩列者行为观察的结论.md +++ b/content/posts/基于身边扩列者行为观察的结论.md @@ -5,6 +5,7 @@ date: "2025-07-12T16:13:14+08:00" draft: false slug: kuo-lie tags: +- 黑历史 - 社交 - 扩列 title: 基于身边扩列者行为观察的结论 diff --git a/content/posts/夏日残影.md b/content/posts/夏日残影.md index 93270f1..e0369ba 100644 --- a/content/posts/夏日残影.md +++ b/content/posts/夏日残影.md @@ -6,7 +6,7 @@ description: “请各位勇士们扣好胸前的安全带。” draft: false slug: "" tags: -- "" +- 黑历史 title: 夏日残影 --- ## 一 diff --git a/content/posts/多数被约分的一年.md b/content/posts/多数被约分的一年.md index 73030f9..e9449f7 100644 --- a/content/posts/多数被约分的一年.md +++ b/content/posts/多数被约分的一年.md @@ -6,7 +6,8 @@ slug: '2025-annual-summary' categories: - 随笔 tags: - - 年终总结 + - 黑历史 + - 年终总结 --- 我平常没什么拍照片的习惯,手机相册里最多的就是截图,所以从相册里看看这一年都干了什么是没希望了,幸好今年上半年我很喜欢发朋友圈,可以看着朋友圈来写点东西。 diff --git a/content/posts/好文章.md b/content/posts/好文章.md index 2fd5449..86645e2 100644 --- a/content/posts/好文章.md +++ b/content/posts/好文章.md @@ -4,6 +4,7 @@ categories: - 往昔 date: "2025-06-18 21:53:51" tags: +- 黑历史 - 写作 - 文章 title: 好文章 diff --git a/content/posts/学习文本编辑器的随想.md b/content/posts/学习文本编辑器的随想.md index 11d2f9a..35766fc 100644 --- a/content/posts/学习文本编辑器的随想.md +++ b/content/posts/学习文本编辑器的随想.md @@ -6,6 +6,7 @@ slug: 'kilo-analysis' categories: - 技术 tags: + - 黑历史 - C语言 - 文本编辑器 - Kilo diff --git a/content/posts/宅.md b/content/posts/宅.md index 9f85cd8..b8fea0c 100644 --- a/content/posts/宅.md +++ b/content/posts/宅.md @@ -4,6 +4,7 @@ categories: - 往昔 date: "2025-06-30 19:47:00" tags: +- 黑历史 - 随笔 title: 宅 --- diff --git a/content/posts/安装配置Rime输入法.md b/content/posts/安装配置Rime输入法.md index 7711523..43aa0ad 100644 --- a/content/posts/安装配置Rime输入法.md +++ b/content/posts/安装配置Rime输入法.md @@ -1,9 +1,10 @@ --- abbrlink: 2682509886 categories: -- 往昔 +- 技术 date: "2025-03-24 20:37:38" tags: +- 黑历史 - Linux title: 安装配置Rime输入法 --- diff --git a/content/posts/对博客主题的一点想法.md b/content/posts/对博客主题的一点想法.md index f2fb5a9..e114b84 100644 --- a/content/posts/对博客主题的一点想法.md +++ b/content/posts/对博客主题的一点想法.md @@ -2,8 +2,10 @@ date: "2025-07-10T21:12:51+08:00" draft: false title: 对博客主题的一点想法 +tags: +- 黑历史 categories: - - 往昔 + - 技术 --- 简单回顾以下建站历程,博客的内容从“我是谁”转移到了"我想说什么"。从最早开始正式写博客的**Gmeek**,到后来使用**Typecho**,再到**Hexo,Hugo**,这几个不同的时期是我对主题看法的不同阶段。 diff --git a/content/posts/市井漫步.md b/content/posts/市井漫步.md index 4c19233..33c673f 100644 --- a/content/posts/市井漫步.md +++ b/content/posts/市井漫步.md @@ -4,8 +4,9 @@ draft: false title: 市井漫步 slug: "" categories: - - 往昔 + - 随笔 tags: + - 黑历史 - 散文 - 散步 - 意识流 diff --git a/content/posts/思想驯化不是艺术.md b/content/posts/思想驯化不是艺术.md index f083672..51ca87f 100644 --- a/content/posts/思想驯化不是艺术.md +++ b/content/posts/思想驯化不是艺术.md @@ -1,11 +1,12 @@ --- abbrlink: 3993050935 categories: -- 往昔 +- 技术 date: "2025-04-08 20:18:36" draft: true layout: post tags: +- 黑历史 - 学校 title: 思想驯化不是艺术 --- diff --git a/content/posts/怪癖.md b/content/posts/怪癖.md index e24c3a5..bada2a9 100644 --- a/content/posts/怪癖.md +++ b/content/posts/怪癖.md @@ -4,6 +4,7 @@ categories: - 往昔 date: "2025-06-12 21:16:01" tags: +- 黑历史 - 我 title: 怪癖 --- diff --git a/content/posts/意识的消散.md b/content/posts/意识的消散.md index baae69a..d973ae3 100644 --- a/content/posts/意识的消散.md +++ b/content/posts/意识的消散.md @@ -4,8 +4,9 @@ draft: false title: '「我害怕死」' slug: 'dissipation-of-consciousness-after-death' categories: - - 往昔 + - 随笔 tags: + - 黑历史 - 生命 --- 我十三岁那年和父母说,以后就不过生日了。 diff --git a/content/posts/感谢恩师夸奖.md b/content/posts/感谢恩师夸奖.md index d1b6c5b..008282e 100644 --- a/content/posts/感谢恩师夸奖.md +++ b/content/posts/感谢恩师夸奖.md @@ -1,10 +1,11 @@ --- abbrlink: 2981262757 categories: -- 往昔 +- 随笔 date: "2025-05-28 20:27:55" description: 选择、信任、奋斗、感恩、驯化、忠诚、死亡、堙灭。 tags: +- 黑历史 - 感谢恩师夸奖 title: 感谢恩师夸奖 --- diff --git a/content/posts/我有厌蠢症.md b/content/posts/我有厌蠢症.md index 6eb69d5..328fdb0 100644 --- a/content/posts/我有厌蠢症.md +++ b/content/posts/我有厌蠢症.md @@ -1,9 +1,10 @@ --- abbrlink: 460449479 categories: -- 往昔 +- 随笔 date: "2025-05-20 19:48:56" tags: +- 黑历史 - “厌蠢症” title: “我有厌蠢症” --- diff --git a/content/posts/我的4k进步史.md b/content/posts/我的4k进步史.md index c7faba3..936f57c 100644 --- a/content/posts/我的4k进步史.md +++ b/content/posts/我的4k进步史.md @@ -2,13 +2,14 @@ abbrlink: 3402853196 author: yingyu5658 categories: -- 往昔 +- 随笔 cid: 4 date: "2024-11-13T03:41:00+08:00" layout: post slug: 4 status: publish tags: +- 黑历史 - 游戏 title: 我的4k进步史 updated: 2024/11/21 23:01:34 diff --git a/content/posts/我的攒钱计划.md b/content/posts/我的攒钱计划.md index e984907..82150e8 100644 --- a/content/posts/我的攒钱计划.md +++ b/content/posts/我的攒钱计划.md @@ -1,9 +1,10 @@ --- abbrlink: 1557917560 categories: -- 往昔 +- 随笔 date: "2025-04-11 20:13:20" tags: +- 黑历史 - 日常 title: 我的攒钱计划 --- diff --git a/content/posts/我说过吗?.md b/content/posts/我说过吗?.md index d35c161..2cf3b88 100644 --- a/content/posts/我说过吗?.md +++ b/content/posts/我说过吗?.md @@ -1,9 +1,10 @@ --- abbrlink: 3585041998 categories: -- 往昔 +- 随笔 date: "2025-06-11 23:11:50" tags: +- 黑历史 - 小品 title: 我说过吗? --- diff --git a/content/posts/我还是放不下Emacs!.md b/content/posts/我还是放不下Emacs!.md index 440f9f0..898bb93 100644 --- a/content/posts/我还是放不下Emacs!.md +++ b/content/posts/我还是放不下Emacs!.md @@ -1,9 +1,10 @@ --- abbrlink: 393175956 categories: -- 往昔 +- 技术 date: "2025-06-03 20:07:15" tags: +- 黑历史 - Emacs - GNU - Linux diff --git a/content/posts/把主力机系统换成Arch-Linux是我这辈子做过的最蠢的决定.md b/content/posts/把主力机系统换成Arch-Linux是我这辈子做过的最蠢的决定.md index 6f22146..3129fb5 100644 --- a/content/posts/把主力机系统换成Arch-Linux是我这辈子做过的最蠢的决定.md +++ b/content/posts/把主力机系统换成Arch-Linux是我这辈子做过的最蠢的决定.md @@ -1,9 +1,10 @@ --- abbrlink: 4108562128 categories: -- 往昔 +- 技术 date: "2025-04-06 17:58:48" tags: +- 黑历史 - Arch - Linux title: 把主力机系统换成Arch Linux是我这辈子做过的最蠢的决定 diff --git a/content/posts/摩擦起电.md b/content/posts/摩擦起电.md index 48b1596..cde1a2a 100644 --- a/content/posts/摩擦起电.md +++ b/content/posts/摩擦起电.md @@ -6,6 +6,7 @@ slug: electrification-by-friction categories: - 随笔 tags: + - 黑历史 - 物理 - 学校 - 散文 @@ -34,4 +35,4 @@ tags: 扭曲的笑声还在耳边回响,兴奋的余波还在心里荡漾。老师的一声呵斥把他拉回了这个已经不属于他的现实,那美好的幻想离他而去,但余味已经在他的脑海反复品尝起来。老师的那声呵斥应带来的羞耻感在他心中从来没存在过。 -欢声笑语里,小王看着周遭同学们的表情,看着他的朋友们的表情,看向他后座的女生,感受着课堂微妙的气氛。一种他所追求的前所未有的甘美流淌在心里。对小王来说,没有比这感觉更能使他陶醉于其中的了......他细细地品尝着这股甘美,仿佛闭上眼睛就能看见五月灿烂盛开的鲜花......小王靠着自己的行动吸引了人们的目光,但这目光里藏着什么,对他来说都不重要了。
\ No newline at end of file +欢声笑语里,小王看着周遭同学们的表情,看着他的朋友们的表情,看向他后座的女生,感受着课堂微妙的气氛。一种他所追求的前所未有的甘美流淌在心里。对小王来说,没有比这感觉更能使他陶醉于其中的了......他细细地品尝着这股甘美,仿佛闭上眼睛就能看见五月灿烂盛开的鲜花......小王靠着自己的行动吸引了人们的目光,但这目光里藏着什么,对他来说都不重要了。 diff --git a/content/posts/攒钱目标达成?!.md b/content/posts/攒钱目标达成?!.md index ffbd32f..f6bb143 100644 --- a/content/posts/攒钱目标达成?!.md +++ b/content/posts/攒钱目标达成?!.md @@ -1,9 +1,10 @@ --- abbrlink: 2718133590 categories: -- 往昔 +- 随笔 date: "2025-04-19 18:42:29" tags: +- 黑历史 - 日常 - 贝斯 - 音乐 diff --git a/content/posts/文字所承载的东西能跨越时空.md b/content/posts/文字所承载的东西能跨越时空.md index 58c077d..6626484 100644 --- a/content/posts/文字所承载的东西能跨越时空.md +++ b/content/posts/文字所承载的东西能跨越时空.md @@ -4,8 +4,9 @@ draft: false title: '文字所承载的东西能跨越时空' slug: 'what-is-carried-by-words-can-transcend-time-and-space' categories: - - 往昔 + - 随笔 tags: + - 黑历史 - 回忆 - 记忆 - 感官 diff --git a/content/posts/无蝉鸣夏.md b/content/posts/无蝉鸣夏.md index 29067ec..0467af2 100644 --- a/content/posts/无蝉鸣夏.md +++ b/content/posts/无蝉鸣夏.md @@ -5,6 +5,7 @@ date: "2025-07-22T20:56:08+08:00" draft: false slug: "" tags: +- 黑历史 - 随笔 - 夏 title: 无蝉鸣夏 diff --git a/content/posts/早睡早起的优点.md b/content/posts/早睡早起的优点.md index 7c021c2..3ad6563 100644 --- a/content/posts/早睡早起的优点.md +++ b/content/posts/早睡早起的优点.md @@ -1,10 +1,11 @@ --- categories: -- 往昔 +- 随笔 date: "2025-08-04T08:52:02+08:00" draft: false slug: "" tags: +- 黑历史 - 早睡早起 title: 早睡早起的优点 --- diff --git a/content/posts/最膈应不爱惜书的人.md b/content/posts/最膈应不爱惜书的人.md index 5bc01f5..77fdcf4 100644 --- a/content/posts/最膈应不爱惜书的人.md +++ b/content/posts/最膈应不爱惜书的人.md @@ -1,10 +1,11 @@ --- categories: -- 往昔 +- 随笔 date: "2025-08-06T22:50:55+08:00" draft: false slug: "" tags: +- 黑历史 - 购物 - 图书 title: 最膈应不爱惜书的人 diff --git a/content/posts/未命名.md b/content/posts/未命名.md index 0c53e6b..8ab0e2f 100644 --- a/content/posts/未命名.md +++ b/content/posts/未命名.md @@ -1,11 +1,11 @@ --- categories: -- 往昔 +- 随笔 date: "2025-08-08T15:36:41+08:00" draft: false slug: "" tags: -- "" +- 黑历史 title: 未命名 --- 在家太闲,穿着一双比自己脚大的拖鞋,在两个屋子间踱步,想走到窗台边欣赏外面的云时,瞥见父母的结婚照。 diff --git a/content/posts/杂记-2025-06-06.md b/content/posts/杂记-2025-06-06.md index 6be8f6a..9b5f7bc 100644 --- a/content/posts/杂记-2025-06-06.md +++ b/content/posts/杂记-2025-06-06.md @@ -1,9 +1,10 @@ --- abbrlink: 3691550015 categories: -- 往昔 +- 随笔 date: "2025-06-06 23:19:56" tags: +- 黑历史 - 杂记 title: 杂记#2025-06-06 --- diff --git a/content/posts/深刻认识面向对象.md b/content/posts/深刻认识面向对象.md index 2e785d3..b1184a0 100644 --- a/content/posts/深刻认识面向对象.md +++ b/content/posts/深刻认识面向对象.md @@ -1,7 +1,7 @@ --- abbrlink: 841546109 categories: -- 往昔 +- 技术 cid: 99 cover: images\2024\12\2743265221.jpg customSummary: null @@ -16,6 +16,7 @@ reprint: standard slug: 99 status: publish tags: +- 随笔 - Java - 笔记 thumb: null diff --git a/content/posts/游戏资源下载及连接服务器相关教程.md b/content/posts/游戏资源下载及连接服务器相关教程.md index 3c7fd7b..ffb8386 100644 --- a/content/posts/游戏资源下载及连接服务器相关教程.md +++ b/content/posts/游戏资源下载及连接服务器相关教程.md @@ -1,8 +1,9 @@ --- categories: -- 往昔 +- 技术 date: "2024-12-13T20:26:00+08:00" tags: +- 随笔 - Terrira - 服务器 - 教程 diff --git a/content/posts/猫.md b/content/posts/猫.md index dee2e73..a96df55 100644 --- a/content/posts/猫.md +++ b/content/posts/猫.md @@ -1,9 +1,10 @@ --- abbrlink: 2245964304 categories: -- 往昔 +- 随笔 date: "2025-06-01 20:36:05" tags: +- 黑历史 - 猫 title: 猫 --- diff --git a/content/posts/用Javascript-TSS和Highlights构建一个句级文本阅读器.md b/content/posts/用Javascript-TSS和Highlights构建一个句级文本阅读器.md index e103741..31c2b44 100644 --- a/content/posts/用Javascript-TSS和Highlights构建一个句级文本阅读器.md +++ b/content/posts/用Javascript-TSS和Highlights构建一个句级文本阅读器.md @@ -1,9 +1,10 @@ --- abbrlink: 1126783921 categories: -- 往昔 +- 技术 date: "2025-07-04 10:46:53" tags: +- 黑历史 - 翻译 - JavaScript title: 使用Javascript TSS和Highlights构建一个文本阅读器 diff --git a/content/posts/不喊口号,不搞煽情:《南京照相馆》才是抗日题材该有的样子.md b/content/posts/看《南京照相馆》.md index 4f6092b..f461609 100644 --- a/content/posts/不喊口号,不搞煽情:《南京照相馆》才是抗日题材该有的样子.md +++ b/content/posts/看《南京照相馆》.md @@ -1,13 +1,14 @@ --- date: '2025-11-30T20:36:51+08:00' draft: false -title: '不喊口号,不搞煽情:《南京照相馆》才是抗日题材该有的样子' +title: '看《南京照相馆》' slug: 'dead-to-rights' categories: - 观影 tags: - - 《南京照相馆》 - - 电影 + - 黑历史 + - 《南京照相馆》 + - 电影 --- 学校里每周一次的美术课在升入初三后,改为放电影,我在学校看完了一大半的《南京照相馆》,今天在家看完了剩余部分。 diff --git a/content/posts/研读《春雪》笔记三则.md b/content/posts/研读《春雪》笔记三则.md index 003bb01..deacb99 100644 --- a/content/posts/研读《春雪》笔记三则.md +++ b/content/posts/研读《春雪》笔记三则.md @@ -6,6 +6,7 @@ slug: reading-haru-no-yuki-notes categories: - 阅读 tags: + - 黑历史 - 读书笔记 - 日本文学 - 三岛由纪夫 diff --git a/content/posts/私密朋友圈.md b/content/posts/私密朋友圈.md index b734cf9..d2f9db6 100644 --- a/content/posts/私密朋友圈.md +++ b/content/posts/私密朋友圈.md @@ -1,9 +1,10 @@ --- abbrlink: 707697709 categories: -- 往昔 +- 随笔 date: "2025-06-29 21:13:43" tags: +- 黑历史 - 朋友圈 title: 私密朋友圈 --- diff --git a/content/posts/秋天的第一声狗叫.md b/content/posts/秋天的第一声狗叫.md index d929e4f..a1ea041 100644 --- a/content/posts/秋天的第一声狗叫.md +++ b/content/posts/秋天的第一声狗叫.md @@ -1,10 +1,11 @@ --- categories: -- 往昔 +- 随笔 date: "2025-08-11T10:46:13+08:00" draft: false slug: "" tags: +- 黑历史 - 狗叫 title: 秋天的第一声狗叫 --- diff --git a/content/posts/立场与观点.md b/content/posts/立场与观点.md index 1f0bfd3..d8f33b2 100644 --- a/content/posts/立场与观点.md +++ b/content/posts/立场与观点.md @@ -6,6 +6,7 @@ slug: stand-and-thought categories: - 往昔 tags: + - 黑历史 - 思考与议论 - 观察 - 记事 @@ -34,10 +35,6 @@ description: 最近我们班的英语老师崴脚了,有另一位老师来代 「你想这个干嘛?」 -> 知音少,弦断有谁听。 -> -> —— 岳飞《小重山 · 昨夜寒蛩不住鸣》 - [^1]: [实事求是 - 百度百科](https://baike.baidu.com/item/%E5%AE%9E%E4%BA%8B%E6%B1%82%E6%98%AF/36312) [^2]: 指教师子女。 diff --git a/content/posts/第三次世界大战.md b/content/posts/第三次世界大战.md index f206e46..1b63ce3 100644 --- a/content/posts/第三次世界大战.md +++ b/content/posts/第三次世界大战.md @@ -1,9 +1,10 @@ --- abbrlink: 37846610 categories: -- 往昔 +- 随笔 date: "2025-06-19 23:09:59" tags: +- 黑历史 - 时政 title: 第三次世界大战 --- diff --git a/content/posts/红叶攀墙秋萧萧.md b/content/posts/红叶攀墙秋萧萧.md deleted file mode 100644 index 9cc292d..0000000 --- a/content/posts/红叶攀墙秋萧萧.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -date: 2025-10-16T22:40:26+08:00 -draft: false -title: 红叶攀墙秋萧萧 -author: 五葉地錦 -slug: "" -categories: - - 往昔 -tags: - - 散文 ---- -学校操场的围栏上,长满了爬墙虎。自开学起,每次和它们见面,一回比一回红。是夏季烈日残留的一角把它们引燃了吧? - -能见到它们,只有在体育课和做操的时间。上次运动会时还是绿绿的一簇,挂在操场大门上方,几支茎垂下来,稚嫩的绿叶在一阵微风吹过后,它娇妍地摆头。有几片叶子从格子缝隙里探出头,生锈的围栏高墙点缀着生机。 - -<!--more--> - -一次大课间,我们坐在操场上休息。围墙外远方的高楼在暮霭的包裹下,轮廓被细致地描摹,目之所及皆被染上了一抹颓黄,鸟群在几栋楼之间来回穿梭。 - -怎样才能将自己的思绪,融入这缥缈的夕阳、这喧闹、这最后的两百余天中呢?大门上的红叶在风中摇摆。 - -今日再见,那一抹令人惋惜的成熟的艳红,已经不由分说地映在它们昔日稚嫩的脸上。夏季的烈日将它们引燃了。纯粹的美,无暇的美,昂扬的美,低垂的美。它们为自己的美付出了代价。 - -我沿着围墙捡拾红叶。一些最艳的红叶,早早就掉落了,老成的携着腐朽的红叶,把它们可贵的纯粹、干净的艳红衬托得曼妙无比。成熟的深红,破裂与暗淡,在早逝的艳丽衬托下,快要被人唾弃了。已经干瘪发脆的叶子,轻轻一搓就能碎成齑粉,散落在地上,那是红叶,还是小虫的尸骸呢?美丽如此脆弱。 - -与枝干刚刚两断的红叶,周身有着让人悲悯的柔软和湿漉。叶脉纹路清晰可见,光滑的叶肉反射着阴天清冷的光,简直像一件精雕细琢的工艺品。 - -我坐在围栏下,望着大门上方缀着的那簇叶子。它们已经没有了先前的活力。暗红的枝叶,低垂着身姿,散发着淡淡的死和枯萎的幽香。来年的红叶还会等我吗? diff --git a/content/posts/给比我岁数还大的电脑装Fedora.md b/content/posts/给比我岁数还大的电脑装Fedora.md index 70e724e..75e5cc5 100644 --- a/content/posts/给比我岁数还大的电脑装Fedora.md +++ b/content/posts/给比我岁数还大的电脑装Fedora.md @@ -1,9 +1,10 @@ --- abbrlink: 3824334627 categories: -- 往昔 +- 技术 date: "2025-06-13 20:11:49" tags: +- 黑历史 - Linux - Fedora title: 给比我岁数还大的电脑装Fedora diff --git a/content/posts/网站迁移.md b/content/posts/网站迁移.md index 867a897..0cb46cd 100644 --- a/content/posts/网站迁移.md +++ b/content/posts/网站迁移.md @@ -2,13 +2,14 @@ abbrlink: 45320503 author: null categories: -- 往昔 +- 技术 cid: 6 date: "2024-11-21 22:59:00" layout: post slug: 6 status: publish tags: +- 黑历史 - 博客 title: 网站迁移 updated: 2024/11/25 15:35:20 diff --git a/content/posts/网络死亡计划.md b/content/posts/网络死亡计划.md index d22c765..61d7dee 100644 --- a/content/posts/网络死亡计划.md +++ b/content/posts/网络死亡计划.md @@ -1,9 +1,10 @@ --- abbrlink: 2631380338 categories: -- 往昔 +- 技术 date: "2025-06-11 23:24:42" tags: +- 黑历史 - 社交 title: 网络死亡计划 --- diff --git a/content/posts/罪恶感.md b/content/posts/罪恶感.md index 7344990..0997919 100644 --- a/content/posts/罪恶感.md +++ b/content/posts/罪恶感.md @@ -4,8 +4,9 @@ draft: false title: '罪恶感' slug: 'guilt' categories: - - 往昔 + - 随笔 tags: + - 黑历史 - 学校 --- 每年的春秋,我都会被极其严重的过敏性鼻炎折磨。 diff --git a/content/posts/记录Hexo搭建博客.md b/content/posts/记录Hexo搭建博客.md index 52572dc..12efa1e 100644 --- a/content/posts/记录Hexo搭建博客.md +++ b/content/posts/记录Hexo搭建博客.md @@ -2,7 +2,7 @@ abbrlink: 3093271062 author: yingyu5658 categories: - - 往昔 + - 技术 cid: 130 customSummary: date: 2024-12-07 23:40:00 @@ -16,6 +16,7 @@ reprint: standard slug: 130 status: publish tags: + - 黑历史 - Hexo - 博客 thumb: diff --git a/content/posts/记录Typecho博客转移到Hexo.md b/content/posts/记录Typecho博客转移到Hexo.md index 88a2433..6de0208 100644 --- a/content/posts/记录Typecho博客转移到Hexo.md +++ b/content/posts/记录Typecho博客转移到Hexo.md @@ -1,13 +1,14 @@ --- abbrlink: 64728457 categories: -- 往昔 +- 技术 cid: 4 date: "2025-03-03T15:40:00+08:00" layout: post slug: 4 status: publish tags: +- 黑历史 - 博客 title: 记录Typecho博客转移到Hexo --- diff --git a/content/posts/记录配置SSL证书.md b/content/posts/记录配置SSL证书.md index e75970d..6ff79f3 100644 --- a/content/posts/记录配置SSL证书.md +++ b/content/posts/记录配置SSL证书.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 1636322595 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 163 date: "2024-12-17 11:46:07" desc: null @@ -17,6 +17,7 @@ slug: 163 status: publish summaryContent: null tags: +- 黑历史 - 服务器 thumb: null title: 记录配置SSL证书 diff --git a/content/posts/超市见闻.md b/content/posts/超市见闻.md index f867220..4eb80df 100644 --- a/content/posts/超市见闻.md +++ b/content/posts/超市见闻.md @@ -1,9 +1,10 @@ --- abbrlink: 4031192575 categories: -- 往昔 +- 随笔 date: "2025-06-20 20:24:57" tags: +- 黑历史 - 观察 - 未成年人保护 - 酒 diff --git a/content/posts/这可能是最好的Hexo图片管理方案.md b/content/posts/这可能是最好的Hexo图片管理方案.md index 1ea52a0..42eb166 100644 --- a/content/posts/这可能是最好的Hexo图片管理方案.md +++ b/content/posts/这可能是最好的Hexo图片管理方案.md @@ -1,9 +1,10 @@ --- abbrlink: 1950788762 categories: -- 往昔 +- 技术 date: "2025-06-29 10:52:05" tags: +- 黑历史 - Hexo title: 这可能是最好的Hexo图片管理方案 --- diff --git a/content/posts/那种虚伪的互动和友善,赶快把它撕破吧!.md b/content/posts/那种虚伪的互动和友善,赶快把它撕破吧!.md index 86917cd..9d108e9 100644 --- a/content/posts/那种虚伪的互动和友善,赶快把它撕破吧!.md +++ b/content/posts/那种虚伪的互动和友善,赶快把它撕破吧!.md @@ -6,6 +6,7 @@ slug: 'tear-hypocrisy-apart' categories: - 随笔 tags: + - 黑历史 - 社交 - 博客 - 评论区 diff --git a/content/posts/阴云.md b/content/posts/阴云.md index 4cc465a..95aaa87 100644 --- a/content/posts/阴云.md +++ b/content/posts/阴云.md @@ -1,10 +1,11 @@ --- categories: -- 往昔 +- 随笔 date: "2025-08-20T17:33:10+08:00" draft: false slug: overcast tags: +- 黑历史 - 旁观者 title: 阴云 --- diff --git a/content/posts/隐居.md b/content/posts/隐居.md index 762b25d..a6b5985 100644 --- a/content/posts/隐居.md +++ b/content/posts/隐居.md @@ -1,10 +1,11 @@ --- abbrlink: 1767559137 categories: -- 往昔 +- 随处 date: "2025-04-26 18:42:46" description: 超前,还是孤僻? -tags: [] +tags: +- 黑历史 title: 隐居 --- diff --git a/content/posts/面向对象编程与面向过程编程的本质区别.md b/content/posts/面向对象编程与面向过程编程的本质区别.md index ba09188..b05a6da 100644 --- a/content/posts/面向对象编程与面向过程编程的本质区别.md +++ b/content/posts/面向对象编程与面向过程编程的本质区别.md @@ -1,9 +1,10 @@ --- abbrlink: 1518948190 categories: -- 往昔 +- 技术 date: "2025-05-29 21:21:36" tags: +- 黑历史 - 编程 title: 面向对象与面向过程的本质区别 --- diff --git a/content/posts/面向对象编程总结.md b/content/posts/面向对象编程总结.md index 2fb96e6..9ee4c6c 100644 --- a/content/posts/面向对象编程总结.md +++ b/content/posts/面向对象编程总结.md @@ -6,7 +6,7 @@ ShowToc: show abbrlink: 1385380729 author: yingyu5658 categories: -- 往昔 +- 技术 cid: 166 cover: images\2024\12\2743265221.jpg date: "2024-12-18 16:30:00" @@ -18,6 +18,7 @@ slug: 166 status: publish summaryContent: null tags: +- 黑历史 - Java - 笔记 thumb: null diff --git a/content/posts/韩愈《师说》.md b/content/posts/韩愈《师说》.md index c956219..c2213f6 100644 --- a/content/posts/韩愈《师说》.md +++ b/content/posts/韩愈《师说》.md @@ -4,8 +4,9 @@ draft: false title: 韩愈《师说》 slug: "" categories: - - 往昔 + - 随笔 tags: + - 黑历史 - 古文 - 韩愈 --- diff --git a/content/posts/高效率的沟通绝不会从在吗开始.md b/content/posts/高效率的沟通绝不会从在吗开始.md index 7256900..cc27483 100644 --- a/content/posts/高效率的沟通绝不会从在吗开始.md +++ b/content/posts/高效率的沟通绝不会从在吗开始.md @@ -1,9 +1,10 @@ --- abbrlink: 2523582669 categories: -- 往昔 +- 随笔 date: "2025-05-26 18:55:29" tags: +- 黑历史 - 人际交往 - 沟通 title: 高效率的沟通绝不会从在吗开始 diff --git a/content/posts/高超的表达能力.md b/content/posts/高超的表达能力.md index 8daff21..a509f6a 100644 --- a/content/posts/高超的表达能力.md +++ b/content/posts/高超的表达能力.md @@ -1,9 +1,10 @@ --- abbrlink: 3914674283 categories: -- 往昔 +- 随笔 date: "2025-06-19 23:05:24" tags: +- 黑历史 - 小品 title: 高超的表达能力 --- diff --git a/glowisle b/glowisle deleted file mode 160000 -Subproject 5e57e61a0e42b269c6e2f9d9ef067253c911f7a @@ -24,6 +24,13 @@ unsafe = true title = true wrapStandAloneImageWithinParagraph = false + +[markup] + [markup.tableOfContents] + startLevel = 2 # 起始级别 + endLevel = 3 # 结束级别 + ordered = false # 是否使用有序列表 + [markup.goldmark.extensions] [markup.goldmark.extensions.extras] [markup.goldmark.extensions.extras.mark] @@ -90,12 +97,12 @@ tabWidth = 4 url = "/about/" weight = 6 [params] - upvote = true + upvote = false upvoteURL = "https://upvote.glowisle.me/" description = "关于互联网、书籍、生活琐事以及那些一闪而过的念头。计算机技术 & 读书感悟 & 日常随笔。映屿(GlowIsle)" postSearch = false groupByYear = true - toc = false + toc = true showPostCount = true favicon = "/favicon.png" hideMadeWithLine = true @@ -106,4 +113,4 @@ tabWidth = 4 email = "i@glowisle.me" [params.footer] - content = "© 2024 - 2026 | Made with ❤️ by Verdant." + content = "© 2024 - 2026 | Made with ❤️ by [Verdant](https://verdant.ee)." diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index ebc6a41..b78e7ef 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,44 +1,44 @@ <!doctype html> -<GNU> - ______ ____ _____ _____ _____ _________ _______ _ __ _ _ - .' ___ ||_ \|_ _||_ _||_ _| | _ _ | |_ __ \ / |_ [ | / |_ / |_ -/ .' \_| | \ | | | | | | |_/ | | \_|.---. _ .--. _ .--. _ __ | |__) |_ .--. ,--. `| |-'.---. | |--. .---.`| |-'`| |-' -| | ____ | |\ \| | | ' ' | | | / /__\\[ `/'`\][ `/'`\][ \ [ ] | ___/[ `/'`\]`'_\ : | | / /'`\] | .-. |/ /__\\| | | | -\ `.___] |_| |_\ |_ \ \__/ / _| |_ | \__., | | | | \ '/ / _| |_ | | // | |,| |,| \__. | | | || \__.,| |, | |, - `._____.'|_____|\____| `.__.' |_____| '.__.'[___] [___] [\_: / |_____| [___] \'-;__/\__/'.___.'[___]|__]'.__.'\__/ \__/ - \__.' - - "A man is not dead while his name is still spoken." -</GNU> <html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-US{{ end }}"> - <head> - <meta http-equiv="X-Clacks-Overhead" content="GNU Terry Pratchett" /> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - {{- partial "favicon.html" . -}} - <title>{{ .Title }}</title> + <head> + <link rel="stylesheet" href="/style.css" /> + <meta http-equiv="X-Clacks-Overhead" content="GNU Terry Pratchett" /> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + {{- partial "favicon.html" . -}} + <title>{{ .Title }}</title> - {{- partial "seo_tags.html" . -}} - <meta name="referrer" content="no-referrer-when-downgrade" /> + {{- partial "seo_tags.html" . -}} + <meta name="referrer" content="no-referrer-when-downgrade" /> - {{ with .OutputFormats.Get "rss" -}} {{ printf ` - <link rel="%s" type="%s" href="%s" title="%s" /> - ` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ end -}} - {{- partial "style.html" . -}} + {{ with .OutputFormats.Get "rss" -}} {{ printf ` + <link rel="%s" type="%s" href="%s" title="%s" /> + ` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ end -}} - <!-- A partial to be overwritten by the user. + <!-- A partial to be overwritten by the user. Simply place a custom_head.html into your local /layouts/partials-directory --> - {{- partial "custom_head.html" . -}} - </head> + {{- partial "custom_head.html" . -}} + </head> - <body> - <main>{{- block "main" . }}{{- end }}</main> - <footer>{{- partial "footer.html" . -}}</footer> + <body> + <main>{{- block "main" . }}{{- end }}</main> + <footer>{{- partial "footer.html" . -}}</footer> - <!-- A partial to be overwritten by the user. + <!-- A partial to be overwritten by the user. Simply place a custom_body.html into your local /layouts/partials-directory --> - {{- partial "custom_body.html" . -}} - </body> + {{- partial "custom_body.html" . -}} + </body> + <GNU> + ______ ____ _____ _____ _____ _________ _______ _ __ _ _ .' ___ ||_ \|_ _||_ + _||_ _| | _ _ | |_ __ \ / |_ [ | / |_ / |_ / .' \_| | \ | | | | | | |_/ | | + \_|.---. _ .--. _ .--. _ __ | |__) |_ .--. ,--. `| |-'.---. | |--. .---.`| + |-'`| |-' | | ____ | |\ \| | | ' ' | | | / /__\\[ `/'`\][ `/'`\][ \ [ ] | + ___/[ `/'`\]`'_\ : | | / /'`\] | .-. |/ /__\\| | | | \ `.___] |_| |_\ |_ \ + \__/ / _| |_ | \__., | | | | \ '/ / _| |_ | | // | |,| |,| \__. | | | || + \__.,| |, | |, `._____.'|_____|\____| `.__.' |_____| '.__.'[___] [___] [\_: + / |_____| [___] \'-;__/\__/'.___.'[___]|__]'.__.'\__/ \__/ \__.' "A man is + not dead while his name is still spoken." + </GNU> </html> diff --git a/layouts/_default/single.html b/layouts/_default/single.html index d7b9807..ee0b227 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -12,6 +12,24 @@ <a href="{{ .RelPermalink }}" class="item-link">{{ .Title }}</a> </h1> +<div class="post-meta"> + <div class="post-meta-item post-date"> + <time class="dt-published" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}"> + {{ .Date.Format "January 02, 2006" }} + </time> + </div> + + <div class="post-meta-item post-category"> + + {{ range .Params.categories }} + {{ $url := printf "/categories/%s/" (. | urlize) }} +• + <a href="{{ $url }}" class="category-link">{{ . }}</a> + {{ end }} + </div> +</div> + + <div class="e-content">{{ .Content }}</div> </article> <a class="u-url" href="{{ .Permalink }}" style="display: none">Permalink</a> @@ -127,9 +145,9 @@ <!-- Place the TOC at the end to ensure the article content loads first. --> -{{ $tocEnabled := default .Site.Params.toc .Params.toc }} {{ if $tocEnabled }} -<div class="toc">{{ partial "toc.html" . }}</div> -{{ end }} +<!-- {{ $tocEnabled := default .Site.Params.toc .Params.toc }} {{ if $tocEnabled }} --> +<!-- <div class="toc">{{ partial "toc.html" . }}</div> --> +<!-- {{ end }} --> <!-- {{ if .Params.comments | default true }} --> <!-- <div class="comments-and-webmentions"> --> @@ -308,5 +326,6 @@ </div> {{ end }} {{ end }} + <p>有想对我说的?<a href="mailto:i@glowisle.me?subject=回复《{{ .Title }}》">发一封邮件吧</a>。</p> </div> {{ end }} diff --git a/layouts/_markup/render-blockquote.html b/layouts/_markup/render-blockquote.html deleted file mode 100644 index c11de7e..0000000 --- a/layouts/_markup/render-blockquote.html +++ /dev/null @@ -1,107 +0,0 @@ -<!-- 来自:https://github.com/BigCoke233/geek-death-project/blob/master/layouts/_markup/render-blockquote.html --> - -<style> - -/* 图标/标题所在的第一个 div */ -blockquote[class*="alert-"] > div:first-child { - font-size: 1.25rem; - font-weight: bold; - user-select: none; -} - -/* 2. 针对不同类型的具体配色 */ - -/* Note - 信息提示 - 蓝色 */ -.alert-note { - border-left-color: #2196f3; -} -.alert-note > div:first-child { - color: #2196f3; -} - -/* Tip - 技巧/建议 - 绿色 */ -.alert-tip { - border-left-color: #4caf50; -} -.alert-tip > div:first-child { - color: #4caf50; -} - -/* Warning - 警告 - 橙色 */ -.alert-warning { - border-left-color: #ff9800; -} -.alert-warning > div:first-child { - color: #ff9800; -} - -/* Caution - 危险/注意 - 红色 */ -.alert-caution { - border-left-color: #f44336; -} -.alert-caution > div:first-child { - color: #f44336; -} - -/* Important - 重要 - 紫色/深蓝 */ -.alert-important { - border-left-color: #9c27b0; -} -.alert-important > div:first-child { - color: #9c27b0; -} - -/* Announcement - 公告 - 青色 */ -.alert-announcement { - border-left-color: #00bcd4; -} -.alert-announcement > div:first-child { - color: #00bcd4; -} - -/* 3. 普通 blockquote 样式 (非 Alert) */ -blockquote.text-secondary { - border-left: 3px solid #e0e0e0; - color: #666; - padding-left: 1.5rem !important; /* 覆盖 p-0 */ -} - -/* 适配暗色模式 (可选) */ -@media (prefers-color-scheme: dark) { - blockquote.text-secondary { - border-left-color: #444; - color: #aaa; - } -} -</style> - - -{{ $emojis := dict - "caution" "🚨" - "important" "☝️" - "note" "ℹ️" - "tip" "💡" - "warning" "⚠️" - "announcement" "📣" -}} - -{{ if eq .Type "alert" }} - <blockquote class="rounded-1 leading-[1.75] mx-0 px-5 - flex gap-3 my-2 alert-{{ .AlertType }}" - > - <div class="py-5"> - {{ with .AlertTitle }} - {{.}} - {{ else }} - {{ index $emojis .AlertType }} - {{ end }} - </div> - <div> - {{ .Text }} - </div> - </blockquote> -{{ else }} - <blockquote class="text-secondary p-0 m-0 ml-[1em]"> - {{ .Text }} - </blockquote> -{{ end }} diff --git a/layouts/archives/single.html b/layouts/archives/single.html index be44c9f..fea6ac2 100644 --- a/layouts/archives/single.html +++ b/layouts/archives/single.html @@ -1,7 +1,12 @@ {{ define "main" }} <header> -{{- partial "header.html" . -}} +<a href="{{ "" | relURL }}" class="title"> + <p class="site-title">{{ .Site.Title }}</p> +</a> +<nav>{{- partial "nav.html" . -}}</nav> </header> + + <content> {{ if .Data.Singular }} <h3 style="margin-bottom:0">Filtering for "{{ .Title }}"</h3> diff --git a/layouts/layouts/404.html b/layouts/layouts/404.html deleted file mode 100644 index 76d46d9..0000000 --- a/layouts/layouts/404.html +++ /dev/null @@ -1,29 +0,0 @@ -{{ define "title" }}404{{ end }} {{ define "main" }} -<style> -footer{display:none} -.not-found { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - height: 100vh; -} - -.not-found * { - margin: 2rem; - line-height: 0; - } - - h1 { - padding-bottom: 0.45em; - font-size: 5rem; - } - -</style> -<div class="not-found"> - <h1>🏝️</h1> - <h3>OHHHHH~ - </h3> - <h3>Who lives in a pineapple under the sea?</h3> -</div> -{{ end }} diff --git a/layouts/layouts/_default/_markup/render-image.html b/layouts/layouts/_default/_markup/render-image.html deleted file mode 100644 index bf19bf9..0000000 --- a/layouts/layouts/_default/_markup/render-image.html +++ /dev/null @@ -1,4 +0,0 @@ -<figure class="image-caption"> - <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}"> - <figcaption>{{ .Text }}</figcaption> -</figure>
\ No newline at end of file diff --git a/layouts/layouts/_default/baseof.html b/layouts/layouts/_default/baseof.html deleted file mode 100644 index 72b2954..0000000 --- a/layouts/layouts/_default/baseof.html +++ /dev/null @@ -1,33 +0,0 @@ -<!doctype html> -<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-US{{ end }}"> - <head> - <meta http-equiv="X-Clacks-Overhead" content="GNU Terry Pratchett" /> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - {{- partial "favicon.html" . -}} - <title>{{ .Title }}</title> - - {{- partial "seo_tags.html" . -}} - <meta name="referrer" content="no-referrer-when-downgrade" /> - - {{ with .OutputFormats.Get "rss" -}} {{ printf ` - <link rel="%s" type="%s" href="%s" title="%s" /> - ` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ end -}} {{- - partial "style.html" . -}} - - <!-- A partial to be overwritten by the user. - Simply place a custom_head.html into - your local /layouts/partials-directory --> - {{- partial "custom_head.html" . -}} - </head> - - <body> - <main>{{- block "main" . }}{{- end }}</main> - <footer>{{- partial "footer.html" . -}}</footer> - - <!-- A partial to be overwritten by the user. - Simply place a custom_body.html into - your local /layouts/partials-directory --> - {{- partial "custom_body.html" . -}} - </body> -</html> diff --git a/layouts/layouts/_default/list.html b/layouts/layouts/_default/list.html deleted file mode 100644 index 8c1db86..0000000 --- a/layouts/layouts/_default/list.html +++ /dev/null @@ -1,70 +0,0 @@ -{{ define "main" }} -<content> - {{ if .Site.Params.postSearch }} - <input - id="search-input" - type="text" - placeholder="Search..." - style="margin-top: 16px" - /> - <script> - // 等待 DOM 完全加载后执行 - document.addEventListener('DOMContentLoaded', function () { - // 缓存 DOM 元素 - const searchInput = document.getElementById('search-input'); - const posts = document.querySelectorAll('.blog-posts li'); - const years = document.querySelectorAll('.blog-posts h3'); - - // 更新搜索结果 - function updateSearchResults(searchTerm) { - let visiblePosts = 0; - const displayedYears = new Set(); - posts.forEach(function (post) { - const title = post.querySelector('a').textContent.toLowerCase(); - const year = post.querySelector('time').getAttribute('datetime').split('-')[0]; - if (title.includes(searchTerm)) { - post.style.display = ''; - visiblePosts++; - displayedYears.add(year); - } else { - post.style.display = 'none'; - } - }); - - {{ if .Site.Params.groupByYear }} - years.forEach(function (y) { - const year = y.textContent; - y.style.display = displayedYears.has(year) ? '' : 'none'; - }); - {{ end }} - } - - searchInput.addEventListener('input', function () { - updateSearchResults(this.value.toLowerCase().trim()); - }); - }); - </script> - {{ end }} - <ul class="blog-posts"> - {{ $currentYear := 0 }} {{ range .Pages }} {{ if and (not .Params.hidden) - (not (in .Params.categories "往昔")) }} - - <li> - <span - class="{{ if .Site.Params.groupByYear }} grouped {{ else }} ungrouped {{ end }}" - > - <i> - <time datetime='{{ .Date.Format "2006-01-02" }}' pubdate> - {{ .Date.Format (default "2006-01-02" .Site.Params.dateFormat) }} - </time> - </i> - </span> - <a href="{{ .Permalink }}">{{ .Title }}</a> - </li> - - {{ end }} {{ else }} - <li>No posts yet</li> - {{ end }} - </ul> -</content> -{{ end }} diff --git a/layouts/layouts/_default/rss.xml b/layouts/layouts/_default/rss.xml deleted file mode 100644 index e480a4b..0000000 --- a/layouts/layouts/_default/rss.xml +++ /dev/null @@ -1,82 +0,0 @@ -{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} -{{- $authorEmail := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .email }} - {{- $authorEmail = . }} - {{- end }} - {{- end }} -{{- else }} - {{- with site.Author.email }} - {{- $authorEmail = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} - {{- end }} -{{- end }} - -{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}} -{{- $authorName := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .name }} - {{- $authorName = . }} - {{- end }} - {{- else }} - {{- $authorName = . }} - {{- end }} -{{- else }} - {{- with site.Author.name }} - {{- $authorName = . }} - {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} - {{- end }} -{{- end }} - -{{- $pctx := . }} -{{- if .IsHome }}{{ $pctx = .Site }}{{ end }} -{{- $pages := slice }} -{{- if or $.IsHome $.IsSection }} -{{- $pages = where $pctx.RegularPages "Type" "in" (slice "posts" "post") }} -{{- else }} -{{- $pages = where $pctx.Pages "Type" "in" (slice "posts" "post") }} -{{- end }} - -{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }} -<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> - <channel> - <title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }}</title> - <link>{{ .Permalink }}</link> - <description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }}</description> - <generator>Hugo</generator> - <language>{{ site.LanguageCode }}</language> - {{ with $authorEmail }} - <managingEditor>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor> - {{ end }} - {{ with $authorEmail }} - <webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster> - {{ end }} - {{ with .Site.Params.copyright }} - <copyright>{{ . }}</copyright> - {{ end }} - {{ if not .Date.IsZero }} - <lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate> - {{ end }} - {{ if and .Site.Params.RSS.followFeedId .Site.Params.RSS.followUserId }} - <follow_challenge> - <feedId>{{ .Site.Params.RSS.followFeedId }}</feedId> - <userId>{{ .Site.Params.RSS.followUserId }}</userId> - </follow_challenge> - {{ end }} - {{- with .OutputFormats.Get "RSS" }} - {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }} - {{- end }} - {{- range $pages }} - <item> - <title>{{ .Title }}</title> - <link>{{ .Permalink }}</link> - <pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate> - {{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }} - <guid>{{ .Permalink }}</guid> - <description>{{ .Content | transform.XMLEscape | safeHTML }}</description> - </item> - {{- end }} - </channel> -</rss> diff --git a/layouts/layouts/_default/single.html b/layouts/layouts/_default/single.html deleted file mode 100644 index 6b3f0a4..0000000 --- a/layouts/layouts/_default/single.html +++ /dev/null @@ -1,319 +0,0 @@ -{{ define "main" }} -<header>{{- partial "header.html" . -}}</header> - -<article class="h-entry"> -<h2 class="post-title"> - <a href="{{ .RelPermalink }}" class="item-link">{{ .Title }}</a> -</h2> - - <div class="e-content">{{ .Content }}</div> -</article> -<a class="u-url" href="{{ .Permalink }}" style="display: none">Permalink</a> - -<hr> - -{{ partial "post_meta.html" . }} - -{{ $upvoteEnabled := default .Site.Params.upvote .Params.upvote }} {{ if $upvoteEnabled }} -<div class="upvote-container"> - <small class="upvote"> - <button class="upvote-btn" id="upvote-btn"> - <svg - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 24 24" - width="24" - height="24" - stroke="currentColor" - stroke-width="2" - fill="none" - stroke-linecap="round" - stroke-linejoin="round" - class="css-i6dzq1" - > - <polyline points="17 11 12 6 7 11"></polyline> - <polyline points="17 18 12 13 7 18"></polyline> - </svg> - <span class="upvote-count" id="upvote-count">0</span> - </button> - </small> -</div> - - -<script> - let hasUpvoted = false; - let upvoteBtn; - let upvoteCount; - - // 页面加载时获取点赞数量 - document.addEventListener("DOMContentLoaded", function () { - const slug = "{{ .Slug }}"; - upvoteBtn = document.getElementById("upvote-btn"); - upvoteCount = document.getElementById("upvote-count"); - getCount(slug); - - // 处理点赞按钮的点击事件 - upvoteBtn.addEventListener("click", handleUpvote); - }); - - // 点赞方法 - async function handleUpvote() { - if (hasUpvoted) { - console.log("You have already upvoted this post!"); - return; - } - const slug = "{{ .Slug }}"; - - // 禁用按钮以防止重复点击 - upvoteBtn.disabled = true; - // 给按钮添加 upvoted 类以赋以点击过的样式 - upvoteBtn.classList.add("upvoted"); - // 更新 upvote-count 的值 +1 - upvoteCount.innerText = parseInt(upvoteCount.innerText) + 1; - - try { - const response = await fetch("{{ .Site.Params.upvoteURL }}upvote", { - method: "POST", - mode: "cors", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ postId: slug, diff: 1 }), - }); - - if (response.ok) { - console.log("Upvote successful!"); - hasUpvoted = true; - await getCount(slug, 3); - } else { - console.log("Upvote failed!"); - } - } catch (error) { - console.error("Error: ", error); - } finally { - upvoteBtn.disabled = false; - } - } - - // 获取 Upvote 数量的方法,支持设置重试次数,默认不重试 - async function getCount(slug, retryCount = 0) { - try { - const response = await fetch( - "{{ .Site.Params.upvoteURL }}count?post=" + slug, - { - method: "GET", - headers: { - "Content-Type": "application/json", - }, - }, - ); - - const data = await response.json(); - - if (data.code === 0) { - const count = data.data.count; - upvoteCount.innerText = count; - hasUpvoted = data.data.hasUpvoted; - if (hasUpvoted) { - upvoteBtn.classList.add("upvoted"); - } else { - upvoteBtn.classList.remove("upvoted"); - } - } else { - console.error("Failed to get upvote count: ", data.msg); - } - } catch (error) { - console.error("Error: ", error); - if (retryCount > 0) { - setTimeout(() => { - getCount(slug, retryCount - 1); - }, 1000); - } - } - } -</script> -{{ end }} - -<!-- Place the TOC at the end to ensure the article content loads first. --> -{{ $tocEnabled := default .Site.Params.toc .Params.toc }} {{ if $tocEnabled }} -<div class="toc">{{ partial "toc.html" . }}</div> -{{ end }} - -{{ if .Params.comments | default true }} -<div class="comments-and-webmentions"> - <details> - <summary> - <p style="display: inline">评论 与 Webmentions</p> - </summary> - <div id="giscus-container"></div> - - <div class="wm"> - <div id="webmentions"></div> - <script - src="/js/webmention.min.js" - data-id="webmentions" - data-page-url="https://www.glowisle.me{{ .RelPermalink }}" - data-max-webmentions="50" - data-wordcount="30" - data-sort-by="published" - data-sort-dir="up" - async - ></script> - - <p> - 若想回复本文,请在你的博客或社媒发布含有本文链接的帖子,然后在下方表单提交链接。 - </p> - <div class="wm-guide-content"> - <div class="webmention-form"> - <form - id="webmention-submit-form" - action="https://webmention.io/www.glowisle.me/webmention" - method="post" - > - <!-- 自动填充的目标文章链接 --> - <input - type="hidden" - name="target" - value="https://www.glowisle.me{{ .RelPermalink }}" - /> - <div> - <label for="webmention-source">你的文章链接:</label> - <input - type="url" - id="webmention-source" - name="source" - required - pattern="https?://.+" - /> - <button type="submit" id="webmention-submit-btn">提交</button> - </div> - <div id="webmention-form-feedback"></div> - </form> - <p> - 也可以<a href="mailto:i@glowisle.me?subject=回复《{{ .Title }}》">发送邮件</a>评论。 - </p> - <a href="https://indieweb.org/webmention" - >关于 Webmention 的更多信息</a - > - 以及 - <a href="https://www.glowisle.me/posts/tear-hypocrisy-apart/" - >为什么要这么做?</a - > - </div> - - <script> - function getInitialTheme() { - // 1. 优先检查 localStorage 中的用户偏好 - if ( - typeof localStorage !== "undefined" && - localStorage.getItem("theme") - ) { - return localStorage.getItem("theme"); - } - // 2. 检查系统偏好 - if (window.matchMedia("(prefers-color-scheme: dark)").matches) { - return "dark"; - } - // 3. 默认值 - return "light"; - } - - const currentTheme = getInitialTheme(); - const giscusTheme = currentTheme === "dark" ? "dark" : "light"; - - const giscusScript = document.createElement("script"); - giscusScript.src = "https://giscus.app/client.js"; - giscusScript.setAttribute( - "data-repo", - "yingyu5658/yingyu5658.github.io", - ); - giscusScript.setAttribute("data-repo-id", "R_kgDOOBetsA"); - giscusScript.setAttribute("data-category", "Announcements"); - giscusScript.setAttribute("data-category-id", "DIC_kwDOOBetsM4CoF_Z"); - giscusScript.setAttribute("data-mapping", "title"); - giscusScript.setAttribute("data-strict", "0"); - giscusScript.setAttribute("data-reactions-enabled", "0"); - giscusScript.setAttribute("data-emit-metadata", "0"); - giscusScript.setAttribute("data-input-position", "bottom"); - giscusScript.setAttribute("data-theme", giscusTheme); - giscusScript.setAttribute("data-lang", "zh-CN"); - giscusScript.crossOrigin = "anonymous"; - giscusScript.async = true; - - document.getElementById("giscus-container").appendChild(giscusScript); - - document.addEventListener("DOMContentLoaded", function () { - const form = document.getElementById("webmention-submit-form"); - const submitBtn = document.getElementById("webmention-submit-btn"); - const feedbackEl = document.getElementById( - "webmention-form-feedback", - ); - - if (!form) return; - - form.addEventListener("submit", async function (e) { - e.preventDefault(); - - // 禁用提交按钮防止重复提交 - const originalBtnText = submitBtn.textContent; - submitBtn.disabled = true; - submitBtn.textContent = "发送中..."; - - // 清除之前的反馈信息 - feedbackEl.textContent = ""; - - try { - // 使用 FormData 收集表单数据 - const formData = new FormData(form); - - // 发送 POST 请求 - const response = await fetch(form.action, { - method: "POST", - headers: { - Accept: "application/json", - }, - body: new URLSearchParams(formData), - }); - - const result = await response.json(); - - if (response.ok) { - // 成功响应 - feedbackEl.textContent = - "✅ 提交成功!Webmention 正在处理中。"; - form.reset(); - } else { - // 错误响应 - let errorMsg = "提交失败:"; - if (result.error || result.summary) { - errorMsg += result.error || result.summary; - } - feedbackEl.textContent = errorMsg; - } - } catch (error) { - // 网络错误 - feedbackEl.textContent = - "❌ 提交过程中出现网络错误,请稍后重试。"; - } finally { - // 恢复提交按钮状态 - submitBtn.disabled = false; - submitBtn.textContent = originalBtnText; - } - }); - }); - </script> - - {{ end }} - </div> - </div> - </details> - - {{ if not .Params.comments }} - {{ with .Params.reason }} - <div class="reason"> - <p>评论区已关闭。</p> - <strong>{{ . | markdownify }}</strong> - </div> - {{ end }} - {{ end }} -</div> -{{ end }} diff --git a/layouts/layouts/_default/term.html b/layouts/layouts/_default/term.html deleted file mode 100644 index 0d55fc1..0000000 --- a/layouts/layouts/_default/term.html +++ /dev/null @@ -1,36 +0,0 @@ -{{ define "main" }} -<div class="taxonomy-term"> - <h2>{{ .Title }}</h2> - - <div class="posts-list"> - {{ range .Pages }} - - <li style="list-style-type: none; margin-bottom: 12px"> - <span - class="post-date" - {{ - if - .Site.Params.groupByYear - }} - grouped - {{ - else - }} - ungrouped - {{ - end - }} - > - <time datetime='{{ .Date.Format "2006-01-02" }}' pubdate> - {{ .Date.Format "2006-01-02" }} - </time> - </span> - <a href="{{ .Permalink }}">{{ .Title }}</a> - </li> - - {{ else }} - <p>该分类下还没有文章。</p> - {{ end }} - </div> -</div> -{{ end }} diff --git a/layouts/layouts/archives/single.html b/layouts/layouts/archives/single.html deleted file mode 100644 index 698fc46..0000000 --- a/layouts/layouts/archives/single.html +++ /dev/null @@ -1,96 +0,0 @@ -{{ define "main" }} -<header>{{- partial "header.html" . -}}</header> -<content> - {{ if .Site.Params.postSearch }} - <input - id="search-input" - type="text" - placeholder="搜索文章..." - style="margin-top: 16px" - /> - <script> - document.addEventListener('DOMContentLoaded', function () { - const searchInput = document.getElementById('search-input'); - const posts = document.querySelectorAll('.blog-posts li'); - const years = document.querySelectorAll('.blog-posts h3'); - - function updateSearchResults(searchTerm) { - let visiblePosts = 0; - const displayedYears = new Set(); - - posts.forEach(function (post) { - const titleLink = post.querySelector('a'); - const timeElement = post.querySelector('time'); - - if (titleLink && timeElement) { - const title = titleLink.textContent.toLowerCase(); - const year = timeElement.getAttribute('datetime').split('-')[0]; - - if (title.includes(searchTerm)) { - post.style.display = ''; - visiblePosts++; - displayedYears.add(year); - } else { - post.style.display = 'none'; - } - } - }); - - {{ if .Site.Params.groupByYear }} - years.forEach(function (y) { - const year = y.textContent; - y.style.display = displayedYears.has(year) ? '' : 'none'; - }); - {{ end }} - - {{ if .Site.Params.showPostCount }} - const countText = `找到 ${visiblePosts} 篇文章`; - const countElement = document.getElementById('post-count'); - if (countElement) { - countElement.innerHTML = countText; - } - {{ end }} - } - - if (searchInput) { - searchInput.addEventListener('input', function () { - updateSearchResults(this.value.toLowerCase().trim()); - }); - } - }); - </script> - {{ end }} {{ $allPosts := where .Site.RegularPages "Type" "eq" "posts" }} - {{ $excludePosts := where $allPosts "Params.categories" "intersect" (slice "1") }} - - {{ $postPages := $allPosts | complement $excludePosts }} {{ if - .Site.Params.showPostCount }} - <p id="post-count">共有 {{ len $postPages }} 篇文章</p> - {{ end }} - - <ul class="blog-posts"> - {{ if gt (len $postPages) 0 }} {{ $pagesToShow := $postPages.ByDate.Reverse - }} {{ $currentYear := 0 }} {{ range $pagesToShow }} {{ if .Date }} {{ $year - := .Date.Year }} {{ if and (.Site.Params.groupByYear) (ne $year - $currentYear) }} - <h3>{{ $year }}</h3> - {{ $currentYear = $year }} {{ end }} {{ end }} - - <li> - <span - class="{{ if .Site.Params.groupByYear }}grouped{{else}}ungrouped{{end}}" - > - <i> - <time datetime='{{ .Date.Format "2006-01-02" }}' pubdate> - {{ .Date.Format (default "2006-01-02" .Site.Params.dateFormat) }} - </time> - </i> - </span> - <a href="{{ .Permalink }}">{{ .Title }}</a> - </li> - {{ end }} {{ else }} - <li>暂无文章</li> - {{ end }} - </ul> -</content> -<hr /> -{{ end }} diff --git a/layouts/layouts/index.html b/layouts/layouts/index.html deleted file mode 100644 index 2c47df5..0000000 --- a/layouts/layouts/index.html +++ /dev/null @@ -1,3 +0,0 @@ -{{ define "main" }} -<header>{{- partial "header.html" . -}}</header> -{{ .Content }} {{ end }} diff --git a/layouts/layouts/partials/custom_body.html b/layouts/layouts/partials/custom_body.html deleted file mode 100644 index 126375a..0000000 --- a/layouts/layouts/partials/custom_body.html +++ /dev/null @@ -1,3 +0,0 @@ -<!-- A partial to be overwritten by the user. - Simply place a custom_body.html into - your local /layouts/partials-directory --> diff --git a/layouts/layouts/partials/custom_head.html b/layouts/layouts/partials/custom_head.html deleted file mode 100644 index 051d3d9..0000000 --- a/layouts/layouts/partials/custom_head.html +++ /dev/null @@ -1,21 +0,0 @@ -<meta name="msvalidate.01" content="2E1AACF009206F2DDBAAD4B98E881460" /> -<meta name="fediverse:creator" content="@Verdant@c7.io" /> -<link - rel="prefetch" - as="image" - href="https://www.blogsclub.org/badge/www.glowisle.me" -/> -<link href="https://github.com/yingyu5658" rel="me" /> -<link href="https://c7.io/@Verdant" rel="me" /> -<link - rel="webmention" - href="https://webmention.io/www.glowisle.me/webmention" -/> -<link - rel="stylesheet" - href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" -/><link - rel="stylesheet" - href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" -/> -<link rel="shortcut icon" href="/favicon.ico" /> diff --git a/layouts/layouts/partials/favicon.html b/layouts/layouts/partials/favicon.html deleted file mode 100644 index ccf1a5d..0000000 --- a/layouts/layouts/partials/favicon.html +++ /dev/null @@ -1,2 +0,0 @@ -{{ with .Site.Params.favicon }} -<link rel="shortcut icon" href="{{ . | absURL }}" />{{ end }} diff --git a/layouts/layouts/partials/footer.html b/layouts/layouts/partials/footer.html deleted file mode 100644 index 5cd0d54..0000000 --- a/layouts/layouts/partials/footer.html +++ /dev/null @@ -1,8 +0,0 @@ -<div class="copyright"> - {{ .Site.Params.footer.content }} - <div class="rss-icon"> - <a href="/rss"> - <i class="fa fa-rss"></i> - </a> - </div> -</div> diff --git a/layouts/layouts/partials/header.html b/layouts/layouts/partials/header.html deleted file mode 100644 index 1efdd22..0000000 --- a/layouts/layouts/partials/header.html +++ /dev/null @@ -1,4 +0,0 @@ -<a href="{{ "" | relURL }}" class="title"> - <h1>{{ .Site.Title }}</h1> -</a> -<nav>{{- partial "nav.html" . -}}</nav> diff --git a/layouts/layouts/partials/nav.html b/layouts/layouts/partials/nav.html deleted file mode 100644 index 96bf26b..0000000 --- a/layouts/layouts/partials/nav.html +++ /dev/null @@ -1,6 +0,0 @@ -{{ range .Site.Menus.main }} -<a href="{{ .URL }}">{{ .Name }}</a> -{{ end }} -{{ with .Site.GetPage "/blog" }} -<a href="{{ "posts/" | relURL }}">Blog</a> -{{ end }} diff --git a/layouts/layouts/partials/post_meta.html b/layouts/layouts/partials/post_meta.html deleted file mode 100644 index 741efd2..0000000 --- a/layouts/layouts/partials/post_meta.html +++ /dev/null @@ -1,39 +0,0 @@ -{{ if ne (.Params.showMeta | default true) false }} -<div class="post-meta"> - - <div class="post-meta-item post-author"> - {{ with .Params.author | default "Verdant" }} - <p> - <svg t="1768726817979" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4715" width="200" height="200"><path d="M858.5 763.6c-18.9-44.8-46.1-85-80.6-119.5-34.5-34.5-74.7-61.6-119.5-80.6-0.4-0.2-0.8-0.3-1.2-0.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-0.4 0.2-0.8 0.3-1.2 0.5-44.8 18.9-85 46-119.5 80.6-34.5 34.5-61.6 74.7-80.6 119.5C146.9 807.5 137 854 136 901.8c-0.1 4.5 3.5 8.2 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c0.1 4.4 3.6 7.8 8 7.8h60c4.5 0 8.1-3.7 8-8.2-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z" p-id="4716"></path></svg> - {{ . }} - </p> - {{ end }} - </div> - - <div class="post-meta-item post-date"> - <svg t="1768727464189" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5925" width="200" height="200"><path d="M341.333333 170.666667h341.333334V85.333333h85.333333v85.333334h42.666667a85.333333 85.333333 0 0 1 85.333333 85.333333v597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334H213.333333a85.333333 85.333333 0 0 1-85.333333-85.333334V256a85.333333 85.333333 0 0 1 85.333333-85.333333h42.666667V85.333333h85.333333v85.333334zM213.333333 341.333333v512h597.333334V341.333333H213.333333z m85.333334 128h85.333333v85.333334H298.666667v-85.333334z m170.666666 0h85.333334v85.333334h-85.333334v-85.333334z m170.666667 0h85.333333v85.333334h-85.333333v-85.333334z m0 170.666667h85.333333v85.333333h-85.333333v-85.333333z m-170.666667 0h85.333334v85.333333h-85.333334v-85.333333z m-170.666666 0h85.333333v85.333333H298.666667v-85.333333z" fill="#000000" p-id="5926"></path></svg> - <time class="dt-published" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}"> - - {{ .Date.Format "January 02, 2006" }} - </time> - </div> - - <div class="post-meta-item post-category"> - <svg t="1768727819011" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7095" width="200" height="200"><path d="M85.312 153.6v716.8h853.376V288H471.36L364.416 153.6h-279.04zM0 64h404.288L511.36 198.4H1024V960H0V64z" fill="#262626" p-id="7096"></path></svg> - {{ range .Params.categories }} - {{ $url := printf "/categories/%s/" (. | urlize) }} - <a href="{{ $url }}" class="category-link">{{ . }}</a> - {{ end }} - </div> - - <div class="post-meta-item post-tag"> - <svg t="1768727897449" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8070" width="200" height="200"><path d="M512 910.208L910.208 512 480.832 82.624l-378.816 24.448-19.776 373.376L512 910.208zM0 512L25.472 31.36 512 0l512 512-512 512-512-512z m293.376-128.96a85.952 85.952 0 1 0 0-171.904 85.952 85.952 0 0 0 0 171.904z" fill="#262626" p-id="8071"></path></svg> - {{ $tags := .GetTerms "tags" }} - {{ $len := len $tags }} - {{ range $index, $tag := $tags }} - <a href="{{ .Permalink }}">{{ $tag.LinkTitle }}</a> - {{ if lt (add $index 1) $len }}, {{ end }} - {{ end }} - </div> -</div> -{{ end }} diff --git a/layouts/layouts/partials/seo_tags.html b/layouts/layouts/partials/seo_tags.html deleted file mode 100644 index 06e90cd..0000000 --- a/layouts/layouts/partials/seo_tags.html +++ /dev/null @@ -1,15 +0,0 @@ -<!-- Primary Meta Tags --> -<meta name="title" content="{{ with .Title }}{{ . }}{{ else }}{{ .Site.Title }}{{ end }}" /> -<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ if .IsPage }}{{ .Summary }}{{ else }}{{ with .Site.Params.Description }}{{ . }}{{ end }}{{ end }}{{ end }}" /> -<meta name="keywords" content="{{ if .IsPage }}{{ range $index, $tag := .Params.tags }}{{ $tag }},{{ end }}{{ else }}{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}{{ printf "%s," $term }}{{ end }}{{ end }}{{ end }}" /> - -<link rel="canonical" href="{{ .Permalink }}"> - -<!-- Open Graph / Facebook --> -{{ template "_internal/opengraph.html" . }} - -<!-- Twitter --> -{{ template "_internal/twitter_cards.html" . }} - -<!-- Microdata --> -{{ template "_internal/schema.html" . }} diff --git a/layouts/layouts/partials/style.html b/layouts/layouts/partials/style.html deleted file mode 100644 index 470a611..0000000 --- a/layouts/layouts/partials/style.html +++ /dev/null @@ -1,846 +0,0 @@ -<style> - @font-face { - font-family: "Source Serif Pro"; - src: url("/fonts/SourceSerifPro-Regular.otf"); - } - - article p, .summary p { - line-height: 35px; - } - - div.footnotes hr::before { - content: "Footnotes"; - display: block; - font-size: 1.5em; - color: var(--bold-text-color); - margin-top: 16px; - - } - - .recent-posts-item { - margin: 0; - margin-bottom: 120px; - } - - .recent-post-title { - } - - .post-meta { - margin-top: 20px; - margin-bottom: 5px; - } - - .recent-item { - position: relative; - margin-bottom: 8px; - display: flex; - align-items: flex-start; - } - - .item-link { - width: 100%; - display: inline-block; - text-decoration: none; - flex: 1; - overflow: hidden; - text-overflow: ellipsis; - font-size: 1.6em; - word-wrap: break-word; - white-space: normal; - word-wrap: break-word; - } - - .post-title a.item-link { - width: 100%; - display: inline-block; - text-decoration: none; - flex: 1; - overflow: hidden; - text-overflow: ellipsis; - font-size: 1.25em; - word-wrap: break-word; - white-space: normal; - word-wrap: break-word; - - } - - .post-date { - font-size: 0.9em; - color: #666; - display: inline-block; - min-width: 80px; - flex-shrink: 0; - } - - .recent-empty { - text-align: center; - font-style: italic; - } - - @media (max-width: 720px) { - .post-date { - min-width: auto; - font-size: 0.85em; - } - - .item-link { - white-space: normal; - overflow: visible; - } - -} - - .post-meta-item svg { - display: inline; - width: var(--svg-size); - height: var(--svg-size); - } - - .post-meta-item { - margin-right: 0.8em; - display: inline-block; - font-size: var(--font-size-secondary); - } - - .post-tag a { - font-size: var(--font-size-secondary) !important; - } - .post-meta-item p { - margin: 0; - } - - .recent-posts .post-meta { - margin-bottom: 6em; - } - - :root { - --width-max: 700px; - --font-primary: "Source Serif Pro", "Source Han Serif SC", serif; - --font-secondary: monospace; - --font-size-primary: 1.15rem; - --font-size-secondary: 1rem; - --body-bg-color: #ffffff; - --bold-text-color: #222; - --body-text-color: #444; - --link-color: #222; - --link-visited-color: #222; - --table-border-color: #f2f2f2; - --table-th-bg-color: #f2f2f2; - --img-border-color: #f2f2f2; - --code-bg-color: #f2f2f2; - --code-text-color: #222; - --blockquote-border-color: #666; - --blockquote-text-color: #646464; - --upvoted-color: #fa8072; - --caption-text-color: #666; - --toc-text-color: #e5e5e5; - --toc-hover-color: #655e5e; - - --music-bg-hover-light: #e5e5e5; /* neutral-200 */ - --music-bg-light: rgba(229, 229, 229, 0.5); /* neutral-200/50 */ - --music-text-secondary: #666; - --music-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), - 0 4px 6px -2px rgba(0, 0, 0, 0.05); - --summary-text-color: #4e4e4e; - --svg-size: 0.85em; - } - - .social-icons { - margin: 15px; - margin-top: 5px; - text-align: center; - } - - .social-icons a { - padding: 5px 5px; - } - - .booklist { - display: grid; - grid-template-columns: repeat(5, 1fr); - gap: 20px; - } - - .booklist-item { - transform: translateZ(0); - transition: transform 0.25s, box-shadow 0.25s; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); - } - - .booklist-item img { - height: 100%; - } - - .booklist-item:hover { - transform: translateY(-5px) translateZ(20px); - box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5); - } - - .rss-icon { - display: inline; - font-size: 16px; - float: right; - font-family: var(--font-primary); - } - - img.missing { - display: none; - } - - nav a, - h1.post-title a, - .blog-posts li a { - text-decoration: none !important; - } - - nav a:hover, - .post-title a:hover, - .blog-posts a:hover { - text-decoration: underline 0.5px !important; - } - - .wm { - border: 1px #d0d7de solid; - border-radius: 0.25em; - padding-top: 0; - padding: 1.5vw; - background-color: #fffaed; - margin-top: 1vh; - } - - .wm p { - margin-top: 1px; - } - - article p, div.summary { - margin-top: 20px; - font-weight: 400; - } - - .item-link { - white-space: nowrap; - overflow: hidden; - } - - h1.post-title { - margin-top: 2vh; - margin-bottom: 10px; - } - - h1.post-title a { - font-weight: 700; - } - - .recent-list { - padding-left: 2vw; - } - - .recent-item { - list-style-type: none; - } - - .post-date { - display: inline; - } - - .post-date, - .post-date-shortcode { - margin-left: auto; - } - - .music-card img { - border: none !important; - } - - /* --- 主容器 --- */ - /* flex flex-col gap-2 */ - .music-card { - display: flex; - flex-direction: column; - gap: 0.5rem; - width: 100%; - } - - /* --- 信息区域 (左侧) --- */ - /* flex gap-5 items-center */ - .music-info { - display: flex; - align-items: center; - gap: 1.25rem; - } - - /* 封面图 */ - /* w-15 h-15 rounded-lg shadow-lg m-0! */ - .music-cover { - width: 3.75rem; /* 15 * 0.25rem */ - height: 3.75rem; - border-radius: 0.5rem; - box-shadow: var(--music-shadow); - margin: 0 !important; - object-fit: cover; - } - - /* 文本信息 */ - .music-title { - margin: 0; - font-size: 1rem; /* text-size-base */ - font-weight: bold; - line-height: 1.2; - } - - .music-artist { - margin: 0; - font-size: 0.875rem; /* text-size-sm */ - color: var(--music-text-secondary); - } - - /* --- 链接区域 (右侧) --- */ - /* flex gap-2 items-center */ - .music-links { - display: flex; - align-items: center; - gap: 0.5rem; - } - - /* 链接按钮 */ - /* block rounded-full px-3 transition-colors no-underline! text-size-xs inline-flex gap-1 items-center bg... */ - .music-btn { - display: inline-flex; - align-items: center; - gap: 0.25rem; - padding: 0 0.75rem; /* px-3 */ - height: 2rem; - border-radius: 9999px; /* rounded-full */ - text-decoration: none !important; - font-size: 0.75rem; /* text-size-xs */ - transition: background-color 0.3s ease; - - /* 浅色模式背景 */ - background-color: var(--music-bg-light); - color: inherit; - } - - .music-btn:hover { - background-color: var(--music-bg-hover-light); - } - - /* 图标 */ - /* w-3 h-3 m-0! */ - .music-icon { - display: block; - width: 0.75rem; - height: 0.75rem; - margin: 0 !important; - } - - /* 按钮文字 */ - .music-btn-text { - display: inline; - } - - /* --- 桌面端/大屏适配 (Media Query: md / min-width: 768px) --- */ - @media (min-width: 768px) { - /* 容器变为横向排列,两端对齐 */ - /* md:flex-row md:justify-between md:items-center */ - .music-card { - flex-direction: row; - justify-content: space-between; - align-items: center; - } - - /* 按钮在大屏下变为方形图标按钮 */ - /* md:p-4 */ - .music-btn { - padding: 1rem; - justify-content: center; - width: auto; - height: auto; - } - - /* 图标变大 */ - /* md:w-5 md:h-5 */ - .music-icon { - width: 1.25rem; - height: 1.25rem; - } - - /* 文字在大屏下隐藏 */ - /* md:hidden */ - .music-btn-text { - display: none; - } - } - - /* 暗色模式 */ - @media (prefers-color-scheme: dark) { - :root { - --summary-text-color: #c9c6c5; - --body-bg-color: #121212; - --bold-text-color: #eee; - --body-text-color: #e8e6e3; - --link-color: #ddd; - --link-visited-color: #c3b1ee; - --table-border-color: #999; - --table-th-bg-color: #999; - --img-border-color: #999; - --code-bg-color: #141414; - --code-text-color: #ddd; - --blockquote-border-color: #7b7b7b; - --blockquote-text-color: #acacac; - --caption-text-color: #aaa; - --toc-text-color: #373737; - --toc-hover-color: #cac3c3; - --music-bg-hover-dark: #525252; - --music-bg-dark: rgba(82, 82, 82, 0.5); - --music-text-secondary: #a3a3a3; - --color-background: var(--body-bg-color) !important; - } - - .post-meta-item svg { - filter: invert(1) hue-rotate(180deg); - } - - - - div.summary a { - text-decoration: underline 0.1px #888; - } - - strong { - font-weight: 650; - } - - .music-btn { - background-color: var(--music-bg-dark); - } - .music-btn:hover { - background-color: var(--music-bg-hover-dark); - } - - .category-link { - color: #dbdbdb; - } - - .wm { - background-color: #161b22; - border-color: #30363d; - color: var(--body-text-color); - padding: 10px; - } - - .wm input { - background-color: #010409; - border: #30363d 1px solid; - color: var(--body-text-color); - outline: none; - transition: border-color 0.2s ease-in-out; - } - - #webmention-source:focus { - border-color: var(--color-accent-fg, #0969da); - box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.1); - } - - .wm button { - color: var(--body-text-color); - background-color: #161b22; - border: #30363d 1px solid; - } - - .post-title a, - { - color: #fff !important; - } - - .post-summary { - color: var(--text-color-primary) !important; - } - - .post-item { - border-bottom: 1px solid #414141 !important; - } - - .pagination-link { - border: 1px solid #414141 !important; - } - - a { - font-weight: 500 !important; - } - } - - body { - font-family: var(--font-primary); - font-size: var(--font-size-primary); - margin: auto; - padding: 20px; - max-width: var(--width-max); - text-align: left; - background-color: var(--body-bg-color); - word-wrap: break-word; - overflow-wrap: break-word; - line-height: 1.6; - color: var(--body-text-color); - } - - h1, - h2, - h3, - h4, - h5, - h6, - strong, - b { - color: var(--bold-text-color); - } - - h1, - h2, - h3, - h4, - h5, - h6 { - margin: 16px 0; - margin-top: 1.5em; - } - - a { - color: var(--link-color); - cursor: pointer; - text-decoration: underline 0.2px #888; - transition-duration: 0.3s; - font-weight: 600; - } - - .posts-list li { - margin-bottom: 12px; - } - - .title { - text-align: left; - text-decoration: none !important; - } - - a.title h1 { - margin: 15px; - margin-left: 0; - font-size: 2.15em; - } - - header { - margin-top: 30px; - margin-bottom: 4vh; - - } - - .title:hover { - text-decoration: none; - } - - .title span { - font-weight: 400; - } - - nav { - text-align: left; - margin-bottom: 20px; - } - - nav a { - margin-right: 8px; - } - - textarea { - width: 100%; - font-size: 16px; - } - - input { - font-size: 14px; - } - - article { - line-height: 1.6; - } - - table { - width: 100%; - border-collapse: collapse; - border: 1px solid var(--table-border-color); - border-radius: 4px; - margin-top: 16px; - } - - th, - td { - border: 1px solid var(--table-border-color); - padding: 4px; - } - - th { - background-color: var(--table-th-bg-color); - } - - hr { - border: 0; - border-top: 1px dashed; - } - - img { - max-width: 100%; - display: block; - margin-left: auto; - margin-right: auto; - content-visibility: auto; - loading: lazy; - } - - img[src*="#minipic"] { - max-width: 50%; - margin-left: 0; - margin-right: auto; - } - - .image-caption figcaption { - text-align: center; - font-style: italic; - font-size: 0.8em; - margin-top: 0.6em; - color: var(--caption-text-color); - } - - .image-caption { - margin: auto; - } - - i { - font-style: normal; - } - - time { - font-family: var(--font-primary); - color: var(--body-text-color); - } - - code { - font-family: var(--font-secondary); - background-color: var(--code-bg-color); - color: var(--code-text-color); - padding: 2px; - border-radius: 4px; - } - - pre code { - display: block; - padding: 16px; - white-space: pre-wrap; - overflow-x: auto; - } - - div.highlight pre { - border-radius: 4px; - } - - div.highlight code { - background-color: var(--code-bg-color); - color: var(--code-text-color); - } - - blockquote { - /* border-left: 4px solid var(--blockquote-border-color); */ - color: var(--blockquote-text-color); - margin: 0; - margin-top: 17px; - padding-left: 20px; - font-style: normal; - } - - footer { - padding: 25px 0; - text-align: left; - font-size: var(--font-size-secondary); - } - - ul li:has(input) { - list-style-type: none; - margin-left: -25.5px; - } - - /* blog post list */ - ul.blog-posts { - list-style-type: none; - padding: unset; - } - - ul.blog-posts li { - display: flex; - margin-bottom: 8px; - } - - ul.blog-posts li span { - flex: 0 0 130px; - } - - ul.blog-posts li span.grouped { - flex: 0 0 80px; - } - - ul.blog-posts li a:visited { - color: var(--link-visited-color); - } - - ul.blog-posts a { - margin-left: 10px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - /* TOC 样式 */ - div.toc { - position: fixed; /* 固定定位 */ - top: 50%; /* 垂直居中 */ - left: calc( - (100vw + var(--width-max)) / 2 - ); /* 水平定位,根据视口宽度和最大内容宽度计算 */ - transform: translateY(-50%); /* 垂直居中调整 */ - width: calc((90vw - var(--width-max)) / 2); /* 宽度计算 */ - max-height: 80vh; /* 最大高度为视口高度的80% */ - overflow-y: auto; /* 垂直方向内容溢出时显示滚动条 */ - border: none; /* 无边框 */ - padding: 0; /* 无内边距 */ - margin: 0; /* 无外边距 */ - z-index: 99; /* 设置堆叠顺序,确保在其他元素之上 */ - - /* 隐藏滚动条 */ - &::-webkit-scrollbar { - /* Webkit 浏览器(Chrome, Safari)滚动条样式 */ - display: none; /* 隐藏滚动条 */ - } - - -ms-overflow-style: none; /* IE 和 Edge 隐藏滚动条 */ - scrollbar-width: none; /* Firefox 隐藏滚动条 */ - } - - .toc-nav { - /* 目录导航容器样式 */ - padding: 1.5rem; /* 内边距 */ - } - - .toc-nav ul { - /* 目录导航无序列表样式 */ - list-style: none; /* 移除列表项标记 */ - padding: 0; /* 移除内边距 */ - margin: 0; /* 移除外边距 */ - } - - .toc-nav li { - /* 目录导航列表项样式 */ - margin: 8px 0; /* 上下外边距 */ - } - - .toc-nav a { - /* 目录链接样式 */ - display: block; /* 块级显示 */ - text-decoration: none; /* 无下划线 */ - color: transparent; /* 默认透明 */ - padding: 0 12px; /* 内边距 */ - transition: all 0.2s ease; /* 所有属性过渡效果 */ - font-size: 0.9rem; /* 字体大小 */ - line-height: 1.4; /* 行高 */ - text-align: left; /* 文本左对齐 */ - white-space: nowrap; /* 禁止换行 */ - overflow: hidden; /* 隐藏溢出内容 */ - text-overflow: ellipsis; /* 显示省略号 */ - max-width: 100%; /* 限制最大宽度 */ - } - - .toc-nav a { - color: var(--toc-text-color); /* hover时显示文字颜色 */ - } - - .toc-nav a::before { - /* 目录链接前的小横线样式 */ - content: ""; /* 生成内容 */ - display: inline-block; /* 行内块级显示 */ - width: 16px; /* 宽度 */ - height: 4px; /* 高度 */ - background-color: var(--toc-text-color); /* 灰色背景 */ - border-radius: 16px; /* 圆角 */ - margin-right: 12px; /* 右外边距 */ - vertical-align: middle; /* 垂直居中对齐 */ - } - - .toc-nav ul ul a::before { - /* 二级目录链接前的小横线样式 */ - width: 12px; /* 显示宽度 */ - margin-right: 16px; /* 调整右外边距,使其与默认 a::before 占据的总宽度一致 (12px + 12px = 24px) */ - } - - .toc-nav ul ul ul a::before { - /* 三级目录链接前的小横线样式 */ - width: 8px; /* 显示宽度 */ - margin-right: 20px; /* 调整右外边距,使其与默认 a::before 占据的总宽度一致 (8px + 16px = 24px) */ - } - - .toc-nav a, /* 活跃状态和鼠标悬停状态的目录链接样式 */ - .toc-nav a { - text-decoration: none; /* 无下划线 */ - color: var(--toc-hover-color); /* 文字颜色变为深灰色 */ - } - - .toc-nav a.active::before, /* 活跃状态和鼠标悬停状态的目录链接前小横线样式 */ - .toc-nav a:hover::before { - background-color: var(--toc-hover-color); /* 背景颜色变为深灰色 */ - } - - /* upvote button style */ - button.upvote-btn { - margin: 0; - margin-left: auto; - padding: 0; - border: none; - background: none; - cursor: pointer; - display: flex; - flex-direction: column; - align-items: center; - color: var(--body-text-color); - } - - button.upvoted { - color: var(--upvoted-color); - } - - span.upvote-count { - margin-top: -4px; - font-size: smaller; - } - - @media (max-width: 800px) { - img[src*="#minipic"] { - max-width: 100%; - margin-left: auto; - margin-right: auto; - } - - div.toc { - display: none; - } - } - - @media (max-width: 700px) { - .booklist { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 10px; - } - } - - @media (max-width: 400px) { - .booklist { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 10px; - } - } -</style> diff --git a/layouts/layouts/partials/toc.html b/layouts/layouts/partials/toc.html deleted file mode 100644 index 66936a4..0000000 --- a/layouts/layouts/partials/toc.html +++ /dev/null @@ -1,91 +0,0 @@ -{{/* 根据页面内容生成目录 */}} -{{ if and .TableOfContents (ne .TableOfContents "<nav id=\"TableOfContents\"></nav>") }} -<nav class="toc-nav"> - {{ .TableOfContents }} -</nav> - -<script> - // 为目录添加平滑滚动和当前位置高亮 - document.addEventListener('DOMContentLoaded', function () { - const tocLinks = document.querySelectorAll('.toc-nav a'); - const headings = Array.from(tocLinks).map(link => { - const id = link.getAttribute('href').replace('#', ''); - return document.getElementById(id); - }).filter(h => h); - - // 平滑滚动 - tocLinks.forEach(link => { - link.addEventListener('click', function (e) { - e.preventDefault(); - const targetId = this.getAttribute('href').replace('#', ''); - const target = document.getElementById(targetId); - if (target) { - target.scrollIntoView({ - behavior: 'smooth', - block: 'start' - }); - - // 更新活动状态 - tocLinks.forEach(l => l.classList.remove('active')); - this.classList.add('active'); - } - }); - }); - - // 滚动时更新当前位置 - function updateActiveLink() { - const scrollTop = window.pageYOffset || document.documentElement.scrollTop; - const windowHeight = window.innerHeight; - - for (let i = headings.length - 1; i >= 0; i--) { - const heading = headings[i]; - const rect = heading.getBoundingClientRect(); - - if (rect.top <= 100) { - // 移除所有活动状态 - tocLinks.forEach(link => link.classList.remove('active')); - - // 高亮当前标题 - const activeLink = document.querySelector(`.toc-nav a[href="#${heading.id}"]`); - if (activeLink) { - activeLink.classList.add('active'); - - // 高亮所有父级标题 - let currentLi = activeLink.closest('li'); - while (currentLi) { - const parentLi = currentLi.parentElement.closest('li'); - if (parentLi) { - const parentLink = parentLi.querySelector('a'); - if (parentLink) { - parentLink.classList.add('active'); - } - currentLi = parentLi; - } else { - break; - } - } - } - break; - } - } - } - - // 节流函数 - let ticking = false; - function throttleScroll() { - if (!ticking) { - requestAnimationFrame(function () { - updateActiveLink(); - ticking = false; - }); - ticking = true; - } - } - - window.addEventListener('scroll', throttleScroll); - - // 初始化时更新一次 - updateActiveLink(); - }); -</script> -{{ end }}
\ No newline at end of file diff --git a/layouts/layouts/robots.txt b/layouts/layouts/robots.txt deleted file mode 100644 index 0326f5c..0000000 --- a/layouts/layouts/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-Agent: * -Sitemap: {{ "sitemap.xml" | absURL }} diff --git a/layouts/layouts/shortcodes/archives-list.html b/layouts/layouts/shortcodes/archives-list.html deleted file mode 100644 index b9767f7..0000000 --- a/layouts/layouts/shortcodes/archives-list.html +++ /dev/null @@ -1,30 +0,0 @@ -{{ $allPages := where .Site.RegularPages "Type" "in" (slice "posts" "blog") }} -{{ $visiblePages := where $allPages "Params.hidden" "!=" true }} -{{ $pagesToShow := $visiblePages.ByDate.Reverse }} - -<div class="archives-content"> - <h2>归档</h2> - - <p>共有 {{ len $pagesToShow }} 篇文章</p> - - <ul class="blog-posts"> - {{ $currentYear := 0 }} - {{ range $pagesToShow }} - {{ $year := .Date.Year }} - {{ if ne $year $currentYear }} - <h3>{{ $year }}</h3> - {{ $currentYear = $year }} - {{ end }} - <li> - <span> - <i> - <time datetime='{{ .Date.Format "2006-01-02" }}'> - {{ .Date.Format "2006-01-02" }} - </time> - </i> - </span> - <a href="{{ .Permalink }}">{{ .Title }}</a> - </li> - {{ end }} - </ul> -</div> diff --git a/layouts/layouts/shortcodes/book.html b/layouts/layouts/shortcodes/book.html deleted file mode 100644 index 45f806a..0000000 --- a/layouts/layouts/shortcodes/book.html +++ /dev/null @@ -1,9 +0,0 @@ -<div class="booklist-item"> - {{ if .Get "url" }} - <a href="{{ .Get "url" }}"> - <img class="book-cover" src="{{ .Get "cover" }}" alt="图书封面" /> - </a> - {{ else }} - <img class="book-cover" src="{{ .Get "cover" }}" alt="图书封面" /> - {{ end }} -</div> diff --git a/layouts/layouts/shortcodes/music.html b/layouts/layouts/shortcodes/music.html deleted file mode 100644 index 583b0b0..0000000 --- a/layouts/layouts/shortcodes/music.html +++ /dev/null @@ -1,37 +0,0 @@ -<!-- 这里的代码来自 https://github.com/BigCoke233/geek-death-project/blob/master/layouts/_shortcodes/music.html --> -<!-- 为了适配需求,我做了部分修改 --> -<div class="music-card"> - <!-- Cover, title, artist --> - <div class="music-info"> - <img class="music-cover" - src="{{ .Get "cover" }}" loading="lazy" alt="Cover" /> - <div class="music-text"> - <h4 class="music-title">{{ .Get "title" }}</h4> - <p class="music-artist">{{ .Get "artist" }}</p> - </div> - </div> - - <!-- Links --> - <div class="music-links"> - {{ with .Get "apple" }} - <a href="{{ . }}" class="music-btn" target="_blank" title="在 Apple Music 中打开" data-tooltip> - <img src="/images/apple-music.png" loading="lazy" class="music-icon" alt="Apple Music" /> - <span class="music-btn-text">Apple Music</span> - </a> - {{ end }} - - {{ with .Get "netease" }} - <a href="{{ . }}" class="music-btn" target="_blank" title="在网易云音乐中打开" data-tooltip> - <img src="/images/netease-music.png" loading="lazy" class="music-icon" alt="Netease Music" /> - <span class="music-btn-text">网易云</span> - </a> - {{ end }} - - {{ with .Get "spotify" }} - <a href="{{ . }}" class="music-btn" target="_blank" title="在 Spotify 中打开" data-tooltip> - <img src="/images/spotify.png" loading="lazy" class="music-icon" alt="Spotify" /> - <span class="music-btn-text">Spotify</span> - </a> - {{ end }} - </div> -</div> diff --git a/layouts/layouts/shortcodes/recent-posts.html b/layouts/layouts/shortcodes/recent-posts.html deleted file mode 100644 index b2a6637..0000000 --- a/layouts/layouts/shortcodes/recent-posts.html +++ /dev/null @@ -1,24 +0,0 @@ -{{ $pages := where site.RegularPages "Type" "in" site.Params.mainSections }} {{ -$recent := first 5 $pages.ByDate.Reverse }} - -<style> -.item-link { -word-wrap: break-word; - white-space: normal; - } -</style> - -<div class="recent-posts"> - {{ if $recent }} {{ range $index, $page := $recent }} - <div class="recent-posts-item"> - <h2 class="recent-post-title post-title"> - <a href="{{ .RelPermalink }}" class="item-link">{{ .Title }}</a> - </h2> - <div class="summary">{{ .Summary }}</div> - - {{ partial "post_meta.html" . }} - - {{ if not (eq (add $index 1) (len $recent)) }} {{ end }} {{ end }} {{ else }} - <div class="recent-empty">暂无文章</div> - {{ end }} -</div> diff --git a/layouts/layouts/shortcodes/word-count.html b/layouts/layouts/shortcodes/word-count.html deleted file mode 100644 index 38dbe0e..0000000 --- a/layouts/layouts/shortcodes/word-count.html +++ /dev/null @@ -1,41 +0,0 @@ -{{ $scratch := newScratch }} {{ if eq (.Get 0) "posts" }} {{ range where -site.RegularPages "Type" "in" (slice "posts" "jottings" "readings" "tech") }} {{ -if not (in .Params.categories "!往昔!") }} {{ $scratch.Add "wordcount" .WordCount -}} {{ end }} {{ end }} {{ else if eq (.Get 0) "all" }} {{ range where -site.RegularPages "Type" "in" (slice "posts" "about" "newsgroup" "links" -"jottings" "readings" "tech") }} {{ if not (in .Params.categories "!往昔") }} {{ -$scratch.Add "wordcount" .WordCount }} {{ end }} {{ end }} {{ end }} {{ $count -:= $scratch.Get "wordcount" }} {{ if gt $count 0 }} {{ $count }} 字, {{/* -名著数据库(字数单位:汉字) */}} {{ $classics := slice (dict "name" "红楼梦" -"author" "曹雪芹" "country" "(中)" "words" 731017) (dict "name" "源氏物语" -"author" "紫式部" "country" "(日)" "words" 876000) (dict "name" "假面的告白" -"author" "三岛由纪夫" "country" "(日)" "words" 86000) (dict "name" "金阁寺" -"author" "三岛由纪夫" "country" "(日)" "words" 125000) (dict "name" -"了不起的盖茨比" "author" "菲茨杰拉德" "country" "(美)" "words" 49800) (dict -"name" "傲慢与偏见" "author" "简·奥斯汀" "country" "(英)" "words" 183000) -(dict "name" "呐喊" "author" "鲁迅" "country" "(中)" "words" 152000) (dict -"name" "罗生门" "author" "芥川龙之介" "country" "(日)" "words" 35800) (dict -"name" "老人与海" "author" "海明威" "country" "(美)" "words" 26800) (dict -"name" "简爱" "author" "夏洛蒂·勃朗特" "country" "(英)" "words" 322000) (dict -"name" "三国演义" "author" "罗贯中" "country" "(中)" "words" 640000) (dict -"name" "雪国" "author" "川端康成" "country" "(日)" "words" 78000) (dict "name" -"杀死一只知更鸟" "author" "哈珀·李" "country" "(美)" "words" 187000) (dict -"name" "1984" "author" "乔治·奥威尔" "country" "(英)" "words" 123000) (dict -"name" "围城" "author" "钱钟书" "country" "(中)" "words" 257000) (dict "name" -"我是猫" "author" "夏目漱石" "country" "(日)" "words" 402000) (dict "name" -"飘" "author" "玛格丽特·米切尔" "country" "(美)" "words" 802000) (dict "name" -"呼啸山庄" "author" "艾米莉·勃朗特" "country" "(英)" "words" 282000) }} {{/* -寻找最接近的名著 */}} {{ $closest := dict "diff" 999999999 "book" (index -$classics 0) }} {{ range $book := $classics }} {{ $ratio := div (float $count) -$book.words }} {{ if and (ge $ratio 0.8) (le $ratio 1.2) }} {{ $diff := sub -$ratio 1.0 }} {{ if lt $diff 0 }}{{ $diff = mul $diff -1 }}{{ end }} {{ if lt -$diff $closest.diff }} {{ $closest = dict "diff" $diff "book" $book }} {{ end }} -{{ end }} {{ end }} {{/* 输出对比结果 */}} {{ with $closest.book }} 约等于 《{{ -.name }}》 的{{ div (float $count) .words | printf "%.1f" }}倍 {{ else }} {{/* -未找到匹配时显示长度最接近的名著 */}} {{ $closestBook := index $classics 0 }} {{ -$minDiff := sub $count $closestBook.words }} {{ if lt $minDiff 0 }}{{ $minDiff = -mul $minDiff -1 }}{{ end }} {{ range $classics }} {{ $currDiff := sub $count -.words }} {{ if lt $currDiff 0 }}{{ $currDiff = mul $currDiff -1 }}{{ end }} {{ -if lt $currDiff $minDiff }} {{ $closestBook = . }} {{ $minDiff = $currDiff }} {{ -end }} {{ end }} ≈ {{ $closestBook.name }}{{ div (float $count) -$closestBook.words | printf "%.1f" }}倍 {{ end }} {{ else }} 0字 {{ end }} diff --git a/layouts/partials/custom_head.html b/layouts/partials/custom_head.html index 5d5c1ed..b3e5d2a 100644 --- a/layouts/partials/custom_head.html +++ b/layouts/partials/custom_head.html @@ -1,19 +1,7 @@ <meta name="msvalidate.01" content="2E1AACF009206F2DDBAAD4B98E881460" /> <link - rel="prefetch" - as="image" - href="https://www.blogsclub.org/badge/www.glowisle.me" -/> -<link href="https://github.com/yingyu5658" rel="me" /> -<link - rel="webmention" - href="https://webmention.io/www.glowisle.me/webmention" -/> -<link - rel="stylesheet" - href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" -/><link - rel="stylesheet" - href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" + rel="prefetch" + as="image" + href="https://www.blogsclub.org/badge/www.glowisle.me" /> <link rel="shortcut icon" href="/favicon.ico" /> diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 5cd0d54..69e3e66 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,8 +1,8 @@ <div class="copyright"> - {{ .Site.Params.footer.content }} - <div class="rss-icon"> - <a href="/rss"> - <i class="fa fa-rss"></i> - </a> - </div> + {{ .Site.Params.footer.content | markdownify }} + <div class="rss-icon"> + <a href="/rss"> + <i class="fa fa-rss">🛜</i> + </a> + </div> </div> diff --git a/layouts/partials/post_meta.html b/layouts/partials/post_meta.html index 1c180c3..1771751 100644 --- a/layouts/partials/post_meta.html +++ b/layouts/partials/post_meta.html @@ -1,33 +1,12 @@ {{ if ne (.Params.showMeta | default true) false }} <div class="post-meta"> - - <div class="post-meta-item post-date"> - <time class="dt-published" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}"> - {{ .Date.Format "January 02, 2006" }} - </time> - </div> - - <div class="post-meta-item post-category"> - - {{ range .Params.categories }} - {{ $url := printf "/categories/%s/" (. | urlize) }} -• - <a href="{{ $url }}" class="category-link">{{ . }}</a> - {{ end }} - </div> - - {{ if eq .Kind "page" }} - <div class="post-meta-item post-tag"> - # - {{ $tags := .GetTerms "tags" }} - {{ $len := len $tags }} - {{ range $index, $tag := $tags }} - <a href="{{ .Permalink }}">{{ $tag.LinkTitle }}</a> - {{ if lt (add $index 1) $len }}, {{ end }} - {{ end }} - </div> - {{ end }} + {{ if eq .Kind "page" }} + <div class="post-meta-item post-tag"> + # {{ $tags := .GetTerms "tags" }} {{ $len := len $tags }} {{ range $index, + $tag := $tags }} + <a href="{{ .Permalink }}">{{ $tag.LinkTitle }}</a> + {{ if lt (add $index 1) $len }}, {{ end }} {{ end }} + </div> + {{ end }} </div> {{ end }} - - diff --git a/layouts/partials/toc.html b/layouts/partials/toc.html index 66936a4..101c5e9 100644 --- a/layouts/partials/toc.html +++ b/layouts/partials/toc.html @@ -1,91 +1,19 @@ -{{/* 根据页面内容生成目录 */}} -{{ if and .TableOfContents (ne .TableOfContents "<nav id=\"TableOfContents\"></nav>") }} -<nav class="toc-nav"> - {{ .TableOfContents }} -</nav> - -<script> - // 为目录添加平滑滚动和当前位置高亮 - document.addEventListener('DOMContentLoaded', function () { - const tocLinks = document.querySelectorAll('.toc-nav a'); - const headings = Array.from(tocLinks).map(link => { - const id = link.getAttribute('href').replace('#', ''); - return document.getElementById(id); - }).filter(h => h); - - // 平滑滚动 - tocLinks.forEach(link => { - link.addEventListener('click', function (e) { - e.preventDefault(); - const targetId = this.getAttribute('href').replace('#', ''); - const target = document.getElementById(targetId); - if (target) { - target.scrollIntoView({ - behavior: 'smooth', - block: 'start' - }); - - // 更新活动状态 - tocLinks.forEach(l => l.classList.remove('active')); - this.classList.add('active'); - } - }); - }); - - // 滚动时更新当前位置 - function updateActiveLink() { - const scrollTop = window.pageYOffset || document.documentElement.scrollTop; - const windowHeight = window.innerHeight; - - for (let i = headings.length - 1; i >= 0; i--) { - const heading = headings[i]; - const rect = heading.getBoundingClientRect(); - - if (rect.top <= 100) { - // 移除所有活动状态 - tocLinks.forEach(link => link.classList.remove('active')); - - // 高亮当前标题 - const activeLink = document.querySelector(`.toc-nav a[href="#${heading.id}"]`); - if (activeLink) { - activeLink.classList.add('active'); - - // 高亮所有父级标题 - let currentLi = activeLink.closest('li'); - while (currentLi) { - const parentLi = currentLi.parentElement.closest('li'); - if (parentLi) { - const parentLink = parentLi.querySelector('a'); - if (parentLink) { - parentLink.classList.add('active'); - } - currentLi = parentLi; - } else { - break; - } - } - } - break; - } - } - } - - // 节流函数 - let ticking = false; - function throttleScroll() { - if (!ticking) { - requestAnimationFrame(function () { - updateActiveLink(); - ticking = false; - }); - ticking = true; - } - } - - window.addEventListener('scroll', throttleScroll); - - // 初始化时更新一次 - updateActiveLink(); - }); -</script> -{{ end }}
\ No newline at end of file +{{ $hasHeadings := false }} +{{ if .RawContent }} + {{/* 正则匹配:查找以 1 到 6 个 # 开头的行 */}} + {{ $headings := findRE "(?m)^#{1,6} " .RawContent }} + {{ if gt (len $headings) 0 }} + {{ $hasHeadings = true }} + {{ end }} +{{ end }} + +{{ if $hasHeadings }} +<aside id="ms_toc_container"> + <div id="ms_toc"> + <strong>Table Of Contents</strong> + <nav class="toc-nav"> + {{ .TableOfContents }} + </nav> + </div> +</aside> +{{ end }} diff --git a/layouts/shortcodes/archives-list.html b/layouts/shortcodes/archives-list.html index b9767f7..738e368 100644 --- a/layouts/shortcodes/archives-list.html +++ b/layouts/shortcodes/archives-list.html @@ -1,30 +1,35 @@ +<header> +<a href="{{ "" | relURL }}" class="title"> + <p class="site-title">{{ .Site.Title }}</p> +</a> +<nav>{{- partial "nav.html" . -}}</nav> + +</header> + {{ $allPages := where .Site.RegularPages "Type" "in" (slice "posts" "blog") }} -{{ $visiblePages := where $allPages "Params.hidden" "!=" true }} -{{ $pagesToShow := $visiblePages.ByDate.Reverse }} +{{ $visiblePages := where $allPages "Params.hidden" "!=" true }} {{ $pagesToShow +:= $visiblePages.ByDate.Reverse }} <div class="archives-content"> - <h2>归档</h2> - - <p>共有 {{ len $pagesToShow }} 篇文章</p> - - <ul class="blog-posts"> - {{ $currentYear := 0 }} - {{ range $pagesToShow }} - {{ $year := .Date.Year }} - {{ if ne $year $currentYear }} - <h3>{{ $year }}</h3> - {{ $currentYear = $year }} - {{ end }} - <li> - <span> - <i> - <time datetime='{{ .Date.Format "2006-01-02" }}'> - {{ .Date.Format "2006-01-02" }} - </time> - </i> - </span> - <a href="{{ .Permalink }}">{{ .Title }}</a> - </li> - {{ end }} - </ul> + <h2>归档</h2> + + <p>共有 {{ len $pagesToShow }} 篇文章</p> + + <ul class="blog-posts"> + {{ $currentYear := 0 }} {{ range $pagesToShow }} {{ $year := .Date.Year }} + {{ if ne $year $currentYear }} + <h3>{{ $year }}</h3> + {{ $currentYear = $year }} {{ end }} + <li> + <span> + <i> + <time datetime='{{ .Date.Format "2006-01-02" }}'> + {{ .Date.Format "2006-01-02" }} + </time> + </i> + </span> + <a href="{{ .Permalink }}">{{ .Title }}</a> + </li> + {{ end }} + </ul> </div> diff --git a/layouts/shortcodes/word-count.html b/layouts/shortcodes/word-count.html index 38dbe0e..20599f6 100644 --- a/layouts/shortcodes/word-count.html +++ b/layouts/shortcodes/word-count.html @@ -1,41 +1,29 @@ -{{ $scratch := newScratch }} {{ if eq (.Get 0) "posts" }} {{ range where -site.RegularPages "Type" "in" (slice "posts" "jottings" "readings" "tech") }} {{ -if not (in .Params.categories "!往昔!") }} {{ $scratch.Add "wordcount" .WordCount -}} {{ end }} {{ end }} {{ else if eq (.Get 0) "all" }} {{ range where -site.RegularPages "Type" "in" (slice "posts" "about" "newsgroup" "links" -"jottings" "readings" "tech") }} {{ if not (in .Params.categories "!往昔") }} {{ -$scratch.Add "wordcount" .WordCount }} {{ end }} {{ end }} {{ end }} {{ $count -:= $scratch.Get "wordcount" }} {{ if gt $count 0 }} {{ $count }} 字, {{/* -名著数据库(字数单位:汉字) */}} {{ $classics := slice (dict "name" "红楼梦" -"author" "曹雪芹" "country" "(中)" "words" 731017) (dict "name" "源氏物语" -"author" "紫式部" "country" "(日)" "words" 876000) (dict "name" "假面的告白" -"author" "三岛由纪夫" "country" "(日)" "words" 86000) (dict "name" "金阁寺" -"author" "三岛由纪夫" "country" "(日)" "words" 125000) (dict "name" -"了不起的盖茨比" "author" "菲茨杰拉德" "country" "(美)" "words" 49800) (dict -"name" "傲慢与偏见" "author" "简·奥斯汀" "country" "(英)" "words" 183000) -(dict "name" "呐喊" "author" "鲁迅" "country" "(中)" "words" 152000) (dict -"name" "罗生门" "author" "芥川龙之介" "country" "(日)" "words" 35800) (dict -"name" "老人与海" "author" "海明威" "country" "(美)" "words" 26800) (dict -"name" "简爱" "author" "夏洛蒂·勃朗特" "country" "(英)" "words" 322000) (dict -"name" "三国演义" "author" "罗贯中" "country" "(中)" "words" 640000) (dict -"name" "雪国" "author" "川端康成" "country" "(日)" "words" 78000) (dict "name" -"杀死一只知更鸟" "author" "哈珀·李" "country" "(美)" "words" 187000) (dict -"name" "1984" "author" "乔治·奥威尔" "country" "(英)" "words" 123000) (dict -"name" "围城" "author" "钱钟书" "country" "(中)" "words" 257000) (dict "name" -"我是猫" "author" "夏目漱石" "country" "(日)" "words" 402000) (dict "name" -"飘" "author" "玛格丽特·米切尔" "country" "(美)" "words" 802000) (dict "name" -"呼啸山庄" "author" "艾米莉·勃朗特" "country" "(英)" "words" 282000) }} {{/* -寻找最接近的名著 */}} {{ $closest := dict "diff" 999999999 "book" (index -$classics 0) }} {{ range $book := $classics }} {{ $ratio := div (float $count) -$book.words }} {{ if and (ge $ratio 0.8) (le $ratio 1.2) }} {{ $diff := sub -$ratio 1.0 }} {{ if lt $diff 0 }}{{ $diff = mul $diff -1 }}{{ end }} {{ if lt -$diff $closest.diff }} {{ $closest = dict "diff" $diff "book" $book }} {{ end }} -{{ end }} {{ end }} {{/* 输出对比结果 */}} {{ with $closest.book }} 约等于 《{{ -.name }}》 的{{ div (float $count) .words | printf "%.1f" }}倍 {{ else }} {{/* -未找到匹配时显示长度最接近的名著 */}} {{ $closestBook := index $classics 0 }} {{ -$minDiff := sub $count $closestBook.words }} {{ if lt $minDiff 0 }}{{ $minDiff = -mul $minDiff -1 }}{{ end }} {{ range $classics }} {{ $currDiff := sub $count -.words }} {{ if lt $currDiff 0 }}{{ $currDiff = mul $currDiff -1 }}{{ end }} {{ -if lt $currDiff $minDiff }} {{ $closestBook = . }} {{ $minDiff = $currDiff }} {{ -end }} {{ end }} ≈ {{ $closestBook.name }}{{ div (float $count) -$closestBook.words | printf "%.1f" }}倍 {{ end }} {{ else }} 0字 {{ end }} +{{ $scratch := newScratch }} {{ $scope := .Get 0 | default "posts" }} {{ $pages +:= where site.RegularPages "Type" "in" (slice "posts" "jottings" "readings" +"tech") }} {{ if eq $scope "all" }} {{ $pages = where site.RegularPages "Type" +"in" (slice "posts" "about" "newsgroup" "links" "jottings" "readings" "tech") }} +{{ end }} {{ range $pages }} {{ if not (in .Params.categories "!往昔!") }} {{ +$scratch.Add "wordcount" .WordCount }} {{ end }} {{ end }} {{ $count := +$scratch.Get "wordcount" }} {{ if gt $count 0 }} +<div class="stats-container" style="line-height: 1.8; font-family: inherit"> + <p> + 共书写了 <strong>{{ lang.FormatNumber 0 $count }}</strong> 字,{{ $readTime + := div $count 400 }}预计需要阅读 + <strong + >{{ if lt $readTime 60 }}{{ $readTime }} 分钟{{ else }}{{ div (float + $readTime) 60 | printf "%.1f" }} 小时{{ end }}</strong + > + ,{{ $classics := slice (dict "name" "红楼梦" "words" 731017) (dict "name" + "金阁寺" "words" 125000) (dict "name" "了不起的盖茨比" "words" 49800) (dict + "name" "呐喊" "words" 152000) (dict "name" "老人与海" "words" 26800) (dict + "name" "1984" "words" 123000) (dict "name" "围城" "words" 257000) (dict + "name" "飘" "words" 802000) }} {{ $closestBook := index $classics 0 }} {{ + $minDiff := 99999999 }} {{ range $classics }} {{ $diff := sub $count .words + }}{{ if lt $diff 0 }}{{ $diff = mul $diff -1 }}{{ end }} {{ if lt $diff + $minDiff }} {{ $minDiff = $diff }} {{ $closestBook = . }} {{ end }} {{ end + }} {{ $ratio := div (float $count) $closestBook.words }}相当于写了 + <strong>{{ $ratio | printf "%.2f" }}</strong> 本《{{ $closestBook.name + }}》。 + </p> +</div> +{{ end }} diff --git a/static/huiwen.ttf b/static/huiwen.ttf Binary files differnew file mode 100644 index 0000000..43b3568 --- /dev/null +++ b/static/huiwen.ttf diff --git a/layouts/partials/style.html b/static/style.css index f314c0e..2365e48 100644 --- a/layouts/partials/style.html +++ b/static/style.css @@ -1,13 +1,12 @@ -<style> - :root { - --width-max: 550px; + --width-max: 660px; --font-secondary: monospace; - --font-size-primary: 1rem; - --font-size-secondary: .93rem; - --body-bg-color: #fbfbf6; - --bold-text-color: #222; - --body-text-color: #444; + --font-size-primary: 1.01rem; + --font-size-secondary: 1.03rem; + /* --body-bg-color: #fbfbf6; */ + --body-bg-color: white; + --bold-text-color: black; + --body-text-color: black; --link-color: #0355a6; --link-visited-color: #551a8b; --table-border-color: #f2f2f2; @@ -16,7 +15,7 @@ --code-bg-color: #f2f2f2; --code-text-color: #222; --blockquote-border-color: #666; - --blockquote-text-color: #646464; + --blockquote-text-color: gray; --upvoted-color: #fa8072; --caption-text-color: #666; --toc-text-color: #e5e5e5; @@ -24,22 +23,30 @@ --music-bg-hover-light: #e5e5e5; --music-bg-light: rgba(229, 229, 229, 0.5); --music-text-secondary: #666; - --music-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + --music-shadow: + 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --summary-text-color: #706c6c; --svg-size: 0.85em; --title-color: #444444; } .recent-title { - font-weight: 700; border: none; } +.recent-title a { + border-bottom: 1px dotted; +} + +.grouped { + margin-right: 0.7rem; +} + .recent-date { display: block; } -summary p{ +summary p { color: var(--summary-text-color); } @@ -48,38 +55,42 @@ summary p{ } .e-content h2, -.e-content h3, -.e-content h4, +.e-content h3, +.e-content h4, .e-content h5, .e-content h6 { - font-weight: 800; + /* font-weight: 800; */ +} +gnu { + display: none; } -h1, h2 { +h1, +h2 { margin: 0; padding: 0; } .site-title { - margin: 15px 0 15px 0; - font-size: 2.15em; - font-weight: 700; + margin: 15px 0 15px 0; + font-size: 2.15em; + font-weight: 700; } .badge-88x31 { - display: flex; - flex-wrap: wrap; - gap: 5px; + display: flex; + flex-wrap: wrap; + gap: 5px; } .badge-88x31 a { - flex: 0 0 auto; - line-height: 0; + flex: 0 0 auto; + line-height: 0; } .badge-88x31 img { - display: block; + display: block; } .post-title a.item-link { @@ -87,22 +98,20 @@ h1, h2 { margin-bottom: 0; } -.e-content :is(h1, h2, h3, h4, h5, h6), .summary :is(h1, h2, h3, h4, h5, h6) { +.e-content :is(h1, h2, h3, h4, h5, h6), +.summary :is(h1, h2, h3, h4, h5, h6) { margin-top: 1.5em; } -.post-meta-item a, .rss-icon a, .post-title a, a.title h1, p { - color: var(--body-text-color) -} - -.post-meta-item a { - font-size: .85rem; +.post-meta-item a, +.rss-icon a, +.post-title a, +a.title h1, +p { + color: var(--body-text-color); } - - body { - font-size: var(--font-size-primary); font-family: Noto Serif CJK SC; margin: auto; padding: 20px; @@ -125,11 +134,7 @@ body { p { line-height: 2; - font-weight: 500; -} - -div.summary { - font-weight: 400; + /* font-weight: 500; */ } div.summary p { @@ -137,12 +142,13 @@ div.summary p { } a { - text-decoration: none; - border-bottom: 1px dotted; - color: var(--body-text-color) !important; + text-decoration: none; + border-bottom: 1px dotted; + color: var(--body-text-color) !important; } -strong, b { +strong, +b { color: var(--bold-text-color); } @@ -156,10 +162,14 @@ hr { } time { - font-family: var(--font-primary); + font-size: 1rem; color: var(--body-text-color); } +div.post-meta { + font-weight: 500; +} + header { margin-top: 30px; } @@ -182,11 +192,9 @@ a.title h1 { font-weight: 400; } - - nav a { - margin-right: 8px; - border: none; + margin-right: 8px; + border: none; } footer { @@ -207,34 +215,22 @@ footer { padding-left: 2vw; } -<!-- .item-link { --> -<!-- width: 100%; --> -<!-- display: inline-block; --> -<!-- text-decoration: none; --> -<!-- flex: 1; --> -<!-- overflow: hidden; --> -<!-- text-overflow: ellipsis; --> -<!-- font-size: 1.6em; --> -<!-- word-wrap: break-word; --> -<!-- white-space: nowrap; --> -<!-- } --> - - .post-title a.item-link { -font-size: 1.8rem; -border: none; + font-size: 1.8rem; + border: none; } h1.post-title { - margin-top: 0; + margin-top: 0; + margin-bottom: 0.7rem; } .post-title { - margin: 0 !important; display: inline-block; } -.post-date, .post-date-shortcode { +.post-date, +.post-date-shortcode { font-size: 0.9em; color: #666; display: inline; @@ -294,9 +290,6 @@ ul.blog-posts li span.grouped { margin: 0; } -.post-tag a { -} - img { max-width: 100%; display: block; @@ -335,7 +328,9 @@ img[src*="#minipic"] { .booklist-item { transform: translateZ(0); - transition: transform 0.25s, box-shadow 0.25s; + transition: + transform 0.25s, + box-shadow 0.25s; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } @@ -389,12 +384,15 @@ div.highlight code { } blockquote { - color: var(--blockquote-text-color); margin: 17px 0 0 0; padding-left: 20px; font-style: normal; } +blockquote p { + color: var(--blockquote-text-color); +} + table { width: 100%; border-collapse: collapse; @@ -403,7 +401,8 @@ table { margin-top: 16px; } -th, td { +th, +td { border: 1px solid var(--table-border-color); padding: 4px; } @@ -516,78 +515,91 @@ div.footnotes hr::before { display: inline; } -div.toc { - position: fixed; - top: 50%; - left: calc((100vw + var(--width-max)) / 2); - transform: translateY(-50%); - width: calc((90vw - var(--width-max)) / 2); - max-height: 80vh; - overflow-y: auto; - border: none; - padding: 0; - margin: 0; - z-index: 99; - scrollbar-width: none; - -ms-overflow-style: none; -} - -div.toc::-webkit-scrollbar { - display: none; +/* 容器基础样式 */ +#ms_toc { + border-left: 1px solid #ddd; /* 目录左侧的整体引导线 */ + padding: 0 0 0 1em; /* 只留左侧内边距,给缩进留空间 */ + margin-bottom: 2em; + font-size: 0.9em; + line-height: 1.6; /* 稍微增加行高,更有大纲感 */ } -.toc-nav { - padding: 1.5rem; +#ms_toc strong { + display: block; + margin-bottom: 0.8em; + text-transform: uppercase; + font-size: 0.8em; + color: #666; /* 标题颜色稍微减淡,突出内容 */ + letter-spacing: 1px; } -.toc-nav ul { - list-style: none; - padding: 0; +/* 核心:列表缩进逻辑 */ +#ms_toc nav ul { + list-style: none; /* 彻底移除圆点 */ + padding-left: 0; margin: 0; } -.toc-nav li { - margin: 8px 0; +/* 所有的列表项 */ +#ms_toc nav li { + margin: 0.4em 0; } -.toc-nav a { - display: block; - text-decoration: none; - padding: 0 12px; - transition: all 0.2s ease; - font-size: 0.9rem; - line-height: 1.4; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - max-width: 100%; - color: var(--toc-text-color); +/* 关键:通过层级选择器实现逐级缩进 */ +/* 第一级不需要额外缩进 */ +#ms_toc nav > ul > li { + padding-left: 0; } -.toc-nav a:hover, -.toc-nav a.active { - color: var(--toc-hover-color); +/* 第二级及更深层级:每深入一级,增加 1.2em 的缩进 */ +#ms_toc nav ul ul { + padding-left: 1.2em; + margin-left: 0.2em; /* 与父级垂直线错开 */ } -.toc-nav a::before { - content: ""; +/* 链接样式 */ +#ms_toc a { + text-decoration: none; + color: #555; /* 默认深灰色,更像大纲 */ display: inline-block; - width: 16px; - height: 4px; - background-color: var(--toc-text-color); - border-radius: 16px; - margin-right: 12px; - vertical-align: middle; + transition: color 0.2s ease; } -.toc-nav a:hover::before, -.toc-nav a.active::before { - background-color: var(--toc-hover-color); +#ms_toc a:hover { + color: #0056b3; /* 悬停时变蓝 */ + text-decoration: underline; } -.toc-nav ul ul a::before { width: 12px; margin-right: 16px; } -.toc-nav ul ul ul a::before { width: 8px; margin-right: 20px; } +/* 响应式设计:大屏幕时侧靠 (Desktop) */ +@media (min-width: 1100px) { + #ms_toc_container { + position: fixed; + + /* 使用 calc 动态定位,确保在 600px 正文的右侧 */ + left: calc(50% + 350px); + top: 20%; /* 距离顶部 15%,比 20% 稍微靠上一点 */ + + width: 260px; + max-height: 75vh; /* 限制高度,防止遮挡底部 */ + overflow-y: auto; + z-index: 100; + margin: 0; + } + + #ms_toc { + margin-bottom: 0; + } +} + +/* 移动端或窄屏样式:回归到正文流中 */ +@media (max-width: 1099px) { + #ms_toc { + margin: 2em 0; /* 手机端上下留白 */ + width: auto; + position: static; + border-left: 2px solid #eee; + } +} button.upvote-btn { padding: 0; @@ -616,46 +628,45 @@ ul li:has(input) { @media (prefers-color-scheme: dark) { :root { - --summary-text-color: #c9c6c5; - --body-bg-color: #262624; - --bold-text-color: #eee; - --body-text-color: #e8e6e3; - --text-color-tertiary: #a0a0a0; - --link-color: #6da6ff; - --link-visited-color: #b388ff; - --table-border-color: #999; - --table-th-bg-color: #121212; - --img-border-color: #999; - --code-bg-color: #141414; - --code-text-color: #ddd; - --blockquote-border-color: #7b7b7b; - --blockquote-text-color: #acacac; - --caption-text-color: #aaa; - --toc-text-color: #cac3c3; - --toc-hover-color: #cac3c3; - --music-bg-hover-dark: #525252; - --music-bg-dark: rgba(82, 82, 82, 0.5); - --music-text-secondary: #a3a3a3; + --body-bg-color: #0f0f0f; + --body-text-color: #e6e6e6; + --summary-text-color: #a8a8a8; + --bold-text-color: #ffffff; + --text-color-tertiary: #888888; + + --link-color: #5cc2ff; + --link-visited-color: #9d7eff; + + --code-bg-color: #1a1a1a; + --code-text-color: #d4d4d4; + --blockquote-border-color: #555555; + --blockquote-text-color: #bbbbbb; + + --table-border-color: #444444; + --table-th-bg-color: #1f1f1f; + + --img-border-color: #444444; + --toc-text-color: #aaaaaa; + --toc-hover-color: #5cc2ff; + --color-background: var(--body-bg-color) !important; - --summary-text-color: #a2a2a2; } a { color: var(--link-color); cursor: pointer; - text-decoration: none; } -h3.recent-post-title a { -color: var(--body-text-color); -} + h3.recent-post-title a { + color: var(--body-text-color); + } .post-meta-item svg { filter: invert(1) hue-rotate(180deg); } strong { - font-weight: 650; + /* font-weight: 650; */ } .music-btn { @@ -705,8 +716,6 @@ color: var(--body-text-color); .pagination-link { border: 1px solid #414141 !important; } - - } @media (min-width: 768px) { @@ -741,7 +750,6 @@ color: var(--body-text-color); } div.toc { - display: none; } } @@ -771,11 +779,11 @@ color: var(--body-text-color); } } -.title h1, +.title h1, .title p { margin: 15px 0 !important; font-size: 2.15em !important; - font-weight: 700 !important; + /* font-weight: 700 !important; */ line-height: 1.2 !important; display: block !important; padding: 0 !important; @@ -803,9 +811,3 @@ header { margin-top: 30px; display: block; } - -gnu { - display: none; -} - -</style> |
