aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archetypes/weekly.md30
-rw-r--r--content/categories/随笔/_index.md3
-rw-r--r--content/posts/weekly/1.md115
-rw-r--r--layouts/partials/style.html15
-rw-r--r--layouts/shortcodes/music.html37
-rw-r--r--layouts/weekly/rss.xml85
-rw-r--r--static/images/apple-music.pngbin0 -> 2819 bytes
-rw-r--r--static/images/netease-music.pngbin0 -> 1188 bytes
-rw-r--r--static/images/spotify.pngbin0 -> 2599 bytes
9 files changed, 278 insertions, 7 deletions
diff --git a/archetypes/weekly.md b/archetypes/weekly.md
new file mode 100644
index 0000000..c9a6bbe
--- /dev/null
+++ b/archetypes/weekly.md
@@ -0,0 +1,30 @@
+---
+date: '{{ .Date }}'
+title: '回声周刊 Vol.'
+categories: 回声周刊
+issue:
+tags:
+ -
+draft: true
+---
+## 〰︎ 声波
+
+{{< music
+ cover=""
+ title=""
+ artist=""
+ apple=""
+ netease=""
+ spotify=""
+>}}
+
+## 🕮 声源
+
+###
+
+> 🔗
+>
+>
+
+## ♇ 所在
+
diff --git a/content/categories/随笔/_index.md b/content/categories/随笔/_index.md
new file mode 100644
index 0000000..7df7597
--- /dev/null
+++ b/content/categories/随笔/_index.md
@@ -0,0 +1,3 @@
+---
+title: 随笔
+---
diff --git a/content/posts/weekly/1.md b/content/posts/weekly/1.md
new file mode 100644
index 0000000..42373da
--- /dev/null
+++ b/content/posts/weekly/1.md
@@ -0,0 +1,115 @@
+---
+date: '2025-12-14T10:48:37+08:00'
+title: '回声周刊 Vol.1'
+categories:
+ - 回声周刊
+issue: 1
+tags:
+ - AI
+ - 写作
+ - 上岸
+ - 读书
+ - 日本文学
+draft: false
+---
+> 这里是回声周刊,分享我这周读过的文章或书籍,分享近期发生的大事小事,每周日更新。如果你对这个周刊感兴趣,可以 [订阅周刊](/categories/%E5%9B%9E%E5%A3%B0%E5%91%A8%E5%88%8A/atom.xml) 或加入 [TG频道](https://t.me/glowisle)。
+
+## 〰︎ 声波
+
+{{< music
+ cover="https://images.glowisle.me/shuraba.jpeg"
+ title="修羅場"
+ artist="東京事変"
+ apple=""
+ netease="https://music.163.com/#/song?id=838488"
+ spotify="https://open.spotify.com/track/0z2xgbxkLvrpzBZDtYIIXS?si=0b70a6312da04833&nd=1&dlsi=218d57bf19ec4da7" >}}
+
+東京事変的水平一如既往地高,前奏非常抓耳,在听惯了 Adult ver. 的劲爆贝斯后听到层次感如此丰富的前奏甚感惊喜。
+
+## 🕮 声源
+
+### 与其直接问 AI 答案,不如请 AI 找到研究这些问题最好的老师
+
+> 🔗 [文章链接](https://www.owenyoung.com/blog/ai-expert-guidance/)
+
+文章简述了作者自己和群友聊天时探讨的一种使用AI的新方式:让
+AI扮演MIT或哈佛的博士生,通过询问在什么地方可以详细学习某一主题,让AI帮我们指出学习路径,而非直接询问答案,这样只会获得缺乏深度的中庸的解释。
+
+我的看法是,深度和难度是成正比的,因此当你尝试用这个方式涉足自己不熟悉的领域时,过于专业的文章会让门槛和上手难度指数级上升,如果适当优化提示词,应该能探索出一条新手友好的路径。这个方法确实对搭建系统性的学习路径有指导意义。
+
+### 一台打印机,干掉我所有稍后读软件
+
+> 🔗 [文章链接](https://liangmouyin.com/250608-printer-read-later/)
+
+作者介绍了如何把网络上的文章打印成更纸质阅读的样子,提供了打印成小册子(Booklet)和调整格式及装订的方法。
+
+我尝试了一下,复制文章内容到Obsidian,然后导出为PDF,这一步的效果不错,但我没有在Linux上找到合适的打印程序,本着能不折腾就不折腾的原则,我切换到了Windows上使用WPS Office打印,软件可以直接选择打印为Booklet。
+
+![打印成品](https://images.glowisle.me/9DABD36CFFC8E3E29713EF175D961924.webp)
+
+看起来还是很不错的,可以在Obsidian设置中调整一下字体对握持阅读更友好。至于装订,用曲别针别起来就可以了。现在需要考虑的问题是纸张和墨水的成本……不过费了这点小钱,保护了眼睛未必不值。
+
+### 只为陌生人
+
+> 🔗 [文章链接](https://www.xianrenlife.com/2025/12/only-for-strangers.html)
+
+这篇文章阐述了「只为陌生人」的写作观,我非常赞同文章的这句话:
+
+> 陌生人在网络上的品评,看过笑笑便罢;可熟人的否定,往往更有杀伤力。
+
+从另一个角度想,熟人的评判之所以更有杀伤力,在评价者与被评价者之间都有那层感情上的因素。我个人认为大部分的「求评价」实际上不一定是真的需要评价,而是「求夸奖」。举个例子就是:网络上有些所谓画师,把自己的作品出来求评价,结果被人扼要地指出画得不对的地方,就心理防线崩塌,删贴骂人。通常情况下请求熟人的夸奖比请求陌生人的夸奖容易得多,但为什么伤害更大,就在评价者在「熟人」这层关系下的措辞了。
+
+既然限定了熟人这种关系,那也就表明「话可以敞开说」,这与被评价者的需求其实是错位的,当评价者按照自己的看法,真的作出评价后,就对被评价者的心灵造成了暴击,这就是杀伤力的来源。
+
+### 也许岸上什么都没有:论虚幻的目标
+
+> 🔗 [文章链接](https://stephenleng.com/cn/perhaps-there-is-nothing-on-shore-on-illusory-goals/)
+
+作者以自己高中时期对虚幻的梦想的经历为引,探讨当代年轻人关于「上岸」和虚幻的目标的困境。
+
+我认为在人生的早期阶段,尤其是学生阶段,憧憬一个虚幻的目标是必要的。一个理想化的,或抽象或朦胧的目标,明显比残酷又骨感的真实更适合作为动力的源头,或者说作为一个盼头。这和某些惯用的宏大叙事几乎是一个道理。
+
+作者提到自己高二的暑假去北京旅行,专程去了一趟他梦想的中国人民大学,不知道他见到自己梦想之中的纯粹之地是什么感想,但我想到了《金阁寺》中的一句话,是主人公沟口第一次看见金阁时的心理活动:
+
+> 所谓美,难道竟是这样不美的东西吗?
+
+然而沟口后续在心理上对金阁的美进行了修正,例如「自己的审美水平还不够」或「金阁把自己的美藏起来了」此类的想法,让他维持着对美的幻想。
+
+了解得太多,就会导致顾虑得太多,顾虑得太多,就会举步维艰。梦想对我来说是一个恐怖的东西,到底有几个人能见到金阁?又有多少人在见到金阁不需要照着自己幻想中的美而修正?
+
+对于现阶段即将面临的中考,我也在憧憬着某个遥不可及,也未曾见过的学校。我也不愿意去见,被现实玷污后它的纯洁性就崩坏了。
+
+## ♇ 所在
+
+### 与过去挥手
+
+最近整理网站的分类,顺带着回顾了以前写的几乎所有文章,我发现大部分的文章都有以下的问题:
+
+- 堆砌词藻,犯文青病
+- 过于矫情,完成度低
+- 结构松散,意味不明
+- 观点偏激,态度傲慢
+
+这几个问题都比较显著,而且那些文章竟然一直挂在网站上,我愿称为那些为「黑历史十万字」……
+
+当然,能意识到有这些问题,说明我的审美水平和写作能力还是有长进的,为了给以后的自己留下一个参考标准,我没有删除那些文章,而是移动到了「往昔」这个分类,并且不再展示在主页上,留下来的都是自认为写得还能看的文章,以及实用类文章。
+
+之前我对写作的态度从「为写而写」到「想写而写」,我认为现在正处于「想写而写」与更高水平的分界线上的「渡劫期」。
+
+### 读不完了!
+
+![四本新书](https://images.glowisle.me/0FC32FAE5CECCA8D8F0B69ED25CD97D1.webp)
+
+这个月又买了四本书,最上面的三岛由纪夫的两本是在阅读计划之内的。而下面村上春树的两本是在B站看[林少华老师](https://space.bilibili.com/1633547470?spm_id_from=333.337.0.0)被讲书吸引的。除了书的内容之外,一个一边说着略带口音的普通话的老爷爷译者也让我倍感亲切,加上之前也有人说我写的东西有股村上春树的味,就下单了《且听风吟》和《寻羊冒险记》这两本被推荐为适合入门的书。
+
+到手了才发现我上学基本没时间读书啊!
+
+### 新建了博客的Telegram频道
+
+我注意到很多博客都有自己的Telegram频道,在里面观察一段时间后,发现这是一个发布短想法和互动的好地方,于是我也建立了一个频道(在文章开头提到了),并且使用[BroadcastChannel](https://github.com/miantiao-me/BroadcastChannel)这个项目为频道在Cloudflare上部署了[网页版](https://channel.glowisle.me/),这样不方便使用TG的朋友也可以查看频道内容。
+
+关于为什么要叫做「央山常量池」,灵感来源于鲁迅的《且介亭杂文》拆分汉字,我把「映屿」拆分成了「日央山与」,选取了中间连贯的两个字。至于常量池,因为一直发文字内容,让我想到了Java中存放字面量的常量池,而在博客正文中也可能经常引用频道里的内容,所以常量池就是最佳选择。
+
+如果在读本篇周刊的你有TG,请快点[加入](https://t.me/glowisle/)吧,我像个疯子,六天在频道里自言自语了八条……
+
+下周日见,祝你有充满ECHO的一周!👋
diff --git a/layouts/partials/style.html b/layouts/partials/style.html
index 8828dbd..d49bf2c 100644
--- a/layouts/partials/style.html
+++ b/layouts/partials/style.html
@@ -30,6 +30,14 @@
0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
+ nav a,
+ h1.post-title a,
+ .category-link,
+ .blog-posts li a {
+ text-decoration: none !important;
+ }
+
+ nav a:hover,
.post-title a:hover,
a.item-link:hover,
.blog-posts a:hover {
@@ -304,13 +312,6 @@
border: 1px solid #414141 !important;
}
- nav a,
- h1.post-title a,
- .category-link,
- .blog-posts li a {
- text-decoration: none !important;
- }
-
a {
font-weight: 500 !important;
}
diff --git a/layouts/shortcodes/music.html b/layouts/shortcodes/music.html
new file mode 100644
index 0000000..583b0b0
--- /dev/null
+++ b/layouts/shortcodes/music.html
@@ -0,0 +1,37 @@
+<!-- 这里的代码来自 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/weekly/rss.xml b/layouts/weekly/rss.xml
new file mode 100644
index 0000000..8550683
--- /dev/null
+++ b/layouts/weekly/rss.xml
@@ -0,0 +1,85 @@
+{{- /* 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 = $pctx.RegularPages }}
+{{- else }}
+{{- $pages = $pctx.Pages }}
+{{- end }}
+{{- $limit := .Site.Params.RSS.pageLimit }}
+{{- if ge $limit 1 }}
+{{- $pages = $pages | first $limit }}
+{{- 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/static/images/apple-music.png b/static/images/apple-music.png
new file mode 100644
index 0000000..834dc36
--- /dev/null
+++ b/static/images/apple-music.png
Binary files differ
diff --git a/static/images/netease-music.png b/static/images/netease-music.png
new file mode 100644
index 0000000..6f26d9b
--- /dev/null
+++ b/static/images/netease-music.png
Binary files differ
diff --git a/static/images/spotify.png b/static/images/spotify.png
new file mode 100644
index 0000000..abc5f12
--- /dev/null
+++ b/static/images/spotify.png
Binary files differ