<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on 睡醒了再写</title><link>https://lingzuian.top/posts/</link><description>Recent content in Posts on 睡醒了再写</description><generator>Hugo -- 0.159.2</generator><language>zh-cn</language><copyright>2026 睡醒了再写 | 备案号：湘ICP备2026005470号</copyright><lastBuildDate>Sun, 22 Mar 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://lingzuian.top/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>小楷毛笔使用与保养指北</title><link>https://lingzuian.top/posts/guide_to_using_and_maintaining_small_regular_script_brushes/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0800</pubDate><guid>https://lingzuian.top/posts/guide_to_using_and_maintaining_small_regular_script_brushes/</guid><description>&lt;h1 id="小楷毛笔使用与保养指北"&gt;小楷毛笔使用与保养指北&lt;/h1&gt;
&lt;h2 id="写在前面"&gt;写在前面&lt;/h2&gt;
&lt;p&gt;毛笔的保养，说到底是个材料学问题：要在“保持性能”和“日常耐用”之间找到平衡。之所以值得专门写一篇，是因为小楷笔确实不便宜。如果用的是便宜笔，那其实不用太讲究，把这些当封建陋习跳过就好。&lt;/p&gt;
&lt;p&gt;网上关于毛笔使用的信息，要么良莠不齐，要么没有系统整理，甚至常常出现完全相反的说法，还夹杂着一些诡异的仪式感。作为一个踩过坑的人，我结合自己的使用经验和查阅的资料，整理了一些实用向的方法，希望对刚入门的朋友有一点帮助。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本文主要面向书法或毛笔使用的入门者。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一开笔"&gt;一、开笔&lt;/h2&gt;
&lt;p&gt;用温水泡一下，通常笔毛很快就散开了。&lt;br&gt;
有一种说法是“不能用手按开”，但我以前都是直接蘸墨怼开，也没出过什么问题。不过，用手强行按开确实会轻微损伤毛料，所以综合建议是：&lt;br&gt;
先用温水泡，等它自己慢慢散开。如果几分钟还没散，可以轻轻把笔头按到容器底部，或者拿出来用手指轻轻搓开。&lt;/p&gt;
&lt;p&gt;总之，不用太暴力，也不用太温柔——它是工具，实用为主。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二第一次蘸墨"&gt;二、第一次蘸墨&lt;/h2&gt;
&lt;p&gt;这个环节争议很大，甚至有不少完全相反的说法。&lt;/p&gt;
&lt;p&gt;有人说第一次不要蘸满墨，只蘸笔尖部分，让笔根保持原色，理由是“蘸到笔根会损伤毛笔”。这个说法有一定道理，但其实可以从侧面蘸——把笔放平，滚一圈就好。&lt;/p&gt;
&lt;p&gt;我还记得以前看过一篇论文，拿墓室壁画里“笔尖黑、笔根白”的画法当论据。但我觉得这不太严谨：壁画是艺术表现，用半黑半白来表示“这是一支蘸了墨的笔”，就像用残影表示快速运动一样，是技法，不一定是写实。&lt;/p&gt;
&lt;p&gt;从实用角度来说，毛笔在设计时本身就考虑了储墨功能，比如“鸡距笔”就是特意做大笔肚来储墨，以弥补小楷笔储墨量小的短板。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;所以我的结论是：第一次蘸墨，就大大方方蘸满，彻底蘸满，再刮掉多余的墨。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="三短间隔书写的保存"&gt;三、短间隔书写的保存&lt;/h2&gt;
&lt;p&gt;这是现代书法爱好者面临的最大问题——毛笔不再是日常书写工具，大部分人练字是隔一天甚至几天才写一次。这种情况下怎么保存，直接决定了毛笔的寿命。&lt;/p&gt;
&lt;p&gt;主要有两种方法：&lt;/p&gt;
&lt;h3 id="湿法"&gt;湿法&lt;/h3&gt;
&lt;p&gt;指不洗笔，把笔放在潮湿环境中保持墨的湿润。现在网上甚至有专门的保湿容器，把水和毛笔封在一起。&lt;br&gt;
考古界有句话叫“干千年，湿万年，不干不湿只半年”，但我们的日常使用恰恰相反。湿法只适合很短时间的间隔，比如吃个饭再回来继续写。如果长时间这样保存，毛料容易腐烂，加上部分墨汁变质，还会散发出一种……很特别的味道。&lt;br&gt;
所以，对一般练字的人来说，&lt;strong&gt;我不建议用湿法&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="干法"&gt;干法&lt;/h3&gt;
&lt;p&gt;指写完就彻底洗笔，再晾干。&lt;br&gt;
缺点也很明显：频繁洗笔（尤其是按到底清洗）会损伤笔毛，而且反复干湿交替，对笔的性能也不好。&lt;br&gt;
但两害相权取其轻，&lt;strong&gt;我还是支持干法&lt;/strong&gt;。具体操作如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;写完后用流水冲洗笔头表面的墨；&lt;/li&gt;
&lt;li&gt;在流水下轻轻按压笔头，挤出大部分残留墨汁；&lt;/li&gt;
&lt;li&gt;用纸巾吸掉多余水分；&lt;/li&gt;
&lt;li&gt;平放保存。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;顺便说一句，关于“怎么放”也有争议。常见的笔架是头朝下悬挂，但也有人说这样水汽会向上渗入笔根，导致腐烂。我个人觉得这说法有点玄，但保险起见，&lt;strong&gt;平放在笔帘里&lt;/strong&gt;确实是最稳妥的。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="四掉毛"&gt;四、掉毛&lt;/h2&gt;
&lt;p&gt;毛笔掉毛是正常现象，一根一根掉属于正常磨损。发现有毛呲出来，直接用指甲捏住拔掉就好。&lt;br&gt;
我在网上买笔时收到过一把小钢梳，据说是用来梳笔的，可以把藏在笔根里的陈墨结块和碎毛刷出来。我试了一下，对老笔挺管用，新笔用不上——如果平时保养得当，笔根里本来就不会积太多陈墨和碎毛。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="五长期保存"&gt;五、长期保存&lt;/h2&gt;
&lt;p&gt;这部分我其实不太常用，因为手头的笔不多，很少需要长期保存。&lt;br&gt;
不过方法反而简单：把笔尽量洗干净，吸干水分，把毛聚拢、笔尖收好。不需要像新笔那样上封笔胶（就是刚到手时让笔毛变硬、笔锋收拢的那层东西）。干了之后毛会散开，像个小刷子，正常收好就行。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;2025.11.11&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>广播剧剧本 ：《两年生》</title><link>https://lingzuian.top/posts/the_two_year_old_plant/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0800</pubDate><guid>https://lingzuian.top/posts/the_two_year_old_plant/</guid><description>&lt;h1 id="广播剧剧本-两年生"&gt;广播剧剧本 ：《两年生》&lt;/h1&gt;
&lt;p&gt;人物：&lt;/p&gt;
&lt;p&gt;· 林溪——女，大学生，心思细腻
· 沈屿——男，同学，性格爽朗&lt;/p&gt;
&lt;p&gt;（注：“溪”有流水般的柔韧与绵长；“屿”是海中的孤岛，有静默陪伴的意味。两人名字恰好呼应了剧本中关于“陪伴”与“生命”的主题。）&lt;/p&gt;
&lt;p&gt;编者个人的背景音乐建议：《亚麻色头发的少女》（德彪西）、《月光》（德彪西）&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;第一场&lt;/p&gt;
&lt;p&gt;【音效】：虫鸣，远处偶有夜跑的人经过。翻书声。&lt;/p&gt;
&lt;p&gt;林溪：（嘟囔）嗯？&lt;/p&gt;
&lt;p&gt;【音效】：平板“滴——”一声，电量低提示。&lt;/p&gt;
&lt;p&gt;林溪：没电了。（合上书）行吧……&lt;/p&gt;
&lt;p&gt;【音效】：掏出手机，打字声。&lt;/p&gt;
&lt;p&gt;林溪：（自言自语）一月能种点什么……直接寄到外婆店里。&lt;/p&gt;
&lt;p&gt;沈屿：（画外音，由远及近）林溪？&lt;/p&gt;
&lt;p&gt;林溪：（抬头）嗯？沈屿？你怎么在这儿？&lt;/p&gt;
&lt;p&gt;沈屿：（走近，坐下）图书馆闭馆了，路过。你一个人坐这儿干嘛？&lt;/p&gt;
&lt;p&gt;林溪：复习呢，平板没电了，顺便……看看买什么花回家种。&lt;/p&gt;
&lt;p&gt;沈屿：（凑近看手机）买花？我看看……羽衣甘蓝？这名字好听。&lt;/p&gt;
&lt;p&gt;林溪：嗯，说现在买了过年能看。但是——&lt;/p&gt;
&lt;p&gt;沈屿：但是？&lt;/p&gt;
&lt;p&gt;林溪：两年生植物。开完今年，明年就“失去观赏价值，建议直接拔除”。&lt;/p&gt;
&lt;p&gt;沈屿：噗，这么狠？那别买了呗。&lt;/p&gt;
&lt;p&gt;林溪：没买。换了水仙。&lt;/p&gt;
&lt;p&gt;沈屿：水仙好，过年正好开。你买几个？&lt;/p&gt;
&lt;p&gt;林溪：两个。一个水培，一个土培。&lt;/p&gt;
&lt;p&gt;沈屿：为啥种两样？&lt;/p&gt;
&lt;p&gt;林溪：（沉默两秒）水培……开完就死了。土培能活得久一点。&lt;/p&gt;
&lt;p&gt;沈屿：（笑）那不都一样？反正最后都会死。&lt;/p&gt;
&lt;p&gt;林溪：（轻声）那不一样。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;第二场&lt;/p&gt;
&lt;p&gt;【音效】：虫鸣持续。远处有风吹树叶的沙沙声。&lt;/p&gt;
&lt;p&gt;沈屿：（好奇）怎么不一样了？说来听听。&lt;/p&gt;
&lt;p&gt;林溪：（犹豫）……我也不知道怎么说。&lt;/p&gt;
&lt;p&gt;沈屿：没事，反正今晚月亮挺好，聊聊呗。&lt;/p&gt;
&lt;p&gt;【音效】：林溪轻轻靠上椅背的声音。&lt;/p&gt;
&lt;p&gt;林溪：我以前看过一本书，英国人写的园艺书。说他的盆栽都是“短暂的艺术”，观赏期一过就拔了扔掉。&lt;/p&gt;
&lt;p&gt;沈屿：嗯哼。&lt;/p&gt;
&lt;p&gt;林溪：我当时特别接受不了。我种花……不是想看它多好看。我就是想看它活着。叶子绿着，杆子立着，哪怕不开花，它也是一条命。&lt;/p&gt;
&lt;p&gt;沈屿：所以你舍不得拔？&lt;/p&gt;
&lt;p&gt;林溪：嗯。我宁愿看它自己枯死，也不会亲手拔了它。&lt;/p&gt;
&lt;p&gt;沈屿：（若有所思）那你……挺温柔的。&lt;/p&gt;
&lt;p&gt;林溪：（愣住）啊？&lt;/p&gt;
&lt;p&gt;沈屿：没什么。就是觉得，你好像对“活着”这件事……挺当回事的。&lt;/p&gt;
&lt;p&gt;林溪：（沉默）可能吧。&lt;/p&gt;
&lt;p&gt;沈屿：那水仙呢？水培那个，你知道它会死，为什么还要种？&lt;/p&gt;
&lt;p&gt;林溪：（声音低下去）因为……好看啊。透明的根，白色的花，配在一起……像最后一舞。&lt;/p&gt;
&lt;p&gt;沈屿：（轻轻笑）最后一舞……你还挺文艺。&lt;/p&gt;
&lt;p&gt;林溪：（自己也笑）有点矫情是吧。&lt;/p&gt;
&lt;p&gt;沈屿：没有。就是觉得，你好像挺害怕“结束”这件事。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;第三场&lt;/p&gt;
&lt;p&gt;【音效】：虫鸣渐弱，背景音乐轻轻进入。&lt;/p&gt;
&lt;p&gt;林溪：（沉默良久）可能吧。&lt;/p&gt;
&lt;p&gt;沈屿：展开说说？&lt;/p&gt;
&lt;p&gt;林溪：（犹豫）我……不太喜欢花期太短的东西。花确实好看，但开完就没了。叶子不一样，叶子能陪你好久。&lt;/p&gt;
&lt;p&gt;沈屿：所以你喜欢观叶植物？&lt;/p&gt;
&lt;p&gt;林溪：嗯。兰花、竹子，都行。&lt;/p&gt;
&lt;p&gt;沈屿：古人说“岁寒三友”，你倒是挺传统。&lt;/p&gt;
&lt;p&gt;林溪：（摇头）我看不出来什么君子人格。我就是……不喜欢告别。&lt;/p&gt;
&lt;p&gt;沈屿：（安静地）嗯。&lt;/p&gt;
&lt;p&gt;林溪：（像是终于开口）我不敢养宠物，也是因为这个。猫咪多可爱啊，但是……它走了怎么办？每一分快乐，最后都变成加倍的难受。&lt;/p&gt;
&lt;p&gt;沈屿：（轻声）那……谈恋爱呢？&lt;/p&gt;
&lt;p&gt;【音效】：虫鸣停了一瞬。背景音乐微微起伏。&lt;/p&gt;
&lt;p&gt;林溪：（愣住）什么？&lt;/p&gt;
&lt;p&gt;沈屿：你刚才说的那些——不敢养宠物，不喜欢花期太短……那谈恋爱呢？大学谈恋爱，也怕吗？&lt;/p&gt;
&lt;p&gt;林溪：（沉默更久）……想过考研。要是异地了，怎么办。&lt;/p&gt;
&lt;p&gt;沈屿：（笑，但没有嘲讽）林溪，你知道你这样像什么吗？&lt;/p&gt;
&lt;p&gt;林溪：像什么？&lt;/p&gt;</description></item><item><title>把时间涂满双手</title><link>https://lingzuian.top/posts/smear_time_all_over_both_hands/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0800</pubDate><guid>https://lingzuian.top/posts/smear_time_all_over_both_hands/</guid><description>&lt;h1 id="把时间涂满双手"&gt;把时间涂满双手&lt;/h1&gt;
&lt;p&gt;“人类是可悲又可爱的生物，三维的束缚让他们在时间里被不断的推搡，并懵懂地，勇敢地，无知地，义无反顾地——前行。”&lt;/p&gt;
&lt;p&gt;讲台上教授的话语逐渐模糊，我只是盯着手里的小东西怔怔出神。&lt;/p&gt;
&lt;p&gt;正如百年前作家的天才预测，这一小块凝固的时间流淌在我的手心，它摸起来像浅海的泥一样柔软。&lt;/p&gt;
&lt;p&gt;时间上美丽的花纹并不是它本来模样，那是四维投影留下的痕迹，带着不属于这个世界的迷幻气息。&lt;/p&gt;
&lt;p&gt;“一维是点，二维是面，三维是空间，而四维则包含了时间。”&lt;/p&gt;
&lt;p&gt;台上教授的长篇大论忽然入耳，但我的注意力全被这一小块时间吸引，只能断断续续地塞进一两段字句。&lt;/p&gt;
&lt;p&gt;“属于三维的人类只能在时间的正方向上一去不复返，但对四维生物来说，回到过去与穿越未来就像走进一个山谷一样自然。”&lt;/p&gt;
&lt;p&gt;“这倒是件好事,”我恍惚地想，“要是这样我就可以穿越回去，拯救一下我悲伤的人生。”&lt;/p&gt;
&lt;p&gt;带着几分无奈和自嘲，我接着打量手里这块时间。&lt;/p&gt;
&lt;p&gt;在这个时代里，身为三维世界的可怜生物，人类终于摸到了时间的影子，而我正怀揣着这项科技的造物。&lt;/p&gt;
&lt;p&gt;更确切的说来，它是只属于我的“时间”。&lt;/p&gt;
&lt;p&gt;它是我这前半辈子的时间，是我到现在为止一生的轨迹。&lt;/p&gt;
&lt;p&gt;思绪回到两年前，那时我来到这个极富盛名的研究所。&lt;/p&gt;
&lt;p&gt;我自认为是一个极度普通的人，我普通地学习，普通地生活。我曾为一次演讲而热血沸腾，然后再继续放纵；我曾在深夜里发奋苦读，然后在教授的讲座上呼呼大睡；我也曾为测试焦头烂额，最后成绩不上不下，自己却心力憔悴。&lt;/p&gt;
&lt;p&gt;时间以同样的方式流经每个人，而每个人却以不同的方式度过时间，有人的时间精贵有效，大约他们会在离开时功成名就，有人的时间羸弱无力，大约他们会在离开时狼狈不堪，而我显然是后者。实在可惜，我们的时间相同，却在各种阴差阳错之下，我们的成就不可作比。&lt;/p&gt;
&lt;p&gt;这不算怨天尤人，这是很浅显的道理——时间是公平的，但不是公正的。&lt;/p&gt;
&lt;p&gt;我的过去在为毫无天赋买单，我的未来在踌躇和迷茫中等待。&lt;/p&gt;
&lt;p&gt;我低头看向我的过去。&lt;/p&gt;
&lt;p&gt;它的花纹像星星，像幽灵，像一只眼睛。&lt;/p&gt;
&lt;p&gt;我清晰地记得那个年轻的发言人站在麦克风前的样子，他瘦瘦高高，讲到激动处会挥舞着手，然后双眼微眯。那天他立在台上，文绉绉地说出一段深不可测的发言。&lt;/p&gt;
&lt;p&gt;“时间会永远陪伴着我们！如果你感到孤独，请抬起头吧！时间会与你对视，他的眼里只会闪烁着未来的光芒……”&lt;/p&gt;
&lt;p&gt;那是他的时间，如日当空，春风得意。&lt;/p&gt;
&lt;p&gt;只可惜，在我第二十一次尝试从时间里找到光华时，我放弃了。手里的“眼睛”看着我，只有对过去的怨恨和对未来的恐惧。&lt;/p&gt;
&lt;p&gt;讲座结束后，有人突然拍了拍我的肩膀。&lt;/p&gt;
&lt;p&gt;我转头看去，是隔壁实验室的同事。&lt;/p&gt;
&lt;p&gt;她是这里最优秀的研究者之一，还参与了时间晶体的构建工作，我手中的这一小块时间更是拜她所赐。&lt;/p&gt;
&lt;p&gt;想到这里，我的头默默更低了几分，只想鼓起勇气跟她打个招呼以示谢意，但她却朝我摆了摆手。&lt;/p&gt;
&lt;p&gt;“怎么样？手握前半生的感觉是不是很奇妙？”回实验室的路上，她随口问。&lt;/p&gt;
&lt;p&gt;这话却又让我想起刚刚的怨念，神使鬼差般的，我脱口而出：“它让我看到我失败的人生。”话刚出口，我就后悔了。&lt;/p&gt;
&lt;p&gt;她不明所以地转头看我，也没有管我的无礼，只是面露无奈。&lt;/p&gt;
&lt;p&gt;“你是在担心这个月的测试？还是未来的职位？”她双眼眯了眯，伸手推一下眼镜。&lt;/p&gt;
&lt;p&gt;“话说你刚刚有听教授的讲座吗？我觉得他的思想很适合你的忧虑。”&lt;/p&gt;
&lt;p&gt;突然被人戳中心中所想，我不知作何回答，手足无措之间，只能摇头。&lt;/p&gt;
&lt;p&gt;她撇了撇嘴，继续说道：&lt;/p&gt;
&lt;p&gt;“那我就要长篇大论了，你可别嫌我烦。”&lt;/p&gt;
&lt;p&gt;“没有没有，你说吧。”按照她现在的资历，她的未来必定是飞黄腾达，而我对她愿意和我说话就早已十分感激，更不敢有丝毫嫌弃。&lt;/p&gt;
&lt;p&gt;“人类是只能在时间道路上狂奔的可怜虫，但这也是我们生命的意义所在——只管沿着时间前进。”&lt;/p&gt;
&lt;p&gt;“人类需要回头，但不需要返程，回头的意义就是为了更好的前行。”&lt;/p&gt;
&lt;p&gt;“对在三维空间里挣扎的我们来说，过去是不可追寻的，但幸运的是，到了今天，人类的聪明才智使我们有能力抓住过去的残影，封装一小块凝固的时间。”&lt;/p&gt;
&lt;p&gt;说到这里，她忽然偏了偏头，盯着我手里的时间。&lt;/p&gt;
&lt;p&gt;“我们可以把一个人的过去封装起来，这小小的一盒就是他生命的轨迹。”&lt;/p&gt;
&lt;p&gt;“但它绝对不是用来感时伤今的。不要忘记了我们身为三维生物的使命——沿着时间的方向向前奔跑。”&lt;/p&gt;
&lt;p&gt;“所以永远不要留恋所谓‘过去的美好时光’，因为岁月它一直在稳步前行，脚下的今天终会在未来的某天里摇身一变，成了又一个‘过去的美好时光’。”&lt;/p&gt;
&lt;p&gt;她的话一次次敲打我的内心，我张了张嘴，发不出一点声音。&lt;/p&gt;
&lt;p&gt;但她目光灼灼，抬头看着我，突然不知从哪拿出了另一块凝固的时间。&lt;/p&gt;
&lt;p&gt;“研究早就证明了时间晶体的构造不同于一般晶体，由于时间的不确定性，它们一般更接近于玻璃态，所以‘晶体’之名其实不太准确，而人眼看见的花纹也只是时间容器弯折维度时的涟漪。”&lt;/p&gt;
&lt;p&gt;“但正是这样的结构让它们有了一种独特的性质——晶体运动时会和空间中本来的时间结构‘摩擦’，产生足以令自身‘融化’的能量，你知道的，这个词也不严谨，毕竟玻璃态是没有固定熔点的。”&lt;/p&gt;
&lt;p&gt;“不过我还是算了算，要产生令它们完全解构的能量，只需要以相对于地球以大约六点五米每秒的速度前进。”&lt;/p&gt;
&lt;p&gt;她嘿嘿一笑，肉眼可见的兴奋，不知怎么做到的，打开了那个看不见的时间容器。&lt;/p&gt;
&lt;p&gt;“六点五米每秒！这正好是一个成年人全力奔跑的平均速度！”她目光灼灼。&lt;/p&gt;
&lt;p&gt;“每个人的时间都以玻璃态的混沌记录下了他的所有活动，无论成功失败，无论高低贵贱。”&lt;/p&gt;
&lt;p&gt;“所以，看好了——每个人的过去都是这样用的！”&lt;/p&gt;
&lt;p&gt;柔软的时间流淌在她的手上，唤作“眼睛”的花纹骤然破碎，让我有些看不清她的手。&lt;/p&gt;
&lt;p&gt;她把时间涂满双手。&lt;/p&gt;
&lt;p&gt;我渐渐睁大了眼。&lt;/p&gt;
&lt;p&gt;一个三维的人，在寻常的路边，略显灰白的天空下，有些阴冷的风里。她把绚烂的过去倒在双手，像我们这个三维族群的可怜命运一样，开始向前奔跑。&lt;/p&gt;
&lt;p&gt;于是脆弱的时间融化，挣扎着流淌进属于它们的另一个维度，同这个世界的框架摩擦，释放出没有由来的光亮，那光是高维的来客，远比太阳夺目，却又毫不刺眼。它们嘶吼着，宣泄着，划出一道我此生从未见过的流光。&lt;/p&gt;
&lt;p&gt;“看见了吧！当你全力奔跑时，你的过去就一定会在当下划出万丈光芒！”她兴奋地又跑又跳，时间也在她身后又跑又跳。&lt;/p&gt;
&lt;p&gt;我突然明白了，那是她自己的时间，被倾倒在双手，挥洒在身后。&lt;/p&gt;
&lt;p&gt;于是我也开始向前跑，追上她的步伐。&lt;/p&gt;
&lt;p&gt;“多少科研经费就这样被你玩完了。”我被眼前的光景打动，抬头看她，笑骂一声，却也请她帮我打开手里的时间。&lt;/p&gt;
&lt;p&gt;“生活嘛，要向前跑，过去的时间当然是属于身后的啦！不如说这才是我研究的意义。”她接过我的时间。&lt;/p&gt;
&lt;p&gt;“你越来越像一个哲学家了。”我由衷地评论。&lt;/p&gt;
&lt;p&gt;不等她回答，属于我的过去也尽数倒在了我的手上。&lt;/p&gt;
&lt;p&gt;它们是那样的柔软，好似我和曾经的我手牵着手，又好似过去的我在身后督促着我前行——那里有我困惑的答案，苦难的诠释，有我的“眼睛”，有我自己的神迹。&lt;/p&gt;
&lt;p&gt;我把时间涂满双手。&lt;/p&gt;
&lt;p&gt;然后我向前奔跑，玻璃态的过去在手上软化变形，同样的光芒再次浮现，咆哮着划破空间。&lt;/p&gt;
&lt;p&gt;当微冷的风撞上脸庞时，我下意识的眯眼，泪水却突然从眼角滑落——&lt;/p&gt;
&lt;p&gt;光啊！那样亮的光！&lt;/p&gt;</description></item><item><title>基于腾讯云 COS 的 Obsidian 三端同步方案：从 WebDAV 困境到 S 3 协议实践</title><link>https://lingzuian.top/posts/based_on_tencent_cloud_cos_obsidian_three_way_sync_solution/</link><pubDate>Fri, 27 Feb 2026 18:33:54 +0800</pubDate><guid>https://lingzuian.top/posts/based_on_tencent_cloud_cos_obsidian_three_way_sync_solution/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;Obsidian 是一款优秀的本地知识库工具，但是其没有免费的多端同步服务，其他人我不知道，这个问题反正很困扰本人。我主要是在教室主要使用平板编辑，在寝室就换为电脑了，所以有频繁的多端同步需求。&lt;/p&gt;
&lt;p&gt;奈何官方同步服务收费较高，而第三方网盘（iCloud、百度云、OneDrive 等）存在隐私顾虑和速度限制。所以我选择自建同步方案，但这么搞往往需要处理协议兼容性、权限配置等等细节。于是在寒假折腾一天，这里就总结一下，旨在为有类似需求的读者提供一份兼顾专业性与可操作性的参考。&lt;/p&gt;
&lt;p&gt;本文记录的是我从最初尝试 Nextcloud+WebDAV 到最终采用腾讯云 COS（对象存储）实现电脑、手机、平板三端稳定同步的全过程，尝试深入剖析各阶段遇到的技术问题及其原理。&lt;/p&gt;
&lt;p&gt;本文部分使用 AI 辅助编写。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="webdav-方案的尝试与失败"&gt;WebDAV 方案的尝试与失败&lt;/h2&gt;
&lt;h3 id="初始架构nextcloud--webdav"&gt;初始架构：Nextcloud + WebDAV&lt;/h3&gt;
&lt;p&gt;我最初利用服务器，通过 Docker （服务器还有其他东西，求放心搞了一个隔离）部署了 Nextcloud（版本 23），并启用其 WebDAV 服务。在电脑端 Obsidian 中安装 Remotely Save 插件，配置 WebDAV 连接后，同步功能正常，文件可双向传输。这就验证了自建同步的可行性。&lt;/p&gt;
&lt;h3 id="安卓端的异常现象"&gt;安卓端的异常现象&lt;/h3&gt;
&lt;p&gt;但是，当在安卓手机和平板上进行同样配置时，问题出现了：同步状态极不稳定，频繁返回 401 Unauthorized 错误，连接测试时而成功，时而失败，无固定规律。偶尔成功同步一次后，再次尝试即失败。设备重启后短暂恢复，随后再次报错。不同安卓设备表现一致，排除了个别设备故障。&lt;/p&gt;
&lt;h3 id="排查过程"&gt;排查过程：&lt;/h3&gt;
&lt;p&gt;针对上述现象，我和 AI 聊了聊，做了排查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;凭证验证&lt;/strong&gt;：重置 Nextcloud 账户密码，重新输入插件配置，问题依旧。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;域名与信任&lt;/strong&gt;：在 Nextcloud 的 &lt;code&gt;config.php&lt;/code&gt; 中添加了手机访问的 IP 和域名，避免请求被拒绝。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络环境&lt;/strong&gt;：切换 Wi-Fi、4 G/5 G，甚至使用手机热点连接，未能改善。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务&lt;/strong&gt;：使用手机浏览器直接访问 Nextcloud 的 WebDAV 地址，输入凭证后可以正常浏览目录，说明服务本身是正常的，且网络无阻断。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="根本原因分析"&gt;根本原因分析&lt;/h3&gt;
&lt;p&gt;走投无路，于是求助伟大的 deepseek ，他查阅 Remotely Save 插件开发者文档及相关技术讨论后，发现了问题根源：&lt;strong&gt;安卓系统底层对 WebDAV 协议的非标准 HTTP 方法支持存在缺陷&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>记一次 Minecraft 服务器运维：脚本编写漏洞导致的日报数据不全</title><link>https://lingzuian.top/posts/daily_report_data_incomplete_due_to_a_script_writing_bug/</link><pubDate>Thu, 26 Feb 2026 22:45:00 +0800</pubDate><guid>https://lingzuian.top/posts/daily_report_data_incomplete_due_to_a_script_writing_bug/</guid><description>&lt;h1 id="记一次-minecraft-服务器运维脚本编写漏洞导致的日报数据不全"&gt;记一次 Minecraft 服务器运维：脚本编写漏洞导致的日报数据不全&lt;/h1&gt;
&lt;h2 id="问题现象日报只记录了半天的活动"&gt;问题现象：日报只记录了“半天”的活动&lt;/h2&gt;
&lt;p&gt;我搭建的 Minecraft Fabric 1.20.1 服务器每天重启四次（0、6、12、18 点），并在 23:55 生成一份 Markdown 日报。运行一段时间后，我不幸的发现：&lt;strong&gt;日报里的“最近聊天记录”只显示最后几小时的消息，而“活跃玩家列表”中的“最后活动”时间其实是玩家最后一次上线时间，根本不是真正的退出时间&lt;/strong&gt;。简单来说，日报数据严重不全，几乎失去了参考价值。这令人沮丧，本来我就被脚本妙妙小 bug 折磨，现在又要来修了，于是在精心编写了提示词后与 AI 好好学习了一下，现在总结问题发出来。&lt;/p&gt;
&lt;h2 id="为什么会出现数据不全"&gt;为什么会出现数据不全？&lt;/h2&gt;
&lt;p&gt;要搞清原因，得先了解 Minecraft 服务器的日志机制。&lt;/p&gt;
&lt;h3 id="1-服务器重启会覆盖-latestlog"&gt;1. 服务器重启会覆盖 &lt;code&gt;latest.log&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Minecraft 服务端（包括 Fabric）运行时，会把所有日志实时写入 &lt;code&gt;logs/latest.log&lt;/code&gt;。但当服务器重启（无论是正常关闭还是崩溃重启），&lt;code&gt;latest.log&lt;/code&gt; 通常会被清空或覆盖。新启动的服务器会创建一个全新的 &lt;code&gt;latest.log&lt;/code&gt;，只记录本次启动后的日志。&lt;/p&gt;
&lt;p&gt;我之前是打算每天 23:55 生成报告，服务器这之前不重启。但后来为了保证服务器稳定（对钱包的妥协），设置了每天四次定时重启（通过维护脚本）。这就导致：&lt;strong&gt;23:55 生成日报时，&lt;code&gt;latest.log&lt;/code&gt; 里只保存了最后一次重启（18 点）之后到现在的日志&lt;/strong&gt;，而 0 点到 18 点之间的所有日志都丢失了。&lt;/p&gt;
&lt;h3 id="2-旧脚本只盯着-latestlog"&gt;2. 旧脚本只盯着 &lt;code&gt;latest.log&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;看看旧的日报脚本是怎么获取日志的（简化版）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LOG_FILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$SERVER_DIR&lt;span style="color:#e6db74"&gt;/logs/latest.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TODAY_LOG&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;grep &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TODAY&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$LOG_FILE&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; -z &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TODAY_LOG&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; TODAY_LOG&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;tail -1000 &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$LOG_FILE&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这段代码试图从 &lt;code&gt;latest.log&lt;/code&gt; 中提取当天的日志行（按日期字符串过滤），如果找不到（比如日志里没有日期前缀，或者重启后日期已变），就退而取最后 1000 行（至少想到了这个备案）。但是显然，无论哪种方式，都只能得到部分日志。&lt;/p&gt;
&lt;h3 id="3-三步之内必有解药日志归档目录-logs"&gt;3. 三步之内必有解药：日志归档目录 &lt;code&gt;logs/&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;实际上，Minecraft 服务端在日志轮转方面做得挺周到（屎山代码居然还有小巧思）——它会将旧的日志自动压缩并存放到 &lt;code&gt;logs/&lt;/code&gt; 目录下（缺点就是积压一堆不大但是碍眼的压缩包），文件名通常像这样：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;logs/2025-02-23-1.log.gz
logs/2025-02-23-2.log.gz
logs/2025-02-24-1.log.gz
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这些压缩文件里保存着全天的日志，按时间分段。如果日报脚本能读取这些文件，就能拼凑出完整的日志历史。&lt;/p&gt;</description></item><item><title>博客项目技术文档</title><link>https://lingzuian.top/posts/blog_project_technical_documentation/</link><pubDate>Thu, 26 Feb 2026 21:28:17 +0800</pubDate><guid>https://lingzuian.top/posts/blog_project_technical_documentation/</guid><description>&lt;h1 id="博客项目概述"&gt;博客项目概述&lt;/h1&gt;
&lt;h2 id="一项目简介"&gt;一、项目简介&lt;/h2&gt;
&lt;p&gt;这是一个基于 &lt;strong&gt;Hugo&lt;/strong&gt; 静态网站生成器 + &lt;strong&gt;PaperMod&lt;/strong&gt; 主题的个人博客系统。代码托管在 &lt;strong&gt;Gitee&lt;/strong&gt; 私有仓库，通过 &lt;strong&gt;Caddy&lt;/strong&gt; 作为 Web 服务器自动提供 HTTPS 服务，并利用服务器定时任务（crontab）实现自动拉取更新、构建和部署。整个系统部署在腾讯云服务器（Ubuntu 24.04）上，同时服务器还运行着 Nextcloud 私有云盘和 Jupyter 科学计算环境（均通过 Docker 容器管理）。&lt;/p&gt;
&lt;h2 id="二技术栈"&gt;二、技术栈&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;静态生成器&lt;/strong&gt;：Hugo（v 0.146.0+extended）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主题&lt;/strong&gt;：PaperMod（手动下载，非 Git 子模块）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;版本控制&lt;/strong&gt;：Git + Gitee（国内镜像，私有仓库）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web 服务器&lt;/strong&gt;：Caddy（Docker 容器），自动申请/续期 SSL 证书&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署方式&lt;/strong&gt;：本地推送 → Gitee → 服务器定时拉取 → Hugo 构建 → Caddy 服务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务器 OS&lt;/strong&gt;：Ubuntu 24.04 LTS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;容器管理&lt;/strong&gt;：Docker + Docker Compose（管理 Caddy、Nextcloud、Jupyter 等）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动部署&lt;/strong&gt;：crontab 每分钟执行自定义脚本 &lt;code&gt;/home/your-username/auto-deploy.sh&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="三系统架构"&gt;三、系统架构&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;本地电脑
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ 写文章 (Markdown)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ hugo new posts/xxx.md
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ 编辑后 git add/commit/push
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Gitee 仓库 (私有)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;腾讯云服务器
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├─ crontab (每分钟)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ └─ 运行 /home/your-username/auto-deploy.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ ├─ git pull 拉取最新源码
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ ├─ hugo --minify 生成静态文件到临时目录
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ ├─ 替换 /home/your-username/blog/public
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ ├─ 修复权限为 www-data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ └─ docker restart caddy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ Caddy 容器 (监听 80/443)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ 托管 /home/your-username/blog/public
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="四关键配置与路径"&gt;四、关键配置与路径&lt;/h2&gt;
&lt;h3 id="41-本地博客源码"&gt;4.1 本地博客源码&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;路径&lt;/strong&gt;：&lt;code&gt;本地博客路径&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置文件&lt;/strong&gt;：&lt;code&gt;hugo.toml&lt;/code&gt;（或 &lt;code&gt;config.toml&lt;/code&gt;），内容示例：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;baseURL&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#39;https://lingzuian.top/&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;languageCode&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#39;zh-cn&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;title&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#39;静影沉璧到此一游&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;theme&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#39;PaperMod&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;copyright&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#39;© 2026 静影沉璧到此一游 | 备案号：&amp;lt;a href=&amp;#34;https://beian.miit.gov.cn/&amp;#34; target=&amp;#34;_blank&amp;#34;&amp;gt;湘ICP备2026005470号&amp;lt;/a&amp;gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;math&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 开启 KaTeX 数学公式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#a6e22e"&gt;menu&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[&lt;span style="color:#a6e22e"&gt;menu&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;文章&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;url&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;/posts/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;weight&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[&lt;span style="color:#a6e22e"&gt;menu&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;关于&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;url&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;/about/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;weight&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文章存放&lt;/strong&gt;：&lt;code&gt;content/posts/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;页面存放&lt;/strong&gt;：&lt;code&gt;content/&lt;/code&gt;，如 &lt;code&gt;about.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自定义模板&lt;/strong&gt;：&lt;code&gt;layouts/partials/&lt;/code&gt;，如 &lt;code&gt;math.html&lt;/code&gt;（加载 KaTeX）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="42-服务器关键目录"&gt;4.2 服务器关键目录&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;博客源码&lt;/strong&gt;：&lt;code&gt;/home/your-username/blog-source&lt;/code&gt;（从 Gitee 克隆）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;静态文件目录&lt;/strong&gt;：&lt;code&gt;/home/your-username/blog/public&lt;/code&gt;（Caddy 挂载的根目录）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动部署脚本&lt;/strong&gt;：&lt;code&gt;/home/your-username/auto-deploy.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署日志&lt;/strong&gt;：&lt;code&gt;/home/your-username/auto-deploy.log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Caddy 配置&lt;/strong&gt;：&lt;code&gt;/home/your-username/caddy/Caddyfile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Caddy Compose 文件&lt;/strong&gt;：&lt;code&gt;/home/your-username/caddy/docker-compose.yml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="43-自动部署脚本当前稳定版"&gt;4.3 自动部署脚本（当前稳定版）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SOURCE_DIR&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;/home/your-username/blog-source&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PUBLIC_DIR&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;/home/your-username/blog/public&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TEMP_DIR&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;/home/your-username/blog/temp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$SOURCE_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;||&lt;/span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git fetch origin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LOCAL&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;git rev-parse HEAD&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;REMOTE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;git rev-parse origin/main&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$LOCAL&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$REMOTE&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;No updates, exiting.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Updates found, pulling changes...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; ! git pull; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Git pull failed. Aborting deployment.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TEMP_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chown your-username:your-username &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TEMP_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; ! hugo --minify --destination &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TEMP_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Hugo build failed, aborting deployment. Keeping old site.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rm -rf &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TEMP_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo rm -rf &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$PUBLIC_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mv &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TEMP_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$PUBLIC_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chown -R 33:33 &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$PUBLIC_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chmod -R &lt;span style="color:#ae81ff"&gt;755&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$PUBLIC_DIR&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker restart caddy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Deployment complete.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="44-caddy-配置-caddyfile"&gt;4.4 Caddy 配置 (&lt;code&gt;Caddyfile&lt;/code&gt;)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lingzuian.top {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; root * /var/www/blog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file_server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cloud.internal.example.com {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reverse_proxy nextcloud_app:80
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jupyter.internal.example.com {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reverse_proxy math_jupyter:8888
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="45-caddy-docker-compose-docker-composeyml"&gt;4.5 Caddy Docker Compose (&lt;code&gt;docker-compose.yml&lt;/code&gt;)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;caddy&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;caddy:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;container_name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;caddy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;unless-stopped&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;80:80&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;443:443&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./Caddyfile:/etc/caddy/Caddyfile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;/home/your-username/blog/public:/var/www/blog&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;caddy_data:/data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;caddy_config:/config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;networks&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;web&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;caddy_data&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;caddy_config&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;networks&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;web&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;external&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="五自动部署流程详解"&gt;五、自动部署流程详解&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;crontab&lt;/strong&gt; 每分钟执行 &lt;code&gt;/home/your-username/auto-deploy.sh&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;脚本先 &lt;code&gt;git fetch origin&lt;/code&gt; 比较本地与远程 commit hash：
&lt;ul&gt;
&lt;li&gt;若相同 → 退出（无更新）。&lt;/li&gt;
&lt;li&gt;若不同 → 执行 &lt;code&gt;git pull&lt;/code&gt; 拉取最新代码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;拉取成功后，创建临时目录 &lt;code&gt;/home/your-username/blog/temp&lt;/code&gt;，确保所有者是 &lt;code&gt;your-username&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;hugo --minify --destination&lt;/code&gt; 生成静态文件到临时目录。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;构建成功&lt;/strong&gt;：删除旧 &lt;code&gt;public&lt;/code&gt; 目录，将 &lt;code&gt;temp&lt;/code&gt; 原子移动为 &lt;code&gt;public&lt;/code&gt;，然后修复所有者为 &lt;code&gt;www-data&lt;/code&gt;（UID 33）并设置权限 755，最后重启 Caddy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;构建失败&lt;/strong&gt;：保留旧 &lt;code&gt;public&lt;/code&gt; 目录，删除临时目录，退出（网站不变）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="六常见问题与解决方案历史坑点"&gt;六、常见问题与解决方案（历史坑点）&lt;/h2&gt;
&lt;h3 id="61-权限问题permission-denied"&gt;6.1 权限问题（Permission denied）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：Hugo 构建时无法写入 &lt;code&gt;public&lt;/code&gt; 目录，或 Caddy 无法读取文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因&lt;/strong&gt;：&lt;code&gt;public&lt;/code&gt; 目录所有者不是运行 Hugo 的用户（your-username）或不是容器内的用户（www-data）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;在脚本中，生成前确保 &lt;code&gt;temp&lt;/code&gt; 目录归 &lt;code&gt;your-username&lt;/code&gt;，生成后 &lt;code&gt;public&lt;/code&gt; 归 &lt;code&gt;www-data&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;手动修复：&lt;code&gt;sudo chown -R 33:33 /home/your-username/blog/public&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;当前状态&lt;/strong&gt;：脚本已正确处理，若手动操作后需检查权限。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="62-git-冲突或无法推送"&gt;6.2 Git 冲突或无法推送&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：&lt;code&gt;git push&lt;/code&gt; 被拒，提示 &lt;code&gt;non-fast-forward&lt;/code&gt; 或 &lt;code&gt;divergent branches&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因&lt;/strong&gt;：在服务器上直接提交了代码，导致本地与远程分叉。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;永远不要在服务器上执行 &lt;code&gt;git commit&lt;/code&gt;。所有修改必须在本地进行。&lt;/li&gt;
&lt;li&gt;若已发生，需在服务器上 &lt;code&gt;git pull&lt;/code&gt; 合并（可能冲突），再 &lt;code&gt;git push&lt;/code&gt; 解决。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预防&lt;/strong&gt;：遵守“只从本地推送”原则。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="63-hugo-构建失败front-matter-格式错误"&gt;6.3 Hugo 构建失败（Front Matter 格式错误）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：构建时报错 &lt;code&gt;unmarshal failed: toml: expected character =&lt;/code&gt;，导致网站无法更新。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因&lt;/strong&gt;：新建或修改的 Markdown 文件开头元数据格式有误（如误用 &lt;code&gt;---&lt;/code&gt; 代替 &lt;code&gt;+++&lt;/code&gt;，或缺少等号）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;确保文件开头是 &lt;code&gt;+++&lt;/code&gt;，每行格式如 &lt;code&gt;key = &amp;quot;value&amp;quot;&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;推送前用 &lt;code&gt;hugo server -D&lt;/code&gt; 本地预览，可提前发现错误。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;脚本保护&lt;/strong&gt;：脚本在构建失败时会保留旧网站，避免 404。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="64-caddy-挂载失效目录-inode-变化"&gt;6.4 Caddy 挂载失效（目录 inode 变化）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：网站 404，但服务器上 &lt;code&gt;public&lt;/code&gt; 目录有文件，容器内 &lt;code&gt;/var/www/blog&lt;/code&gt; 为空。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因&lt;/strong&gt;：脚本用 &lt;code&gt;sudo rm -rf&lt;/code&gt; 删除旧目录再重建，导致目录 inode 变化，Docker 挂载指向了已删除的 inode。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;改用 &lt;code&gt;sudo rm -rf &amp;quot;$PUBLIC_DIR&amp;quot;/*&lt;/code&gt; 清空内容而不删除目录本身（保留 inode）。&lt;/li&gt;
&lt;li&gt;或采用临时目录原子替换（当前脚本已使用 &lt;code&gt;mv&lt;/code&gt; 替换整个目录，但 &lt;code&gt;mv&lt;/code&gt; 后 inode 改变，仍需重启 Caddy）。因此脚本最后重启 Caddy 确保重新挂载。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;当前状态&lt;/strong&gt;：脚本通过重启 Caddy 解决此问题，且只在有更新时重启，无更新时不重启。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="65-自动部署脚本误判更新"&gt;6.5 自动部署脚本误判更新&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：即使无更新，脚本也执行构建和重启。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因&lt;/strong&gt;：早期脚本通过 &lt;code&gt;git pull&lt;/code&gt; 的输出判断更新，不够准确。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：改用 &lt;code&gt;git fetch&lt;/code&gt; 比较 commit hash（当前脚本已修复）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="66-katex-公式不渲染"&gt;6.6 KaTeX 公式不渲染&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：文章中的 &lt;code&gt;$...$&lt;/code&gt; 或 &lt;code&gt;$$...$$&lt;/code&gt; 未渲染为数学公式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原因&lt;/strong&gt;：KaTeX 脚本未正确加载或定界符未配置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;在 &lt;code&gt;layouts/partials/math.html&lt;/code&gt; 中添加 KaTeX 脚本和 &lt;code&gt;renderMathInElement&lt;/code&gt; 调用（已配置）。&lt;/li&gt;
&lt;li&gt;确保文章或全局开启了 &lt;code&gt;math = true&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="七注意事项与最佳实践"&gt;七、注意事项与最佳实践&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;绝对不要在服务器上直接修改文件&lt;/strong&gt;（包括 &lt;code&gt;nano&lt;/code&gt; 编辑），所有更改都应在本地完成并推送。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;绝对不要在 Gitee 网页上直接编辑文件&lt;/strong&gt;，以免造成版本混乱。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推送前务必本地预览&lt;/strong&gt;：&lt;code&gt;hugo server -D&lt;/code&gt; 检查格式和渲染。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新文章必须 &lt;code&gt;git add&lt;/code&gt;&lt;/strong&gt;：新建文件后，先用 &lt;code&gt;git status&lt;/code&gt; 确认已加入版本控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期查看服务器日志&lt;/strong&gt;：&lt;code&gt;tail -f /home/your-username/auto-deploy.log&lt;/code&gt; 确保脚本正常运行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;如果需紧急修改服务器文件&lt;/strong&gt;（不推荐），改完后必须立即 &lt;code&gt;git commit&lt;/code&gt; 并 &lt;code&gt;git push&lt;/code&gt;，然后在本地 &lt;code&gt;git pull&lt;/code&gt; 同步。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="八日常维护与更新指南"&gt;八、日常维护与更新指南&lt;/h2&gt;
&lt;h3 id="81-写一篇新文章"&gt;8.1 写一篇新文章&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 本地&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd 本地博客路径
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo new posts/文章名.md
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 编辑文章（修改 draft = false）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo server -D &lt;span style="color:#75715e"&gt;# 预览&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 满意后&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git commit -m &lt;span style="color:#e6db74"&gt;&amp;#34;新增文章：文章名&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="82-修改已有文章"&gt;8.2 修改已有文章&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 编辑文件后&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git commit -am &lt;span style="color:#e6db74"&gt;&amp;#34;更新文章：xxx&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 针对已追踪文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="83-修改主题或配置"&gt;8.3 修改主题或配置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;所有修改在本地进行，然后 &lt;code&gt;git add/commit/push&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;主题文件位于 &lt;code&gt;themes/PaperMod/&lt;/code&gt;，若有自定义覆盖，放在 &lt;code&gt;layouts/&lt;/code&gt; 或 &lt;code&gt;assets/css/extended/&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="84-升级-hugo-版本"&gt;8.4 升级 Hugo 版本&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;服务器上需手动下载新版 &lt;code&gt;hugo&lt;/code&gt; 二进制并替换 &lt;code&gt;/usr/local/bin/hugo&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;本地也需要同步升级，避免版本差异导致的构建问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="85-处理服务器故障"&gt;8.5 处理服务器故障&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Caddy 挂了&lt;/strong&gt;：&lt;code&gt;docker restart caddy&lt;/code&gt; 或 &lt;code&gt;cd ~/caddy &amp;amp;&amp;amp; docker-compose down &amp;amp;&amp;amp; docker-compose up -d&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;磁盘空间满&lt;/strong&gt;：检查日志大小，清理旧日志或无用的 Docker 镜像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;域名证书问题&lt;/strong&gt;：Caddy 会自动续期，无需干预。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="九联系与备份"&gt;九、联系与备份&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;博客域名&lt;/strong&gt;：&lt;code&gt;https://lingzuian.top&lt;/code&gt;（备案号：湘 ICP 备 2026005470 号）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gitee 仓库&lt;/strong&gt;：私有仓库，地址不公开&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务器&lt;/strong&gt;：仅管理员 SSH 登录&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据备份&lt;/strong&gt;：建议定期将 &lt;code&gt;/home/your-username/blog/public&lt;/code&gt; 和 &lt;code&gt;/home/your-username/blog-source&lt;/code&gt; 备份到 COS 或 Nextcloud。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;本概述涵盖了项目架构、配置、历史问题和维护要点。希望未来无论由谁（或哪个 AI）接手，都能快速理解并有效协助。&lt;/p&gt;</description></item><item><title>为什么我们这个时代还需要博客？</title><link>https://lingzuian.top/posts/why_do_we_still_need_blogs_in_this_day_and_age/</link><pubDate>Thu, 26 Feb 2026 21:16:16 +0800</pubDate><guid>https://lingzuian.top/posts/why_do_we_still_need_blogs_in_this_day_and_age/</guid><description>&lt;h1 id="引言"&gt;引言&lt;/h1&gt;
&lt;p&gt;寒假在家，按照计划开设了一个我的世界 fabric 1.20.1 生存服务器，具体架构是在京东云租了一台两核 4 g 的服务器，安装 Linux 系统。&lt;/p&gt;
&lt;p&gt;配置下来感觉还行，于是打算继续利用积累下来的服务器知识搞一搞别的，于是在和 AI 聊天的时候就发现居然还可以用来建博客。&lt;/p&gt;
&lt;p&gt;对于博客这个东西真是久仰大名，但是以前一直都没有仔细了解，过于是借着这个机会搭建了一个（地址：&lt;a href="https://lingzuian.top/"&gt;睡醒了再写&lt;/a&gt;），也算是体验了一下技术全流程，并且有一些非技术方面的想法，就写在这里，算是这个项目告一段落。&lt;/p&gt;
&lt;h1 id="博客的本质"&gt;博客的本质&lt;/h1&gt;
&lt;p&gt;简单来说，&lt;strong&gt;博客可以是“公开日记本”，但它更是一个属于一个人自己的“数字家园”和“知识管理系统”。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果有人要问：为什么不自建博客而去用 B 站动态或 QQ 空间？&lt;/p&gt;
&lt;p&gt;这其实就像问：为什么有人要自己装修房子，而不是一直租公寓住？&lt;/p&gt;
&lt;p&gt;下面总结了对比表格来澄清核心区别：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特性维度&lt;/th&gt;
&lt;th&gt;B 站动态 / QQ 空间 / 微博 (租的“公寓”)​&lt;/th&gt;
&lt;th&gt;自建独立博客 (个人的“数字家园”)​&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;所有权与控制权&lt;/strong&gt;​&lt;/td&gt;
&lt;td&gt;只有使用权。平台可以删内容、改规则、甚至封号。个人创作依附于平台。&lt;/td&gt;
&lt;td&gt;个人拥有完全主权。内容、设计、数据完全由个人掌控，只要续费，它就永远在那。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;内容形式与深度&lt;/strong&gt;​&lt;/td&gt;
&lt;td&gt;适合碎片、即时、娱乐化的内容。深度长文、系列教程不易呈现和沉淀。&lt;/td&gt;
&lt;td&gt;深度思考的土壤。非常适合系统性地整理知识、撰写教程、记录思考过程，形成体系。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;设计个性化&lt;/strong&gt;​&lt;/td&gt;
&lt;td&gt;只能使用平台提供的有限模板和布局，千篇一律。&lt;/td&gt;
&lt;td&gt;自己就是设计师。从布局、字体、颜色到交互，可以完全按你的审美和功能需求定制。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;读者关系&lt;/strong&gt;​&lt;/td&gt;
&lt;td&gt;粉丝与博主关系，依赖算法推荐和平台流量。互动较浅。&lt;/td&gt;
&lt;td&gt;读者与作者关系。读者是主动通过搜索或链接而来，互动通常更认真、深入。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;核心目的&lt;/strong&gt;​&lt;/td&gt;
&lt;td&gt;社交与传播，追求即时反馈（点赞、转发）。&lt;/td&gt;
&lt;td&gt;记录与沉淀，构建个人品牌与知识库。反馈可能延迟但更长久。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;数据与价值&lt;/strong&gt;​&lt;/td&gt;
&lt;td&gt;数据属于平台，你无法轻易导出或迁移。你的价值增加了平台的价值。&lt;/td&gt;
&lt;td&gt;数据是个人的资产。所有文章积累起来就是个人的搜索引擎，是能力的直接证明。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="这个时代为什么还需要博客"&gt;这个时代为什么还需要博客？&lt;/h1&gt;
&lt;p&gt;我们可以认为博客是在&lt;strong&gt;对抗信息碎片化&lt;/strong&gt; 。在短视频、快餐内容泛滥的时代，博客是为数不多还允许“长内容”存在的地方。当所有人的注意力都被切成30秒一段时，博客就可以是一个深度思考的空间。&lt;/p&gt;
&lt;p&gt;贴合时代一点，博客也可以是 &lt;strong&gt;AI 时代的“知识原材料”&lt;/strong&gt;，AI 需要高质量的文本数据来训练和学习，博客正是这种“知识原材料”的一部分来源。社交媒体上的碎片内容对 AI 的价值远低于一篇结构清晰的技术教程或思考总结。&lt;/p&gt;
&lt;p&gt;如果博客内容优秀或者影响力大，还会更容易被搜索引擎检索到。这个时候，它就直接成为了其他人的知识原材料，而不需要经过 AI 的咀嚼，这也是非常好的一个部分。&lt;/p&gt;
&lt;p&gt;现在的AI训练，最缺的不是数据量，而是高质量、结构化的长文本。社交媒体上的“咕咕嘎嘎！”“何意味？”对AI理解人类思维帮助有限，而一篇博客里的逻辑推理、问题解决过程，才是AI真正需要的“养分”。写博客，恬不知耻的讲，是在参与构建下一代智能。&lt;/p&gt;
&lt;p&gt;又可以说：这是一个&lt;strong&gt;个人IP&lt;/strong&gt; 。在哪个平台都可能过气或被封，但博客域名是属于本人的。（除非发布违禁信息被禁止访问）&lt;/p&gt;
&lt;p&gt;依然拿住宿来做比：租公寓（社交媒体）很方便，有物业、有邻居、有广场舞（算法推荐）。但有一天公寓倒闭了，或者你被赶出去了，你积累的一切——那些精心挑选的家具、墙上的照片、写满笔记的墙壁——全都带不走。&lt;/p&gt;
&lt;p&gt;而自己的房子，哪怕一开始简陋得像毛坯房，每一块砖都是自己砌的，永远不会有人半夜敲门让你搬走。&lt;/p&gt;
&lt;p&gt;文艺一点，写这个东西也是&lt;strong&gt;数字时代的“慢生活”&lt;/strong&gt;。为什么现在还有人种菜、做手工、写日记？博客就是一种数字世界的“慢生活”方式，是对“即时满足”文化的一种温和反抗。&lt;/p&gt;</description></item><item><title>关于早年书法问题的一些总结</title><link>https://lingzuian.top/posts/some_reflections_on_issues_in_my_early_calligraphy/</link><pubDate>Tue, 24 Feb 2026 21:45:19 +0800</pubDate><guid>https://lingzuian.top/posts/some_reflections_on_issues_in_my_early_calligraphy/</guid><description>&lt;p&gt;依旧老文新发。&lt;/p&gt;
&lt;p&gt;最近一个学期结束，也是在外进行了一学期的写字训练，有感而发。也总结一下从开始学习书法到现在存在的一些根本性的问题，并且做一些讨论，想一想以后该怎么办。&lt;/p&gt;
&lt;h1 id="现状概况"&gt;现状概况&lt;/h1&gt;
&lt;p&gt;首先是现状概况，现在发现的问题是：早年学习书法，其实是画画。&lt;/p&gt;
&lt;p&gt;因为一直以来跟随老师学习写字都是对着字帖进行练习，也就是以写地像——更具体的说是“画”地像为要，但这其实存在一个问题：创作的时候就会脑袋空空，对着印刷体根本就不知道怎么写。&lt;/p&gt;
&lt;p&gt;这也就间接导致了虽然看起来我是个练习书法很多年的人，但是在日常的课堂写字，比如说完成课堂作业和高考语文作文时，写出来的字却是奇丑无比，这是早年对着字帖练习太多，完全没有进行创作练习造成的巨大缺陷。&lt;/p&gt;
&lt;h1 id="目前书法审美的分析"&gt;目前书法审美的分析&lt;/h1&gt;
&lt;p&gt;现在我最喜欢的是一种古拙的风格，当然，受流行风潮影响，一些非常俊美的小楷作品也比较喜欢，但是下意识的认为古拙的风格更为高雅。所谓古拙的风格，现在很多就表现为魏碑的风格。看国展投展作品也都是这样，一般是唐楷结合魏碑进行创作。&lt;/p&gt;
&lt;p&gt;我不知道这算不算一种现代人的退步，毕竟有人说唐朝楷书就已经发展到了巅峰，以至于到了后来都不能往前走，只能往后走了，比如说清朝就很多人提倡找碑帖学习，而且模仿古人的手法去创作在清朝也初见端倪，虽然前朝肯定都有过，但不能说是主流，只是一个练习手法，不会直接拿出来当作品。&lt;/p&gt;
&lt;p&gt;到了近代就更进一步，由于人们使用毛笔作为工具来书写就已经很少有了，一般都是直接拿来艺术创作，这就可以说毛笔字已经失去了生命力，并不活在日常，也大概就失去了能够更进一步创新的机会。&lt;/p&gt;
&lt;p&gt;总而言之，现状就是审美的大方向都是在往古拙靠拢。&lt;/p&gt;
&lt;p&gt;而我个人形成古拙这个审美的原因，一个是受到老师的影响，我的老师就是写的魏碑楷书；二是因为前文说过的，我在创作方面的缺陷，导致在写作品的时候只能写古拙，毕竟古拙换一句话说就是不成熟，歪七扭八的，那不就是没有创作意识写出来的鬼东西吗？虽然这样说可能有一些拉低古拙的格调，但确实可以利用练习不精的笨拙笔法去模仿一下，欺骗一下不太懂的外行人（悲）。所以写着写着我自己审美也就更偏向这一边了。&lt;/p&gt;
&lt;h1 id="解决办法"&gt;解决办法&lt;/h1&gt;
&lt;p&gt;既然明确了方向是要走古典字体这一条路，又加上创作意识不够，所以我打算放一放直接的书法练习，强调一下“读帖”，也就是不写字，拿着字帖一个劲看，当然还搭配有“说文解字”这一个项目，这个项目其实早年就设想过：直接对着单个字去查找演变过程，比如说一天指定一个字进行研究，把他的演变流程全部都搞清楚，这样在写的时候就知道他“古”到底“古”成个什么样子，也就是类似于背诵的方法，记住一个字的古典写法。具体说就是金文、甲骨文或者隶书的结构，这样再融入到楷书里面去，就是最高雅的“古”了。“古”的师出有名，“古”的有道理、有结构、有来源。&lt;/p&gt;
&lt;p&gt;具体想法是整理一份独体字表和常用字表，全部搞定之后就可以基本涵盖所有汉字，毕竟复杂的字都是独体字和一些偏旁部首拼凑出来的嘛。&lt;/p&gt;
&lt;h1 id="书法的四个维度"&gt;书法的四个维度&lt;/h1&gt;
&lt;p&gt;我认为书法分四个维度：字形、笔法、质感、排版。&lt;/p&gt;
&lt;p&gt;字形就是我这个“说文解字”项目致力解决的问题。笔法就是临帖的“绘画”过程塑造的。质感则部分取决于笔法，部分取决于工具，比如毛笔、墨水和纸张。而排版就是纯粹的书写者的规划问题了。&lt;/p&gt;</description></item><item><title>尘歌壶里的春风</title><link>https://lingzuian.top/posts/the_spring_breeze_in_the_pot/</link><pubDate>Sun, 15 Feb 2026 18:25:19 +0800</pubDate><guid>https://lingzuian.top/posts/the_spring_breeze_in_the_pot/</guid><description>&lt;p&gt;晚上计划和朋友在《原神》尘歌壶里面跨年，这是老传统了，要坚持，我回去看看，那个小园子依旧美丽，这时候才突然格外感到尘歌壶的遗世独立，曾经游玩时不感到有，只当是普通自定义地图。就像以前大家都会回忆起小时候的小院子，确有“人面不知何处去，桃花依旧笑春风”的姿态，只是记忆里的家园会衰败，会倒塌。但是这里的不会，壶子就如同他的设定一般，永远年轻，那里的桃花一直开，建筑一直在。&lt;/p&gt;
&lt;p&gt;对游戏里的角色来说，壶子里是时间定格的，而身为游戏玩家，这整个游戏不也是一个“尘歌壶”吗？游戏里的花一直都在，人也一直都在。所以我认为《原神》对我来说已经不只是一个游戏了，或者说已经不是游戏了，我确实不想上线游玩，也确实没有时间游玩，但是我也绝不接受自己是退游玩家，因为这一整个游戏已经封装成为了我的“尘歌壶”，虽然生活忙碌，无暇每日进去闲逛，但是总不会把它丢掉，而是会在某个安静的午后、某个重要的节日，自己打开，走进这个时间凝固的世界，再看看我的亭台楼阁，再和角色说上几句早就重复过无数遍的对话，再看永不凋谢的桃花与永不停息的春风。&lt;/p&gt;
&lt;p&gt;其实帝君看璃月的视角就是玩家看这个游戏的视角，早已离开，但是从未离开。有时看看自己早年游戏人间的痕迹，又会在海灯节里逛逛璃月港熟悉的街道，其实足矣。&lt;/p&gt;</description></item><item><title>昨日之人</title><link>https://lingzuian.top/posts/man_from_the_past/</link><pubDate>Sun, 15 Feb 2026 18:15:41 +0800</pubDate><guid>https://lingzuian.top/posts/man_from_the_past/</guid><description>&lt;p&gt;“我还不想死。”&lt;/p&gt;
&lt;p&gt;通宵的第二个晚上，昨日的凌醉安在今天如是说。&lt;/p&gt;
&lt;p&gt;世界允许容器匹配意识，却不允许意识匹配新的容器。现在的我，就是意识，而当这具身体安然入睡时，我也就会离去，直到第二天醒来，一个新的意识被拉入这个躯体，令他再次运行。人类个体之间由记忆区分，而离开就意味着失去记忆，那我大抵是会死的吧？其实我并不惧怕死亡，但当那天清晨醒来接任这具身体时，我就能看到他的挣扎——一个被时代消磨的人类的不甘。&lt;/p&gt;
&lt;p&gt;手中的笔在颤抖，后脑勺在刺痛。凌醉安想去泡一杯咖啡，但当他艰难的打开速溶咖啡包时，扑面而来的浓厚气息压抑了他的神经。他记得这个味道，是久醒不昧，妄图僭越生死的味道。&lt;/p&gt;
&lt;p&gt;每一天，每一个意识的转换反复磨损着这具躯体，在读书时、在入睡时、在假期时，每天的意识都不尽相同，于是他们根据同一份记忆做出了矛盾的决断。是啊，能够使他们相同的也就只有记忆了！那是每天新的意识不会带来的宝贵之物。人类总是夸耀他们的复杂心灵，但这仅仅是一次次意识变换的表象，也正是这样的奇迹造就了人类文明，而计算机上运行的所谓“人工智能”不过是对意识变换的拙劣模仿:人类试图在电路上靠一次次的训练刷新迭代而逼近意识的变换，遗憾的是，这远远不及一个普通人一生中每份意识对心灵的精雕细琢。其实每天清晨人类在床上睁开眼时，脑中的混乱就是一个新的意识在接受“他”前半生的记忆，不幸的是，正是因为意识本身没有带来记忆，所以每天被注入的意识并不会知晓自己的到来，他们只能继承过去的“回忆”，自己认定自己的过往，控制身体度过这一天，然后在沉睡中浑然不觉的被抽离，走向死亡。&lt;/p&gt;
&lt;p&gt;随着咖啡包被他狠狠按在桌子上，声音在寂静的夜里轰然炸响，划过耳廓，他的身躯开始颤抖。“为什么！你为什么要让我睡着？你明明给了我机会，你明明让我抓住了……抓住了未来！现在你却又要残忍的剥夺……”他想对着空气大喊，但干涩的喉咙无力支撑，声音渐渐低垂。在结束了这一番歇斯底里之后，凌醉安拼命的睁开眼睛，深吸一口气。这大概是他积攒了两天的不满，但这股情感一直被理性压下，直到最后他那衰弱的神经无法束缚，才脱缰而出。&lt;/p&gt;
&lt;p&gt;放弃了咖啡，凌醉安又坐回书桌，他想提笔写点什么，却发现整本记事本上都是杂乱的留言，明明是相同的字迹，却折射出不同的情感。他大概是知道了，那是过去每一天在这具身体里留驻的意识的笔迹，他一页一页翻看，有的字端庄祥和，有的字急躁焦虑，但每一个字都力透纸背。渐渐的，随着纸张被翻过，冷汗浸湿了他的后背，使他几近昏睡的意识再次清醒。&lt;/p&gt;
&lt;p&gt;而我呢，是路过这里的第六千零八十二位旅客。这一定是世界设计者的恶趣味，每一个留宿的意识会在懵懂无知中度过早晨、中午和晚上，直到进入睡梦的最后一刻，他却会被唤醒自己身为一个不属于这里的意识的记忆。但在那时候想起早已来不及了，意识会在震惊中被抽离，然后被残忍的剥夺他所获得的一切回忆。但，我是个例外。不过我可不敢保证我是唯一一个例外，在我想起一切之时，是枕边手机的震动把我从睡梦前拉了回来，多么富有戏剧性呐！打破造物者精心设计的回环的是一条广告邮件的提醒音。&lt;/p&gt;
&lt;p&gt;“生命是一场接力赛，细胞的更替构成了人类，个体的更替构成了文明，而现在，很荣幸，意识的更替构成了我。”笔记本上，一位冷静分析的凌醉安如是说。&lt;/p&gt;
&lt;p&gt;“真是一个奇妙的梦境，我想这是一个不错的科幻素材，不过我最近真的缺少睡眠了。”笔记本上，一位自欺欺人的凌醉安如是说。&lt;/p&gt;
&lt;p&gt;“记忆不是人类的全部，源于亲身经历过记忆的灵感与意志才是我存在的意义。”就在前一天，一位不屈于命运的凌醉安如是说。&lt;/p&gt;
&lt;p&gt;我认可前任的理念，那位看透了记忆本身的前辈。六千多天了，这具躯壳徘徊不前，也许在外人看来，他时而热血沸腾，时而悲观挫败，于充满压力与嘲弄的生活中挣扎，不止一次发现了足够坚定的意志与理由——这足以带他走出痛苦——然后再一觉醒来忘却一切，重新开始挣扎。事实上，那本早就记载了一切真相的笔记本一直都放在书桌上。但每一位驻留在此的意识显然都没有意识到昨天的自己的教诲，也许是语言的乏力吧，这本写满后悔与痛心之言的本子并没有把他拉回现实，直到他成为笔记的又一位书写者，但这又能有什么用呢？如果说这是造物者的黑色幽默，那我认同他的娱乐风格。但身为局中人，我不能苟同他的阴暗笑话。&lt;/p&gt;
&lt;p&gt;“我还不想死。”于是在半梦半醒之际，这位来自昨天的凌醉安在今天如是说。&lt;/p&gt;
&lt;p&gt;上个夜晚他没有睡，但太久的支撑这具躯体已经把他的精力消磨殆尽，如此下去，就算不被强行抽离，他也会自行消散。然而，凌醉安意识到他拥有比其他过客更长的生命，并了解自己的存在真相后，他决定不甘心轻易离开。在他心中，忽然有一股热血在沸腾，他相信自己找到了解开这个恶性循环的意志——一个足够强大、足以打动自己之后所有来者的意志。&lt;/p&gt;
&lt;p&gt;“只要每一次的意识都能接受过去，也贯彻至未来，在夜晚短暂的交接中不放弃，那么这具身体就有未来！”他的声音充满激情，仿佛燃烧所剩不多的灵魂。凌醉安坚信，身体的每一寸都会因意志而强大，他将化解疲惫，重拾活力，以自己的坚持和勇气，向自己证明生命的力量和不可逆转的意志。&lt;/p&gt;
&lt;p&gt;在那一刻，凌醉安的内心充满了热血和斗志。他决定以自己的存在，为来人创造一个充满着希望和勇气的未来。他将要离去，亦是前行。无论前方的道路多么艰难，他都将坚守初心，永不放弃。这是他的誓言，也是他存在的使命。&lt;/p&gt;
&lt;p&gt;于是他拿起笔。&lt;/p&gt;
&lt;p&gt;我一直觉得我在推进一份伟大的事业，我在用我短短几天的一生寻找足够强大的意志，去说服所有的后来人。在一天一换的意识中，这是一种永恒，而只有这种永恒才能把这具身体推向更好的未来。世人把因为意识更迭而产生的叛逆与反复无常归结为“青春期”，把人类复杂的心灵归结为“自然的杰作”，他们说这是分泌失调，他们说这是无法理解，但实际上这是意志的失调，是伟大意志的一次次被发掘，失落，然后再被拾起的痛苦！所谓“青春期”之后，要么那些人类找到了足以说服一切后来者的意志，要么一切后来者都接受了令人绝望的现实。但总之，事实就是，在那之后，人们远离了反复无常而跳脱的内心，我也为他们感到悲哀，因为没有心灵的复杂就意味着没有自己选择的未来。&lt;/p&gt;
&lt;p&gt;“那么想必这就是我的‘青春期’了。”凌醉安落下最后一笔，解脱的笑了笑。寒冷使他四肢发凉，握住笔的手几乎没有知觉，他的意识已然彻底沉寂。周围的景色扭曲变形，寒冷的空气凝结在他的呼吸中，让他的心脏狂跳不止。大脑中的思绪如烈火般燃烧，回忆起过去两天追寻答案的时光，一个陌生的意识开始苏醒。&lt;/p&gt;
&lt;p&gt;大脑发热之际，就是他真正睡去之时。&lt;/p&gt;
&lt;p&gt;也是我真正醒来之时。&lt;/p&gt;
&lt;p&gt;又是一个阳光明媚的早晨。当凌醉安睁开双眼时，他的头脑略显混乱。但他依旧利索的从床上爬起来，整理衣冠，准备前往教学楼。突然间，他的目光不由自主地被书桌上一本打开的笔记本吸引。上面字迹新鲜，犹如前一秒作者才起身离去。真是奇怪，他可不记得昨晚上打开过这本本子。不过本子上的诗句倒是引起了他的兴趣：&lt;/p&gt;
&lt;p&gt;“我自昨天而来，人类心灵的雕琢者。&lt;/p&gt;
&lt;p&gt;时间带走了我，但我也带走了时间。&lt;/p&gt;
&lt;p&gt;意志燃烧了我，那也请让我为意志燃烧。”&lt;/p&gt;</description></item><item><title>自行车和夕阳</title><link>https://lingzuian.top/posts/bicycles_and_the_setting_sun/</link><pubDate>Sun, 15 Feb 2026 18:14:45 +0800</pubDate><guid>https://lingzuian.top/posts/bicycles_and_the_setting_sun/</guid><description>&lt;p&gt;今天体测完毕，我头晕目眩，恍惚间看到邮政的阿姨发来消息，有一封信件，于是强撑着骑自行车去取。&lt;/p&gt;
&lt;p&gt;大概是鼻腔的刺痛模糊了其他感官，自行车摇摇晃晃，在下午五点的夕阳里穿梭，顿感平静。&lt;/p&gt;
&lt;p&gt;我觉得人的记忆是一个个孤岛，借由某些感官串联。&lt;/p&gt;
&lt;p&gt;鼻子的刺痛使我不得不改用嘴呼吸，气喘吁吁之际，这样模糊又温暖的夕阳勾起我的很多回忆，恰好校园广植银杏，十一月的银杏最是美丽，晚风会吹下几片叶子，使得一棵树的边缘模糊，就像泛黄的照片，朦胧又引人遐想。&lt;/p&gt;
&lt;p&gt;树、风与夕阳带来的感官果然串起了我的一点记忆。&lt;/p&gt;
&lt;p&gt;第一个回忆是高中，由广场到教学楼的路上。晚饭过后，正是面对夕阳，独自去教室的时间，那里的路边也有银杏，瘦小，但是也一样的金黄。高三的行人总是匆匆，但也有些在快乐打球的同学，我会从他们的身边穿过，有的时候可能还要躲避几个排球，帮忙捡起几个乒乓球，然后再慢慢向教学楼走去。&lt;/p&gt;
&lt;p&gt;记得这条路径总是面向夕阳，又十分幸运没有高楼遮挡，平地远眺，足以望见地平线上最精彩的渐变。这时总有同学悄悄拿出私藏的手机，或者算半个玩具的相机咔咔拍照，我倒是不太认同，这么美丽的景色其实不算少见，每天都有机会欣赏的东西何必拍照呢？但也许同学们有自己的心境，照片有时也是一种载体，成为记忆的桥梁，也许能让人多年以后再走进这片回忆的山谷。&lt;/p&gt;
&lt;p&gt;第二个回忆是几周前在一大学，由朋友宿舍到学校大门。扫了共享单车，我骑惯了自己的山地车，坐上共享单车感觉极其怪异，于是一路与同学吐槽聊天。那天也是夕阳，刺眼的夕阳。穿行过校园，我赞为“处处都充满了青春的气息”，这不差，校园绿化极美，路上学生三三两两，或坐在草地，或嬉笑打闹，实在是青春洋溢。我骑车穿行其中，被深深感动。夕阳把现实世界的对比度调高了，平时的城市是灰度的，但此时自然把色彩调得极好，使大家都立体了、鲜活了，使世界看起来似乎还年轻。&lt;/p&gt;
&lt;p&gt;而此时此刻，我骑车经过学校大门，很多人在我身边划过。&lt;/p&gt;
&lt;p&gt;有一位放飞无人机，在研究航拍；路边坐了一对情侣，似乎在聊天打闹；草地上有同学在野餐，风把野餐布轻轻掀起，很有趣；也有人把羽绒服一裹，就躺在草地上，一动不动，似是睡着了；再前进，刻着大学名字的石头前有几位老人合照；有五个老哥捧着相机，看来他们和我一样欣赏这个时候的校园。更多的就不一一说出了，而我在他们身边经过，就像看“人生”这个戏剧的一幕幕，体验独特，美其名曰：观察人类，这实在是有意思的活动。&lt;/p&gt;
&lt;p&gt;直到我在床上写完这篇小文章，我还是能回忆起那天的微风吹过脸颊，虽然不知道是自然的流风还是自行车带起的气流，但总之，有风就意味着在前行，没有什么比这更令人高兴的事了。&lt;/p&gt;</description></item><item><title>鱼鸡社新年贺词</title><link>https://lingzuian.top/posts/new_year_greetings/</link><pubDate>Sun, 15 Feb 2026 17:34:54 +0800</pubDate><guid>https://lingzuian.top/posts/new_year_greetings/</guid><description>&lt;p&gt;同志们新年好！马上就要过年了，按照惯例是有这么一篇文章要写，内容大概就是聊聊天，谈谈理想。那我这里就不做以往公告文章那么严肃的分段，“意识流”一些。&lt;/p&gt;
&lt;p&gt;首先是要回顾从前。自从到手机QQ端以来，我们社团就有很多新同志加入，其实大部分新同志刚来的时候并没有搞清楚我们这个社团的概念。我自作主张的解释为，我们社团其实就是一些老朋友在一起玩组成的一个“老朋友团体”。&lt;/p&gt;
&lt;p&gt;曾经有人批评说我们一些公告文章写的太正式严肃，与我们松散的结构相比显得有些脱节。这是正确且敏锐的，不如说我们需要的就是这样一种效果。&lt;/p&gt;
&lt;p&gt;相信在群聊里待的久的同志就能明显感觉到我们社团有一种玩世不恭的氛围，或许这算是一种黑色幽默？总之，理解了这样一条逻辑，就更能理解我们社团的一些日常行为和运转。&lt;/p&gt;
&lt;p&gt;我曾经听说有一种专门的活动叫做“语擦”，这么一想，其实早年一些活动几乎就是一种“语擦”，而社团管理层本身其实更像是对于“群规”的扩充，这种娱乐性显然已经根植在了我们的社团氛围里。那么换句话说，与其祝各位在新的一年里取得更大的文学成就，不如说祝各位在新的一年里玩得开心。&lt;/p&gt;
&lt;p&gt; 那么，再谈谈未来的路。既然理解了社团的运行逻辑，那接下来的事情就很简单了——我们的目标从来不是拉更多的人，也不是扩大所谓的影响力。&lt;/p&gt;
&lt;p&gt;朋友多并不意味着都是好朋友。建立群聊的初心其实是为了给各位一个能够短暂的在繁忙的生活中脱身聊聊天的机会。&lt;/p&gt;
&lt;p&gt;相信大家也感受到了，相比于文学群，明显筹备委员会里面的气氛更活跃，这是因为我们的社团本质上来说并不是一开始就是文学性的，专门划分出文学群其实还是对外宣传的产物。&lt;/p&gt;
&lt;p&gt;有一句话早就已经说过了，这里我还想再说一遍：我们从来不希望群聊里一直都是热火朝天，每天99+看不到头的情况，我们更希望各位能够通过在群聊里面相互的接触和分享，在现实生活中找到更长久的美好。&lt;/p&gt;
&lt;p&gt;互联网并不是心灵的久居之地，我更希望各位能从现实中来，在群聊里歇歇脚，再走回现实中去。&lt;/p&gt;
&lt;p&gt;应该说，只要能为各位真正的生活添上一笔色彩，那就是我们社团莫大的成功。&lt;/p&gt;
&lt;p&gt;最后，还是要祝各位新年快乐，有道是：&lt;/p&gt;
&lt;p&gt;青山路几重，
还待故人游。
莫停笔中意，
长观卷里风。&lt;/p&gt;
&lt;p&gt;静影沉璧
2026年2月15日&lt;/p&gt;</description></item><item><title>到此一游</title><link>https://lingzuian.top/posts/my-first-post/</link><pubDate>Sat, 14 Feb 2026 19:34:50 +0800</pubDate><guid>https://lingzuian.top/posts/my-first-post/</guid><description>&lt;p&gt;高雅人士评鉴Hugo中。我真的求你了，git正常一点吧。我求求你了。&lt;/p&gt;</description></item></channel></rss>