From 8ce3bab2b5824fcd64d37e65993bbc06b14e34f0 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Tue, 1 Apr 2025 22:55:53 +0800 Subject: docs(library): new book --- ...216\267\347\232\204\345\244\217\346\227\245.md" | 27 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git "a/content/library/2025/\350\231\232\346\216\267\347\232\204\345\244\217\346\227\245.md" "b/content/library/2025/\350\231\232\346\216\267\347\232\204\345\244\217\346\227\245.md" index 3b42a253..7479b971 100644 --- "a/content/library/2025/\350\231\232\346\216\267\347\232\204\345\244\217\346\227\245.md" +++ "b/content/library/2025/\350\231\232\346\216\267\347\232\204\345\244\217\346\227\245.md" @@ -4,27 +4,46 @@ author: 詹弗兰科·卡利加里奇 genre: 文学 rating: 4 cover: https://image.guhub.cn/uPic/KlJ9zy.jpg -date: 2025-03-30 11:36:38 -draft: true +date: 2025-04-01 22:55:43 +draft: false --- +生活用饥饿、孤独、爱而不得和流离失所将你打倒,可你不挣扎也不站起来,只是用一个还能忍受的姿势静静地看着生活本身,最后用一种你认为得体的方式离开,不去怪谁,也不责怪自己——这是这本书给我的感觉。主人公有些丧气地走完了已经体验完全的一生,给世界留下了很快被遗忘的暴躁、目光和有些淡漠的激情。 + #### 零碎的阅读感受 - 格拉齐亚诺这个人物出现的次数虽然不多,但令我印象深刻。他非常顽固守旧,极其厌恶新事物和年轻人,但自己却是一个烂人,一个**属于旧时代的烂人**。他是个酒鬼也是个烟枪,不如意时只抽好彩香烟,世界上最早的香烟品牌。在外人看来,是妻子、旁人、世界在忍受他,可他也在忍受生活。 - 作者非常善于描写细节,并不是说他的手法如何,而是他的洞察力妙不可言。他没有直接描写恋爱的甜蜜,而是写主角为了宣布一个好消息吊着情人,带她去书店,然后在书架之间偷瞄对方焦急又兴奋的表情——这才是最能让我感到美好的。 +- 作者很擅长在一段故事的最后留下一句令人回味无穷的话,妙不可言。这么看来,这位译者也是值得褒奖的,否则译不出这样的味道。 #### 摘录 +- **一** & **二** + - 我们成为现在的样子,不是因为我们遇见的人,而是因为我们离开的人 +- **三** + - 她会玩一个游戏,那是一种不需要纸牌的游戏,只需要一辆行驶中的黄色汽车。车开过时,玩家需要握着拳头说出一个愿望,直到看见晾晒的衣服、一个留着胡子的年轻人、一条短尾巴狗和一个拄着拐杖的老人,才能松开拳头。 + - 读者是一个正在灭绝的群体,就像鲸鱼、山鹑还有其他野生动物。 - **四** + - 我把自己关在家里,决定不再出门,除非世界向我道歉。 + - “亲爱的,美貌甚至比财富还要管用,因为美貌不需要努力去获取,而是直接来自上帝,这足以让那些俊男靓女成为唯一的、真正的贵族,你不这么觉得吗?” - 这些家伙总是闹分手,却又害怕真的分手。 - 尽管身上穿着价值二十万里拉的西装,但牙齿暴露了他潦倒的真面目。牙齿总是能暴露一个人贫穷的出身,牙齿和眼睛。 - **五** - “唱片是唯一没有被社会进步摧毁的东西。” - 现在大概不是了 - - 自杀未遂之后,人总是需要很多尊严。 - - 就这样,我把他留在那里,任由他用一个可以忍受的姿势看着生活。 + - 自杀未遂之后,人总是需要很多尊严。 + - 就这样,我把他留在那里,任由他用一个可以忍受的姿势看着生活。 - **六** - 在投降的时刻,那些战败者总是要比取胜者优雅,可能是为了获得更好的投降条件,又或者说,当一个人什么都没有时,他会发现表面的东西总是占据着一定分量。 - 她走过太阳暴晒的人行横道,高跟鞋的鞋跟刺穿了我的心。 - “只要不是个笨蛋,就会看起来像个天才。” - “比其他人先死,真是一个罪过。” +- **八** + - 有时我还是会打他们原先的电话,仅仅是为了想象电话铃在空荡荡的房子里回响的声音。 + - 两个人的沉默比一个人的沉默更安静。 +- **九** + - 时间就这样一天天过去,夏天变成了秋天,秋天在走向冬天。 + - 在我周围,人们用我近乎遗忘的口音说话,他们脸色苍白,神情沮丧,等待迎接日常生活的绞杀。 + - 火车开动时,悲伤才开始向我侵袭,我意识到:如果火车朝着另一个方向开去,开往任何地方,对我来说都一样。 +- **十** + - 她只有在属于其他男人时,才真正地属于我——只有当她也变成了剩饭时,他才属于我。 -- cgit v1.2.3 From d19a8560dabb8bc5b98f00b834aa799e3b3109f3 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 13:33:19 +0800 Subject: docs(blog): post --- ...207\252\344\273\245\344\270\272\346\230\257.md" | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 "content/posts/AI-\346\255\243\345\234\250\350\256\251\344\272\272\345\217\230\345\276\227\345\211\215\346\211\200\346\234\252\346\234\211\345\234\260\350\207\252\344\273\245\344\270\272\346\230\257.md" diff --git "a/content/posts/AI-\346\255\243\345\234\250\350\256\251\344\272\272\345\217\230\345\276\227\345\211\215\346\211\200\346\234\252\346\234\211\345\234\260\350\207\252\344\273\245\344\270\272\346\230\257.md" "b/content/posts/AI-\346\255\243\345\234\250\350\256\251\344\272\272\345\217\230\345\276\227\345\211\215\346\211\200\346\234\252\346\234\211\345\234\260\350\207\252\344\273\245\344\270\272\346\230\257.md" new file mode 100644 index 00000000..bbad91ba --- /dev/null +++ "b/content/posts/AI-\346\255\243\345\234\250\350\256\251\344\272\272\345\217\230\345\276\227\345\211\215\346\211\200\346\234\252\346\234\211\345\234\260\350\207\252\344\273\245\344\270\272\346\230\257.md" @@ -0,0 +1,85 @@ +--- +title: AI 正在让人变得前所未有地自以为是 +tags: + - AI + - 认知 + - 编程 +date: 2025-04-02 13:33:10 +draft: false +toc: true +--- + +就我所观察到的,人们对于生成式 AI 和大语言模型的讨论中,最值得注意的,是人工智能与人类智慧的关系,例如「AI 能不能代替人思考?」「AI 的思考能力有没有超越人类?」以及「AI 是否拥有真正的思考能力」的问题。 + +我对 AI 没什么负面想法,就像我对我的书桌没什么负面想法一样。这篇文章是一篇批评,但批评的对象是使用和讨论 AI 的一部分人,不是 AI 本身。如果你不清楚两者的区别,请先阅读《[你批评的只是第三者的诠释方式](/posts/你批评的只是第三者的诠释方式.md)》。 + + + +## 你可以站在巨人的肩膀上,但不应该给自己邀功 + +{{< callout "接下来的文字言辞激烈,或许会有些伤人" "⚠️" >}} + +我观察到的一些人,尤其是已经在某些领域有些许作为,拥有某种称号的人,在接触到 AI 产品且读了一些零零散散的关于 AI 的文章、看了些视频,觉得自己把握住了「AI 时代」[^1]的风向标,把计算机和互联网行业的一面墙(甚至是一块砖)当作自己的一间房(甚至是一幢楼),觉得自己可以付出相对较少的时间、精力和金钱,快速地用 AI 在另一个领域有所作为,甚至**不要脸**地给自己冠上另一个称号。 + +其中最让我愤怒的,就是那些对软件开发毫无了解,没有学过任何相关知识,觉得开发软件就是写代码,所以让 AI 帮自己写代码,就可以把自己称作「程序员」了。他们的无知令人发笑,他们觉得一个计算机学生在大学一年级干的事情就是这个行业内所有人做的绝大部分工作。 + +不懂得软件设计的基本原则,不懂得模块化设计,不懂得什么是高内聚低耦合,不懂得任何一种软件过程模型,不懂得需求分析和需求的灵活性以及如何在设计软件时就考虑到灵活性设计,更不懂得软件工程背后的思想,觉得自己花了钱、订阅了 AI 产品,没有一点理智消费者的基本素养就相信了过度粉饰的广告,觉得一个技术等同于实习生的不是人的东西,加上技术和知识储备都不如机器的自己,就能开发出真正的好软件,实际上,这两东西拼起来都凑不出一个好程序员。我在他们言谈和行为中看到的,除了无知,还有一种我怎么也想不明白的傲慢和自负。 + +你他妈的不仅自己在丢人现眼,还侮辱了所有的程序员。 + +你可以用 Cursor 这样的工具把你的好想法[^2]变成现实,但别把自己当成程序员,更别他妈的说,因为会用 AI,自己早上是程序员,下午是作家,晚上是自媒体人这种自负得令人作呕的话了,请停止侮辱更多的群体。你不过是个付了钱,连提示词都不一定写得清楚的用户而已。 + +## 砖头与房子 + +借用梦妮在她的一期播客节目《[普通人想获得点靠谱的知识,怎么还是这么难?](https://podcasts.apple.com/cn/podcast/%E7%A2%B3%E5%9F%BA%E7%94%9F%E7%89%A9%E7%94%9F%E5%AD%98%E6%8C%87%E5%8D%97/id1707385930?i=1000681970666)》作的比喻,在这一节,我想讨论科技和社会发展中的「砖头」与「房子」——它们是什么?为什么要区分它们?为什么有的人不能区分它们,要把砖头说成是房子? + +如果有人发现每天喝咖啡,能在某些条件下预防糖尿病,这样的科学研究就是「砖头」。如果有更多的人做了类似的研究,发现每天喝咖啡在很多条件下都能预防糖尿病,那他们的「砖头」兴许就建成了一面「墙」。如果有更多的「墙」被建立起来,发现每天喝咖啡不仅能预防糖尿病,还有其他的许多好处,证明了咖啡是非常健康的饮品,当然,也有一些喝咖啡的坏处,被这样的「墙」充分证明了,我们或许就能说,这些科学家和研究员,共同地建成了一栋「房子」。 + +为了宣传,或者出于某种「娱乐精神」,或者就是纯粹地蠢,有的人会把「砖头」当作「房子」。当有科学研究得出了「每天喝咖啡可能预防糖尿病」的结论时,他们便兴奋起来,手舞足蹈地按起键盘来报道、张开大嘴喷着唾沫来宣传,也不读研究报告的内容,完全不看文章提到的研究局限性,把「可能」两个字去掉,甚至把「每天」这个条件也去掉了,仿佛要把「咖啡」吹成治疗糖尿病的神药才行。 + +对生成式 AI 也是一样,当有人听到了这些手指在键盘上乱舞、张着大嘴的蠢蛋,他们自己也变成了蠢蛋,觉得那个正在批量产出冗余代码,甚至会忘记自己几秒钟之前写过的东西,遇到从没见过的问题就无能为力的计算机程序,简直是能彻底改变时代的发明,并且自己是极大的受益者。 + +无知者的夸张反应是最大的问题。生成式 AI 或许会成为改变世界的摩天大楼,但他目前顶多是面墙,借助娱乐至死的人们的口水,被吹上天了而已。就算真的了解 AI 的现状,畅想未来 AI 会怎样改变人类也只是科幻小说作家的工作,去干你该干的事情。 + +如果把砖头当成房子,就等着在一个风雪交加的夜晚冻死在砖头旁边吧,不过,更可恶的是,在你死之前,还拉了一大群和你一样无知的人下水。 + +## 别指望 AI 能帮你思考 + +**那些拿 AI 当作自己的第二大脑的人,很可能连第一个大脑都没好好用过**。如果让 AI 生成了一大串回答,仅因为「我觉得很有道理啊」就把它视为可以用自己的嘴复述出来的*思想*(尽管很多时候都是复制粘贴),那这话到底是 AI 说的还是你说的,你到底有没有思考,**你的脑子到底有没有动过**? + +继续这个话题之前,我不得不停下来捋一捋「思考」到底是什么。 + +[一位大学教授](https://hilariusbookbinder.substack.com/p/the-average-college-student-today)在评价当今的大学生时,非常生动地描述了他所认为的大部分学生,是如何完成他交付的阅读任务的: + +> The most charitable interpretation is that they looked at some of the words, didn’t understand anything, pretended that counted as reading, and returned to looking at TikTok. +> +> 最友善的解释是,他们看了一些字,什么也没懂,装作那就算是自己读了,然后回去刷抖音了。 + +其实我觉得他说的不只是大学生,说的也不止是阅读。有的人面对一个问题,**脑子里冒出来一个想法,不用思维去判断其逻辑连贯性,也不用情感去判断其价值取向与自己是否契合,仅仅是觉得这个想法出现的方式、被阐述的方式让自己觉得很有道理,就觉得自己思考了**,美其名曰「通过思考得出了结论」。 + +尽管洞察式的解决问题有不小的作用,但仅仅依靠灵光乍现而不关注其真实性、可行性,也不设想可能性,是不可靠的。更重要的是,这样的思维过程根本算不上思考,最多只能算「运气好」。 + +使用 AI 帮助自己“思考”,其实就是把面对问题时「冒出想法」的概率事件变成了机器计算得出的必然事件,这个过程就算没有 AI 参与也不能算得上思考。 + +如果一个人习惯并善于通过推理和价值取向的判断得出结论,或者是在得到某个想法时用相似的判断方式进行初步的检验,那么他在使用大语言模型时,想必也多半不会抛弃原先的思维方式。而那些觉得 AI 说得有道理,于是欣然接受,甚至当作是自己想法的人,显然不属于此类。 + +一个人若是觉得生成式 AI 为自己打开了新世界的大门,能帮助自己思考,那他多半在使用 AI 之前就没有真正地思考过,因为只有不知道思考是什么样子的人,才会觉得直接阅读 AI 给出的结论能算作思考。[^3] + +## 无辜的 AI 与无知的人 + +今年一月发布的[一篇研究报告](https://journals.sagepub.com/doi/10.1177/00222429251314491)发现,对 AI 了解越少的消费群体,对 AI 产品的接受程度更高(“lower literacy-higher receptivity”)。那些了解算法、训练数据和计算模型背后原理的人,不会觉得科技是什么神秘事物,而其他人,则更有可能觉得 AI 像是魔法一样神秘,进而吸引他们去使用 AI,把 AI 当做法器一样,以为可以带着它去屠龙了,*小心别被路上的小怪灭了*。 + +用 AI 算命,把 AI 当作心理咨询师,就是这种无知的具体表现。就连 AI 所擅长的编程工作[^4],真正的程序员都还在担心 AI 会不会让自己变成文盲,而另一些可笑的人,做着相反的事情,还认为 AI 能让自己变得更聪明,能在一夜之间换一个职业,肆无忌惮地生产垃圾产品污染行业。 + +请认识到 AI 只是一种工具。你并不会因为学会了如何使用 Photoshop 就变成图像处理大师,更何况这个版本的 Photoshop 还只有一个对话框让你输入文字,这是多么反人类的 UI 设计! + +也请认识到,AI 是一个计算机程序。对于一套算法来说,固定的输入总是得到固定的输出,AI 只不过有大量的训练数据输入、你的提示词输入和对话的前后文而已。你的想法作为提示词输入程序,可能连总体输入的 0.01% 都不到。而 AI 生成结果的过程,在底层,不过是大量的概率运算。AI 之所以不能一次性给你答案,是因为它在通过计算不断预测下一个词最有可能是什么。**一味地服从统计学规律,能被你称作思考吗?** + +而那些鼓吹用 AI 代替全部或部分思考的无知者,又引发了另一部分人对 AI 的负面情绪,作为一种中立的技术[^5],AI 真的很无辜。 + + +[^1]: 尚不谈生成式 AI 兴起的这几年时间能不能称得上一个「时代」 +[^2]: 前提是你真的有好想法。**他妈的别再做那些毫无创新的笔记软件和 ToDo 软件了** +[^3]: 我强烈怀疑这些人在阅读 AI 生成的内容时都是跳读且不求理解的。 +[^4]: 请注意编程和软件工程的区别,此外,我认为 AI 无法独立编写完整的项目,至少无法编写设计优良的完整项目。现在还没有能真正将人类语言作为编程语言的 AI 产品出现,就算有,那也仅仅是作为程序设计语言而已,和真正的软件开发还差远了。 +[^5]: 另一种观点是技术都有倾向,不存在中立的技术,但这是另一个话题了 -- cgit v1.2.3 From 8a1bde960bf31c52327a17fbd9df0bdfa23b61c4 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 13:46:07 +0800 Subject: fix: gap between title and summary is too long --- layouts/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/index.html b/layouts/index.html index 1d1c9347..99323bee 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -12,17 +12,17 @@ -

+ {{ .Title }}

+ {{ with .Params.categories }}
- {{ with .Params.categories }} {{ . }} - {{ end }}
+ {{ end }} {{ if $firstPost }} -- cgit v1.2.3 From 2b546a57852cacbfb3f204d5b552a039440478fb Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 13:54:25 +0800 Subject: fix: console error when post nav is not present --- layouts/partials/components/global-search.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/partials/components/global-search.html b/layouts/partials/components/global-search.html index c1051ee4..9311416d 100644 --- a/layouts/partials/components/global-search.html +++ b/layouts/partials/components/global-search.html @@ -107,8 +107,8 @@ }); const searchInstruction = document.getElementById("search-instruction"); - searchInstruction.addEventListener("click", (event) => { - turnOn(); - }); + if (searchInstruction) { + searchInstruction.addEventListener("click", turnOn); + } })(); -- cgit v1.2.3 From e5dc4c83ff8dcf40af4f9d1dc28cf70b885796b6 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 13:54:44 +0800 Subject: refactor: simply card page structure --- layouts/cards/section.html | 40 +++++++++++------------ layouts/cards/single.html | 79 ++++++++++++++++++++++------------------------ 2 files changed, 57 insertions(+), 62 deletions(-) diff --git a/layouts/cards/section.html b/layouts/cards/section.html index 380faf28..1067c629 100644 --- a/layouts/cards/section.html +++ b/layouts/cards/section.html @@ -1,27 +1,27 @@ {{ define "main" }}
- {{ partial "header.html" . }} -
- {{- range .Pages }} -
-
-

- {{ .Title }} -

- {{- if .Params.tags }} -

- {{- range .Params.tags }} - #{{ . }} - {{- end }} -

- {{- end }} -
+ {{ partial "header.html" . }} +
+ {{- range .Pages }} +
+
+

+ {{ .Title }} +

+ {{- if .Params.tags }} +

+ {{- range .Params.tags }} + #{{ . }} + {{- end }} +

+ {{- end }} +
-
- {{ .Summary }} +
+ {{ .Summary }} +
-
{{- end }}
diff --git a/layouts/cards/single.html b/layouts/cards/single.html index 2eb274f3..58f712d3 100644 --- a/layouts/cards/single.html +++ b/layouts/cards/single.html @@ -1,51 +1,46 @@ {{ define "main" }} -
+
{{ partial "header.html" . }} -
-
- -
-

{{ .Title }}

- {{- if .Params.tags }} -

- {{- range .Params.tags }} - #{{ . }} - {{- end }} -

- {{- end }} -
-
- {{ .Content }} -
+
+ +
+

{{ .Title }}

+ {{- if .Params.tags }} +

+ {{- range .Params.tags }} + #{{ . }} + {{- end }} +

+ {{- end }}
+
+ {{ .Content }} +
+
- {{- /* 查询引用了这个卡片的文章 */ -}} - {{- $currentCard := .File.BaseFileName -}} - {{- $referencedBy := slice -}} + {{- /* 查询引用了这个卡片的文章 */ -}} + {{- $currentCard := .File.BaseFileName -}} + {{- $referencedBy := slice -}} - {{- range .Site.Pages }} - {{- if and (isset .Params "related_cards") (in .Params.related_cards $currentCard) }} - {{- $referencedBy = $referencedBy | append . }} - {{- end }} + {{- range .Site.Pages }} + {{- if and (isset .Params "related_cards") (in .Params.related_cards $currentCard) }} + {{- $referencedBy = $referencedBy | append . }} {{- end }} + {{- end }} - {{- /* 如果有文章引用这个卡片,就显示它们 */ -}} - {{ if gt (len $referencedBy) 0 }} -
-

引用了本卡片的文章

-
    - {{- range $referencedBy }} -
  • - {{ .Title }} -
  • - {{- end }} -
-
- {{ end }} -
+ {{- /* 如果有文章引用这个卡片,就显示它们 */ -}} + {{ if gt (len $referencedBy) 0 }} +
+

引用了本卡片的文章

+
    + {{- range $referencedBy }} +
  • + {{ .Title }} +
  • + {{- end }} +
+
+ {{ end }}
{{ end }} -- cgit v1.2.3 From 017adb4b56abc6816f0108ca866d44f7d0a6f93e Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 13:57:39 +0800 Subject: fix: book cover too large on mobile --- assets/css/components/_library.scss | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/assets/css/components/_library.scss b/assets/css/components/_library.scss index 0031df12..ee17799a 100644 --- a/assets/css/components/_library.scss +++ b/assets/css/components/_library.scss @@ -88,7 +88,8 @@ } #book-page &, #post-content & { - margin: 0; + margin: 0 auto; + max-width: 50%; @media screen and (min-width: 768px) { display: inxwline-block; float: left; @@ -97,3 +98,7 @@ } } } + +#book-page { + margin: 1rem 0; +} -- cgit v1.2.3 From 139e2aeaf35c73e32b746f7373a817313744ab1e Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 14:11:29 +0800 Subject: feat: card pagination --- assets/css/components/_card.scss | 16 ++++++++++++++++ layouts/cards/section.html | 19 ++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/assets/css/components/_card.scss b/assets/css/components/_card.scss index 3735c861..9dd10d32 100644 --- a/assets/css/components/_card.scss +++ b/assets/css/components/_card.scss @@ -66,3 +66,19 @@ } } } + +.card-list { + .pagination { + display: flex; + @media screen and (min-width: 768px) { + padding: 1rem; + } + .pagination-prev, .pagination-next { + font-size: 2rem; + padding: 0.2rem 0.6rem; + text-decoration: none; + background-color: var(--block-background-color); + border-radius: 50%; + } + } +} diff --git a/layouts/cards/section.html b/layouts/cards/section.html index 1067c629..5aaed0c3 100644 --- a/layouts/cards/section.html +++ b/layouts/cards/section.html @@ -2,7 +2,9 @@
{{ partial "header.html" . }}
- {{- range .Pages }} + {{- $cards := .Site.GetPage "section" "cards" }} + {{- $paginator := .Paginate $cards.Pages 8 }} + {{- range $paginator.Pages }}
@@ -22,7 +24,18 @@ {{ .Summary }}
- {{- end }} -
+ {{- end }} + + + +
{{ end }} -- cgit v1.2.3 From 27af269ad0a26e858217b71ba5d4697bdb791ae8 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 14:24:40 +0800 Subject: feat: double-click to turn off global search also clearer comment --- layouts/partials/components/global-search.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/layouts/partials/components/global-search.html b/layouts/partials/components/global-search.html index 9311416d..5b158abe 100644 --- a/layouts/partials/components/global-search.html +++ b/layouts/partials/components/global-search.html @@ -106,9 +106,15 @@ } }); + // trigger by clicking instruction text + // to allow mobile users to search const searchInstruction = document.getElementById("search-instruction"); if (searchInstruction) { searchInstruction.addEventListener("click", turnOn); } + + // double-click to turn off search + // in case esc and ctrl/cmd+k cannot be used + search.addEventListener("dblclick", turnOff); })(); -- cgit v1.2.3 From 2e82fddd9524729f65cbd86c1fd4b2fa534af76b Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 14:30:18 +0800 Subject: perf: compress header image --- static/header.png | Bin 63164 -> 58681 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/static/header.png b/static/header.png index 8b81d06f..5f867393 100644 Binary files a/static/header.png and b/static/header.png differ -- cgit v1.2.3 From 0b221b7f8f0ecb006fc9f17e01e7689a3cc3a816 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 2 Apr 2025 14:33:40 +0800 Subject: perf: load fancybox only in single pages --- hugo.yaml | 1 - layouts/partials/scripts.html | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hugo.yaml b/hugo.yaml index edf6fa84..b459c002 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -85,7 +85,6 @@ params: extraCSSFiles: - /pagefind/pagefind-ui.css externalJSFIles: - - /js/fancybox.umd.js - /js/littlefoot.js - /pagefind/pagefind-ui.js footerLinks: diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index b22c8989..dbf6aee0 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -8,9 +8,12 @@ {{- end }} -{{- $fancybox := resources.Get "js/fancybox.js" | minify }} -{{- if $fancybox }} - +{{- if or (in .Section "posts") (in .Section "cards") (in .Section "library") (eq .Type "single") }} + + {{- $fancybox := resources.Get "js/fancybox.js" | minify }} + {{- if $fancybox }} + + {{- end }} {{- end }}