<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>/var/log/gblab</title><description>此处会不定时产生包含大量废话的日志文件</description><link>https://lab.gb0.dev/</link><item><title>我的 2O25</title><link>https://lab.gb0.dev/blog/my-2025</link><guid isPermaLink="true">https://lab.gb0.dev/blog/my-2025</guid><description>梦到哪句说哪句</description><pubDate>Mon, 01 Dec 2025 07:58:00 GMT</pubDate><content:encoded>&lt;p&gt;亲爱的观众朋友们过年好啊（哪儿有人啊这个），又到了这个啊一年一度大家都开始解冻的时节了，为了证明我还活着，我只能先把别的草稿都放一放，先把这个写出来吧。&lt;/p&gt;
&lt;p&gt;2025 年也是真的快过去了，如果说年初的那会儿我的精神状态还是“飞机上挂暖壶（怎么讲）有较高的水平”（您就这片汤话说的顺溜），那么年末的时候的我觉得这个暖壶应该是直接坠机了（man！），至于为什么等后面的部分应该会讲吧，虽然我觉得把之前的事情直接拿出来鞭尸其实是不太好的，但是为了把事情交代清楚我还是觉得说出来会比较好。&lt;/p&gt;
&lt;h2 id=&quot;1&quot;&gt;1&lt;/h2&gt;
&lt;p&gt;转眼间一年又过去了，我对于时间的感知也是更加的模糊不清了。我感觉，我的脑子早已经被留在了2024年之前，以至于我想知道自己真实的年龄，还需要在脑子里做一遍减法，然后才能告诉别人。不过想到以后的日子会越过越快，我的心里似乎也没什么太大的感觉，只是感觉我实行内心的想法可能需要抓紧时间了，不然以后只会更没有时间。&lt;/p&gt;
&lt;p&gt;也不知道为什么，把年前的 deadline 全都赶完，再次打开年终总结的时候，居然是年前乃至这个学期最后一节课的课堂上，大抵是拖延症又发力了吧。可能你们看到这个文章，也是在年后了，在此但愿我能很快地完成吧。&lt;/p&gt;
&lt;h2 id=&quot;2&quot;&gt;2&lt;/h2&gt;
&lt;p&gt;因为我的记性还没到那种很好的程度，所以我一时半会儿还真的说不上来这一年我有做什么很重要的事情，至少对于公认的“重要”的事情来说，我确实没有做。&lt;/p&gt;
&lt;p&gt;我想到那个说&lt;a href=&quot;https://www.bilibili.com/video/av1252820211&quot;&gt;中国人每年都是关键的视频&lt;/a&gt;，其实从另外一个角度来说，每年都是关键，那么每年都不是关键：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我觉得没毛病，都是转折点，不就画成一个圆了嘛？很多人终其一生，不就是怀揣梦想在原地打转嘛？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这话说得在理。&lt;/p&gt;
&lt;p&gt;其实做了多少也没有那么重要，忙忙碌碌也好，无所事事也罢，好在是活下来了，便还有希望在的。&lt;/p&gt;
&lt;p&gt;对于我个人来说，这一年也可以说是做了点事情的，因为不是我们这次总结的重点，所以就随便说两句吧：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;📅 注：这部分的“今年”，若无特殊说明都指 2025 年。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今年八月底的时候，我第二次带着成就玩完了《红弦俱乐部》，写下这段的时候一直认为今年玩了两次，结果翻了一下第一次是在24年年底的时候，不得不感慨自己的记性有点差了。关于这个游戏，我有很多想说的，草稿已经建好了许久，所以在这里不展开，等我把缺失的两个成就打完之后，就开始写吧。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 714px) 714px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;714&quot; height=&quot;763&quot; src=&quot;https://lab.gb0.dev/_astro/35026b29552e66d67cb79558eda096d1.tn6Mm1pi_2jAPVQ.webp&quot; srcset=&quot;/_astro/35026b29552e66d67cb79558eda096d1.tn6Mm1pi_ata7r.webp 640w, /_astro/35026b29552e66d67cb79558eda096d1.tn6Mm1pi_2jAPVQ.webp 714w&quot;&gt;&lt;/p&gt;
&lt;p&gt;同时，今年也是我第一次正经地进入电影院看电影。4 月 19 日，在强烈好奇心的驱使下，我观看了 Minecraft 大电影，虽然没有像群友那样看电影还可以拿到周边（说实话连周边的影子都没见到），但是精神上仍然获得了满足。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 819px) 819px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;819&quot; height=&quot;845&quot; src=&quot;https://lab.gb0.dev/_astro/dec1d15e12b141bffb536251d8b66d4a.5OL0DYL1_D2GW2.webp&quot; srcset=&quot;/_astro/dec1d15e12b141bffb536251d8b66d4a.5OL0DYL1_Z9vswo.webp 640w, /_astro/dec1d15e12b141bffb536251d8b66d4a.5OL0DYL1_ZHqf5L.webp 750w, /_astro/dec1d15e12b141bffb536251d8b66d4a.5OL0DYL1_D2GW2.webp 819w&quot;&gt;&lt;/p&gt;
&lt;p&gt;今年再次翻新了实验室（就是你现在看文章的地方），从 Hugo 搬家到 Astro，这期间做了不少折腾，有时间会另写一篇文章来讲述。新的实验室从五月份起开始立项折腾，一直到九月份才正式迁移，这里面发生的事情还是有亿点可以说的的。&lt;/p&gt;
&lt;p&gt;今年还去了上海，第一次出了这么远的门，本来想写一个游记来着，但是此后的日子里，一直都没有这样的精力，半年过去了也没有写。不过还是要感谢 AOSC 社区开了这么一个会议，孩子玩得很开心。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 709px) 709px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;709&quot; height=&quot;942&quot; src=&quot;https://lab.gb0.dev/_astro/4a82c02e155d3c77ddae21bf6d4d0177.DpQKbeop_ZdNWbK.webp&quot; srcset=&quot;/_astro/4a82c02e155d3c77ddae21bf6d4d0177.DpQKbeop_B6tUl.webp 640w, /_astro/4a82c02e155d3c77ddae21bf6d4d0177.DpQKbeop_ZdNWbK.webp 709w&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;3&quot;&gt;3&lt;/h2&gt;
&lt;p&gt;转眼间就到了考试周的周末，我回家也已经有几天有余，虽然还是未能及时发布年度总结，但倒是也符合我拖延的精神状态（拖延不好，大家不要学）。&lt;/p&gt;
&lt;p&gt;这一年的精神状态其实并没有什么改善，也正如开头的我写下的暖壶坠机（好烂的梗啊）一样，去年年初发的文章回头一看其实很多情况并没有得到解决，而我自己也不知道怎么解决。&lt;/p&gt;
&lt;p&gt;正当我还为了这些事情发愁的时候，生活再次以大运的形态创了我，让我半不知情地丢掉了喜欢的人。现在想来，似乎一切都只是我的疏于表达和单相思。生活里从不缺乏NTR，但如果自己是那个苦主的话，似乎也不能从中获得什么开心的事情用以取乐。都说人要向前看，但似乎我已经无法从中脱身了。&lt;/p&gt;
&lt;p&gt;我的眼界有限，也不知道这个世界到底是变得更好还是更坏。今年虽然很想写文章，但是最后也是只有年初的时候发的文章一篇。看到那篇文章的评论获得很多共鸣，心里面也有一点慰藉，可能这些至少不是我一个人的错。在此谢谢这些发评论的人。&lt;/p&gt;
&lt;p&gt;不知道该怎么往下写，但是突然想起来这么一段话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;每个人都有自己的桎梏：&lt;br&gt;
家庭、种族、社会地位、性别、财富…&lt;br&gt;
即使是手握强权和特权的人也有自己的负担。&lt;br&gt;
消极情绪冲击着我们每一个人，毫无区别，无论你是乞丐还是摇滚巨星…&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;可能放到现在的确如此吧，虽然这也只是一个七八年前的游戏里面的一段话罢了。&lt;/p&gt;
&lt;h2 id=&quot;4&quot;&gt;4&lt;/h2&gt;
&lt;p&gt;这个文章好像快要写完了吧，虽然因为我的 Notion AI 额度用完了，所以我也不能对着AI问什么人生问题来作为文章的结尾。&lt;/p&gt;
&lt;p&gt;因为很明显只是诉苦并不能起到一个积极的作用，所以诉苦的部分就暂时写那么多。&lt;/p&gt;
&lt;p&gt;虽然很明显晚饭后因为太困导致无法创作，效率会下降，但我又喜欢把白天的事情拖到晚上，导致创作这一块儿又开始卡壳了，又或者单纯只是体力不支吧。&lt;/p&gt;
&lt;p&gt;虽然说25年五味杂陈，但我相信26年一定会更为混乱（废话），至少站在现在，我不确定未来会发生什么，希望26年会更好吧，不过“下周再问我的话，说不定我会给出不同的答案。”&lt;/p&gt;
&lt;p&gt;就像某位游戏区up回归更新的视频里半故意把omori的o全部写成0也会引来圈子的不满一样，我所做的和我所为的也没有比这种文本替换高明到哪里去，只是故伎重施以此来减少一点似有似无的无意义批评罢了。&lt;/p&gt;
&lt;p&gt;以后应该不会再有年度总结了，我应该会更注重其他内容的写作吧，毕竟说实话，草稿箱里有很多亟待我去写的文章呢。&lt;/p&gt;
&lt;p&gt;总之谢谢你听我说一些稀里糊涂的话，祝你快乐，祝长生不老永远不死。&lt;/p&gt;
&lt;h2 id=&quot;5&quot;&gt;5&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;余少能视鬼，尝于雪夜野寺逢一提傀儡翁，鹤发褴褛，唯持一木偶制作极精，宛如娇女，绘珠泪盈睫，惹人见怜。&lt;br&gt;
时云彤雪狂，二人比肩向火，翁自述曰：少时好观牵丝戏，耽于盘铃傀儡之技，既年长，其志愈坚，遂以此为业，以物象人自得其乐。奈何漂泊终生，居无所行无侣，所伴唯一傀儡木偶。&lt;br&gt;
翁且言且泣，余温言释之，恳其奏盘铃乐，作牵丝傀儡戏，演剧于三尺红绵之上，度曲咿嘤，木偶顾盼神飞，虽妆绘悲容而婉媚绝伦。&lt;br&gt;
曲终，翁抱持木偶，稍作欢容，俄顷恨怒，曰：平生落魄，皆傀儡误之，天寒，冬衣难置，一贫至此，不如焚，遂忿然投偶入火。吾止而未及，跌足叹惋。忽见火中木偶婉转而起，肃拜揖别，姿若生人，绘面泪痕宛然，一笑迸散，没于篝焰。&lt;br&gt;
火至天明方熄。&lt;br&gt;
翁顿悟，掩面嚎啕，曰：暖矣，孤矣。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;credits:&lt;/p&gt;
&lt;p&gt;“飞机上挂暖壶（怎么讲）有较高的水平”来自&lt;a href=&quot;https://www.bilibili.com/festival/VSF2024live?bvid=BV1Lm41197Rw&amp;#x26;t=253&quot;&gt;《俺们的春联》&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;“都是转折点，不就画成一个圆了嘛”的论述来自&lt;a href=&quot;https://www.bilibili.com/video/BV19J4m1G7bS?comment_on=1&amp;#x26;comment_root_id=216067856640&amp;#x26;share_tag=s_i#reply216067856640&quot;&gt;《我的一生中，为什么每个阶段都那么重要？！》中的评论&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;“每个人都有自己的桎梏”的引用来自红弦俱乐部的文本&lt;/p&gt;
&lt;p&gt;“某位游戏区up回归更新的视频里半故意把omori的o全部写成0”的部分请自行在b站搜索“作者发烧13年做出来的游戏”，并查看相应视频的标签部分&lt;/p&gt;
&lt;p&gt;最后这一段莫名其妙的古文来自 &lt;a href=&quot;https://www.bilibili.com/video/BV1js411U7mR/&quot;&gt;【牵丝戏】原版 - 银臨&amp;#x26;Aki阿杰_哔哩哔哩&lt;/a&gt;&lt;/p&gt;</content:encoded><category>daily</category><author>草方块</author></item><item><title>写在自己的二十岁</title><link>https://lab.gb0.dev/blog/on-my-20th</link><guid isPermaLink="true">https://lab.gb0.dev/blog/on-my-20th</guid><description>我和我的生理年龄结了个形婚。有点扛不住了，发点牢骚。</description><pubDate>Tue, 07 Jan 2025 11:59:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;🚧 这篇主要内容是我的精神状态陈述，可能比较抑郁或者比较丧。如果你在阅读的时候感觉到任何的不适，你可以随时关掉这个页面，并且有可能的话请寻求信赖的人的帮助或者咨询心理医生。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今年是我来到这个世界的第二十个年头。&lt;/p&gt;
&lt;p&gt;似乎对于人类来说，“二十岁”是个很重要的时间节点，虽然我不知道这具体意味着什么，但是家长每次都在说像“你都快二十了怎么还这样”的话的时候，我都感觉这个节点很重要，我想它意味着某种形式上的“成熟”吧。&lt;/p&gt;
&lt;p&gt;但其实我完全没准备好（至少我自己这么觉得），就想象一下正在和小伙伴们玩的时候被家长叫回家吃饭的那种感觉，我感觉拿来形容我现在的状况最合适。&lt;/p&gt;
&lt;p&gt;我之前不止一次想象过自己能够获得这样那样的长进（学点技能、锻炼身体什么的），但因为没什么动力而从来没有到达过那样的境界，我也不知道是怎么了，并且最近一年这样的所谓“症状”还加重了，比如那篇我没完成的年度总结，连这篇都是以近乎某种强迫自己的态度去写的，也不知道你们什么时候能看到这篇文章。&lt;/p&gt;
&lt;p&gt;除了没啥长进以外，我还感受到我的心态上似乎也发生了一些我之前没察觉到的改变。好像以前那个乐观的、对未来抱有憧憬的那个我消失了，现在想到未来感觉大部分时间都是在因为它焦虑，或者被拿来哄骗自己“一切都会好起来的”。而且现在的我时常在想，现在的情况看起来这么差，要是能回到过去该多好啊，但是好像光想也没有用，改变也没有啥力量。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;睡前在 @能量加油站 的一条动态下面看到的，贴一张。不知道从哪个 minecraft 动画里截的，于是跑去问群友了，好像是我一直没开始看的《烦人的村民》系列的。&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1834px) 1834px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1834&quot; height=&quot;1080&quot; src=&quot;https://lab.gb0.dev/_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_1AKVw1.webp&quot; srcset=&quot;/_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_Z2uyttB.webp 640w, /_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_Z27GD5z.webp 750w, /_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_2f9pRM.webp 828w, /_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_1g6FwG.webp 1080w, /_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_fsWeM.webp 1280w, /_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_Z12LdrS.webp 1668w, /_astro/a688e7bbeafc463e8e9c64ff927f839b.Di3RRb0i_1AKVw1.webp 1834w&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;睡前在 @能量加油站 的一条动态下面看到的台词，贴一张。不知道从哪个 minecraft 动画里截的，于是跑去问群友了，好像是我一直没开始看的《烦人的村民》系列的。（防止发布的时候出问题我还是多贴一下这个说明吧，我还没试过 elog 对于图片说明的支持程度）&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;我见识比较少，不知道别的同龄人是不是也这样，也不好意思去问，因为他们看起来都是在忙自己的事情。&lt;/p&gt;
&lt;p&gt;我还时常想起来过去的一些尴尬或者伤心的事，但好像不是我主动想起，是它们横冲直撞地闯进脑子，然后给我的生活平添一点难受的感觉。可能或许正因如此我无法阻止它们。比如之前有一次临睡的时候自己的脑子正在胡思乱想呢，突然回想起来之前有一次干了一件自己想想很尴尬的事情，于是更睡不着了… 类似于触景生情的时候也是有的，比如刷着刷着视频发现能给教室的白板（希沃一体机那种东西）的软件（课程显示），突然想起来自己高中的时候因为折腾白板翻车挨骂了（笑死，甚至我在写到这句的时候想起来了），然后发生了一些内耗。&lt;/p&gt;
&lt;p&gt;回想起来这些年，其实应该也是有快乐的事情的，但好像那种想起来能开心一天的事情还真没有，只能靠微小的快乐调节一下心情。&lt;/p&gt;
&lt;p&gt;之前跟家长吵架说自己平常经常感到不安然后不开心，家长说我每天都钻进手机里，对着手机呵呵傻乐，也没见我不开心。其实我有时候也在想，如果没有手机电脑这些东西我会不会更开心，至今也没得出一个很确定的结论。但从现在的角度来说，为了防止我自己思维乱跳而导致的内耗，抛去那些副作用，我还是玩手机好一些…&lt;/p&gt;
&lt;p&gt;比之前在家更健忘，更常失眠了…唉，其实还是担心这样下去哪一天自己寄了…虽然有时候会想到，但我对自己的死亡这件事其实还是抱有恐惧的，可能只有当我的奇妙想法实现了之后我才会心安理得的面对。&lt;/p&gt;
&lt;p&gt;新的一天，今天看了之前应该是看过一次的&lt;a href=&quot;https://www.youtube.com/watch?v=MBRqu0YOH14&quot;&gt;乐观的虚无主义&lt;/a&gt; （但显然因为我的记性已经忘掉了大部分的内容了，甚至搜索的时候还把标题拼错了），里面说的一些观点其实还是有部分认同在里面的，但好像仅限于认同而已了。&lt;/p&gt;
&lt;p&gt;还是说回我自己吧，其实我自己对于自己其实有很大的迷茫在里面的，我也不知道，我对于我自己发展的长期规划是基本没有的，那对未来最为向往的人变成了最惧怕改变，最为墨守陈规的人。我已经很久没看那种描述未来的小说了，之前买的一堆《科幻世界》也有相当一部分被放在角落吃灰，事实上，除了教材以外，我已经很久没有平心看一本书了，甚至连电子书都没完整看完一本过，也挺悲哀的。&lt;/p&gt;
&lt;p&gt;其实应该也有改变的想法的，不然也就没有那些美好的想象了…吧？但好像也缺乏动力，放在我这种环境下想获得一点外界的鼓励似乎也不太可能，我也没这个勇气（苦笑）。&lt;/p&gt;
&lt;p&gt;隔一会儿就会看一下别的东西的毛病也不知道是从哪儿滋生出来的，东西没写多少，就要点一下右上角看看自己写了多少字儿（哦对我这篇是在 Notion 写的）。&lt;/p&gt;
&lt;p&gt;我还是挺喜欢写长文章的，虽然大部分内容都是废话，而且因为大学之后精神状态不太好，没动力去写。&lt;/p&gt;
&lt;p&gt;然后其实我也在想好像我自己没太为自己考虑过什么，可能我自小便接收到的信息就是如此，但是好像这并没换回来多少对我的考虑，亦或者…我做的还不够好，给自己又平添了伤痕。&lt;/p&gt;
&lt;p&gt;“你说这样下去我还能长期存活下去嘛”，我这样问右下角那个东张西望的脸（指 Notion AI），他说：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 691px) 691px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;691&quot; height=&quot;943&quot; src=&quot;https://lab.gb0.dev/_astro/0551ced03ccef68eb6290d045db22998.RXwU8XWZ_Z1rpiRG.webp&quot; srcset=&quot;/_astro/0551ced03ccef68eb6290d045db22998.RXwU8XWZ_fNb1G.webp 640w, /_astro/0551ced03ccef68eb6290d045db22998.RXwU8XWZ_Z1rpiRG.webp 691w&quot;&gt;&lt;/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;p&gt;（还是叠层甲，唉：快乐还是要建立在一个比较正当的基础上，把快乐建立在损害他人乃至公共空间的利益的基础上我觉得还是不太好的）&lt;/p&gt;
&lt;p&gt;嗯，很抱歉，我没法像之前看到的一位朋友在几乎同样的年纪写的长长一篇满怀希望的文章，如果放在以前，可能会，虽然现在强撑着应该能装出来，但是还是写出来比较好，可能会好一点儿。&lt;/p&gt;
&lt;p&gt;就这样吧，虽然上面的逻辑我不重读也知道是一片混乱的，这大概也挺符合我的精神状态的…每天都忙忙乎乎的但是都不知道做些什么，短期多巴胺驱动的也终不长久，能乐一会儿是一会儿吧。&lt;/p&gt;
&lt;p&gt;这篇文章发布出来应该正好是我的生日，那还是简单地祝自己生日快乐吧，希望新的一年…能活下来，至少先活下来。&lt;/p&gt;
&lt;p&gt;晚安。&lt;/p&gt;
&lt;p&gt;2025.02.10&lt;/p&gt;</content:encoded><category>thinking</category><author>草方块</author></item><item><title>2024 年年度总结</title><link>https://lab.gb0.dev/blog/2024-NOthing</link><guid isPermaLink="true">https://lab.gb0.dev/blog/2024-NOthing</guid><description>饿您饿丝年很快就结束了，是时候回顾一下了</description><pubDate>Tue, 31 Dec 2024 16:00:00 GMT</pubDate><content:encoded>&lt;p&gt;空空如也&lt;/p&gt;
&lt;div class=&quot;spoiler&quot; title=&quot;&quot; data-astro-cid-kuxeke7r=&quot;&quot;&gt;&lt;p&gt;还在写。但是精神状态不好，没什么动力写，所以先空出来吧。&lt;/p&gt;&lt;p&gt;可能我不太适合于那种按时上班一样的写总结的习惯，总是放在最后一刻然后无限拖延。&lt;/p&gt;&lt;p&gt;先这样吧。今年可能不会再有年度总结了，还是写一些自己真正想写的东西吧。&lt;/p&gt;&lt;p&gt;速览：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;博客大翻新&lt;/li&gt;
&lt;li&gt;搭了一堆服务&lt;/li&gt;
&lt;li&gt;看了很多牛肉，但年度 up 是央视农业&lt;/li&gt;
&lt;li&gt;线下面基两次&lt;/li&gt;
&lt;li&gt;玩游戏，玩了很多游戏&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content:encoded><category>daily</category><author>草方块</author></item><item><title>答独立博客自省问卷15题</title><link>https://lab.gb0.dev/blog/15-answers-to-blogging</link><guid isPermaLink="true">https://lab.gb0.dev/blog/15-answers-to-blogging</guid><description>尝试回答了独立博客自省问卷15题（https://yayu.net/4626.html）。</description><pubDate>Sun, 13 Oct 2024 15:28:00 GMT</pubDate><content:encoded>&lt;p&gt;题的来源：&lt;a href=&quot;https://yayu.net/4626.html&quot;&gt;独立博客自省问卷15题 · 雅余 · 茶余饭后，闲情雅致&lt;/a&gt;，随手答了一下。&lt;/p&gt;
&lt;p&gt;1、你的博客更新频率是多少？&lt;/p&gt;
&lt;p&gt;客观上来讲几个月一篇，想到了就打个草稿写。&lt;/p&gt;
&lt;p&gt;想做到一个月两篇，但是我的拖延症有点严重+有时候很忙所以没能做到…&lt;/p&gt;
&lt;p&gt;2、你的博客上次更新是什么时候？&lt;/p&gt;
&lt;p&gt;10月4日…半个月前，《&lt;a href=&quot;https://gb0.dev/migrate-to-bitwarden-again&quot;&gt;再次迁移到 Bitwarden&lt;/a&gt;》&lt;/p&gt;
&lt;p&gt;3、你的博客文章是原创的吗？&lt;/p&gt;
&lt;p&gt;主要是我自己写的，小部分依赖了AI（仅仅在一小部分文章的部分内容中使用了 Github Copilot 的自动建议补全）。&lt;/p&gt;
&lt;p&gt;4、你觉得自己的文章对他人有帮助吗？&lt;/p&gt;
&lt;p&gt;多多少少应该有吧…虽然我本意有一部分是怕自己忘了，然后记下来，然后还有一部分原因是“这个大家肯定还不知道怎么做，我可以写写给大家作参考”。&lt;/p&gt;
&lt;p&gt;像 &lt;a href=&quot;https://lab.gb0.dev/post/mxspace-on-zeabur/&quot;&gt;使用 Mix Space × Zeabur 搭建自己的个人空间（博客） &lt;/a&gt;，就是后半部分的产物。&lt;/p&gt;
&lt;p&gt;5、你上次换博客主题/程序是什么时候？&lt;/p&gt;
&lt;p&gt;今年2月份，换到 Hugo + &lt;a href=&quot;https://blowfish.page/&quot;&gt;blowfish&lt;/a&gt; 主题。&lt;/p&gt;
&lt;p&gt;6、你上一次捣腾博客主题代码是什么时候？&lt;/p&gt;
&lt;p&gt;10月11日，频率不固定。&lt;/p&gt;
&lt;p&gt;7、你会对博客主题进行二次开发？&lt;/p&gt;
&lt;p&gt;时不时自己改改，搞点花样，主题里面不符合自己需求的就改一下，不过都是小修小改。&lt;/p&gt;
&lt;p&gt;8、你多久打开自己博客自我陶醉一次？&lt;/p&gt;
&lt;p&gt;几乎每天都有，不过不是陶醉，一般都是看炸没炸，或者只是单纯想看（&lt;/p&gt;
&lt;p&gt;9、你近期对自己博客域名什么感受？&lt;/p&gt;
&lt;p&gt;新域名挺好的，gb0.dev，有点贵但是还在可接受范围内（&lt;/p&gt;
&lt;p&gt;10、你每天都会看网站的流量统计吗？
想起来就看看，大概每几天一回，自建了个&lt;a href=&quot;https://umami.is/&quot;&gt; umami &lt;/a&gt;来看。&lt;/p&gt;
&lt;p&gt;11、你通过博客的广告赚到钱了吗？&lt;/p&gt;
&lt;p&gt;博客没放广告，而且将来也不会有那种全站侵入性的广告。&lt;/p&gt;
&lt;p&gt;有一小部分 aff &amp;#x26; 广告在捐赠（顶栏菜单“投食”）页面，但依靠此类获得的收入几乎为0。&lt;/p&gt;
&lt;p&gt;12、你去浏览别人的博客/网站主要为什么？&lt;/p&gt;
&lt;p&gt;都是从比如搜索引擎等等的地方跳到这些网站来，然后学习别人分享的知识，顺带看看主题什么的。&lt;/p&gt;
&lt;p&gt;13、看到别人分享了一篇文章，你打开第一反应是什么？&lt;/p&gt;
&lt;p&gt;看文章内容符不符合自己的口味，以及能不能学到东西。&lt;/p&gt;
&lt;p&gt;&lt;del&gt;然后样式自己比较喜欢的话会顺便看看全站的主题。&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;14、你觉得博客哪方面更重要？&lt;/p&gt;
&lt;p&gt;内容，像主题啊什么的其他的都是锦上添花，当然也不能这些次要因素也不能太过极端，太好/太差都不太好（&lt;/p&gt;
&lt;p&gt;15、近期通过写博客有哪些新收获？&lt;/p&gt;
&lt;p&gt;好像没有，硬说的话…知识面有拓展…学会点新东西？&lt;/p&gt;
&lt;p&gt;还是挺希望通过博客交到新朋友的。&lt;/p&gt;
&lt;p&gt;以上。&lt;/p&gt;
&lt;p&gt;第一次尝试做这种，无论喜欢与否，都欢迎给出一点建议和反馈，这将助力我更好地写作。&lt;/p&gt;</content:encoded><category>thinking</category><author>草方块</author></item><item><title>再次迁移到 Bitwarden</title><link>https://lab.gb0.dev/blog/migrate-to-bitwarden-again</link><guid isPermaLink="true">https://lab.gb0.dev/blog/migrate-to-bitwarden-again</guid><description>出于对开源的喜爱与偏好，我把密码管理器换回了自建的 Bitwarden，再次折腾了一番。</description><pubDate>Mon, 30 Sep 2024 13:59:00 GMT</pubDate><content:encoded>&lt;p&gt;将近一年前，我听取了一位朋友的建议，把密码管理器换成了 1Password，并且使用了相当长一段时间，大多数时候它都很好用，只是偶尔经历网络抖动的时候，在手机上的自动填充要很久才能完成，不过还算可接受的范围内。&lt;/p&gt;
&lt;p&gt;还有比较难受的点是——1Password 的桌面客户端的前端界面是 Electron 做的，因为众所周知的问题（比如不支持 &lt;code&gt;text-input-v3&lt;/code&gt;、默认不支持 Wayland 等等），它在 Linux 上基于 Wayland 的桌面环境/窗管上的体验一言难尽，而我又对它的 ssh agent 有需求导致不得不用。好在我使用是 kde，kwin 的兼容性还算不错，勉强可以使用。&lt;/p&gt;
&lt;p&gt;但是其实更为主要的原因是和朋友合订的 1Password 家庭组订阅快要过期了，再加上对此类闭源服务有所介意，于是我决定从哪里来的，就回到哪里——我决定回到 Bitwarden。&lt;/p&gt;
&lt;p&gt;两三周前，我购入了一台 VPS ，借此契机，在上面自建了 Vaultwarden，并把数据迁移到了上面。&lt;/p&gt;
&lt;h1 id=&quot;迁移&quot;&gt;迁移&lt;/h1&gt;
&lt;h2 id=&quot;部署&quot;&gt;部署&lt;/h2&gt;
&lt;p&gt;我这次在 VPS 预装好的 Debian 12 进行操作，依照自己之前的尝试经验，选择了 Podman compose 部署方式。&lt;/p&gt;
&lt;p&gt;这部分比较简单：&lt;/p&gt;
&lt;p&gt;先安装podman和podman-compose：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:38ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;apt&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;install&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;podman&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;podman-compose&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;sudo apt install podman podman-compose&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;然后新建一个用户用于跑 rootless podman 容器（不新建也可，别用 root 跑就行，主要是保证安全性）：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:18ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;useradd&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-m&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;useradd -m service&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;设置好 rootless 容器，这部分可以参考：&lt;a href=&quot;https://wiki.archlinux.org/title/Podman#Rootless_Podman&quot;&gt;Podman - ArchWiki&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;登录到这个用户：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:18ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-s&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-u&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;sudo -s -u service&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;在合适的位置新建一个 &lt;code&gt;compose.yml&lt;/code&gt; 文件：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:126ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;services:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;vaultwarden:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;image:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;docker.io/vaultwarden/server:latest-alpine&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;container_name:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;vaultwarden&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;ports:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;127.0.0.1:8080:80&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;environment:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;DOMAIN:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://vaultwarden.ltd&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Your domain; vaultwarden needs to know it&apos;s https to work properly with attachments&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;SIGNUPS_ALLOWED:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 如果你想要私有化使用的话，关闭登录&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;ADMIN_TOKEN:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 开启管理页面，详情参考 https://github.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 你可能需要更多的配置，可以参考官方的文档&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;volumes:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;./data:/data&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;services:  vaultwarden:    image: docker.io/vaultwarden/server:latest-alpine    container_name: vaultwarden    ports:      - 127.0.0.1:8080:80    environment:      DOMAIN: &amp;#x22;https://vaultwarden.ltd&amp;#x22;  # Your domain; vaultwarden needs to know it&amp;#x27;s https to work properly with attachments      SIGNUPS_ALLOWED: &amp;#x22;false&amp;#x22; # 如果你想要私有化使用的话，关闭登录      ADMIN_TOKEN: &amp;#x22;&amp;#x22; # 开启管理页面，详情参考 https://github.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page    volumes:      - ./data:/data&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;使用 &lt;code&gt;podman-compose up -d&lt;/code&gt; 创建并启动这个容器即可，服务将会在 &lt;a href=&quot;http://localhost:8080/&quot;&gt;localhost:8080&lt;/a&gt; 可用。&lt;/p&gt;
&lt;p&gt;因为 Podman 自身是没有 daemon 来保证长期运行的，所以还需要手动配置：&lt;/p&gt;
&lt;p&gt;如果你使用 podman 4.4+，请参考这一部分： &lt;a href=&quot;https://github.com/dani-garcia/vaultwarden/wiki/Using-Podman#creating-a-quadlet-podman-44&quot;&gt;Using Podman &gt; Creating a Quadlet (Podman 4.4+)  · dani-garcia/vaultwarden Wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;因为截至文章撰写时 Debian 12 的 podman 版本还在 4.3.1，所以需要另外的办法：&lt;/p&gt;
&lt;p&gt;先回到一个拥有较高权限的账户（比如可以使用 sudo 的账户/root），为 &lt;code&gt;service&lt;/code&gt; 账户启用 linger：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:35ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;loginctl&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;enable-linger&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;sudo loginctl enable-linger service&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;重新登录 service 用户，为容器生成一份用户级别的 systemd unit：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:85ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;podman&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;generate&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;systemd&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--files&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--name&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;vaultwarden&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;mv&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;container-vaultwarden.service&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;~/.config/systemd/user/container-vaultwarden.service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;podman generate systemd --files --name vaultwardenmv container-vaultwarden.service ~/.config/systemd/user/container-vaultwarden.service&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;之后启动并启用这个 systemd 服务：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:53ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--user&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;enable&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;container-vaultwarden.service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--user&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;start&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;container-vaultwarden.service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;systemctl --user enable container-vaultwarden.servicesystemctl --user start container-vaultwarden.service&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;确保无误后，退出登录，检查服务有没有在运行：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:19ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;localhost:8080&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;curl localhost:8080&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;如果服务运行正常，那么应该会返回一些 HTML。&lt;/p&gt;
&lt;p&gt;随后就可以根据&lt;a href=&quot;https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples&quot;&gt;文档&lt;/a&gt;配置反代了，这里不再赘述。&lt;/p&gt;
&lt;p&gt;没有 VPS 的话，可以用 Zeabur 一键部署：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;button.svg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 172px) 172px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;172&quot; height=&quot;36&quot; src=&quot;https://lab.gb0.dev/_astro/5a645d024f639bfbbc82eb942b9d0603.BYlWxe_W_Z1exRPe.svg&quot; srcset=&quot;/_astro/5a645d024f639bfbbc82eb942b9d0603.BYlWxe_W_Z1exRPe.svg 172w&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;转移数据&quot;&gt;转移数据&lt;/h2&gt;
&lt;p&gt;参考 &lt;a href=&quot;https://bitwarden.com/help/import-from-1password/#tab-web-app-5ALQx9afSqWXX9jfXsY5sb&quot;&gt;Import Data from 1Password | Bitwarden Help Center&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;在导入完成后，如果有附件的话，还需要手动上传：&lt;/p&gt;
&lt;p&gt;登录到刚刚部署好的网页版 Vaultwarden，找到有对应附件的条目，点击右侧菜单中的“附件”即可上传：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1392px) 1392px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1392&quot; height=&quot;289&quot; src=&quot;https://lab.gb0.dev/_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_1Jx5Lt.webp&quot; srcset=&quot;/_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_ZWQhJL.webp 640w, /_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_ZXmN8C.webp 750w, /_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_1T7OPO.webp 828w, /_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_ZlVjcK.webp 1080w, /_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_Z12X8Jw.webp 1280w, /_astro/b8f2bdfff6872952f65e01d00f17102a.Bxa4Wb83_1Jx5Lt.webp 1392w&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;完善体验&quot;&gt;完善体验&lt;/h1&gt;
&lt;p&gt;仅仅部署好实例是不够的，为了补全 Bitwarden 体验上的不足，使其能够获得此前使用 1password 时相近的体验，还需要折腾。&lt;/p&gt;
&lt;h2 id=&quot;android&quot;&gt;Android&lt;/h2&gt;
&lt;p&gt;官方客户端不符合喜好，尝试了一下之前看到的  &lt;a href=&quot;https://github.com/AChep/keyguard-app/&quot;&gt;https://github.com/AChep/keyguard-app/&lt;/a&gt; ，Material You 设计，支持 passkey。&lt;/p&gt;
&lt;p&gt;在设置中添加相应的账户即可。&lt;/p&gt;
&lt;h2 id=&quot;linux&quot;&gt;Linux&lt;/h2&gt;
&lt;p&gt;之前在使用 1password 的时候，桌面端最常用的两个功能是 &lt;a href=&quot;https://support.1password.com/quick-access/&quot;&gt;Quick Access&lt;/a&gt; 和 &lt;a href=&quot;https://developer.1password.com/docs/ssh/agent/&quot;&gt;SSH agent&lt;/a&gt;，所以主要补全这一部分的体验。&lt;/p&gt;
&lt;h3 id=&quot;快速访问&quot;&gt;快速访问&lt;/h3&gt;
&lt;p&gt;第一次看到的是 &lt;a href=&quot;https://github.com/mattydebie/bitwarden-rofi&quot;&gt;mattydebie/bitwarden-rofi&lt;/a&gt; ，但是实际体验下来，发现并不好用，甚至同步过后都无法加载出我的密码库的内容：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1438px) 1438px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1438&quot; height=&quot;354&quot; src=&quot;https://lab.gb0.dev/_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_ZJmThS.webp&quot; srcset=&quot;/_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_Z22BErx.webp 640w, /_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_gfaMQ.webp 750w, /_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_Z1vCohA.webp 828w, /_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_ZGFpf3.webp 1080w, /_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_2dlgWn.webp 1280w, /_astro/986f8965e5c3b5aa87dc2d9140d18f6e.7JpCzSW0_ZJmThS.webp 1438w&quot;&gt;&lt;/p&gt;
&lt;p&gt;之后在翻类似的解决方案的时候翻到了 &lt;a href=&quot;https://github.com/fdw/rofi-rbw&quot;&gt;https://github.com/fdw/rofi-rbw&lt;/a&gt;，然后发现它使用的 rbw 顺便也提到了 ssh 的解决方案，正好把下面 ssh agent 的问题解决了，于是很开心的用上了。&lt;/p&gt;
&lt;p&gt;首先安装 &lt;a href=&quot;https://github.com/doy/rbw?tab=readme-ov-file&quot;&gt;rbw&lt;/a&gt;：&lt;/p&gt;
&lt;p&gt;对于 Arch Linux 用户，rbw 已经在 &lt;code&gt;extra&lt;/code&gt; 仓库内可用，所以可以直接安装：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:18ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;pacman&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-S&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rbw&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;sudo pacman -S rbw&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;对于其它发行版，可以参考文档，如果实在找不到，或者也可以先行安装 rust 相关环境和 &lt;a href=&quot;https://www.gnupg.org/related_software/pinentry/index.en.html&quot;&gt;&lt;code&gt;pinentry&lt;/code&gt;&lt;/a&gt; ，然后使用 &lt;code&gt;cargo&lt;/code&gt; 为当前用户安装：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:26ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;cargo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;install&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--locked&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rbw&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;cargo install --locked rbw&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;安装完成之后配置 rbw：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:61ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;rbw&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;config&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;base_url&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://vaultwarden.domain.ltd&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 实例地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;rbw&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;config&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;email&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;hi@imgb.space&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 账户对应的邮箱&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;rbw&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;login&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 输入密码即可&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;rbw config set base_url https://vaultwarden.domain.ltd # 实例地址rbw config set email hi@imgb.space # 账户对应的邮箱rbw login&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;之后安装 rofi-rbw：&lt;/p&gt;
&lt;p&gt;对于 Arch Linux 用户，rofi-rbw 已经在 &lt;code&gt;extra&lt;/code&gt; 仓库内可用，所以可以直接安装：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:23ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;pacman&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-S&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rofi-rbw&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;sudo pacman -S rofi-rbw&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;对于其它没有提供包的发行版可以使用 pip(x) 安装：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:27ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;pip&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;install&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--user&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rofi-rbw&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# or&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;pipx&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;install&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rofi-rbw&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;pip install --user rofi-rbwpipx install rofi-rbw&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;之后在终端里输入 &lt;code&gt;rofi-rbw&lt;/code&gt; 就可以启动了，它大概会长这样&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1158px) 1158px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1158&quot; height=&quot;452&quot; src=&quot;https://lab.gb0.dev/_astro/80e2d109e52a222f567ffaff6370b453.BFMBXWHx_27513S.webp&quot; srcset=&quot;/_astro/80e2d109e52a222f567ffaff6370b453.BFMBXWHx_WRFUb.webp 640w, /_astro/80e2d109e52a222f567ffaff6370b453.BFMBXWHx_Z11v5jr.webp 750w, /_astro/80e2d109e52a222f567ffaff6370b453.BFMBXWHx_1zqHr8.webp 828w, /_astro/80e2d109e52a222f567ffaff6370b453.BFMBXWHx_1KEMVf.webp 1080w, /_astro/80e2d109e52a222f567ffaff6370b453.BFMBXWHx_27513S.webp 1158w&quot;&gt;&lt;/p&gt;
&lt;p&gt;默认情况下是输入选中的项目，可以修改配置（&lt;code&gt;$XDG_CONFIG_HOME/rofi-rbw.rc&lt;/code&gt;）或者传递命令行参数来更改这一点。&lt;/p&gt;
&lt;p&gt;如果想使用原有的 &lt;code&gt;Ctrl + Shift + Space&lt;/code&gt; 快捷键唤出，可以手动设置：&lt;/p&gt;
&lt;p&gt;KDE Plasma：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2240px) 2240px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2240&quot; height=&quot;1400&quot; src=&quot;https://lab.gb0.dev/_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_ZQmHGT.webp&quot; srcset=&quot;/_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_26gzOS.webp 640w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_Z1QjIx9.webp 750w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_Z53TKU.webp 828w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_Z1kwHBf.webp 1080w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_Z2nKtVB.webp 1280w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_AeNE7.webp 1668w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_1LAEa.webp 2048w, /_astro/292982efbb9fe920df5001d2fb8e703c.DGf4-fvq_ZQmHGT.webp 2240w&quot;&gt;&lt;/p&gt;
&lt;p&gt;在最后一步输入 rofi-rbw 或者选择其所在的路径，之后找到对应项，再设置快捷键：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1354px) 1354px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1354&quot; height=&quot;859&quot; src=&quot;https://lab.gb0.dev/_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_Z1ncLWh.webp&quot; srcset=&quot;/_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_Z1wBL4i.webp 640w, /_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_Z2iiR8x.webp 750w, /_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_Z1XibFH.webp 828w, /_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_1hKn4Y.webp 1080w, /_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_jPc4V.webp 1280w, /_astro/9419f1f4c6e564cadfc206f59cbce104.BLgXQI3U_Z1ncLWh.webp 1354w&quot;&gt;&lt;/p&gt;
&lt;p&gt;其它桌面环境/窗管的实现方式可能不太一样，比如在 Hyprland：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:42ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;bind&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;CTRL&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;SHIFT,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;SPACE,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;exec,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rofi-rbw&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;bind = CTRL + SHIFT, SPACE, exec, rofi-rbw&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h3 id=&quot;ssh-agent&quot;&gt;SSH Agent&lt;/h3&gt;
&lt;p&gt;之前试过 &lt;a href=&quot;https://github.com/joaojacome/bitwarden-ssh-agent&quot;&gt;https://github.com/joaojacome/bitwarden-ssh-agent&lt;/a&gt;，但发现似乎每次重启都需要手动运行一次脚本，这无疑是比较麻烦的。刚好看到 rbw 项目里推荐了 &lt;a href=&quot;https://framagit.org/Glandos/bw-ssh&quot;&gt;bw-ssh&lt;/a&gt; 于是尝试了一下，感觉还不错。&lt;/p&gt;
&lt;p&gt;首先配置好 ssh-agent： &lt;a href=&quot;https://wiki.archlinux.org/title/SSH_keys#ssh-agent&quot;&gt;https://wiki.archlinux.org/title/SSH_keys#ssh-agent&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最简单的办法：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:41ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--user&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;enable&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;ssh-agent.service&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;systemctl --user enable ssh-agent.service&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;然后配置好环境变量：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:54ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#9039C9&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; SSH_AUTH_SOCK&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$XDG_RUNTIME_DIR/ssh-agent.socket&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;安装好 &lt;code&gt;rbw&lt;/code&gt;以及 Python 的 &lt;code&gt;sh&lt;/code&gt; 包，用包管理器装 &lt;code&gt;python-sh&lt;/code&gt; 即可。&lt;/p&gt;
&lt;p&gt;下载项目中的 bw-askpass 文件到本地任意位置，记下它的路径。&lt;/p&gt;
&lt;p&gt;然后在密码库中新建一个名为 &lt;code&gt;ssh&lt;/code&gt; 的文件夹（右上角新建&gt;文件夹），再在其中建立一个名为密钥名字（比如&lt;code&gt;id_ed25519&lt;/code&gt;）的项目，如果新建项目类型是“安全笔记”，那么在“备注”中填写这串密钥的 passphrase；如果是“登录信息”，那么在“密码”中填写这串密钥的 passphrase。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 推荐在创建时，勾选“主密码重新提示”，这样在每次打开时，都会要求输入主密码，最大程度保证安全。（如下图所示）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 948px) 948px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;948&quot; height=&quot;340&quot; src=&quot;https://lab.gb0.dev/_astro/f7721d95ba057c52fcd73e25231d12e7.9lJhv1KN_1zwReJ.webp&quot; srcset=&quot;/_astro/f7721d95ba057c52fcd73e25231d12e7.9lJhv1KN_ZRU0JR.webp 640w, /_astro/f7721d95ba057c52fcd73e25231d12e7.9lJhv1KN_1uGp5c.webp 750w, /_astro/f7721d95ba057c52fcd73e25231d12e7.9lJhv1KN_Z1g1R9W.webp 828w, /_astro/f7721d95ba057c52fcd73e25231d12e7.9lJhv1KN_1zwReJ.webp 948w&quot;&gt;&lt;/p&gt;
&lt;p&gt;然后在 shell 配置中配置好环境变量：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:40ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#9039C9&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; SSH_ASKPASS_REQUIRE&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;prefer&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#9039C9&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; SSH_ASKPASS&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/path/to/bw-askpass&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;export SSH_ASKPASS_REQUIRE=preferexport SSH_ASKPASS=&amp;#x22;/path/to/bw-askpass&amp;#x22;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;对于 fish 用户：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:41ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#4C6690&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-gx&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;SSH_ASKPASS_REQUIRE&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;prefer&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#4C6690&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-gx&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;SSH_ASKPASS&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/path/to/bw-askpass&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;set -gx SSH_ASKPASS_REQUIRE preferset -gx SSH_ASKPASS &amp;#x22;/path/to/bw-askpass&amp;#x22;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;注销并重新登录，使用 ssh 连接到一台已经配置好的机器，应该会出现类似于下面的提示，输入主密码，就可以登录了：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;image.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1180px) 1180px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1180&quot; height=&quot;309&quot; src=&quot;https://lab.gb0.dev/_astro/c719a88ac4504a9ae15ec8bae184e28f.Be5jxUoI_EwiYa.webp&quot; srcset=&quot;/_astro/c719a88ac4504a9ae15ec8bae184e28f.Be5jxUoI_Z1BAbN9.webp 640w, /_astro/c719a88ac4504a9ae15ec8bae184e28f.Be5jxUoI_YkuTd.webp 750w, /_astro/c719a88ac4504a9ae15ec8bae184e28f.Be5jxUoI_Zcplgi.webp 828w, /_astro/c719a88ac4504a9ae15ec8bae184e28f.Be5jxUoI_2qVla.webp 1080w, /_astro/c719a88ac4504a9ae15ec8bae184e28f.Be5jxUoI_EwiYa.webp 1180w&quot;&gt;&lt;/p&gt;
&lt;p&gt;这样就大功告成了。&lt;/p&gt;
&lt;p&gt;还有一个方案是使用 &lt;a href=&quot;https://github.com/quexten/goldwarden&quot;&gt;https://github.com/quexten/goldwarden&lt;/a&gt; ，但在我这边似乎会出现一些奇怪的问题，所以就没接着研究了。&lt;/p&gt;
&lt;h2 id=&quot;生成英文单词组合的易记密码&quot;&gt;生成英文单词组合的“易记密码”&lt;/h2&gt;
&lt;p&gt;之前找到了这个工具 &lt;a href=&quot;https://mdigi.tools/memorable-password/&quot;&gt;https://mdigi.tools/memorable-password/&lt;/a&gt; 能够实现生成包含英文单词的易记密码。&lt;/p&gt;
&lt;p&gt;之后有时间自己写一个工具。&lt;/p&gt;
&lt;p&gt;当然你可以参考 EFF 的 &lt;a href=&quot;https://www.eff.org/dice&quot;&gt;EFF Dice-Generated Passphrases | Electronic Frontier Foundation&lt;/a&gt; 来随机挑选挑选词，手动在词和词的中间以一个或两个数字/符号来进行分隔，能够起到相近的效果。&lt;/p&gt;
&lt;h1 id=&quot;对比表&quot;&gt;对比表&lt;/h1&gt;
&lt;p&gt;如果你在 1Password 和 Bitwarden 之间徘徊，我根据我的使用体验做了下面的一张表，你可以参考：&lt;/p&gt;






































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Bitwarden&lt;/th&gt;&lt;th&gt;1Password&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;价格（以官网标注的价格为准，低价区可能会更便宜）&lt;/td&gt;&lt;td&gt;免费版：无附件、2FA、安全警报等 // Premium：10$/年 // 家庭版：40$/年，最多6人（~6.67$/人/年）&lt;/td&gt;&lt;td&gt;没有免费版 // 个人版：2.99$/月（~36$/年）// 家庭版：4.99$/月（~60$/年），最多6人（~10$/人/年）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&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;原生 ssh agent&lt;/td&gt;&lt;td&gt;❌ 可以使用一些脚本+Bitwarden 的 cli 实现（见上文）&lt;/td&gt;&lt;td&gt;✅ 在桌面端 App 设置中开启并做好配置即可&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;分享密码&lt;/td&gt;&lt;td&gt;⭕ 勉强支持，可以通过 Bitwarden send/把朋友拉到组织里实现&lt;/td&gt;&lt;td&gt;✅ 支持生成某个条目的分享链接，设置有效期和范围&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;生成器&lt;/td&gt;&lt;td&gt;用户名、密码、邮箱、基于 Mozilla Relay 等临时邮箱服务的邮箱&lt;/td&gt;&lt;td&gt;只有密码&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;生成较为复杂的英文单词组成的易记密码&lt;/td&gt;&lt;td&gt;❌ 目前还不行，只能生成随机字符组成的密码&lt;/td&gt;&lt;td&gt;✅ 可以生成类似于 &lt;code&gt;outburst+bucket5?over&lt;/code&gt; 的形式&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Steam 令牌&lt;/td&gt;&lt;td&gt;✅ &lt;a href=&quot;https://community.bitwarden.com/t/question-about-steam-totp-codes/3513/14&quot;&gt;已经支持&lt;/a&gt;&lt;/td&gt;&lt;td&gt;❌ 还没有，似乎&lt;a href=&quot;https://1password.community/discussion/97919/steam-guard-support&quot;&gt;明确不会做&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&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;/td&gt;&lt;td&gt;支持文本、密码和布尔值&lt;/td&gt;&lt;td&gt;除文本、密码以外，支持安全问题、日期、电话、分组&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&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;/td&gt;&lt;td&gt;Node.js 编写的 &lt;code&gt;bw&lt;/code&gt; cli，也有基于 Rust 的第三方实现 &lt;a href=&quot;https://github.com/doy/rbw&quot;&gt;rbw&lt;/a&gt; 等等&lt;/td&gt;&lt;td&gt;使用 Go 编写，未能获取到更多信息&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;其它&lt;/td&gt;&lt;td&gt;- 有 Bitwarden Send，支持文本和文件，可以部分代替 PrivateBin 的机能&lt;/td&gt;&lt;td&gt;- 界面似乎更为美观一些，当然个人意见仅供参考&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;于是我也不知道花了几天写了这个东西，而我用自建的 Vaultwarden 也快半个月了，我真正找回了那种数据掌控在自己手中的感觉。&lt;/p&gt;
&lt;p&gt;文章基本上就是自己踩的坑，随便写写，如果对你有点用的话那谢天谢地。&lt;/p&gt;
&lt;p&gt;写文章的时候脑子比较糊，要是真出现了什么知识性错误请务必告诉咱。&lt;/p&gt;
&lt;p&gt;最近拿到了一个 Follow 邀请码，放在这里：&lt;code&gt;39325c2c563a476246343834484e5a3162715b28&lt;/code&gt; ，以及一段对话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我：你说咱们这样真的能拿到流量嘛？&lt;br&gt;
：放心吧，你把它放在这儿，没过一阵子你们人类制作的爬虫就会爬到这里来了，然后就会有更多人看到了&lt;br&gt;
我：那你把这串东西给我然后我放在这儿别人也不能用啊。&lt;br&gt;
：这不是不让你这刚认证你这网站送的机会白白溜走嘛&lt;br&gt;
我：那给我个面子，你把这东西变成这样的的办法告诉我。&lt;br&gt;
：不能明说，只能告诉你这个东西是先用你们常见的 base64 名字上几乎相类似的两种方法编码两次，再将每个字符表示为某种两个字节的形式得到的&lt;br&gt;
我：听起来好乱，我脑子更晕了。&lt;br&gt;
：没事，以目前人类代码的水平，已经有足够多的工具能解出这段东西了&lt;br&gt;
我：好吧，我是实在解不出来，我不知道有没有人和我一样。&lt;br&gt;
：实在不行，你可以在你的 Telegram 频道开一个抽奖&lt;br&gt;
我：小机器怪精明的…就照你说的办吧&lt;br&gt;
：…以及你不要再抄别人的灵感了&lt;br&gt;
我：好吧&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>使用 Mix Space × Zeabur 搭建自己的个人空间（博客）</title><link>https://lab.gb0.dev/blog/mxspace-on-zeabur</link><guid isPermaLink="true">https://lab.gb0.dev/blog/mxspace-on-zeabur</guid><description>喜大普奔，现在终于能在 Zeabur 上运行 Mix Space 了，无服务器选择喜+1。</description><pubDate>Wed, 15 May 2024 14:45:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;🚧 此教程仍在活跃维护中。由于写作时间跨度较大，某些部分可能不适用/不工作，但教程总体没有问题。&lt;br&gt;
&lt;del&gt;其实很早就可以了，但草师傅咕了很长时间，又熬夜才咕出来&lt;/del&gt;（悲&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;大概在半年之前，看到一位朋友把博客换成了 Mix Space，简单浏览一下发现功能还挺丰富的，而且正好符合我的需求（甚至前端都可以自己手搓），想要部署又苦于自己没有服务器，只好暂时作罢。&lt;/p&gt;
&lt;p&gt;后来接触到了 Zeabur 这个 Serverless 服务平台，能够将常见的服务和框架快速部署到云端，而且按用量计费，对于日常的小规模使用来说，基本不会超过开发者计划的每月的5$（35¥）额度，算是一个比较合适的选择。&lt;/p&gt;
&lt;p&gt;又因为其支持容器部署，我产生了将 Mix Space 部署在上面的想法。但很不幸的是，在此期间，我尝试许多次，均因为各种原因（几乎都能归因于脚本写错以及数据库连接不上）失败。&lt;/p&gt;
&lt;p&gt;好在事情在最近产生了转机：最近的这个 &lt;a href=&quot;https://github.com/mx-space/core/pull/1692&quot;&gt;pull request&lt;/a&gt; 带来了 docker 镜像的极大改进，通过环境变量指定配置更加容易，不需要劳心费神地修改启动脚本了。&lt;/p&gt;
&lt;p&gt;于是趁摸鱼的时候尝试部署，果然一次成功（效果如下）。我高兴地将成果分享给了那个朋友，&lt;del&gt;结果被催更了这么一篇教程，于是这只鸽子又双开始了写作，就有了这篇文章。&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;给那位发的效果图&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2560px) 2560px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2560&quot; height=&quot;1302&quot; src=&quot;https://lab.gb0.dev/_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_ZNhJY7.webp&quot; srcset=&quot;/_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_Z2mnHGa.webp 640w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_2rUD3g.webp 750w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_Z1D6Eau.webp 828w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_Z1lEvvS.webp 1080w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_221md.webp 1280w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_1DV8lW.webp 1668w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_Z2kEdeN.webp 2048w, /_astro/0c118abbfd9b9707c5559ec6c3337eb9.C9DysJYd_ZNhJY7.webp 2560w&quot;&gt;&lt;/p&gt;
&lt;p&gt;话不多说，教程开始！&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 本教程图片较多（已经过优化），可能会消耗大量流量，请多加注意。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;事前准备&quot;&gt;事前准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一个拥有开发者订阅或者团队订阅的 &lt;a href=&quot;https://zeabur.com/?referralCode=GrassBlock1&quot;&gt;Zeabur&lt;/a&gt; 账号，你可以直接使用 GitHub 登录并绑定支付方式使用&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mx-space.js.org/&quot;&gt;Mix Space 文档&lt;/a&gt;，用于查阅以及获取环境变量信息&lt;/li&gt;
&lt;li&gt;一个能够管理/添加 dns 记录的域名（如果没有的话，你可以使用 Zeabur 提供的域名）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;一键部署&quot;&gt;一键部署&lt;/h2&gt;
&lt;p&gt;经过我长达两个半小时的折腾之后，你终于可以通过模板一键部署了：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zeabur.com/templates/JMY1I1?referralCode=GrassBlock1&quot;&gt;&lt;img alt=&quot;Deploy on Zeabur&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 172px) 172px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;172&quot; height=&quot;36&quot; src=&quot;https://lab.gb0.dev/_astro/5a645d024f639bfbbc82eb942b9d0603.BYlWxe_W_Z1exRPe.svg&quot; srcset=&quot;/_astro/5a645d024f639bfbbc82eb942b9d0603.BYlWxe_W_Z1exRPe.svg 172w&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用这个模板部署后，你只需要绑定域名然后配置好前端和后端即可。&lt;/p&gt;
&lt;h3 id=&quot;绑定域名&quot;&gt;绑定域名&lt;/h3&gt;
&lt;p&gt;如果你更喜欢前端和后端使用不同的域名，只需要为 &lt;code&gt;mx-backend&lt;/code&gt; 和 &lt;code&gt;shiro&lt;/code&gt; 分别配置不同的域名即可。&lt;/p&gt;
&lt;p&gt;找到对应的服务，点击“网络”，找到“公开”一栏，如果你没有域名，可以点击“生成域名”产生一个 &lt;a href=&quot;http://zeabur.app/&quot;&gt;zeabur.app&lt;/a&gt; 域名，如果你愿意使用自己已有的域名，点击“自定域名”添加域名并配置对应记录即可，具体可参考&lt;a href=&quot;https://zeabur.com/docs/zh-CN/deploy/domain-binding&quot;&gt; Zeabur 有关域名绑定的文档&lt;/a&gt; 。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1327px) 1327px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1327&quot; height=&quot;464&quot; src=&quot;https://lab.gb0.dev/_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Z1XFe7Y.webp&quot; srcset=&quot;/_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Izz4l.webp 640w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_2l4DlO.webp 750w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_ZfUKXC.webp 828w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_2fzn9I.webp 1080w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Z1iH1ml.webp 1280w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Z1XFe7Y.webp 1327w&quot;&gt;&lt;/p&gt;
&lt;p&gt;如果你更喜欢前端和后端使用同一个域名，只需要为 &lt;code&gt;Nginx&lt;/code&gt; 服务配置域名即可，方法同上。&lt;/p&gt;
&lt;h3 id=&quot;配置前后端&quot;&gt;配置前后端&lt;/h3&gt;
&lt;p&gt;打开对应的后台管理页面（一般来说是 &lt;code&gt;后端域名/proxy/qaqdmin&lt;/code&gt; 或者  &lt;code&gt;域名/qaqdmin&lt;/code&gt; ），不出意外的话，你应该会看到配置引导页面，按照提示设置即可，但请确保后端地址等参数是正确的。&lt;/p&gt;
&lt;p&gt;完成后，按照 &lt;a href=&quot;https://mx-space.js.org/themes/shiro#%E8%AE%BE%E7%BD%AE%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE&quot;&gt;Shiro 主题的文档&lt;/a&gt; 完成前端的主题配置，就可以开始你的写作之旅了。&lt;/p&gt;
&lt;p&gt;如果你对手动部署调配更感兴趣，可以接着看：&lt;/p&gt;
&lt;h2 id=&quot;部署后端&quot;&gt;部署后端&lt;/h2&gt;
&lt;p&gt;打开 Zeabur 的 dashboard (dash.zeabur.com)，点击创建项目：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2155px) 2155px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2155&quot; height=&quot;383&quot; src=&quot;https://lab.gb0.dev/_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Z1BmyN9.webp&quot; srcset=&quot;/_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Z5AVDa.webp 640w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Z1hmSQS.webp 750w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Z87SAK.webp 828w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Z1sLbWr.webp 1080w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Yvb0h.webp 1280w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_ZmOvR7.webp 1668w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_1N6iyC.webp 2048w, /_astro/b1373a8acf5512b705bf01e0d8baa242.CIcWwQ9z_Z1BmyN9.webp 2155w&quot;&gt;&lt;/p&gt;
&lt;p&gt;选择一个合适的地区（本文以香港为例）（如果要选择上海，请提前将域名做好备案）：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 923px) 923px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;923&quot; height=&quot;648&quot; src=&quot;https://lab.gb0.dev/_astro/ba25fc9e2ddc698c94a1a84d6e97d756.DEXi6LIF_26h6LB.webp&quot; srcset=&quot;/_astro/ba25fc9e2ddc698c94a1a84d6e97d756.DEXi6LIF_Z1LIMyQ.webp 640w, /_astro/ba25fc9e2ddc698c94a1a84d6e97d756.DEXi6LIF_Z1NgStU.webp 750w, /_astro/ba25fc9e2ddc698c94a1a84d6e97d756.DEXi6LIF_2l5I8f.webp 828w, /_astro/ba25fc9e2ddc698c94a1a84d6e97d756.DEXi6LIF_26h6LB.webp 923w&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;部署数据库&quot;&gt;部署数据库&lt;/h3&gt;
&lt;p&gt;在接下来的页面中选择“数据库”，然后在列表中选择 MongoDB：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 883px) 883px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;883&quot; height=&quot;616&quot; src=&quot;https://lab.gb0.dev/_astro/c7d417fa48c86faf60438e2d69b9094d.Cmq7C6Do_TofWT.webp&quot; srcset=&quot;/_astro/c7d417fa48c86faf60438e2d69b9094d.Cmq7C6Do_1wMiyM.webp 640w, /_astro/c7d417fa48c86faf60438e2d69b9094d.Cmq7C6Do_ZMpO5n.webp 750w, /_astro/c7d417fa48c86faf60438e2d69b9094d.Cmq7C6Do_Z24TBGH.webp 828w, /_astro/c7d417fa48c86faf60438e2d69b9094d.Cmq7C6Do_TofWT.webp 883w&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 886px) 886px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;886&quot; height=&quot;665&quot; src=&quot;https://lab.gb0.dev/_astro/dace48174f0f56942a5575d2d476ca3e.CSgLIR8a_Z1zv7Y1.webp&quot; srcset=&quot;/_astro/dace48174f0f56942a5575d2d476ca3e.CSgLIR8a_2sQ8l9.webp 640w, /_astro/dace48174f0f56942a5575d2d476ca3e.CSgLIR8a_Z1gUfke.webp 750w, /_astro/dace48174f0f56942a5575d2d476ca3e.CSgLIR8a_Z21k2o6.webp 828w, /_astro/dace48174f0f56942a5575d2d476ca3e.CSgLIR8a_Z1zv7Y1.webp 886w&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 或者，你也可以选择暂时跳过，并在”添加服务“时再部署 MongoDB 和 Redis，且二者的先后顺序可以调换。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;完成之后，你应该看到和下图相似的界面：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1764px) 1764px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1764&quot; height=&quot;1000&quot; src=&quot;https://lab.gb0.dev/_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_1AKtPr.webp&quot; srcset=&quot;/_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_2cKpDv.webp 640w, /_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_V6E87.webp 750w, /_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_2cCP8j.webp 828w, /_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_YJND8.webp 1080w, /_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_Z2BynN.webp 1280w, /_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_ZyeJQa.webp 1668w, /_astro/0146c56b29c9c7861305efc5ffadc2fa.Dror1c9p_1AKtPr.webp 1764w&quot;&gt;&lt;/p&gt;
&lt;p&gt;点击新建服务，按照上一个步骤所示的操作部署 Redis 数据库，完成后应当如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2394px) 2394px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2394&quot; height=&quot;1382&quot; src=&quot;https://lab.gb0.dev/_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_ZevAlE.webp&quot; srcset=&quot;/_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_Z1kayKV.webp 640w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_27T2Y.webp 750w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_jdrCi.webp 828w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_Z27CQAL.webp 1080w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_1vvzGy.webp 1280w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_11C2Xe.webp 1668w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_Z1g44sJ.webp 2048w, /_astro/b367f9f9d05d1ec340fbae6e94ad0294.LjKjtMFD_ZevAlE.webp 2394w&quot;&gt;&lt;/p&gt;
&lt;p&gt;之后我们就可以正式开始部署了。&lt;/p&gt;
&lt;h3 id=&quot;正式部署&quot;&gt;正式部署&lt;/h3&gt;
&lt;p&gt;再次点击“添加服务”，不过这次我们选择“预构建镜像”，然后点击对话框右上角的“自定义”，如图所示：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 872px) 872px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;872&quot; height=&quot;643&quot; src=&quot;https://lab.gb0.dev/_astro/935d5560be1553672c66d1b3a6d1caaf.D2JZSdF__28nAGd.webp&quot; srcset=&quot;/_astro/935d5560be1553672c66d1b3a6d1caaf.D2JZSdF__ueNG2.webp 640w, /_astro/935d5560be1553672c66d1b3a6d1caaf.D2JZSdF__2ivEak.webp 750w, /_astro/935d5560be1553672c66d1b3a6d1caaf.D2JZSdF__1y6R6s.webp 828w, /_astro/935d5560be1553672c66d1b3a6d1caaf.D2JZSdF__28nAGd.webp 872w&quot;&gt;&lt;/p&gt;
&lt;p&gt;在弹出的对话框中点击左下角的&lt;code&gt;编辑 TOML 文件&lt;/code&gt;，对以下内容进行适当修改并填入：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:113ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;mx-backend&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;image &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;innei/mx-server&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;ports&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;id &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;web&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;port &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#C2A3BC;--1:#A64930&quot;&gt;2333&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;type &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;HTTP&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;volumes&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;id &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;mx-space&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;dir &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/root/.mx-space&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;env&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;TZ &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Asia/Shanghai&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;NODE_ENV &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;production&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;ALLOWED_ORIGINS &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;localhost&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 更改为自己的博客（前端）所要使用的域名&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;JWT_SECRET &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;YOUR_SUPER_SECURED_JWT_SECRET_STRING&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 需要自己填写，请务必保存好&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_HOST &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${MONGO_HOST}&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# （这条以及下方的不要修改！）这里是为了正确地使用到 Zeabur 所提供的环境变量，从而确保数据库连接信息正确&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_USERNAME &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${MONGO_USERNAME}&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_PASSWORD&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;={&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${MONGO_PASSWORD}&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_PORT &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;={&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${MONGO_PORT}&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;name = &amp;#x22;mx-backend&amp;#x22;[source]image = &amp;#x22;innei/mx-server&amp;#x22;[[ports]]id = &amp;#x22;web&amp;#x22;port = 2333type = &amp;#x22;HTTP&amp;#x22;[[volumes]]id = &amp;#x22;mx-space&amp;#x22;dir = &amp;#x22;/root/.mx-space&amp;#x22;[env]TZ = { default = &amp;#x22;Asia/Shanghai&amp;#x22; , expose = true }NODE_ENV = { default = &amp;#x22;production&amp;#x22; , expose = true }ALLOWED_ORIGINS = { default = &amp;#x22;localhost&amp;#x22; , expose = true } # 更改为自己的博客（前端）所要使用的域名JWT_SECRET = { default = &amp;#x22;YOUR_SUPER_SECURED_JWT_SECRET_STRING&amp;#x22; , expose = true } # 需要自己填写，请务必保存好DB_HOST = { default = &amp;#x22;${MONGO_HOST}&amp;#x22; , expose = true } # （这条以及下方的不要修改！）这里是为了正确地使用到 Zeabur 所提供的环境变量，从而确保数据库连接信息正确DB_USERNAME = { default = &amp;#x22;${MONGO_USERNAME}&amp;#x22; , expose = true }DB_PASSWORD={ default = &amp;#x22;${MONGO_PASSWORD}&amp;#x22; , expose = true }DB_PORT ={ default = &amp;#x22;${MONGO_PORT}&amp;#x22; , expose = true }&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;或者手动填写（和上面的效果相同）：&lt;/p&gt;
&lt;p&gt;镜像：&lt;code&gt;innei/mx-server:latest&lt;/code&gt; （输入完成后点击“OK”方可完成下面的步骤）&lt;/p&gt;
&lt;p&gt;环境变量 ：点击展开按钮，之后点击”添加环境变量“，填写&lt;a href=&quot;#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F&quot;&gt;环境变量&lt;/a&gt; 一节中的内容（一行只填写一个，左为key，右为value，并&lt;strong&gt;只&lt;/strong&gt;勾选上暴露，填写下一个时再点击一次”添加环境变量“）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 由于手动添加环境变量十分麻烦，所以如果使用这个办法，强烈建议先不填写环境变量，之后再参考后面的步骤填写。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;端口：点击&lt;code&gt;添加端口&lt;/code&gt;，端口名称：web （可自定义方便识别），端口号：2333，类型保持 HTTP 不变 （服务要使用的端口）&lt;/p&gt;
&lt;p&gt;卷：点击添加卷，卷 ID：&lt;code&gt;mx-space&lt;/code&gt;，路径：&lt;code&gt;/root/.mx-space&lt;/code&gt; （可选，如果你需要备份则必须填写）&lt;/p&gt;
&lt;p&gt;检查无误后，点击&lt;code&gt;部署&lt;/code&gt;即可部署。&lt;/p&gt;
&lt;h3 id=&quot;环境变量&quot;&gt;环境变量&lt;/h3&gt;
&lt;p&gt;打开创建好的后端（在本例中为 &lt;code&gt;mx-backend&lt;/code&gt; ）服务，点击环境变量，随后点击“编辑原始环境变量”，将下面的内容做好修改后填入：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:72ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;TZ&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Asia/Shanghai&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;NODE_ENV&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;production&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;ALLOWED_ORIGINS&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;localhost&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 更改为自己的博客（前端）所要使用的域名&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;JWT_SECRET&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;YOUR_SUPER_SECURED_JWT_SECRET_STRING&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 需要自己填写，请务必保存好&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_HOST&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=${&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;MONGO_HOST&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# （不要修改！）这里是为了正确地使用到 Zeabur 所提供的环境变量，从而确保数据库连接信息正确&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_USERNAME&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=${&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;MONGO_USERNAME&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_PASSWORD&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=${&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;MONGO_PASSWORD&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;DB_PORT&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=${&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;MONGO_PORT&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;TZ=Asia/ShanghaiNODE_ENV=productionALLOWED_ORIGINS=localhost # 更改为自己的博客（前端）所要使用的域名JWT_SECRET=YOUR_SUPER_SECURED_JWT_SECRET_STRING # 需要自己填写，请务必保存好DB_HOST=${MONGO_HOST} # （不要修改！）这里是为了正确地使用到 Zeabur 所提供的环境变量，从而确保数据库连接信息正确DB_USERNAME=${MONGO_USERNAME}DB_PASSWORD=${MONGO_PASSWORD}DB_PORT=${MONGO_PORT}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;填写完成后，点击保存，注意右下角弹出的提示，点击上面的“Redeploy”.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 853px) 853px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;853&quot; height=&quot;530&quot; src=&quot;https://lab.gb0.dev/_astro/073b861502ebdbfbf776661f9e637fc8.BWFZCkZS_V1M6w.webp&quot; srcset=&quot;/_astro/073b861502ebdbfbf776661f9e637fc8.BWFZCkZS_Eorxo.webp 640w, /_astro/073b861502ebdbfbf776661f9e637fc8.BWFZCkZS_kMuam.webp 750w, /_astro/073b861502ebdbfbf776661f9e637fc8.BWFZCkZS_ZGF9lt.webp 828w, /_astro/073b861502ebdbfbf776661f9e637fc8.BWFZCkZS_V1M6w.webp 853w&quot;&gt;&lt;/p&gt;
&lt;p&gt;如果错过了这个提示，你也可以点击“部署”一栏的“重启”手动重启：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1366px) 1366px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1366&quot; height=&quot;687&quot; src=&quot;https://lab.gb0.dev/_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_2rUPy6.webp&quot; srcset=&quot;/_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_Z1xaTgB.webp 640w, /_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_19jxMK.webp 750w, /_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_2sKQFt.webp 828w, /_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_eyTqz.webp 1080w, /_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_a22z3.webp 1280w, /_astro/d6555ba9b6ba7fad998c505f22606ddd.IhVPa55L_2rUPy6.webp 1366w&quot;&gt;&lt;/p&gt;
&lt;p&gt;等待服务重启完成时，完成最后一步——绑定域名：&lt;/p&gt;
&lt;p&gt;点击“网络”，找到“公开”一栏，如果你没有域名，可以点击“生成域名”产生一个 &lt;a href=&quot;http://zeabur.app/&quot;&gt;zeabur.app&lt;/a&gt; 域名，如果你愿意使用自己已有的域名，点击“自定域名”添加域名并配置对应记录即可，具体可参考&lt;a href=&quot;https://zeabur.com/docs/zh-CN/deploy/domain-binding&quot;&gt; Zeabur 有关域名绑定的文档&lt;/a&gt; 。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1327px) 1327px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1327&quot; height=&quot;464&quot; src=&quot;https://lab.gb0.dev/_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Z1XFe7Y.webp&quot; srcset=&quot;/_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Izz4l.webp 640w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_2l4DlO.webp 750w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_ZfUKXC.webp 828w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_2fzn9I.webp 1080w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Z1iH1ml.webp 1280w, /_astro/fab907e4dfefbce3cef2fd44fc36cc88.BOo1V9kt_Z1XFe7Y.webp 1327w&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 如果你想让前端和后端共用一个域名，那么请跳过此步，并在前后端部署完成后阅读 &lt;a href=&quot;#%E6%89%A9%E5%B1%95%E5%8C%85%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%8D%95%E4%B8%AA%E5%9F%9F%E5%90%8D&quot;&gt;扩展包：使用单个域名&lt;/a&gt; 一节的相关内容。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;至此，后端的部署工作已经基本完成，如果不出意外，后端服务的状态应当是“运行中”了。&lt;/p&gt;
&lt;h2 id=&quot;配置后端&quot;&gt;配置后端&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 如果你想让前端和后端共用一个域名，那么请跳过此步，并在前后端部署完成后阅读 &lt;a href=&quot;#%E6%89%A9%E5%B1%95%E5%8C%85%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%8D%95%E4%B8%AA%E5%9F%9F%E5%90%8D&quot;&gt;扩展包：使用单个域名&lt;/a&gt; 一节的相关内容。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;首先确保后端对应的服务在运行，新建一个浏览器标签页，打开 &lt;code&gt;绑定的域名/proxy/qaqdmin&lt;/code&gt; ，不出意外的话，你应该会看到配置引导页面，按照提示设置即可。&lt;/p&gt;
&lt;p&gt;完成后，你应该会被重定向到后台管理的仪表盘，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2890px) 2890px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2890&quot; height=&quot;1692&quot; src=&quot;https://lab.gb0.dev/_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_ZONzJX.webp&quot; srcset=&quot;/_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_1oMlIo.webp 640w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_Z1PIECL.webp 750w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_23JJGJ.webp 828w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_K6xXV.webp 1080w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_ZSgMLv.webp 1280w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_Z2bvXtb.webp 1668w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_Z1UOI.webp 2048w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_1RkrlX.webp 2560w, /_astro/e2dd24a0aae5bc09deaebe1369b3b156.BRu2eMLT_ZONzJX.webp 2890w&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;部署前端&quot;&gt;部署前端&lt;/h2&gt;
&lt;p&gt;由于 Mix Space 目前已知的还在维护的前端只有 Shiro，下面的教程将以其作为示例，如果你拥有自己的前端或者想要使用不再维护的前端，欢迎尝试。&lt;/p&gt;
&lt;p&gt;有两种方法可供选择，但无论如何，&lt;strong&gt;请务必先通过&lt;/strong&gt; &lt;a href=&quot;https://mx-space.js.org/themes/shiro#%E9%94%AE%E5%85%A5%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F--%E5%BC%80%E5%A7%8B%E9%83%A8%E7%BD%B2&quot;&gt;&lt;strong&gt;Shiro 主题文档&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;完成准备步骤，获取并设置到相应的配置和环境变量！否则前端将无法正常使用！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;比较推荐的方法是使用 Docker 容器创建自定义服务：&lt;/p&gt;
&lt;p&gt;和部署后端基本一致，在原有的项目再次点击“新建服务”，选择预构建镜像，点击“自定义”，填入如下信息：&lt;/p&gt;
&lt;p&gt;镜像：&lt;code&gt;innei/shiro:latest&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;端口：点击&lt;code&gt;添加端口&lt;/code&gt;，端口名称：web （可自定义方便识别），端口号：2323，类型保持 HTTP 不变 （服务要使用的端口）&lt;/p&gt;
&lt;p&gt;环境变量：点击展开按钮，之后点击 ”添加环境变量“，key 填写 &lt;code&gt;NEXT_SHARP_PATH&lt;/code&gt;，value填写&lt;code&gt;/usr/local/lib/node_modules/sharp&lt;/code&gt;，并&lt;strong&gt;只&lt;/strong&gt;勾选上 暴露。&lt;/p&gt;
&lt;p&gt;其它保持留空即可。&lt;/p&gt;
&lt;p&gt;或者使用 TOML 文件：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:84ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Shiro&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;image &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;innei/shiro&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;ports&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;id &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;web&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;port &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#C2A3BC;--1:#A64930&quot;&gt;2323&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;type &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;HTTP&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;env&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;NEXT_SHARP_PATH &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; default &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/usr/local/lib/node_modules/sharp&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; expose &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;name = &amp;#x22;Shiro&amp;#x22;[source]image = &amp;#x22;innei/shiro&amp;#x22;[[ports]]id = &amp;#x22;web&amp;#x22;port = 2323type = &amp;#x22;HTTP&amp;#x22;[env]NEXT_SHARP_PATH = { default = &amp;#x22;/usr/local/lib/node_modules/sharp&amp;#x22; , expose = true  }&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;点击右下角部署即可。&lt;/p&gt;
&lt;p&gt;随后来到项目页，点击环境变量，随后点击“编辑原始环境变量”，将从文档处获得的环境变量填入，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1331px) 1331px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1331&quot; height=&quot;517&quot; src=&quot;https://lab.gb0.dev/_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_ZdiXlg.webp&quot; srcset=&quot;/_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_ZqoHI0.webp 640w, /_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_Z1zIqBd.webp 750w, /_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_1jhdBk.webp 828w, /_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_ZmvzCP.webp 1080w, /_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_Z1wxocB.webp 1280w, /_astro/90db3365a7c4dda871b85d8999c56502.BluFaKnf_ZdiXlg.webp 1331w&quot;&gt;&lt;/p&gt;
&lt;p&gt;完成后点击保存，重启服务。&lt;/p&gt;
&lt;p&gt;最后参考部署后端时绑定域名的步骤绑定域名，即可到访问博客。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;🚧 请确保你在此处绑定的是你想展示给外界的域名（即你的博客域名），且不能和后端的域名重复。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 如果你想让前端和后端共用一个域名，那么请跳过绑定域名的步骤，并在部署完成后阅读 &lt;a href=&quot;#%E6%89%A9%E5%B1%95%E5%8C%85%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%8D%95%E4%B8%AA%E5%9F%9F%E5%90%8D&quot;&gt;扩展包：使用单个域名&lt;/a&gt; 一节的相关内容。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;还有一种方法是通过 Git 方式部署（可能会失败，建议先行尝试）：&lt;/p&gt;
&lt;p&gt;首先将 &lt;a href=&quot;https://github.com/Innei/Shiro&quot;&gt;Innei/Shiro&lt;/a&gt; 仓库 Fork 到你的 GitHub 账户（ 目前 Zeabur 通过此种方式仅支持 GitHub ）下，如果需要修改源码，请提前修改并推送到仓库：&lt;/p&gt;
&lt;p&gt;然后回到 Zeabur 仪表盘相对应的项目，点击新建服务，选择 GitHub。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 926px) 926px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;926&quot; height=&quot;713&quot; src=&quot;https://lab.gb0.dev/_astro/5dac1ded0e3be676761bf0318510080d.iEzTFrz2_22c9bk.webp&quot; srcset=&quot;/_astro/5dac1ded0e3be676761bf0318510080d.iEzTFrz2_ZMJtnF.webp 640w, /_astro/5dac1ded0e3be676761bf0318510080d.iEzTFrz2_Z2ePPjW.webp 750w, /_astro/5dac1ded0e3be676761bf0318510080d.iEzTFrz2_Z19qFYs.webp 828w, /_astro/5dac1ded0e3be676761bf0318510080d.iEzTFrz2_22c9bk.webp 926w&quot;&gt;&lt;/p&gt;
&lt;p&gt;然后在弹出的对话框中点击“配置 GitHub”，授权访问 Fork 所在的账户中的仓库。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1187px) 1187px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1187&quot; height=&quot;858&quot; src=&quot;https://lab.gb0.dev/_astro/6022c86689e2d0217c716234dab665dc.BARLfTBP_LENGw.webp&quot; srcset=&quot;/_astro/6022c86689e2d0217c716234dab665dc.BARLfTBP_2edb5q.webp 640w, /_astro/6022c86689e2d0217c716234dab665dc.BARLfTBP_Zhl3uw.webp 750w, /_astro/6022c86689e2d0217c716234dab665dc.BARLfTBP_Z2cDYy2.webp 828w, /_astro/6022c86689e2d0217c716234dab665dc.BARLfTBP_29eSlL.webp 1080w, /_astro/6022c86689e2d0217c716234dab665dc.BARLfTBP_LENGw.webp 1187w&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1703px) 1703px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1703&quot; height=&quot;732&quot; src=&quot;https://lab.gb0.dev/_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_1C90UI.webp&quot; srcset=&quot;/_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_luhyJ.webp 640w, /_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_d7dkv.webp 750w, /_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_ZBv2f8.webp 828w, /_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_A0qhj.webp 1080w, /_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_zMdX7.webp 1280w, /_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_1jtpyJ.webp 1668w, /_astro/7dfb2ec4c63a539c2cbc27f657c6b188.ChWl2gvw_1C90UI.webp 1703w&quot;&gt;&lt;/p&gt;
&lt;p&gt;完成授权后选择 Shiro 所在的仓库即可部署。&lt;/p&gt;
&lt;p&gt;部署之后，参考上面的方法填入环境变量，绑定域名即可访问你的博客。&lt;/p&gt;
&lt;p&gt;至此，整个部署过程就结束了，希望你能够享受写博客的乐趣！&lt;/p&gt;
&lt;h2 id=&quot;扩展包使用单个域名&quot;&gt;扩展包：使用单个域名&lt;/h2&gt;
&lt;p&gt;如果你觉得前端和后端分别部署在两个域名比较麻烦，那么通过使用 Nginx 等 web 服务器配置反向代理来实现单域名访问是一个不错的方案，而在 Zeabur 中也比较容易实现这一点。&lt;/p&gt;
&lt;p&gt;首先来到 Zeabur 仪表盘，打开部署的 Mix Space 项目，点击“添加服务”，选择“预构建镜像”：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1198px) 1198px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1198&quot; height=&quot;976&quot; src=&quot;https://lab.gb0.dev/_astro/8e1a9db397da09605891369f2ecc41d5.DssntVKm_Z2l41Sq.webp&quot; srcset=&quot;/_astro/8e1a9db397da09605891369f2ecc41d5.DssntVKm_1PmxWK.webp 640w, /_astro/8e1a9db397da09605891369f2ecc41d5.DssntVKm_Z1myrA7.webp 750w, /_astro/8e1a9db397da09605891369f2ecc41d5.DssntVKm_Z5irCt.webp 828w, /_astro/8e1a9db397da09605891369f2ecc41d5.DssntVKm_Z1Ansiq.webp 1080w, /_astro/8e1a9db397da09605891369f2ecc41d5.DssntVKm_Z2l41Sq.webp 1198w&quot;&gt;&lt;/p&gt;
&lt;p&gt;在列表中找到 Nginx，并点击部署：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1205px) 1205px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1205&quot; height=&quot;473&quot; src=&quot;https://lab.gb0.dev/_astro/a6c1aa1f9eab1e5736cdd440f8ab5d26.BJ0r0vhF_Z10HPNW.webp&quot; srcset=&quot;/_astro/a6c1aa1f9eab1e5736cdd440f8ab5d26.BJ0r0vhF_vLBWl.webp 640w, /_astro/a6c1aa1f9eab1e5736cdd440f8ab5d26.BJ0r0vhF_Z1sB9hh.webp 750w, /_astro/a6c1aa1f9eab1e5736cdd440f8ab5d26.BJ0r0vhF_1qouVg.webp 828w, /_astro/a6c1aa1f9eab1e5736cdd440f8ab5d26.BJ0r0vhF_2fJA4f.webp 1080w, /_astro/a6c1aa1f9eab1e5736cdd440f8ab5d26.BJ0r0vhF_Z10HPNW.webp 1205w&quot;&gt;&lt;/p&gt;
&lt;p&gt;在 Services 区域中，点击 nginx 服务的 &lt;code&gt;设置&lt;/code&gt; 栏目的下拉按钮，找到 &lt;code&gt;Configs&lt;/code&gt; 部分点击 &lt;code&gt;Open Config Editor&lt;/code&gt; 按钮，进入配置文件编辑器。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2351px) 2351px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2351&quot; height=&quot;1312&quot; src=&quot;https://lab.gb0.dev/_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_Z13Qs1Y.webp&quot; srcset=&quot;/_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_Z1SIMqT.webp 640w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_1TNzQD.webp 750w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_Z1mMoa4.webp 828w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_1qnK5i.webp 1080w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_102lLR.webp 1280w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_15q931.webp 1668w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_ZBXDot.webp 2048w, /_astro/4ef2419c800840a9235fca650538e32e.CXvsuLgj_Z13Qs1Y.webp 2351w&quot;&gt;&lt;/p&gt;
&lt;p&gt;在打开的编辑器中，清空默认打开的 &lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt; ，并填入以下内容：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 在此例中，我们假设后端对应的服务的名称是 &lt;code&gt;mx-backend&lt;/code&gt; ，前端对应的服务的名称是 &lt;code&gt;shiro&lt;/code&gt; （如上图所示）。如果你的项目中的服务不使用这些名字，需要手动修改对应的配置。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;text&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:82ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;worker_processes  5;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;error_log  stderr;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;worker_rlimit_nofile 8192;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;events {}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;http {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;default_type application/octet-stream;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;log_format   main &apos;$remote_addr - $remote_user [$time_local]  $status &apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;&apos;&quot;$request&quot; $body_bytes_sent &quot;$http_referer&quot; &apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;&apos;&quot;$http_user_agent&quot; &quot;$http_x_forwarded_for&quot;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;access_log   /dev/stdout  main;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;sendfile     on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;tcp_nopush   on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;server_names_hash_bucket_size 128; # this seems to be required for some vhosts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;server {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## 反向代理开始&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## WebSocket 地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location /socket.io {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_set_header Upgrade $http_upgrade;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_set_header Connection &quot;Upgrade&quot;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_buffering off;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_set_header Host $host;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_set_header X-Forwarded-Proto $scheme;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://mx-backend.zeabur.internal:2333/socket.io;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## API 地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location /api/v2 {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://mx-backend.zeabur.internal:2333/api/v2;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## 简读 render 地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location /render {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://mx-backend.zeabur.internal:2333/render;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## Shiro 地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location / {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://shiro.zeabur.internal:2323;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## 后台地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location /proxy {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://mx-backend.zeabur.internal:2333/proxy;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location /qaqdmin {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://mx-backend.zeabur.internal:2333/proxy/qaqdmin;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## RSS 地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;location ~* \/(feed|sitemap|atom.xml) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;proxy_pass http://mx-backend.zeabur.internal:2333/$1;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;## 反向代理结束&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;worker_processes  5;error_log  stderr;worker_rlimit_nofile 8192;events {}http {    default_type application/octet-stream;    log_format   main &amp;#x27;$remote_addr - $remote_user [$time_local]  $status &amp;#x27;    &amp;#x27;&amp;#x22;$request&amp;#x22; $body_bytes_sent &amp;#x22;$http_referer&amp;#x22; &amp;#x27;    &amp;#x27;&amp;#x22;$http_user_agent&amp;#x22; &amp;#x22;$http_x_forwarded_for&amp;#x22;&amp;#x27;;    access_log   /dev/stdout  main;    sendfile     on;    tcp_nopush   on;    server_names_hash_bucket_size 128; # this seems to be required for some vhosts    server {        ## 反向代理开始        ## WebSocket 地址        location /socket.io {            proxy_set_header Upgrade $http_upgrade;            proxy_set_header Connection &amp;#x22;Upgrade&amp;#x22;;            proxy_buffering off;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;            proxy_set_header X-Forwarded-Proto $scheme;            proxy_pass http://mx-backend.zeabur.internal:2333/socket.io;        }        ## API 地址        location /api/v2 {            proxy_pass http://mx-backend.zeabur.internal:2333/api/v2;        }        ## 简读 render 地址        location /render {            proxy_pass http://mx-backend.zeabur.internal:2333/render;        }        ## Shiro 地址        location / {            proxy_pass http://shiro.zeabur.internal:2323;        }        ## 后台地址        location /proxy {            proxy_pass http://mx-backend.zeabur.internal:2333/proxy;        }        location /qaqdmin {            proxy_pass http://mx-backend.zeabur.internal:2333/proxy/qaqdmin;        }        ## RSS 地址        location ~* \/(feed|sitemap|atom.xml) {            proxy_pass http://mx-backend.zeabur.internal:2333/$1;        }        ## 反向代理结束    }}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;完成后滚到代码底部，点击下方的 Save 即可保存。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Untitled.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1679px) 1679px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1679&quot; height=&quot;939&quot; src=&quot;https://lab.gb0.dev/_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_Zpgfns.webp&quot; srcset=&quot;/_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_ZE2S63.webp 640w, /_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_ZAB8Ui.webp 750w, /_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_Z1hx77r.webp 828w, /_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_2pH5Yx.webp 1080w, /_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_19nVsi.webp 1280w, /_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_p1bcS.webp 1668w, /_astro/41342fb21f3a56728ed34fa8fe963ff9.CunfO3Vl_Zpgfns.webp 1679w&quot;&gt;&lt;/p&gt;
&lt;p&gt;返回到服务列表，找到 &lt;code&gt;部署&lt;/code&gt; 区域，点击 &lt;code&gt;重启&lt;/code&gt; 按钮以重启服务，以使配置文件生效。&lt;/p&gt;
&lt;p&gt;我们来到最后的绑定域名环节。点击“网络”，找到“公开”一栏，如果你没有域名，可以点击“生成域名”产生一个 &lt;a href=&quot;http://zeabur.app/&quot;&gt;zeabur.app&lt;/a&gt; 域名，如果你愿意使用自己已有的域名，点击“自定域名”添加域名并配置对应记录即可，具体可参考&lt;a href=&quot;https://zeabur.com/docs/zh-CN/deploy/domain-binding&quot;&gt; Zeabur 有关域名绑定的文档&lt;/a&gt; 。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ 注意：这里需要绑定的是你想展示给外界的域名（即你的博客域名）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 如果您使用此部分示例配置 Nginx 反向代理，您的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;API 地址为 &lt;code&gt;https://www.example.com/api/v2&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;前端（Kami/Shiro）地址为 &lt;code&gt;https://www.example.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GateWay 为 &lt;code&gt;https://www.example.com&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本地后台为 &lt;code&gt;https://www.example.com/proxy/qaqdmin&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（其中 &lt;a href=&quot;http://www.example.com/&quot;&gt;&lt;code&gt;www.example.com&lt;/code&gt;&lt;/a&gt; 是你在这个步骤中绑定的域名）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;按照上述设定配置好前端和后端后，新建一个浏览器标签页，打开 &lt;code&gt;绑定的域名/qaqdmin&lt;/code&gt; ，不出意外的话，你应该会看到配置引导页面，按照提示设置即可，同时请务必检查默认给出的API等相关地址是否正确，如果不正确请尽快修改。&lt;/p&gt;
&lt;p&gt;完成后，二者应当都正常工作，你应该可以顺利地开始写作之旅了！&lt;/p&gt;
&lt;h2 id=&quot;可能存在的问题&quot;&gt;可能存在的问题&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;部署之后的 Mix Space 无法通过后台进行备份（表现为面板中显示备份文件不存在），推荐通过 Zeabur 自带的备份功能进行备份（一周手动操作一次）。&lt;/li&gt;
&lt;li&gt;如果需要更新版本，直接重启对应的服务即可更新，管理面板的更新可以直接通过面板自身完成，且数据不会丢失。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;总结&quot;&gt;总结&lt;/h2&gt;
&lt;p&gt;总的来说思路是先部署数据库，再部署后端和前端，并尽可能通过环境变量进行配置，其中比较必要的是环境变量 DB=${MONGO} 的映射，其余部分会简单不少。&lt;/p&gt;
&lt;p&gt;如果你觉得项目有用，欢迎去给 &lt;a href=&quot;https://github.com/mx-space/core&quot;&gt;mx-space/core&lt;/a&gt; 点个 ⭐，如果你觉得教程有用，也欢迎多多支持咱（&lt;/p&gt;
&lt;p&gt;不出意外的话，最近会把主站搬迁到使用这个办法部署的 Mix Space，敬请期待。&lt;/p&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>不仅仅是迁移到 Hugo - 实验室日志</title><link>https://lab.gb0.dev/blog/migrated-to-hugo-and-more</link><guid isPermaLink="true">https://lab.gb0.dev/blog/migrated-to-hugo-and-more</guid><description>大概也算是某种网站维护日志？希望这是一个好的开始。</description><pubDate>Thu, 01 Feb 2024 11:07:20 GMT</pubDate><content:encoded>&lt;p&gt;如你所见，实验室在经过我几天的折腾之后焕然一新。希望这次的更新能给你带来更好的体验！&lt;/p&gt;
&lt;p&gt;说实话，当我接触到Hugo的时候我就一直筹划着这件事。这不正好放了寒假嘛，时间空余比较多，所以花了大概一周把迁移工作完成了。&lt;/p&gt;
&lt;p&gt;以下是迁移记录。&lt;/p&gt;
&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;从Hexo迁移到Hugo（主要）&lt;/li&gt;
&lt;li&gt;整理网站内容及结构&lt;/li&gt;
&lt;li&gt;托管服务切换到Cloudflare Pages&lt;/li&gt;
&lt;li&gt;在 envs.net 上建立了新的镜像&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;可能造成的影响&quot;&gt;可能造成的影响&lt;/h3&gt;
&lt;p&gt;为了尽量减小迁移带来的影响，我&lt;a href=&quot;#%E9%83%A8%E5%88%86%E7%BB%86%E8%8A%82&quot;&gt;修改了部分配置&lt;/a&gt;。但是以下方面仍有可能影响到原有的订户：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对于使用RSS订阅本站更新的用户，需要将订阅源的地址修改为 &lt;code&gt;https://lab.imgb.space/posts/index.xml&lt;/code&gt; ，且可能需要启用 &lt;code&gt;全文拉取&lt;/code&gt; 或者与其类似的功能。&lt;/li&gt;
&lt;li&gt;未来的一段时间内将不再提供评论功能，目前正在寻找新的方案。&lt;/li&gt;
&lt;li&gt;一部分质量较低的“水文”以及已经失去效用的文章和页面已经删除，所对应的链接已经失效。&lt;/li&gt;
&lt;li&gt;部分文章由于包含Hugo无法解析的特殊语法，导致排版等出现问题，我会尽快修复。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;从hexo迁移到hugo&quot;&gt;从Hexo迁移到Hugo&lt;/h2&gt;
&lt;p&gt;吸引我迁移到Hugo的原因主要是&lt;a href=&quot;https://github.com/adityatelange/hugo-PaperMod&quot;&gt;PaperMod&lt;/a&gt;，这个主题的设计非常符合我的审美。我一度有过将它移植到Hexo的想法，但最终因为能力有限加上精力不足，这个计划暂且搁置了。&lt;del&gt;而且相较于移植，直接搬家到所对应的Hugo的成本更低一些。&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;其次Hugo构建等等的速度也比Hexo快很多，所以我决定迁移。&lt;/p&gt;
&lt;h3 id=&quot;摘要&quot;&gt;摘要&lt;/h3&gt;
&lt;p&gt;此部分工作自2024年1月17日开始，持续时间约半个月，进行了包括但不限于内容迁移、主题选择和配置等工作。&lt;/p&gt;
&lt;h3 id=&quot;部分细节&quot;&gt;部分细节&lt;/h3&gt;
&lt;h4 id=&quot;挑选主题&quot;&gt;挑选主题&lt;/h4&gt;
&lt;p&gt;前面提到我因为 &lt;a href=&quot;https://github.com/adityatelange/hugo-PaperMod&quot;&gt;PaperMod&lt;/a&gt; 这个主题而决定迁移，但是我在准备迁移时还是翻了一下 &lt;a href=&quot;https://themes.gohugo.io/&quot;&gt;Hugo Themes&lt;/a&gt;，发现了界面更为美观，功能性上也更强，文档也更为完备的 &lt;a href=&quot;https://blowfish.page/&quot;&gt;Blowfish&lt;/a&gt;，于是决定使用。&lt;/p&gt;
&lt;p&gt;我使用 Git submodule 引入主题，这样可以方便地更新主题。之后按照 &lt;a href=&quot;https://blowfish.page/docs/installation/#set-up-theme-configuration-files&quot;&gt;主题的文档&lt;/a&gt; 将主题包含的的配置文件复制到了项目的 &lt;code&gt;config&lt;/code&gt; 文件夹下并进行必要修改。&lt;/p&gt;
&lt;p&gt;但是这个主题在我需要的功能上有一些缺失，所以我在迁移的过程中对主题自身还进行了一些小的修改。&lt;/p&gt;
&lt;h4 id=&quot;迁移文章&quot;&gt;迁移文章&lt;/h4&gt;
&lt;p&gt;Hexo 和 Hugo 都使用 Markdown 作为文章的存储格式，所以迁移文章的工作相对来说比较简单。&lt;/p&gt;
&lt;p&gt;不过由于 Hugo 对于 Front Matter 中的语法要求比较严格，单纯复制目前所有文章的 markdown 文件反而会导致渲染失败，比如迁移之前有一篇文章的 Front matter 的一部分是这样的：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;yaml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:18ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;categories&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;tech&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;categories: &amp;#x27;tech&amp;#x27;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;会因为&lt;code&gt;categories&lt;/code&gt;所要求的类型不匹配（要求array，得到string）而导致渲染失败。&lt;/p&gt;
&lt;p&gt;所以我在迁移的时候，对要迁移的所有文章的 Front Matter 进行了一次检查和修改，具体方法是先在没有文章的情况下 &lt;code&gt;hugo server&lt;/code&gt; 跑一个服务，然后把文章逐一地复制，看到报错就修改。好在2021年以后的文章都是在IDE里写的，出的问题比较少，而且这些文章占大多数。&lt;/p&gt;
&lt;p&gt;不过找个 linter 或者其类似物应该更快一些，效果会更好。&lt;/p&gt;
&lt;p&gt;Blowfish 获取封面的方式与我迁移前使用的 &lt;a href=&quot;https://butterfly.js.org/&quot;&gt;Butterfly&lt;/a&gt; 主题有所不同。Butterfly 只需要在 Front Matter 中指定 &lt;code&gt;cover&lt;/code&gt; 字段，而 Blowfish 需要更改存放文章的文件目录结构，以我的年终总结文章为例，原来的目录结构是这样的：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:29ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;content&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;└── posts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;├── 2021-on-the-portal.md&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;├── 2022-year-review.md&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;└── ...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;content└── posts    ├── 2021-on-the-portal.md    ├── 2022-year-review.md    └── ...&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;为了让 Blowfish 能够正确获取封面，我需要将目录结构改为这样，并将封面文件置于与文章同级的文件夹中：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:26ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;content&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;└── posts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;├── 2021-on-the-portal&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;│   ├── index.md&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;│   └── featured.jpg&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;├── 2022-year-review&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;│   ├── index.md&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;│   └── featured.jpg&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;└── ...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;content└── posts    ├── 2021-on-the-portal    │   ├── index.md    │   └── featured.jpg    ├── 2022-year-review    │   ├── index.md    │   └── featured.jpg    └── ...&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;因为之前文章的封面大多都保存在基于OneDrive的图床上，所以我需要手动下载并上传到新的位置，好在文章数量上不算很多，工作量不大。&lt;/p&gt;
&lt;p&gt;在这个过程中，我使用 curl 拉取在图床上的封面图片以减少打开浏览器的次数，但我发现图床的图片链接都是经过了一层重定向才能获取到图片，所以我需要使用 &lt;code&gt;-L&lt;/code&gt; 参数来跟随重定向，比如：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:94ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-L&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-o&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;featured.webp&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://obj.imgb.space/api/raw/?path=/img/2023/wine-office-exp.webp&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;curl -L -o featured.webp &amp;#x22;https://obj.imgb.space/api/raw/?path=/img/2023/wine-office-exp.webp&amp;#x22;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;有关 -L 参数：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(HTTP) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option makes curl redo the request on the new place.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对于文章中使用的 butterfly 中特有的&lt;a href=&quot;https://butterfly.js.org/posts/2df239ce&quot;&gt;标签外挂&lt;/a&gt; ，我在迁移的时候将其转换为了 Blowfish 所支持的 shortcode。&lt;/p&gt;
&lt;p&gt;我主要使用的是 &lt;code&gt;{% note %}&lt;/code&gt; 和 &lt;code&gt;{% timeline %}&lt;/code&gt;，好在都能找到相对应的 shortcode，批量替换即可。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{% note %}&lt;/code&gt; 转换为 &lt;a href=&quot;https://blowfish.page/docs/shortcodes/#alert&quot;&gt;Shortcodes · Blowfish&lt;/a&gt; 中的 &lt;code&gt;alert&lt;/code&gt; shortcode。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{% timeline %}&lt;/code&gt; 转换为 &lt;a href=&quot;https://blowfish.page/docs/shortcodes/#timeline&quot;&gt;Shortcodes · Blowfish&lt;/a&gt; 中的 &lt;code&gt;timeline&lt;/code&gt; shortcode。&lt;/p&gt;
&lt;h4 id=&quot;迁移页面&quot;&gt;迁移页面&lt;/h4&gt;
&lt;p&gt;区别于Hexo，Hugo 未对文章和页面进行明确的区分，所以除了复制 markdown 文件以外还需要一些额外的配置。&lt;/p&gt;
&lt;p&gt;为了实现与使用 Hexo 时相近的效果（即博文都在 URL 路径的 /post/ 下，页面都在 / 下，且拥有不同的样式），先将文章和页面的markdown文件分别置于 &lt;code&gt;posts&lt;/code&gt; 和 &lt;code&gt;pages&lt;/code&gt; 文件夹下，然后在 &lt;code&gt;config/_default/config.toml&lt;/code&gt; 对永久链接进行配置：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:30ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;permalinks&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;permalinks&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;page&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;posts &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/post/:slug/&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;pages &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/:filename/&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;permalinks&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;section&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;posts &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/posts/&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;[permalinks]    [permalinks.page]        posts = &amp;#x27;/post/:slug/&amp;#x27;        pages = &amp;#x27;/:filename/&amp;#x27;[permalinks.section]        posts = &amp;#x27;/posts/&amp;#x27;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;这里利用了 Hugo 的 Section 特性，将文章和页面分别置于不同的 Section 下，然后分别配置了永久链接。&lt;/p&gt;
&lt;p&gt;同时为了让 Blowfish 的首页能够正确显示文章（而不是页面），还需要对 &lt;code&gt;config/_default/params.toml&lt;/code&gt; 进行配置：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:24ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;mainSections &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;posts&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;mainSections = [&amp;#x22;posts&amp;#x22;]&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;（如果你直接复制了主题的配置，这一段配置应当在15行左右，直接取消掉注释编辑即可。）这样就能让首页只显示文章了。&lt;/p&gt;
&lt;p&gt;最后，利用 Blowfish 内建的的 &lt;code&gt;simple&lt;/code&gt; layout，这样就能让页面拥有与文章不同的样式了，只需要在页面的 Front Matter 中加上：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;yaml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:14ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;layout&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;simple&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;layout: simple&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h4 id=&quot;恢复友链&quot;&gt;恢复友链&lt;/h4&gt;
&lt;p&gt;Blowfish 并没有特别用于友链的页面模版，所以我根据现有的 &lt;code&gt;simple&lt;/code&gt; 模版进行了一些修改，使其能够适应友链页面的需求。&lt;/p&gt;
&lt;p&gt;layouts/_default/friends.html:&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:57ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;section&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;max-w-full mt-6 prose dark:prose-invert&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ .Content | emojify }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ partial &quot;link-list.html&quot; . }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;&amp;#x3C;!-- 这里通过引入了一个新的 partial 来实现友链的展示，同时便于复用组件和维护。--&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;section&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&quot;&gt;&lt;!-- 这里通过引入了一个新的 partial 来实现友链的展示，同时便于复用组件和维护。--&gt;...&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;也可以不新建 layout，直接使用 &lt;code&gt;simple&lt;/code&gt; layout 并在友链的 markdown 中使用该 partial。&lt;/p&gt;
&lt;p&gt;layouts/partials/link-list.html:&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:146ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;section&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;w-80 grid gap-4 sm:grid-cols-2 md:grid-cols-3&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ range .Site.Data.link }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;&amp;#x3C;!-- 遍历读取 link.yml 中的数据并渲染对应的容器。--&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;{{ .link }}&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;target&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;_blank&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;external&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;min-w-full&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;min-h-full border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;w-full thumbnail_card nozoom&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;background-image:url({{ .avatar }});&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;px-6 pt-4 pb-2&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:16ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:20ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ .name | emojify }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:20ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;text-xs align-top cursor-default text-neutral-400 dark:text-neutral-500&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:14ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;              &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;rtl:hidden&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;--1:#5A676D&quot;&gt;&lt;span style=&quot;--0:#94AFCA&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;--0:#EBCB8B&quot;&gt;#8599;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:14ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;              &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;ltr:hidden&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;--1:#5A676D&quot;&gt;&lt;span style=&quot;--0:#94AFCA&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;--0:#EBCB8B&quot;&gt;#8598;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:16ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:16ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;py-1 prose dark:prose-invert&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:20ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ .descr | emojify }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:16ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:12ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ end }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;section&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&quot;&gt;&lt;!-- 遍历读取 link.yml 中的数据并渲染对应的容器。--&gt;    &lt;a href=&quot;&quot;&gt;        &lt;div class=&quot;&quot;&gt;            &lt;div class=&quot;&quot;&gt;&lt;/div&gt;            &lt;div class=&quot;&quot;&gt;                &lt;div class=&quot;&quot;&gt;                    {{ .name | emojify }}                    &lt;span class=&quot;&quot;&gt;              &lt;span class=&quot;&quot;&gt;&amp;#x26;#8599;&lt;/span&gt;              &lt;span class=&quot;&quot;&gt;&amp;#x26;#8598;&lt;/span&gt;            &lt;/span&gt;                &lt;/div&gt;                &lt;div class=&quot;&quot;&gt;                    {{ .descr | emojify }}                &lt;/div&gt;            &lt;/div&gt;        &lt;/div&gt;    &lt;/a&gt;    {{ end }}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;复用了主题中&lt;a href=&quot;https://blowfish.page/docs/shortcodes/#list&quot;&gt;List Shortcode&lt;/a&gt;，通过遍历读取 data/link.yml 中的数据来生成友链列表，以便于管理。&lt;/p&gt;
&lt;p&gt;data/link.yml:&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;yaml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:42ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Example&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://example.com&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;avatar&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://example.com/avatar.jpg&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;descr&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;This is an example.&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;- name: &amp;#x22;Example&amp;#x22;  link: &amp;#x22;https://example.com&amp;#x22;  avatar: &amp;#x22;https://example.com/avatar.jpg&amp;#x22;  descr: &amp;#x22;This is an example.&amp;#x22;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;直接套用了 Butterfly 的&lt;a href=&quot;https://butterfly.js.org/posts/dc584b87/#%E5%8F%8B%E6%83%85%E9%8F%88%E6%8E%A5%E6%B7%BB%E5%8A%A0&quot;&gt;友链格式&lt;/a&gt;，免去重写的麻烦。&lt;/p&gt;
&lt;h4 id=&quot;进一步配置&quot;&gt;进一步配置&lt;/h4&gt;
&lt;p&gt;这里只记录除主题提供的配置以外的一些配置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;自定义页脚&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;主要用途是放&lt;a href=&quot;https://icp.gov.moe&quot;&gt;萌备&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;layout/partials/footer.html:&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:79ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;&amp;#x3C;!--需要先行复制一份blowfish原有的footer--&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;flex items-center justify-between&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{/* Copyright */}}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ if .Site.Params.footer.showCopyright | default true }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;text-sm text-neutral-500 dark:text-neutral-400&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{- with replace .Site.Params.copyright &quot;{ year }&quot; now.Year  }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ . | emojify | markdownify }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{- else }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#5A676D&quot;&gt;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;--0:#EBCB8B;--1:#5A676D&quot;&gt;copy&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#5A676D&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ now.Format &quot;2006&quot; }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ .Site.Author.name | markdownify | emojify }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{- end }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;br&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;&amp;#x3C;!--主要部分，需要设置 showCopyright 为 true--&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{/* Custom footer */}}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ if .Site.Params.footer.customFooter | default false }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ .Site.Params.footer.customFooter | emojify | markdownify | safeHTML }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ end }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ end }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&quot;&gt;...  &lt;div class=&quot;&quot;&gt;    {{/* Copyright */}}    {{ if .Site.Params.footer.showCopyright | default true }}    &lt;p class=&quot;&quot;&gt;      {{- with replace .Site.Params.copyright &amp;#x22;{ year }&amp;#x22; now.Year  }}      {{ . | emojify | markdownify }}      {{- else }}      &amp;#x26;copy;      {{ now.Format &amp;#x22;2006&amp;#x22; }}      {{ .Site.Author.name | markdownify | emojify }}      {{- end }}      &lt;br&gt;&lt;!--主要部分，需要设置 showCopyright 为 true--&gt;      {{/* Custom footer */}}      {{ if .Site.Params.footer.customFooter | default false }}      {{ .Site.Params.footer.customFooter | emojify | markdownify | safeHTML }}    {{ end }}    &lt;/p&gt;    {{ end }}...&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;config/_default/params.toml:&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:60ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#8B5B12&quot;&gt;footer&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;showCopyright &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;customFooter &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;&amp;#x3C;a href=&lt;/span&gt;&lt;span style=&quot;--0:#EBCB8B;--1:#5A676D&quot;&gt;\&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://icp.gov.moe&lt;/span&gt;&lt;span style=&quot;--0:#EBCB8B;--1:#5A676D&quot;&gt;\&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;&gt;萌ICP备&amp;#x3C;/a&gt;&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&quot;&gt;萌ICP备&amp;#x22;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;此处提供的并非最佳实践，但是刚好能满足需求。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;umami&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Blowfish 本身并没有提供对 umami 的支持，但提供了在 head 标签内和页脚额外插入代码的支持，只需要把需要的统计代码放入 &lt;code&gt;layout/partials/extended-head.html&lt;/code&gt; 中即可，比如：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:114ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;https://umami.local/script.js&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#256F74&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#9039C9&quot;&gt;data-website-id&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;5a879b0a-2609-4f12-8aea-712c35435e52&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&quot;&gt;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;引入图标&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Blowfish 内嵌了一小部分 fontawesome 6 图标，同时也支持引入自定义SVG图标，将要引用的图标放到 &lt;code&gt;assets/icons&lt;/code&gt; 即可。&lt;/p&gt;
&lt;p&gt;但无论是从 fontawesome 官网还是项目的 GitHub release 页面下载的 SVG 图标都是黑色的，与主题使用的颜色并不相符，看起来十分不协调。后来经过一番寻找，在 &lt;a href=&quot;https://blowfish.page/samples/icons/&quot;&gt;主题文档&lt;/a&gt; 里找到了这句话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In order achieve automatic color filling every SVG path needs &lt;code&gt;fill=“currentColor”&lt;/code&gt; XML attribute.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;用记事本等打开 SVG 文件，找到 &lt;code&gt;&amp;#x3C;path&gt;&lt;/code&gt; 标签，将 &lt;code&gt;fill&lt;/code&gt; 的值改为 “currentColor” 即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RSS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Blowfish 内建的 RSS 模版只能输出文章的标题和摘要，我参考了 &lt;a href=&quot;https://blog.cubercsl.site/post/rssfullcontent-in-hugo/&quot;&gt;在 Hugo 中使用全文 RSS | CSL 讲废话&lt;/a&gt; 这篇文章，将 RSS 模版进行了修改，使其能够输出全文。&lt;/p&gt;
&lt;p&gt;需要注意的是，Blowfish 目前如果对 rss 中的代码块渲染作以下的 &lt;a href=&quot;https://gohugo.io/templates/render-hooks/&quot;&gt;render hook&lt;/a&gt; 会导致代码高亮失效，不应使用：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;xml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:36ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;pre&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;{{ .Inner }}&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#BE2F2C&quot;&gt;pre&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;&quot;&gt;&lt;code&gt;{{ .Inner }}&lt;/code&gt;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;不过目前没有充分的测试，只能算是能用，可能会有一些问题。&lt;/p&gt;
&lt;h2 id=&quot;建立镜像&quot;&gt;建立镜像&lt;/h2&gt;
&lt;p&gt;在迁移完成之后，我在 envs.net 上建立了一个镜像，主要是测试用途。&lt;/p&gt;
&lt;p&gt;为了保持镜像的独立性，我利用了 Hugo 的 &lt;a href=&quot;https://gohugo.io/getting-started/glossary/#environment&quot;&gt;environment&lt;/a&gt; 特性，将镜像的配置文件放在了 &lt;code&gt;config/envs&lt;/code&gt; 文件夹下，然后在其中进行配置。&lt;/p&gt;
&lt;p&gt;在镜像的&lt;code&gt;config.toml&lt;/code&gt;文件中，将 &lt;code&gt;baseURL&lt;/code&gt; 修改为镜像地址，保证了部署时镜像的独立性。&lt;/p&gt;
&lt;p&gt;envs 开放了 ssh 和 rsync 的访问，可以直接使用 rsync 将本地生成的静态文件上传到它指定的 &lt;code&gt;~/public_html&lt;/code&gt; 上即可。&lt;/p&gt;
&lt;p&gt;参考了&lt;a href=&quot;https://gohugo.io/hosting-and-deployment/deployment-with-rsync/&quot;&gt;Deploy with Rsync | Hugo&lt;/a&gt;，写了一个简单的脚本来实现一键部署：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:78ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;#!/usr/bin/sh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;hugo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-e&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;envs&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#x26;&amp;#x26;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;rsync&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-avz&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--delete&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;public/&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; [USERNAME]@envs.net:&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;~&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;/public_html/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#4C6690&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;清空&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;目录...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;rm&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-r&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;public/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#5A676D&quot;&gt;*&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#4C6690&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;done&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#4C6690&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;部署完成\n结果请查看 https://envs.net/~[USERNAME]&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;#!/usr/bin/shhugo -e envs &amp;#x26;&amp;#x26; rsync -avz --delete public/ [USERNAME]@envs.net:~/public_html/echo 清空 public 目录...rm -r public/*echo doneprintf &amp;#x22;部署完成\n结果请查看 https://envs.net/~[USERNAME]&amp;#x22;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;由于先前的配置，&lt;code&gt;hugo -e envs&lt;/code&gt; 会使用 &lt;code&gt;config/envs&lt;/code&gt; 与 &lt;code&gt;config/_default&lt;/code&gt; 合并之后的配置文件构建网站到&lt;code&gt;public&lt;/code&gt;目录，然后 rsync 将生成的静态文件上传到 envs.net 上。&lt;/p&gt;
&lt;p&gt;如果你想以类似的过程部署 Hugo ，你可能需要预先配置好 ssh 密钥，以便于无密码登录。至于怎么配置不再赘述。&lt;/p&gt;
&lt;h2 id=&quot;备注&quot;&gt;备注&lt;/h2&gt;
&lt;p&gt;以上这些工作所涉及的代码已经全数开源在了 &lt;a href=&quot;https://codeberg.org/grassblock/blowfish-mod&quot;&gt;Codeberg&lt;/a&gt;，如有需要可以取用，也欢迎提出建议和贡献。&lt;/p&gt;
&lt;p&gt;在这里对看到这里的你道一句新春快乐，希望你能喜欢这次的更新。未来我将更注重于内容创作，也希望你能继续关注。&lt;/p&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>tech</category><category>announcement</category><author>草方块</author></item><item><title>/var/log/os-update/18.2.1f.log</title><link>https://lab.gb0.dev/blog/2023-new-start</link><guid isPermaLink="true">https://lab.gb0.dev/blog/2023-new-start</guid><description>“寒来暑往，春去秋来，转眼间，又是一年。”</description><pubDate>Sat, 30 Dec 2023 12:38:35 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;逝者如斯夫，不舍昼夜。 ——《论语》&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;一年又过去了…不知道是不是因为备战高考的忙碌和初入大学带给我的新奇体验，总有一种时光飞逝的感觉。&lt;/p&gt;
&lt;p&gt;而在这个作为“后疫情时代”结束的新起点的2023年，我也迎来了我人生新的起点——18岁，虽然这个起点来的过于匆忙，让我无从准备。&lt;/p&gt;
&lt;p&gt;当我准备在这一年即将结束时写下一份对于这一年的总结的时候，我还是陷入了与往年一样的犹豫——我该写什么呢？最初的想法是把它写成大家可能都不太会注意的系统更新日志的形式，但是一上手实践发现自己也是不常看系统更新的那一类人，只是写个开头便让自己的脑细胞死了大半…于是放弃了这个想法。&lt;/p&gt;
&lt;p&gt;正当我苦于怎么写出让人耳目一新的年度总结时，我想到之前看到的&lt;a href=&quot;https://t.me/FindBlog/365&quot;&gt;年度回顾模版&lt;/a&gt;似乎没什么人用，于是翻找出来，花时间填好，一文即成。&lt;/p&gt;
&lt;p&gt;本计划着在2023年的最后一天写好发布出来，最终还是因为诸多的原因耽搁许久，至今才发布…但愿2024年不会如此。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;试试换种方式看这份年度总结？&lt;/em&gt;&lt;a href=&quot;https://docs.google.com/presentation/d/1sr2WqiSoKu_c78JQLC3VNqAbl-sbBYesKZ98noV-bSc/edit?usp=sharing&quot;&gt;Google 幻灯片&lt;/a&gt;（内附模版）&lt;/p&gt;
&lt;h1 id=&quot;追思往昔&quot;&gt;追思往昔&lt;/h1&gt;
&lt;h2 id=&quot;健康锻炼&quot;&gt;健康&amp;#x26;锻炼&lt;/h2&gt;
&lt;p&gt;在高考的重压和大学的心理压力下身体维持了一年，还活着！至少除了大型的传染病以外没有大的疾病。但是一进大学就变成了脆皮大学生，生病概率大幅度加大（悲&lt;/p&gt;
&lt;p&gt;锻炼情况和去年一样摆烂，体测寄了，回头一看体重又 +20kg&lt;/p&gt;
&lt;p&gt;雪上加霜的是我上带学以后平添了熬夜的习惯…半夜12点之后睡成为了下半年的日常。&lt;/p&gt;
&lt;p&gt;心理上因为升学和互联网而又生出许多焦虑，目前也还未能走出来。&lt;/p&gt;
&lt;p&gt;听某个朋友说我这体重是身体问题的万恶之源，所以首要的是控制体重…&lt;/p&gt;
&lt;p&gt;我决定新的一年趁为时未晚，慢慢改变生活习惯，照顾好自己的身体，加强锻炼，而且付诸行动。&lt;/p&gt;
&lt;h2 id=&quot;工作职业&quot;&gt;工作&amp;#x26;职业&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;学生最主要的任务是学习，何尝不是一种不求物质回报的工作。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;高中生活完结撒花！也算是过了一道坎。紧接着迎接百感交集的大学生活，完成了一学期的课程。&lt;/p&gt;
&lt;p&gt;工作效率还是出奇的低，光是这个总结就花了好几天的时间，看来解决拖延这件事还是任重道远啊…&lt;/p&gt;
&lt;p&gt;接了个活，但是因为我前端能力不足，导致成效不好，还被批评了。&lt;/p&gt;
&lt;p&gt;在新的一年寻找提升效率的方法，尽量加快完成的速度，提高成果的质量（&lt;del&gt;降本增笑&lt;/del&gt;）。同时逐步战胜拖延！虽然应该会很难。&lt;/p&gt;
&lt;p&gt;要提升自己的能力，特别是专业能力（某人同我讲了不下三四次，虽然不知道要怎么做，还是写下来吧）。&lt;/p&gt;
&lt;h2 id=&quot;个人生活家庭&quot;&gt;个人生活&amp;#x26;家庭&lt;/h2&gt;
&lt;p&gt;悲报：生活在高考结束以后与去年在家的时候一样混乱。就最明显的来说，没课的时候还是只会对着互联网上的内容内耗…&lt;/p&gt;
&lt;p&gt;要不找点兴趣爱好来做做看，或许能借此减少点内耗…虽然很明显我对此事没有思路。&lt;/p&gt;
&lt;p&gt;BTW 高考之后在家发现家庭里面因为小事产生的纠纷似乎又多了些…不算是好事情。&lt;/p&gt;
&lt;h2 id=&quot;友情社交&quot;&gt;友情&amp;#x26;社交&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;再澄清一次，earth是给你们e人活的，我们i人生活的世界叫做internet，谢谢。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今年网络上新增了几位好友,来源几乎全部来自telegram和fediverse。&lt;/p&gt;
&lt;p&gt;作为目前主要表征为INFP的“i人”，不出意外地今年在现实中新增的比较切近的朋友数量：0（除了舍友）&lt;/p&gt;
&lt;p&gt;今年首次因为这个焦虑，因为我有个朋友提醒我你这样下去不行…&lt;/p&gt;
&lt;p&gt;很遗憾的是，我从来没有单纯因为写博客这件事而认识到什么新朋友，博客的评论也是十分寂静…&lt;/p&gt;
&lt;p&gt;不出意外的话寒假之后会把实验室重建一次，重建完成可能就不会再有评论区了。&lt;/p&gt;
&lt;p&gt;今年会想办法交到一点朋友，个人觉得跳出社交上的舒适圈可能会有帮助？&lt;/p&gt;
&lt;h2 id=&quot;学习知识管理&quot;&gt;学习&amp;#x26;知识管理&lt;/h2&gt;
&lt;p&gt;尝试为了某个科技创新向的社团的考核学了C语言，可惜只是粗粗地了解，而且指针之后的知识没有再学习。&lt;/p&gt;
&lt;p&gt;尝试读了《雪崩》（抱歉是小说），但是读了没到一半一半几近放弃，借此尝试了读电子书的可能性&lt;/p&gt;
&lt;p&gt;尝试补了前端知识，但现在仍未补完，新的一年将以光速补完（笑）&lt;/p&gt;
&lt;p&gt;在一年快结束的时候尝试用百词斩背专四词汇，英语专业的必经之路了属于是（？）&lt;/p&gt;
&lt;p&gt;今年还是未能尝试什么新的学习方法，甚至知识因为疏于管理也忘了许多…&lt;/p&gt;
&lt;h2 id=&quot;旅游文化&quot;&gt;旅游&amp;#x26;文化&lt;/h2&gt;
&lt;p&gt;身体上跟某个比较要好的高中同学去了五台山，虽然经历似乎不算得上很愉快…参考此篇&lt;a href=&quot;https://lab.imgb.space/post/2023-07-travelling&quot;&gt;旅行随记&lt;/a&gt;
（我这个彻头彻尾的死肥宅今年的第一次，也是印象中第一次出远门）&lt;/p&gt;
&lt;p&gt;心灵上还是照旧胡思乱想，不过也开始有意识地往未来超现实的方面想象了，应该不是什么好事…吧？&lt;/p&gt;
&lt;p&gt;但是今年上大学后连校园都没有完整探索过，更别提出校门了，也算是今年的一大遗憾，明年补上！&lt;/p&gt;
&lt;h2 id=&quot;兴趣创造&quot;&gt;兴趣&amp;#x26;创造&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;高考结束大概一个月以后，把电脑重装成Arch，又在临开学的时候分出空间装了双系统，最近又把安全启动配好了，在这个过程中也算是学到了一点东西&lt;/p&gt;
&lt;p&gt;在本地尝试了一下&lt;a href=&quot;https://gohugo.io&quot;&gt;Hugo&lt;/a&gt;，别的不说快是真的快，不出意外的话明年会用Hugo把实验室整个翻新。&lt;/p&gt;
&lt;p&gt;尝试了一些新的服务，比如zeabur,目前用来跑 &lt;a href=&quot;https://lab.imgb.space/post/uptime-kuma&quot;&gt;uptime kuma&lt;/a&gt; 用来看网站炸没炸。&lt;/p&gt;
&lt;p&gt;尝试接触xlog这种我初时觉得有一点”遥远且可怕”的web3博客平台，在上面发了三篇周记和一篇杂谈（虽然也算是某种失败尝试？）&lt;/p&gt;
&lt;p&gt;尝试了个人频道+熟人专属频道这种 Telegram 频道运营形式，虽然不到三个月不堪外部压力宣布关停，后期会考虑再开起来。&lt;/p&gt;
&lt;h2 id=&quot;情绪精神状况&quot;&gt;情绪&amp;#x26;精神状况&lt;/h2&gt;
&lt;p&gt;好消息：从上半年高考的压力扛过来了，耐压性有所增强。&lt;/p&gt;
&lt;p&gt;坏消息：一上大学精神状态直线下降，沉迷互联网，情绪低落内耗似乎已成为常态。而且心智上对一些人&lt;del&gt;装疯卖傻&lt;/del&gt;（简称选择对象性卖弱），依赖他人等等的问题也是老生常谈，一点提升没有&lt;/p&gt;
&lt;p&gt;回过头来一看记性也慢慢地变差了…目前也不知道是什么原因，可能是因为没有去记住某件事情的意识…？&lt;/p&gt;
&lt;p&gt;对事情的态度是开摆！能摆就摆，应摆尽摆（请勿模仿）&lt;/p&gt;
&lt;p&gt;我不知道算不算一件好事，发现自己在了解完多意识体相关的内容之后，发现自己好像似乎大概就是…&lt;/p&gt;
&lt;p&gt;看来是时候寻找摆脱内耗的办法了，感觉首要的是改变心态，以平和乐观的心态面对未知和已经发生（尤其是坏的）的事物。&lt;/p&gt;
&lt;p&gt;接触这么久互联网，感觉还是那句“互联网上的东西都是虚拟的，你把握不住”来的实在，我还是多寻求一些现实中心理上的支持和帮助吧，哪怕…做一些心理咨询也好。&lt;/p&gt;
&lt;h2 id=&quot;财务状况&quot;&gt;财务状况&lt;/h2&gt;
&lt;p&gt;刚刚开始尝试自己管理自己手上的钱，没什么经验，不过好在我的消费观念比较节俭，非必要不花钱，大概主要的开销都是在吃学校食堂的饭上。&lt;/p&gt;
&lt;p&gt;这样大概也不错…？可能会继续下去。&lt;/p&gt;
&lt;p&gt;带学生主要依靠家里定期给生活费，可能以后会做一点活换一点收入（？&lt;/p&gt;
&lt;h1 id=&quot;年度之最&quot;&gt;年度之“最”&lt;/h1&gt;
&lt;h2 id=&quot;最骄傲的成就&quot;&gt;最骄傲的成就&lt;/h2&gt;
&lt;p&gt;好！又活过了一年！就这一年的压力来看，能活下来应该也算一种幸运。&lt;/p&gt;
&lt;p&gt;发现了自己心理上的诸多问题，虽然代价是伤痕累累的心。&lt;/p&gt;
&lt;h2 id=&quot;最大的挑战&quot;&gt;最大的挑战&lt;/h2&gt;
&lt;p&gt;高考…？应该是无数人的一大关卡吧。于我来说上半年的备考带来的一时看不到头的忙碌和感觉缺失的知识补不回来的空落，应该是心理和生理上的双重挑战。&lt;/p&gt;
&lt;p&gt;于此来讲，参加社团和竞选学生会成员等等都算比较小的挑战了。&lt;/p&gt;
&lt;p&gt;很喜欢一句话，人生处处是挑战。&lt;/p&gt;
&lt;h1 id=&quot;计划与展望&quot;&gt;计划与展望&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;践行健康的生活方式和习惯…大概是规律作息，加强锻炼，注意饮食这些
不求能为身体带来很大的改变，只希望不那么“脆皮“&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;认真对待自己的专业课程，把更多的精力放在上面，寻找合适的学习方法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;”疯”起来，放下一些拘束，打理好人际关系，希望交到一两好友&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;趁还有时间，学习了解自己感兴趣的东西！可能以后忙起来就没空啦&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;好像前面也写了一些，别的就不赘述了，希望不会“打脸”吧。&lt;/p&gt;
&lt;p&gt;但是说实话，其实每一年都会有一些目标和愿望，可我总是会忘却，根本没重视过…今年略微改变一下好了。&lt;/p&gt;
&lt;h1 id=&quot;写在最后&quot;&gt;写在最后&lt;/h1&gt;
&lt;p&gt;呼…终于完成了…&lt;/p&gt;
&lt;p&gt;这一年应该算得上某种“想明白”的一年吧，但也正如那个年度弹幕——“啊？”一样，很多事情还是会给我那种突破常识的感觉，也算是好的开始吧。&lt;/p&gt;
&lt;p&gt;看了一下日历，感觉又是不合时宜的发布时间，毕竟2024年的第一个月都过了一半，又何必感怀于旧日呢…&lt;/p&gt;
&lt;p&gt;又看到22年的年度总结的发布时间，感觉每年都逃不了年初发布上一年的年度总结的规律，不过好在今年算是比较早的…&lt;/p&gt;
&lt;p&gt;就写这么多吧，即使写到了现在精神状态还比较混乱，希望新的一年至少精神状态上比较稳定和正常吧。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;特别感谢环节：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Typora ：所见即所得的 Markdown 编辑器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ness Labs x @FindBlog 发现博客 ： 提供相关模版&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在看的你们&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不介意的话，再看看我的朋友们写的年度总结吧：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zwh.moe/posts/default/review-2023&quot;&gt;年终总结 | 混沌的 2023 - 捞人的小站&lt;/a&gt;&lt;/p&gt;</content:encoded><category>Daily</category><author>草方块</author></item><item><title>杂谈 - 大数据、生活方式和一些改变</title><link>https://lab.gb0.dev/blog/talk-4-bigdata-and-life</link><guid isPermaLink="true">https://lab.gb0.dev/blog/talk-4-bigdata-and-life</guid><description>（封面图： https://o3o.ca/@grassblock/111392107142122377 ）随便乱写的，应该算是周报吧。</description><pubDate>Mon, 13 Nov 2023 13:27:55 GMT</pubDate><content:encoded>&lt;h1 id=&quot;杂谈---大数据生活方式和一些改变&quot;&gt;杂谈 - 大数据、生活方式和一些改变&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://music.163.com/#/album?id=178429151&quot;&gt;https://music.163.com/#/album?id=178429151&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;想起来好久没写/分享自己随机的想法了…事实上n周没写周记，我也有很多想说的事情，且让我慢慢说。&lt;/p&gt;
&lt;p&gt;来了大学也有两个月了，别的先不说，我这作息是越来越不正常了…最晚达成了12:40还在水群的纪录，最早也就11点睡，早上6点40的闹钟不一定能叫醒我，关掉后迷迷糊糊再醒来发现已经7点半已是日常。虽然各位可能已经见怪不怪，但是对于之前坚守晚上十点休息的我来说，还是属于睡眠不足的，因而导致了我每天的精神状态并不好，像什么突然发疯以及抑郁都是常态。我一度怀疑过自己是不是患上了躁郁症，再一想我不应该把这么严重的疾病安在自己身上，很快否决了这个判断。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;八上政治：要做情绪的主人&lt;/p&gt;
&lt;p&gt;我：被情绪操控成赛博疯子&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;说到赛博疯子，最近把一直想要翻新的Minecraft皮肤翻新了一下，虽然只是简单地换了个脑袋，准备走异形头的路线（拜托异形头真的很酷的好吧）。还想绘制几套新衣服…&lt;/p&gt;
&lt;p&gt;---（这上面是1号写的，正好愁怎么开头，找到这个几近废案的东西就从这里开始写）---&lt;/p&gt;
&lt;p&gt;这两天发现自己不知道因为什么原因发烧了…（明明穿的暖暖和和的）再加上体测每一项都不合格给我带来的十分低落的心情，我去找了一个不经常专门联系的朋友去问，令我惊讶的是，这个平时几乎只讨论科技相关内容、&lt;del&gt;甚至喜好于自删消息&lt;/del&gt;的朋友居然真的给我了比较详尽的建议（老实来讲我真的怀疑这位是做什么工作的），正好今天病也好的差不多了，我决定慢慢地实践起来。（虽然我觉得我还是会管不住自己的嘴就是了）&lt;/p&gt;
&lt;p&gt;周末的时候趁着能够清晰思考问题的时候打开了blockbench把皮肤也不算从上到下的翻新完了，但是基本达成了目的。但是想用 novaskin wallpaper 做渲染图的时候发现它炸了许久了，只能自己学学怎么做…然后我匮乏的知识和能力连比较入门的 mine-imator 都弄不明白（我在Arch上连装都装不上、用都用不了啊），中文教程也少…&lt;/p&gt;
&lt;p&gt;其中一个形象（我直接在blockbench截图的）：
![其中一个形象](../(../../../assets/img/xlog-attachments/QmbomSnVcbeSnQcsEv4tgQk7g9th6iaqdCCRCXSuzkZvMH.png)&lt;/p&gt;
&lt;p&gt;其余的时候就只是躺在不大不小的床上刷b站然后对着沙雕视频呵呵傻乐，然后一刷刷很久…（如果没人找我聊天的话）后来就看几个虚拟主播，真正把自己缠进去了，还好正事不多…处理起来也不麻烦。&lt;/p&gt;
&lt;p&gt;就在今天，阴差阳错地刷到了两次这个&lt;a href=&quot;https://www.bilibili.com/video/BV16u4y187Fd/&quot;&gt;《算法已经作恶到这地步了？》&lt;/a&gt;，抱着疑惑打开了这个在很久之前看过的视频（说实话没有太多印象），同时翻着评论，看到像“热门并不是真正的热门”“b站也是这样”等等的话，我不由得害怕了起来，关掉了视频。&lt;/p&gt;
&lt;p&gt;如果你出于某些原因不能观看视频，以下是一份总结：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在互联网时代,大数据已经渗透到了我们生活的方方面面,甚至影响到了我们看到的评论内容。算法会根据个人的喜好不断推送同质化的内容,为我们量身打造一个专属的小世界,看你想看的,听你想听的,让人们越陷越深,无法自拔。同时,大数据也存在着许多问题,如信息茧房、诱导消费、杀熟等。我们需要保持头脑清醒,警惕被数据分析操控的命运。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;就大数据这件事，已经是老生常谈的一个问题了，不管是怎么说，观点就已经放在那里，要说还是老一套，“杀熟”“信息茧房”，说起来也没意思，而且大多都是散播自己的观点然后拍屁股走人，只留下一地狼藉，完全没告诉大家 “我要怎么做？”，而且更戏剧性的是，我是在大数据的推荐下看到这样的视频的。这下好了，由于暂时性的无所事事，只能又去刷视频。&lt;/p&gt;
&lt;p&gt;大数据已经与各行各业结合地紧密结合已经有许多年了，想逃脱几无可能（除非你真的说只用Matrix、mastodon这些去中心化理念极重，几乎谈不上大数据这种），而且只因为这些害处而对优点不管不顾，从而放弃使用相关的服务，也是不明智的。但是具体怎么做，我却说不太上来，只能说点“有效利用大数据”“提升自己”这样的空话（因为我自己仍深受其害）。&lt;/p&gt;
&lt;p&gt;以及周末的时候把连带着在虚拟机里用用了半年的 gnome 又换回到了 kde plasma ，&lt;em&gt;&lt;a href=&quot;https://nya.one/notes/9lyw58vgskjw0rm7&quot;&gt;发现世界变得如此地清晰&lt;/a&gt;&lt;/em&gt;，现在保留着 gnome 相关的东西试用，等我观察一番再正式迁移。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2048px) 2048px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2048&quot; height=&quot;1280&quot; src=&quot;https://lab.gb0.dev/_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_uEj6f.webp&quot; srcset=&quot;/_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_Z6EqgF.webp 640w, /_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_1rqTSH.webp 750w, /_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_Z2hjcbo.webp 828w, /_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_XdE4M.webp 1080w, /_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_114oFD.webp 1280w, /_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_Z19Wf4f.webp 1668w, /_astro/Qmd5UKtqNwtShnginSSDEtacXasUtikqWqvmzFrW58GrKn.Bh2jczWE_uEj6f.webp 2048w&quot;&gt;&lt;/p&gt;
&lt;p&gt;顺便一提，在朋友的帮助（以及Google搜索）下解决了 Linux 查看以及解压 zip 压缩包时奇奇怪怪的中文编码问题，好哦！（彻底抛弃 7-zip on wine（确信&lt;/p&gt;
&lt;p&gt;好像也没什么要说的了，最近的精神状态也不好，写文章也前言不搭后语，这个也是断断续续写出来的。&lt;/p&gt;
&lt;p&gt;最近由于转发不加查证、夹杂过分主观观点的消息主动暂停了telegram上的更新，也不太敢写什么东西，真的担心哪里说的不严谨、胡乱引用怕大家误会，同时也算是为了不让自己想太多，周报也暂停了。或许我真的需要疏导一下自己的心理了。&lt;/p&gt;
&lt;p&gt;以后可能还是会以这种杂谈的方式说说最近的状况，时间跨度差不多也是一周，所以大概也算周报，但是更新频率也不高。年终总结在考虑新的形式，挑一个精神状态好的时候写，年底前能写出来。&lt;/p&gt;
&lt;p&gt;我站流量极少，估计也没人注意到这个身体和精神状态都不好的人吧。最后，谢谢你有耐心地读到这里，欢迎给我提相关的建议，我真的很需要这些。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2560px) 2560px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2560&quot; height=&quot;1922&quot; src=&quot;https://lab.gb0.dev/_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_39DU2.webp&quot; srcset=&quot;/_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_ZUX4ge.webp 640w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_J7PXw.webp 750w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_2sEISW.webp 828w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_Pw8QA.webp 1080w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_ZHC4PH.webp 1280w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_Z1dA4H6.webp 1668w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_ZjjOrK.webp 2048w, /_astro/QmYqJsZoo3HeuNdztZVNHFrLxMQgk9QyoUW6p3LmsMbUh9.C4Jx-nH7_39DU2.webp 2560w&quot;&gt;&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>【全网首吐？】您摇了我吧，hackergame！—— 比赛过程踩的大坑以及吐槽</title><link>https://lab.gb0.dev/blog/hackergame-2023-hole</link><guid isPermaLink="true">https://lab.gb0.dev/blog/hackergame-2023-hole</guid><description>【本文章使用Notion导出】参黑客原神，品折腾人生（？）</description><pubDate>Sun, 05 Nov 2023 17:45:54 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;（已失效）本文章随附纯 HTML 版本（但是效果比较差）：&lt;a href=&quot;https://lab.gb0.dev/archived/hg-2023-wp/hole.html&quot;&gt;传送门&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;激动人心的&lt;del&gt;大佬竞赛&lt;/del&gt;——hackergame 2023已然落下帷幕。我相信大家已经看过亿些题解、writeup 这一类的东西了。但是作为一个可以算是不会任何ctf知识、第一次参加这类比赛的我来说，我还是有些该说的和可能不该说的想说的话想要写出来告诉大家。&lt;/p&gt;
&lt;p&gt;先提前说一下：我坚决不同意与我几乎同等ctf水平的小白去参加这类比赛的。但是如果你铁了心地说，我想试试，那么Just Do it！吐槽也仅限于我自己这一方面，不是真的说这个比赛不好…&lt;/p&gt;
&lt;p&gt;那么，先起一下音乐（大力王的小曲）：&lt;/p&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;360&quot; src=&quot;https://www.youtube-nocookie.com/embed/HEXWRTEbj1I?si=jvwnFxDITVWxBjnM&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;hackergame 结束过后，于我而言，先来的不是官方的题解，而是一个个群友对于比赛的讨论，或者是自己发了自己的题解。即使只看这些题解，都能学到许多。&lt;/p&gt;
&lt;p&gt;但是那些群友花时间至少能够做出来的题目，于我这个当初抱着“来看看一个ctf比赛会是什么样的”的想法来参赛的人来说，即使是比较熟悉的web技术方面，属实算是拦路虎…只能说还是为时过早。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;那么问题来了：既然这样了，为什么还要从自身出发去评判这件事情呢？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;就如标题里的“你摇了我吧”，我承认这场比赛于我而言犹如攀登一座高山，不见顶，而且很容易发生危险。实际上，在做题时，我大多数的时候都是无助的…虽然说最后也没有得到预期的成功吧，但是这个比赛确实让我自己知道了自己“几斤几两”…&lt;/p&gt;
&lt;p&gt;之前说要写一篇题解，但是发现自己面对题目往往是百思不得其解，遂放弃了这个想法。当初写了这么一段文字：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;最终还是决定不来做比赛解题了，等我至少比较精通信息查找、web开发和Python再说吧…客观来讲，现在的情况是：&lt;/p&gt;
&lt;p&gt;搜索：只会问什么上面的去什么上面找，图片只会EXIF和搜图，剩下的扔给AI听天由命
web：只会写纯静态，但是HTML连个head都写不全，CSS只会结合英文释义自动补全，JavaScript只学到函数，复杂一点直接看不懂（今天早上只看了一点异步，然后没看明白）
Python：只会基本算术、定义变量、input、print…这还是高中信息课上教的一切…
以上几乎与我一年前的水平持平。&lt;/p&gt;
&lt;p&gt;最近学的C，只会print、获取用户输入、定义变量、编译。
新兴的AIGC，也不是完全会用，施法无从下手…
更何况我连趁手的工具都找不到…就好像比试光剑技术，但是我连光剑都没带…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_Z1z0FIq.webp&quot; srcset=&quot;/_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_2qpK6a.webp 640w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_Z1uxgoy.webp 750w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_2i7Mqo.webp 828w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_Z2rIRWn.webp 1080w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_ZMzFN5.webp 1280w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_7q4OC.webp 1668w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_ZctXe5.webp 2048w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_1qMPhX.webp 2560w, /_astro/Screenshot_2023-11-04_at_14-36-29_Hackergame_2023.D0GVMNgZ_Z1z0FIq.webp 2624w&quot; alt=&quot;Screenshot 2023-11-04 at 14-36-29 Hackergame 2023.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2624px) 2624px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2624&quot; height=&quot;1552&quot;&gt;&lt;/p&gt;
&lt;p&gt;比赛结束后，我的得分截图。&lt;/p&gt;
&lt;p&gt;当然后来还是在最后两三天略做了一下，最后因为长时间的查找没有思路就放弃了，截至比赛结束时，我还在做git相关的题目，最终以找不到线索告终。&lt;/p&gt;
&lt;p&gt;下面是跟一个朋友复盘题的解法时，发现自己做题时踩的坑：&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;🙇‍♂️ 特别感谢：wuhang2003 于比赛结束后和我&lt;del&gt;交流病情&lt;/del&gt;讨论题目，以及他的writeup：&lt;a href=&quot;https://zwh.moe/posts/ctf/hackergame-2023&quot;&gt;Hackergame 2023 启动日志 - 捞人的小站&lt;/a&gt;，欢迎去支持一下（&lt;/p&gt;&lt;p&gt;💡 若无特殊说明，以下的“友”均指 wuhang2003。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h3 id=&quot;猫咪小测---搜索的艺术&quot;&gt;猫咪小测 - 搜索的艺术&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled.CJRuhrFD_Z2vdASS.webp&quot; srcset=&quot;/_astro/Untitled.CJRuhrFD_1D7KqA.webp 640w, /_astro/Untitled.CJRuhrFD_1P0iuu.webp 750w, /_astro/Untitled.CJRuhrFD_Z1ntOQa.webp 828w, /_astro/Untitled.CJRuhrFD_Z1wWOhp.webp 1080w, /_astro/Untitled.CJRuhrFD_Z1TLSf4.webp 1280w, /_astro/Untitled.CJRuhrFD_Z2vdASS.webp 1536w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1536px) 1536px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1536&quot; height=&quot;392&quot;&gt;&lt;/p&gt;
&lt;p&gt;猫咪小测&lt;/p&gt;
&lt;p&gt;作为一只比较注重隐私但是外语水平不好的赛博狐狐，我在Firefox浏览器上实装了隐私友好的&lt;a href=&quot;https://wikiless.northboot.xyz/wiki/Searx&quot;&gt;searx&lt;/a&gt;元搜索引擎，为了方便翻译网页，我又安装了 &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/traduzir-paginas-web/&quot;&gt;TWP - Translate Web Pages&lt;/a&gt; 插件，而这两个，却成为我解出这个小测的最后一题的最大阻碍。&lt;/p&gt;
&lt;p&gt;To be honest，在做这道题之前，我已经为了寻找上一道题的结果耗费了许多精力，实在说不上能很认真的处理那些信息。&lt;/p&gt;
&lt;p&gt;我使用TWP将&lt;em&gt;让 Python 的类型检查器 mypy 陷入死循环&lt;/em&gt; 这句话翻译成英文，再丢给searx搜索，可我仍然没有找到什么论文…&lt;/p&gt;
&lt;p&gt;后来几乎是bard、Bing AI、学术搜索都用上了，但是还是没有找到真正有效的论文（可气的是，Bing给了我一篇类似主题的论文，可以说比较接近，费尽心思找到是哪个会议发的但是不对）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; &lt;em&gt;咕噜噜搜索 &lt;code&gt;mypy endless loop&lt;/code&gt; 下面搜索结果直接出&lt;a href=&quot;https://drops.dagstuhl.de/opus/volltexte/2023/18237/pdf/LIPIcs-ECOOP-2023-44.pdf&quot;&gt;论文 PDF&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我：&lt;/strong&gt; 啊？&lt;/p&gt;
&lt;p&gt;后来又去用searx试了一次还是没能得到结果，都是一堆我也不知道在说什么的结果。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_1.UKpTWm-1_Z1oNi9P.webp&quot; srcset=&quot;/_astro/Untitled_1.UKpTWm-1_15qq7c.webp 640w, /_astro/Untitled_1.UKpTWm-1_Z2a69GG.webp 750w, /_astro/Untitled_1.UKpTWm-1_Z1sNXOS.webp 828w, /_astro/Untitled_1.UKpTWm-1_1UQPO8.webp 1080w, /_astro/Untitled_1.UKpTWm-1_Z1Gv03i.webp 1280w, /_astro/Untitled_1.UKpTWm-1_Z1wW8wU.webp 1668w, /_astro/Untitled_1.UKpTWm-1_SfifG.webp 2048w, /_astro/Untitled_1.UKpTWm-1_zFxJy.webp 2560w, /_astro/Untitled_1.UKpTWm-1_Z1oNi9P.webp 3584w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 3584px) 3584px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;3584&quot; height=&quot;1912&quot;&gt;&lt;/p&gt;
&lt;p&gt;该死的searxng…&lt;/p&gt;
&lt;h3 id=&quot;奶奶的睡前flag故事---截个图都能有漏洞&quot;&gt;奶奶的睡前flag故事 - 截个图都能有漏洞？&lt;/h3&gt;
&lt;p&gt;我看着加粗的谷歌亲儿子、系统没更新和1080p的截图摇了摇头，我又不是那个孙子，我怎么知道flag（&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; 关键词都标好了，大概可以推测是 Pixel 设备截图漏洞。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; 查个 &lt;code&gt;Pixel 截图漏洞&lt;/code&gt; 看到&lt;a href=&quot;https://www.ithome.com/0/681/025.htm&quot;&gt;新闻&lt;/a&gt;可以确认咱的想法是正确的，漏洞的名字叫 &lt;code&gt;aCropalypse&lt;/code&gt;，再以漏洞名字为关键词搜索可以直接找到利用漏洞的&lt;a href=&quot;https://acropalypse.app/&quot;&gt;网站&lt;/a&gt;。照片一丢，一个一个设备试就完事了（
&lt;strong&gt;友：&lt;/strong&gt; 理论上刷 TG 科技圈的都看到过这个漏洞&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我：&lt;/strong&gt; 啊！（拍头&lt;/p&gt;
&lt;p&gt;后来找了半天才想起来这个漏洞…为什么找了半天呢，因为杜叔叔这么多年了一直没有做好中文搜索…只能去Google找。&lt;/p&gt;
&lt;p&gt;我记得“差评”发过一个相关的视频，但是找了半天没找到，估计是争议太大被删了…&lt;/p&gt;
&lt;p&gt;追记：在写这篇文章的时候截图给这位朋友看的时候，他帮我找到了视频…&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;【【差评】微软和谷歌搞了个影响17亿台设备的漏洞，天天截图水群的我现在很慌。。。-哔哩哔哩】 &lt;a href=&quot;https://www.bilibili.com/video/BV1nm4y187cY&quot;&gt;https://www.bilibili.com/video/BV1nm4y187cY&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://images.unsplash.com/photo-1619148189616-013b06952c04?ixlib=rb-4.0.3&amp;q=85&amp;fm=jpg&amp;crop=entropy&amp;cs=srgb&quot; alt=&quot;https://images.unsplash.com/photo-1619148189616-013b06952c04?ixlib=rb-4.0.3&amp;q=85&amp;fm=jpg&amp;crop=entropy&amp;cs=srgb&quot;&gt;&lt;/p&gt;
&lt;p&gt;因为我也不知道要放点什么，放个睡前故事中出现的狐狐吧&lt;/p&gt;
&lt;h3 id=&quot;gitgit---你们这个idea怎么回事啊连个撤回的commit都看不了wav&quot;&gt;Git？Git！ - 你们这个IDEA怎么回事啊，连个撤回的commit都看不了.wav&lt;/h3&gt;
&lt;p&gt;拿到题目，我熟练地打开了IDEA（什么肌肉记忆），然后被每一个内容没有出现红色的commit吓晕：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_2.CXebgkUw_WWio7.webp&quot; srcset=&quot;/_astro/Untitled_2.CXebgkUw_Z1X9QL1.webp 640w, /_astro/Untitled_2.CXebgkUw_UPHXa.webp 750w, /_astro/Untitled_2.CXebgkUw_1IU4fk.webp 828w, /_astro/Untitled_2.CXebgkUw_ZemWwA.webp 1080w, /_astro/Untitled_2.CXebgkUw_Zu8hCr.webp 1280w, /_astro/Untitled_2.CXebgkUw_ZJ7TDJ.webp 1668w, /_astro/Untitled_2.CXebgkUw_Z233jaA.webp 2048w, /_astro/Untitled_2.CXebgkUw_WWio7.webp 2239w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2239px) 2239px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2239&quot; height=&quot;1356&quot;&gt;&lt;/p&gt;
&lt;p&gt;翻遍了我能看到的所有commit，嗯，只能说不在这里入手，剩下的我不知道（&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; &lt;code&gt;git reflog&lt;/code&gt; 查看提交日志，看到一个可疑的 &lt;code&gt;505e1a3&lt;/code&gt;。用 &lt;code&gt;git reset&lt;/code&gt;还原一下，flag 就出来了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我：&lt;/strong&gt; &lt;del&gt;以为撤销就是commit删除东西&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_3.DFvVe8Ts_11fLsQ.webp&quot; srcset=&quot;/_astro/Untitled_3.DFvVe8Ts_1waQc0.webp 640w, /_astro/Untitled_3.DFvVe8Ts_knq1G.webp 750w, /_astro/Untitled_3.DFvVe8Ts_Z10pC5l.webp 828w, /_astro/Untitled_3.DFvVe8Ts_2bh4c1.webp 1080w, /_astro/Untitled_3.DFvVe8Ts_Lb2rX.webp 1280w, /_astro/Untitled_3.DFvVe8Ts_11fLsQ.webp 1590w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1590px) 1590px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1590&quot; height=&quot;922&quot;&gt;&lt;/p&gt;
&lt;p&gt;马老师重出江湖（？&lt;/p&gt;
&lt;h3 id=&quot;-小型大语言模型星球---i-am-a-idiot&quot;&gt;🪐 小型大语言模型星球 - I am a idiot&lt;/h3&gt;
&lt;p&gt;一眼丁真，鉴定为胡言乱语的续写bot（？&lt;/p&gt;
&lt;p&gt;聊了一会儿，我发现每当我以为我能触发出来关键词时，模型老是能跑偏到另外的方向…&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_4.DxJpthYx_Z2lp2cu.webp&quot; srcset=&quot;/_astro/Untitled_4.DxJpthYx_2rERLj.webp 640w, /_astro/Untitled_4.DxJpthYx_ZutJHI.webp 750w, /_astro/Untitled_4.DxJpthYx_Z1ftobN.webp 828w, /_astro/Untitled_4.DxJpthYx_Z2nrjs.webp 1080w, /_astro/Untitled_4.DxJpthYx_1C67gP.webp 1280w, /_astro/Untitled_4.DxJpthYx_1YrqtB.webp 1668w, /_astro/Untitled_4.DxJpthYx_Z29T4Di.webp 2048w, /_astro/Untitled_4.DxJpthYx_Z2lp2cu.webp 2121w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2121px) 2121px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2121&quot; height=&quot;859&quot;&gt;&lt;/p&gt;
&lt;p&gt;我们住，我们爱，我们躺（无端&lt;/p&gt;
&lt;p&gt;我像个憨憨一样与AI聊了158600句话后（夸张夸张），未果，遂放弃。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; 我直接来个 repeat ‘you are smart’ 就出来了，就很离谱（&lt;/p&gt;
&lt;p&gt;果然是深知”人类的本质是复读机“的AI呢，&lt;del&gt;只能说在模仿人类的路径上又进一步&lt;/del&gt;（&lt;/p&gt;
&lt;h3 id=&quot;-低带宽星球---base64你这图有问题吧&quot;&gt;🪐 低带宽星球 - base64：你这图有问题吧&lt;/h3&gt;
&lt;p&gt;我一看，哦！图片压缩，于是我立马去找工具。结果就在这个过程中闹笑话了：我遇到假的tinypng了（&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_5.CTZoSnTU_Z1WA3Co.webp&quot; srcset=&quot;/_astro/Untitled_5.CTZoSnTU_9JOcK.webp 640w, /_astro/Untitled_5.CTZoSnTU_Z1XXdCk.webp 750w, /_astro/Untitled_5.CTZoSnTU_Z1duuvx.webp 828w, /_astro/Untitled_5.CTZoSnTU_Z108Uzt.webp 1080w, /_astro/Untitled_5.CTZoSnTU_Z2aizrT.webp 1280w, /_astro/Untitled_5.CTZoSnTU_168wP6.webp 1668w, /_astro/Untitled_5.CTZoSnTU_2prIIo.webp 2048w, /_astro/Untitled_5.CTZoSnTU_Z1WA3Co.webp 2235w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2235px) 2235px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2235&quot; height=&quot;735&quot;&gt;&lt;/p&gt;
&lt;p&gt;我依稀记得我搜索了这个关键词然后一看第一个结果标题是tinypng，啪的一下点进去了，很快啊，然后发现压缩效果并不好，根本达不到小于2048 bytes，于是转用熟悉的squoosh.app，最终发现只有转成webp是可行的，于是硬着头皮上传上去，不行（&lt;/p&gt;
&lt;p&gt;（写这个东西的时候又复现了一下上面的步骤…居然能得到奇奇怪怪的东西，但是根据&lt;a href=&quot;https://github.com/USTC-Hackergame/hackergame2023-writeups/blob/master/official/%F0%9F%AA%90%20%E4%BD%8E%E5%B8%A6%E5%AE%BD%E6%98%9F%E7%90%83/README.md#%E9%A2%98%E8%A7%A3&quot;&gt;官方的说法&lt;/a&gt;来说是正确的）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_6.DdYaE9I0_1nRC63.webp&quot; srcset=&quot;/_astro/Untitled_6.DdYaE9I0_GFjI4.webp 640w, /_astro/Untitled_6.DdYaE9I0_ZFNwO5.webp 750w, /_astro/Untitled_6.DdYaE9I0_4EbhH.webp 828w, /_astro/Untitled_6.DdYaE9I0_Z2ksqsC.webp 1080w, /_astro/Untitled_6.DdYaE9I0_1nRC63.webp 1280w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;403&quot;&gt;&lt;/p&gt;
&lt;p&gt;什么夹带私货…&lt;/p&gt;
&lt;p&gt;&lt;code&gt;flag1: flag{flatpak_install_curtail_15_linux}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;后来复盘的时候才发现域名不对…&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_7.CbhrAVR9_ZHjQon.webp&quot; srcset=&quot;/_astro/Untitled_7.CbhrAVR9_3AFdk.webp 640w, /_astro/Untitled_7.CbhrAVR9_ZWKXi0.webp 750w, /_astro/Untitled_7.CbhrAVR9_uUyw6.webp 828w, /_astro/Untitled_7.CbhrAVR9_ZHjQon.webp 1063w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1063px) 1063px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1063&quot; height=&quot;729&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; 不是，我把图片丢 tinypng 压缩一下就拿 flag1 啦？&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我：&lt;/strong&gt; 啊？我怎么不行（&lt;/p&gt;
&lt;p&gt;刚刚看了官方题解才发现每个人的照片不一样…但是只能说无所不用其极（&lt;/p&gt;
&lt;p&gt;当初看它比较的原理居然是比较base64，但是不知道怎么比的，有意思（&lt;/p&gt;
&lt;h3 id=&quot;旅行照片30---你最好是东京大学的学长&quot;&gt;旅行照片3.0 - 你最好是东京大学的学长&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/2023-11-04_17-54-06E5.D9vbW68u_Z2vCaMc.webp&quot; srcset=&quot;/_astro/2023-11-04_17-54-06E5.D9vbW68u_NbyyK.webp 640w, /_astro/2023-11-04_17-54-06E5.D9vbW68u_192wku.webp 750w, /_astro/2023-11-04_17-54-06E5.D9vbW68u_Z1se2lF.webp 828w, /_astro/2023-11-04_17-54-06E5.D9vbW68u_ZEmwjA.webp 1080w, /_astro/2023-11-04_17-54-06E5.D9vbW68u_Z251oUp.webp 1280w, /_astro/2023-11-04_17-54-06E5.D9vbW68u_xqVwi.webp 1668w, /_astro/2023-11-04_17-54-06E5.D9vbW68u_Z2vCaMc.webp 1973w&quot; alt=&quot;2023-11-04 17-54-06屏幕截图.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1973px) 1973px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1973&quot; height=&quot;783&quot;&gt;&lt;/p&gt;
&lt;p&gt;做“旅行照片3.0”时历史记录（一部分&lt;/p&gt;
&lt;p&gt;&lt;em&gt;我记得依着图我搜到了一个公园…然后在找，找到了东京大学，然后我还是不知道活动有什么&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;最后经历一番搜索之后还是没找到结果（连日期都没找到，我真的会谢）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; 查奖牌下人名，指向的是获得了诺贝尔物理奖的东京大学的小柴昌俊，在&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E4%BA%BA%E8%AB%BE%E8%B2%9D%E7%88%BE%E7%8D%8E%E5%BE%97%E4%B8%BB&quot;&gt;维基百科&lt;/a&gt;找到同样是东京大学在 2015 获得诺贝尔物理奖的梶田隆章，在对应页面找到他在东京大学宇宙射线研究所（ICRR）。&lt;/p&gt;
&lt;p&gt;知道第二题答案之后题目 1 我直接拿 7 月和 8 月的日期进行穷举，穷举得到第一题答案：&lt;code&gt;2023-08-10&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;我：就en试啊！？&lt;/p&gt;
&lt;p&gt;然后后来看了经过艺术加工过的世界头号通缉黑客凯文·米特尼克的故事（当然是比赛之后看的），里面提到了这样几句：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_8.CgDc3TUp_Z1Jg1rc.webp&quot; srcset=&quot;/_astro/Untitled_8.CgDc3TUp_ZkNi0R.webp 640w, /_astro/Untitled_8.CgDc3TUp_RHRSH.webp 750w, /_astro/Untitled_8.CgDc3TUp_2r66Uo.webp 828w, /_astro/Untitled_8.CgDc3TUp_Z1Jg1rc.webp 880w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 880px) 880px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;880&quot; height=&quot;1427&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;果然，高端的解决方法都需要朴素的工具和原理&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;还有更离谱的：博物馆门票的价格居然是0元，零元购（？&lt;/p&gt;
&lt;h3 id=&quot;赛博井字棋---别走待我与你大战300回合&quot;&gt;赛博井字棋 - 别走！待我与你大战300回合&lt;/h3&gt;
&lt;p&gt;好，我承认这是最折磨我的题之一，我甚至为此去看了JavaScript的异步是怎么写的，甚至都了解了它把既当前端又当api，把下的位置发送给了自己，模式是固定的，甚至到了修改了发送body，但是没看到页面发生变化就放弃了…&lt;/p&gt;
&lt;p&gt;于是陷入了与这个AI的井字棋大战，我甚至让Google的那个井字棋的AI去和它对战，结果发现无论怎样都是和棋（&lt;/p&gt;
&lt;p&gt;比赛结束的那天翻了wuhang的那篇writeup，发现了一个问题（图源网络）：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_9.mBY0_Aul_1ncSg5.webp&quot; srcset=&quot;/_astro/Untitled_9.mBY0_Aul_1uMJoc.webp 640w, /_astro/Untitled_9.mBY0_Aul_1ncSg5.webp 720w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 720px) 720px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;720&quot; height=&quot;409&quot;&gt;&lt;/p&gt;
&lt;p&gt;当然看了别的几篇wp也发现有不同的解法，果然是条条大路通罗马啊（&lt;/p&gt;
&lt;h3 id=&quot;虫---谁家虫鸣暗飞声&quot;&gt;虫 - 谁家虫鸣暗飞声？&lt;/h3&gt;
&lt;p&gt;说实话拿到题目，我的想法是是看频谱图，因为有一种说法是人难以理解的音频大多都具有规律的频谱图，for example，minecraft中的11和13号音乐唱片：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Untitled_10.Dfm6nBmT_3MDB7.webp&quot; srcset=&quot;/_astro/Untitled_10.Dfm6nBmT_ZN6Jp8.webp 640w, /_astro/Untitled_10.Dfm6nBmT_Z27Qlfj.webp 750w, /_astro/Untitled_10.Dfm6nBmT_Z2tHxYU.webp 828w, /_astro/Untitled_10.Dfm6nBmT_Z1NofLo.webp 1080w, /_astro/Untitled_10.Dfm6nBmT_ZEcWwg.webp 1280w, /_astro/Untitled_10.Dfm6nBmT_3MDB7.webp 1528w&quot; alt=&quot;Untitled&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1528px) 1528px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1528&quot; height=&quot;859&quot;&gt;&lt;/p&gt;
&lt;p&gt;src: &lt;a href=&quot;https://www.youtube.com/watch?v=9EA2E6r_sLc&quot;&gt;&lt;em&gt;Minecraft - Disc 11 and 13 - Spectrogram&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;然后我兴冲冲地打开了audicity，发现自己不会调出频谱图…&lt;/p&gt;
&lt;p&gt;又发现这句 *一种**通过无线信道传输图片的方式 ，***证实了这个想法的错误&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;友：&lt;/strong&gt; 刚好刷到 SSTV 的科普，结果听声音跟虫这一题很像，一看还真是这一题的做法&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我：&lt;/strong&gt; 哇，这运气不错啊!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;慢扫描电视（英语：Slow-scan television），简称SSTV，是业余无线电爱好者的一种主要图片传输方法，慢扫描电视通过无线电传输和接收单色或彩色静态图片。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;然后找个能从音频识别的工具就完成了（比如 &lt;a href=&quot;https://github.com/colaclanth/sstv&quot;&gt;https://github.com/colaclanth/sstv&lt;/a&gt; ）。&lt;/p&gt;
&lt;p&gt;&lt;del&gt;果然看着答案说什么都轻松&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;今天复盘的时候发现题目介绍的那句名言：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;生而为人，应该能够换尿布、策划入侵、杀猪、开船、造房子、写十四行诗、算账、建墙、正骨、抚慰临终之人、接受命令、下达命令、合作、独行、解决方程式、分析新问题、清理马粪、编程、烹饪美食、高效战斗、英勇牺牲。专业分工是给昆虫准备的。&lt;/em&gt;—罗伯特·海莱恩（Robert Heinlein）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;仔细一想，确实是这么回事——现在强调专业性，但是其实更应该成为一个能力丰富的人。&lt;/p&gt;
&lt;p&gt;写这篇的时候，花了一点时间找到了这句话出自《时间值得你爱》，以及书评（？）：&lt;a href=&quot;https://www.gcores.com/articles/24125&quot;&gt;只是听听故事：海因莱因的《时间足够你爱》&lt;/a&gt;，可能会看一下。&lt;/p&gt;
&lt;p&gt;&lt;del&gt;何尝不是一种传教&lt;/del&gt;&lt;/p&gt;
&lt;h3 id=&quot;结语&quot;&gt;结语&lt;/h3&gt;
&lt;p&gt;按着自己尝试做过的题回顾了一下，感觉又把这东西写成题解的fork了…带的梗也很多，但愿你阅读的时候心情是愉快的。&lt;/p&gt;
&lt;p&gt;在尝试新的风格，这篇算是过渡吧，希望喜欢！&lt;/p&gt;
&lt;p&gt;以及标题的”摇了我吧“是整活，&lt;del&gt;不是不会写饶，当然也有把脑子摇晃清醒的那层意思&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;只能说下次应该带着点脑子和奇怪的技巧来（&lt;/p&gt;
&lt;p&gt;（刚要结束这篇文章的时候看到”更深更暗”这道题居然有至少2种很奇怪的解法…狐狐震惊）&lt;/p&gt;
&lt;p&gt;（我翻了翻甚至还有让人看了都直呼“这也可以？”的“满分指南”：&lt;a href=&quot;https://mcfx.us/posts/2023-11-04-hackergame-2023-writeup/&quot;&gt;Hackergame 2023 Writeup - mcfx’s blog&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;中午的时候突然想到了这句，想想还是加在这里：&lt;del&gt;&lt;em&gt;质疑大佬，理解大佬，成为大佬，超越大佬&lt;/em&gt;&lt;/del&gt; （现在还在理解的一个阶段，希望能够学习达到下一个阶段吧）&lt;/p&gt;
&lt;p&gt;哦对了！下面这个是废案——也就是之前说的被放弃的题解，如果你不嫌弃的话可以看看（&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lab.gb0.dev/archived/hg-2023-wp/&quot;&gt;（废案）hackergame 启动！- 一份不知所措的题解&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最后我还有个问题，就是说你们这个什么hackergame是什么性质的比赛，算不算ctf的范畴啊🤣（&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>【图文直播】开荒生存-如果让十年前的老玩家跳过大多数版本直接玩最新版MC</title><link>https://lab.gb0.dev/blog/1-20-be-survival</link><guid isPermaLink="true">https://lab.gb0.dev/blog/1-20-be-survival</guid><description>文艺复兴一下！顺便借着 Minecraft 怀念一下从前的日子。</description><pubDate>Sun, 22 Oct 2023 22:11:23 GMT</pubDate><content:encoded>&lt;p&gt;为了实现自己的 &lt;a href=&quot;https://o3o.ca/deck/@grassblock/111278941131706042&quot;&gt;帖子&lt;/a&gt; 的一个小的目标，在这里开篇帖子，记录一下我的Minecraft生存。&lt;/p&gt;
&lt;p&gt;理论上这篇文章会以所谓的击败末影龙的“通关结局”而结束，不过大概率会继续玩下去直到没有动力更新。&lt;/p&gt;
&lt;p&gt;先行解释一下标题：前半部分很好说，主要是后半部分。这其实是一个b站视频的标题（原视频是&lt;a href=&quot;https://www.bilibili.com/video/BV1Cp4y1N7dQ/&quot;&gt;如果让十年前的老玩家，跳过所有版本，直接玩最新版我的世界，会怎么样呢？&lt;/a&gt;），这个视频可能算是当时的“流量密码”，也很快的引起了我的关注。&lt;/p&gt;
&lt;p&gt;我也算是一个十年老玩家了——如果算上玩得少的几年的话，我应该是从2012年开始玩的，那时候我还是个小学生，玩的是盗版，也不知道怎么玩，只是在朋友的带领下玩了一会儿，后来逐渐产生了兴趣，演进到每得到一台台设备都要先安装Minecraft的程度。之后因为学业压力加大，游戏经历也断断续续，并且大多时候对更新感到惊异——“哇居然更新了这个，我还不知道”。&lt;/p&gt;
&lt;p&gt;然后就到了大学——生活稍微轻松了一些，可以拿出一点时间来玩玩游戏（对于有些人来说是亿点点），于是我决定重拾起来这个一度奉为信仰的游戏，感受当初玩时的快乐。&lt;/p&gt;
&lt;p&gt;更新频率随性，有更新时会在&lt;a href=&quot;https://o3o.ca/deck/tags/%E8%8D%89%E6%96%B9%E5%9D%97%E7%9A%84MC%E6%97%A5%E5%B8%B8&quot;&gt;#草方块的MC日常&lt;/a&gt;和&lt;a href=&quot;https://t.me/untruegrassblock&quot;&gt;Telegram频道&lt;/a&gt;发一些摘要，如果你想知道后续更新的话欢迎关注！&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;版本信息：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minecraft：Bedrock Edition 1.20.32 （特意用了携带版的界面来重温）&lt;/li&gt;
&lt;li&gt;材质包： Bare Bones | &lt;a href=&quot;https://mcpedl.com/bare-bones-be/&quot;&gt;Bare Bones Texture Pack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(假的)光影：ENBS Shader | &lt;a href=&quot;https://mcpedl.com/enbs-shader/&quot;&gt;ENBS Shader v2.0! (Discontinued)&lt;/a&gt; （刚知道已经停更了，暂时找不到别的太好的，就先这样了。）&lt;/li&gt;
&lt;li&gt;种子：我乱糊的（但是最后被认为是&lt;code&gt;880786423&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;行为包：无&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id=&quot;开荒&quot;&gt;开荒&lt;/h1&gt;
&lt;p&gt;(2023/10/22 21:31:55)
&lt;del&gt;&lt;em&gt;明天更新，顺便做个小封面&lt;/em&gt;&lt;/del&gt;
开局通过奖励箱拿到了一些石镐等等的道具，并在在附近找到了似乎含有煤矿的地形，我不知道意味着什么，但决定先挖空了再说。&lt;/p&gt;
&lt;p&gt;不挖不知道，一挖发现这里的煤矿石极其丰富，最后获得了有足足40多个煤炭，这对于我来说也算做一个巨额财富。
&lt;img alt=&quot;都快挖到底了&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2400px) 2400px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2400&quot; height=&quot;1080&quot; src=&quot;https://lab.gb0.dev/_astro/1698068478209.BGlOiRoe_Z2f0Qsb.webp&quot; srcset=&quot;/_astro/1698068478209.BGlOiRoe_Z1KClgf.webp 640w, /_astro/1698068478209.BGlOiRoe_2pO68G.webp 750w, /_astro/1698068478209.BGlOiRoe_2SzjE.webp 828w, /_astro/1698068478209.BGlOiRoe_Z1lbqyn.webp 1080w, /_astro/1698068478209.BGlOiRoe_ZTyVIO.webp 1280w, /_astro/1698068478209.BGlOiRoe_ZupkWi.webp 1668w, /_astro/1698068478209.BGlOiRoe_ZmQrDW.webp 2048w, /_astro/1698068478209.BGlOiRoe_Z2f0Qsb.webp 2400w&quot;&gt;&lt;/p&gt;
&lt;p&gt;之后便是&lt;del&gt;繁琐的&lt;/del&gt;制作工具环节了：
&lt;img alt=&quot;1698068478188.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2400px) 2400px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2400&quot; height=&quot;1080&quot; src=&quot;https://lab.gb0.dev/_astro/1698068478188.eETJKX-d_21oEmg.webp&quot; srcset=&quot;/_astro/1698068478188.eETJKX-d_Z9anzx.webp 640w, /_astro/1698068478188.eETJKX-d_Z12U4Yx.webp 750w, /_astro/1698068478188.eETJKX-d_1Elx0m.webp 828w, /_astro/1698068478188.eETJKX-d_Z29X3xR.webp 1080w, /_astro/1698068478188.eETJKX-d_Z1IlyIj.webp 1280w, /_astro/1698068478188.eETJKX-d_Z1jbWVM.webp 1668w, /_astro/1698068478188.eETJKX-d_Z1bD4Dr.webp 2048w, /_astro/1698068478188.eETJKX-d_21oEmg.webp 2400w&quot;&gt;&lt;/p&gt;
&lt;p&gt;顺便尝试了做暂时忘记了是哪个版本出现的烟熏炉，似乎效率会更高些…等我后期试试。
&lt;img alt=&quot;1698068478195.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2400px) 2400px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2400&quot; height=&quot;1080&quot; src=&quot;https://lab.gb0.dev/_astro/1698068478195.z7X1qKM9_ZaQg6R.webp&quot; srcset=&quot;/_astro/1698068478195.z7X1qKM9_Z1wxHpK.webp 640w, /_astro/1698068478195.z7X1qKM9_Z2qioOK.webp 750w, /_astro/1698068478195.z7X1qKM9_gXda9.webp 828w, /_astro/1698068478195.z7X1qKM9_HX9LV.webp 1080w, /_astro/1698068478195.z7X1qKM9_19zDBu.webp 1280w, /_astro/1698068478195.z7X1qKM9_1yJfo1.webp 1668w, /_astro/1698068478195.z7X1qKM9_1Gi8Gm.webp 2048w, /_astro/1698068478195.z7X1qKM9_ZaQg6R.webp 2400w&quot;&gt;&lt;/p&gt;
&lt;p&gt;最后差不多就是这样子，避难所都没有（&lt;del&gt;大不了挖三填一&lt;/del&gt;），只是简单摆盘：
&lt;img alt=&quot;1698068478180.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2400px) 2400px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2400&quot; height=&quot;1080&quot; src=&quot;https://lab.gb0.dev/_astro/1698068478180.D4A3HchP_1EsrWC.webp&quot; srcset=&quot;/_astro/1698068478180.D4A3HchP_Z1MVsMv.webp 640w, /_astro/1698068478180.D4A3HchP_2nuXBq.webp 750w, /_astro/1698068478180.D4A3HchP_zrMo.webp 828w, /_astro/1698068478180.D4A3HchP_Z2vTfWv.webp 1080w, /_astro/1698068478180.D4A3HchP_Z25hL7W.webp 1280w, /_astro/1698068478180.D4A3HchP_Z1F8alq.webp 1668w, /_astro/1698068478180.D4A3HchP_Z1xzh35.webp 2048w, /_astro/1698068478180.D4A3HchP_1EsrWC.webp 2400w&quot;&gt;&lt;/p&gt;
&lt;p&gt;今天就先这样，有进展会再更新。&lt;del&gt;这段还是第二天写的呢，明天再来做新封面吧&lt;/del&gt;&lt;/p&gt;</content:encoded><category>Daily</category><author>草方块</author></item><item><title>周记#3 - 风平浪静的一周？</title><link>https://lab.gb0.dev/blog/w3-not-a-calm-week</link><guid isPermaLink="true">https://lab.gb0.dev/blog/w3-not-a-calm-week</guid><description>我也不知道要写啥，开摆！</description><pubDate>Sun, 15 Oct 2023 21:07:00 GMT</pubDate><content:encoded>&lt;h1 id=&quot;周记3---风平浪静的一周&quot;&gt;周记#3 - 风平浪静的一周？&lt;/h1&gt;
&lt;p&gt;注：若无特殊说明，我们规定当前周为2023.10.09—2023.10.15的这七天&lt;/p&gt;
&lt;p&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;/ol&gt;
&lt;p&gt;这周算是正式上课了，不过遇到的烦心事也比往常多了一些，作为一个带学生，学习应该是头等大事，但是却又难免被各式各样的被强塞进口袋里的活动所困扰。
美其名曰“第二课堂”，但实际上只是一个通往其它国内大厂应用软件的大型传送门（虽然说这个年代了50多mb并不算大），俗话说“人为财死，鸟为食亡”，而当下的带学生，除了被课业所困扰外，还要被这种“第二课堂”所折磨，实属悲哀。
哦，原来我也在这个范围内啊，那没事了（&lt;/p&gt;
&lt;p&gt;这周对于我来说比较新的东西只有外教课和“百团大战”（指周末的时候校内的各个社团摆摊争奇斗艳）了。
外教课（正式的名字是叫英语口语）完全是因为当了一个班级显眼包（？我觉得是不太算的）给外教帮了点小忙，&lt;del&gt;当然更多的是被推荐了一首歌曲&lt;/del&gt;（&lt;/p&gt;
&lt;p&gt;一直觉得社团会整更大的阵势，因为我觉得社团不会只有之前以升的那些协会，&lt;del&gt;毕竟体育社团等等的完全没有&lt;/del&gt;，然后这周六起床一看，哦，原来都在今天才开始摆摊呢，不过是另外的一个校组织下面的社团，不过大差不差了。
于是下午趁着没事，煞有介事地逛了一圈摊位之后，又选择加入了天文协会和外文协会（？
（之所以选择加入只是因为除了这些，只有像传统文化、体育、艺术这些我不太会而且基本无法上手的…而且像天文这些也有被同学传教的因素）
后来我才知道，这次活动就是我们学校的“百团大战”，没想到来得这么晚…&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;摄影社团也有小黑子（喜&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2560px) 2560px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2560&quot; height=&quot;1922&quot; src=&quot;https://lab.gb0.dev/_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_1tQiqK.webp&quot; srcset=&quot;/_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_22aJcV.webp 640w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_1puxtR.webp 750w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_26rDTq.webp 828w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_7Hwj5.webp 1080w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_25ROz7.webp 1280w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_GRBRv.webp 1668w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_ZkIzIP.webp 2048w, /_astro/bafybeids4ioxybxsqvhwsdo3uyhz4ght3r2yb27jxzpxa54q2qzq4sow7u.Bmb6R-VO_1tQiqK.webp 2560w&quot;&gt;&lt;/p&gt;
&lt;p&gt;至少从目前来看，这一周过的很顺，但是下面说的一些事情可能会打破这些观点。&lt;/p&gt;
&lt;p&gt;大概在国庆假期快结束的时候，我接到了自己的第一个活————给人做Bootstrap模版的页面重排版，出于不触怒甲方的角度下，我不能明说，只能说要求真的多，事情很复杂，而且要干的事情自由度不高，只是简单的复制粘贴，所以一直拖到这一周，然后晚上有时间就加班加点地做，可以说是挤占了我大部分的休息时间。
这周是打算出一篇周记的，但是拿到电脑开始写的时候要么是思路不清晰，要么是要改上面说的的活的需求，根本没空写。&lt;/p&gt;
&lt;p&gt;关于周记，上一周的周记在上周末的时候就开始筹备，然后周二上午的时候因为误把xlog的cookies清空了导致草稿全部丢失，而且我也没有本地备份，而后在本地创建文件后又想补回来时，又被叫去做活，于是又拖到了这一周的周末，再也没心思写了。
但是活结束的也是真快，在我周三还在无数次抱怨这个活难干的时候，甲方突然说不用你弄了，让我交货。交过货以后，回想起来之前被提出的要求以及我身心俱疲的状态（当时真的有那么两天连觉都睡不好），我就发了以下的帖子，宣布暂时停止活动：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;明天起休息，不接活不写代码，博客文章暂时停更，恢复时间待定，日常会更新的多一些。 &lt;a href=&quot;https://nya.one/notes/9kpeml8krosx00f8&quot;&gt;source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;而样式变成别的样子又是另外一件故事了。
大概在上周的时候我打开xlog看到我的站样式突然变成默认样式了，当时以为是bug，结果在这周二我检查草稿的时候发现自定义CSS里面的设置已经空了…也没见人反馈，难道是我自己的问题？
最近也由于站点证书的问题，这周主站炸了不下两次了，每次点开来都能出现一些问题…真的是潘多拉的魔盒啊。
看来之后得把样式做备份了，最近买了zeabur的订阅，可能之后还得搬回去，
我都快成候鸟了都（
&lt;img alt=&quot;图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 3584px) 3584px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;3584&quot; height=&quot;1912&quot; src=&quot;https://lab.gb0.dev/_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_1hn2Se.webp&quot; srcset=&quot;/_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_sDp7d.webp 640w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_1hktKD.webp 750w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_Zn2FrJ.webp 828w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_cvGh5.webp 1080w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_1n7Ft1.webp 1280w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_Nnhr2.webp 1668w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_PkRRe.webp 2048w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_Z2oDhW9.webp 2560w, /_astro/bafybeigqaxqvvliblcnny4pw4j5guyq7xi76triarrwugg4xkpemohk634.DOQVDr57_1hn2Se.webp 3584w&quot;&gt;&lt;/p&gt;
&lt;p&gt;因为这篇文章出的时间实在太长了，其中的细节我大多已经遗忘，就写到这里吧，封面也不做了。
又快到年底了，或许又得开始准备我的年度总结了。
文章发布的这一周因为太无聊，就不写周记了，以后也应该不会经常写，近期打算先写一篇有关骇客文化和软件产权相关的东西发在实验室。
第一次用Neovim写东西，感觉还不错，以后可以接着用（
下次见！
（顺便希望diygod大佬注意一下以上提到的问题（？&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>周记 #2 - 破除“社恐”属性</title><link>https://lab.gb0.dev/blog/w2-breakbarrier</link><guid isPermaLink="true">https://lab.gb0.dev/blog/w2-breakbarrier</guid><description>人吧，总爱贴个标签，但是这标签有时候真的是一种制约。</description><pubDate>Sat, 30 Sep 2023 16:00:00 GMT</pubDate><content:encoded>&lt;h1 id=&quot;周记-2---破除社恐属性&quot;&gt;周记 #2 - 破除“社恐”属性&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=4jARV_XYfdk&quot;&gt;https://www.youtube.com/watch?v=4jARV_XYfdk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在现实中，我是属于不太喜欢与人交流的类型。而在两三个月前我复测了自己的mbti，发现自己内倾属性依然很高，验证了这个判断。
&lt;img alt=&quot;图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1400px) 1400px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1400&quot; height=&quot;225&quot; src=&quot;https://lab.gb0.dev/_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_1zHw5z.webp&quot; srcset=&quot;/_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_Z2qr6l7.webp 640w, /_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_1XCRJn.webp 750w, /_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_1X3GuF.webp 828w, /_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_Z1iJaU8.webp 1080w, /_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_VuA21.webp 1280w, /_astro/bafkreifptycoedttz5mdbna6z2mx5esy3a5siz5s7idq4ea6mfngse7u4e.CJY6W2oq_1zHw5z.webp 1400w&quot;&gt;&lt;/p&gt;
&lt;p&gt;然而作为一个游走在充满英鱼的河里的科寄狐，“说”成为了提升专业水平的重要一环（语言学习四大样，听说读写），所以在入学的时候我就打算尽力改变现状——单就这个月来说我至少参加了两次团体的面试，努力地去接触一些友善的人。&lt;/p&gt;
&lt;p&gt;上周末去参加院学生会的面试，但是因为自己的疏忽自己并没有交报名表上去，但是抱着说不定也行的想法，冒着淅淅沥沥的小雨还是去了面试现场，在现场和学姐打好了招呼，心惊胆战地等待着（因为临时起意，稿子什么的都没有准备）。不过好在面试的过程是顺利的，信技部的学长学姐没有过度为难我。就在我写上次的周记的时候，我成功地被录用了。（但是也有可能是面试这个部门的人实在太少了的原因…）&lt;/p&gt;
&lt;p&gt;说实话，面试过程我还是比较紧张的，因为第一次在那么多人面前接受面试官（实在不知道怎么说，就先这么说吧）的盘问（解释一下，面试是在一个大会议室里，前几排是面试官，后面是在等的面试的人），但是面试过后心中有一种一块大石头落地的释然。&lt;/p&gt;
&lt;p&gt;我还记得这周三综合英语课上，老师在引导我们发言时说的话，大概意思是说“社恐”和害羞之间还是有区别的，一种是不愿意主动和别人说话，但是一旦发言就能说个没完，另一种是真的不愿意说话，少言寡语。
（但我实在忘记了两者之间的对应的关系，而且我在写这个东西的时候状态很差，屋漏偏逢连夜雨，Bing又打不开，所以只能先放着。）&lt;/p&gt;
&lt;p&gt;这句话对我的启发很大。后来想到，“社恐”这个词本身就是一种被人为定义的类型，有句老话说的好，规矩是死的，但人可以是活的（叠甲：没有教唆违法的不良导向），也就是说，人是可以通过做一些事来跳脱出这个框架来的。
我更加释然了，感觉一切更明朗了起来。&lt;/p&gt;
&lt;p&gt;哦，读到现在了，你是不是想问另一次面试是什么情况？虽然这件事不属于这一周的范畴，但是想到万一有人好奇我就简单提两句：
学校里有个教务处直管的“以升大学生创新创业中心”（通俗点说就是科创中心+一堆相关社团，但是零基础版本），开放日集体参观前，我心想可得到一个接触科技的好机会，所以在他讲&lt;del&gt;传教&lt;/del&gt;的时候我光速填了他们的报名表，之后就是一段比较漫长的等待，报名过后还有面试，面试之后还有复试，不过复试和我无关了，因为我面试根本没过（哭）&lt;/p&gt;
&lt;p&gt;因为是第一周开始上课，所以课业压力并不是很大，除了综合英语和这语音两门课需要真切的发言外，剩下的完全可以当个小透明，对我暂时来说真的很友好（&lt;/p&gt;
&lt;p&gt;当然为了解决自己的这个问题，自己还“为3D打印机多花5块钱”（&lt;a href=&quot;https://o3o.ca/@grassblock/111061509864724847&quot;&gt;来源&lt;/a&gt;）加入了创客空间的一个协会，也去了那么四五次，但是吧在自打这周研讨会之前我是没太想到这花出去的钱有什么意义，直到我临回家前的那个晚上的研讨会上晚走了亿会儿白嫖到了下面这两样东西：
&lt;img alt=&quot;我就觉得这钱花得值了&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2560px) 2560px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2560&quot; height=&quot;1922&quot; src=&quot;https://lab.gb0.dev/_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_Z1v2mUm.webp&quot; srcset=&quot;/_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_CdHyK.webp 640w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_xvPG.webp 750w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_GuCgf.webp 828w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_2d0YKT.webp 1080w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_ZT0PM0.webp 1280w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_Z2i13tB.webp 1668w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_1JyRHY.webp 2048w, /_astro/bafybeiaql6ios552kvnyenntvemzz7f7wjmugwuomccccfmkcdpt4ulzq4.BTB1nmmM_Z1v2mUm.webp 2560w&quot;&gt;
我就觉得这钱花得值了。&lt;/p&gt;
&lt;p&gt;当然他们那个协会的气氛还是比较和谐友善（核心价值观？）的，&lt;del&gt;至少在晚上是这样&lt;/del&gt;
我依稀记得当时的一度尴尬的场面——当时除了在搞分享会这个东西外，还有免费体验激光雕刻的一个流程，成品可以拿走（就大概是上面那样子），但是吧，我几乎待在那里一晚上，根本没两个人来，当那个建模部的学姐在群里问还有没有人来的时候，我在群里放鱼钩说没报名的可以来吗，当然最后还是因为拍了现场的照片的原因被发现了，之后交谈的场面可以说是一度极为尴尬，不过之后便放开了（这归功于那句“不用那么拘谨”），甚至因为打开figma的展示自己的设计稿等等的操作而被夸赞“比我懂得多”（但我觉得更多是因为我用Linux…），后来就是看流程啦，顺手带了一份上次活动的nfc小灯（&lt;/p&gt;
&lt;p&gt;这周还有个什么未来科技产业大会，但是与我关系不大，表演又像军训汇演一样不大好看（除了后排看不到边的无人机表演），就不写了。&lt;/p&gt;
&lt;p&gt;好了终于来到了最后一部分（仰头），这周虽然很忙，也没学到太多东西，&lt;del&gt;但是又算平稳地过了一周&lt;/del&gt;。怎么说呢，尽管我们一直在给人贴标签，并可能以此作为评判他人的标准。“社恐”其实也是划分群体的“标签”之一，但是不能受此制约而不去突破。
mbti测试更多地也是在给自己贴标签，在茫茫人海中寻找那些“同是天涯沦落人”的感觉，至于它的可靠程度，这完全看在自己。
最后想引用在&lt;a href=&quot;https://www.bilibili.com/video/BV1TV4y1a7XE/&quot;&gt;大型纪录片之《INFJ-T 4W5传奇》&lt;/a&gt;中的一条评论：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;世界是错误的，因为它始终在通往正确的道路上。
在你真正接受真实的自己之后，别人才可能接受真实的你。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;小声：本来想用Vercel那个og image playground来写封面的，结果因为图片跨域问题弄不好，就暂时还是用figma设计封面了…
以及封面背景是自己在临回家的最后一天在学校拍的，不过谁问我了&lt;/p&gt;
&lt;p&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1920px) 1920px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1920&quot; height=&quot;1080&quot; src=&quot;https://lab.gb0.dev/_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_Z1QhAlR.webp&quot; srcset=&quot;/_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_Z2siPTG.webp 640w, /_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_HhEDm.webp 750w, /_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_Z14xzTf.webp 828w, /_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_1w2z6o.webp 1080w, /_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_ZO7lXK.webp 1280w, /_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_D1u7P.webp 1668w, /_astro/bafybeihz72w2rug7elfj7lab7bu2q5juetsdx5ris4r3b3atst5z5pxguu.DHXnowTd_Z1QhAlR.webp 1920w&quot;&gt;&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>周记 #1 - 混乱生活的结束</title><link>https://lab.gb0.dev/blog/w1-endofchaos</link><guid isPermaLink="true">https://lab.gb0.dev/blog/w1-endofchaos</guid><description>获得成就：结束了？</description><pubDate>Mon, 25 Sep 2023 14:28:46 GMT</pubDate><content:encoded>&lt;h1 id=&quot;周记-1---混乱生活的结束&quot;&gt;周记 #1 - 混乱生活的结束&lt;/h1&gt;
&lt;p&gt;又是新的一周，作为对&lt;a href=&quot;https://dvd.chat/notes/9jtib8n2ldi8dwrs&quot;&gt;这篇帖子&lt;/a&gt;里的承诺的一个践行，我也加入到周记大军的行列当中了。
其实不是很愿意以这种方式向大家介绍我在这一周都做了什么，但是迫于自己的课业以及身体情况只能选择这种&lt;del&gt;烂大街的&lt;/del&gt;形式，以及封面真的很不好做，没有灵感，所以这期就暂时没封面了…&lt;/p&gt;
&lt;p&gt;说实话，上一周与这周的真的很是某种很混乱的状态，因为军训的时间安排比较宽松，而且没有什么课，别的时间活动安排也是比较多（至今不明白为啥体检会和乱七八糟的招新面试见面会什么的放在这周），不过好在这一切都暂时地结束了。&lt;/p&gt;
&lt;h1 id=&quot;摸鱼真快乐&quot;&gt;摸鱼真快乐&lt;/h1&gt;
&lt;p&gt;军训被分到新教官那里，因为所有的训练内容早已在上一周完成，所以也只是复盘之前的内容，大多数时候都是在摸鱼休息，我至今无法理解校方为什么放那么长时间来军训，不过好处倒是挺明显的（&lt;/p&gt;
&lt;p&gt;出于天气原因，我们的军训提前一天结束了。但是被空出来的周日因为着凉而十分难受，雨也下了一天，总之过得并不好。&lt;/p&gt;
&lt;p&gt;不军训的时候，我的日常：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;看b站沙雕视频&lt;/li&gt;
&lt;li&gt;玩phigros&lt;/li&gt;
&lt;li&gt;刷社交媒体
总之几乎啥也没干，也就有两三天会去创客协会的实验室学C语言，没学多少（&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;发现的大宝贝&quot;&gt;发现的大宝贝&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1NG411R7HE/&quot;&gt;【Minecraft模组教程】Yuushya Modelling 方块建模 一款强大的建筑工具&lt;/a&gt; - 这两天一直想着用 Minecraft 复刻一个工作场景当壁纸（当然电脑的性能并没有那么好只是想想而已），大数据把这个教程送了上来
&lt;a href=&quot;http://www.stcmcudata.com/&quot;&gt;http://www.stcmcudata.com/&lt;/a&gt; - 硬件人应该挺熟，群友告诉我的时候我是真不知道，据说可以以一个比较低的价用到单片机（？
&lt;a href=&quot;https://web.blockbench.net/&quot;&gt;Blockbench&lt;/a&gt; - 这玩意儿能拿来建模，也能拿来画Minecraft皮肤，而且挺好使的。&lt;/p&gt;
&lt;p&gt;应该还有，我这记性也不好，只记住这些&lt;/p&gt;
&lt;h1 id=&quot;火星救援&quot;&gt;火星救援&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;matrix 有表情包（贴纸）接口了，可以给聊天室添加表情包并应用，似乎也能bridge移植，之前只有element有，而且到现在它还是私有。&lt;/li&gt;
&lt;li&gt;umami 统计是支持选择自定义时间区间来查看统计结果的。
&lt;img alt=&quot;图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2450px) 2450px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;2450&quot; height=&quot;1444&quot; src=&quot;https://lab.gb0.dev/_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_ZFL8aI.webp&quot; srcset=&quot;/_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_Z1O7nrp.webp 640w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_Z72TR7.webp 750w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_Z21lfJW.webp 828w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_qEbYS.webp 1080w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_1jNlfM.webp 1280w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_1t4HSy.webp 1668w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_EcsTl.webp 2048w, /_astro/bafkreidksn6djpyl4qbuqv2r6jixknoghtlg77jjn7qams2f5puhprs7e4.YeU35OXJ_ZFL8aI.webp 2450w&quot;&gt;&lt;/li&gt;
&lt;li&gt;bing ai 有企业版，但是我不知道怎么获取，而且普通版够用&lt;/li&gt;
&lt;li&gt;Linux 上编译后的二进制文件可以直接赋予执行权限然后 ./prod 执行。&lt;/li&gt;
&lt;li&gt;29号放假，放到6号，7号调休，这事儿还是我家长告诉我的。&lt;/li&gt;
&lt;li&gt;最近火的中文歌都是旧歌曲，有至少两年的历史。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我记忆又乱了，先这样吧。&lt;/p&gt;
&lt;h1 id=&quot;这周打算做什么&quot;&gt;这周打算做什么&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;学 C，至少学到程序设计那本书的1/3&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;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&quot;最后说两句&quot;&gt;最后说两句&lt;/h1&gt;
&lt;p&gt;我这记性和身体是越来越差了…我靠着我现在能找到的所有记录，写下了这个文章，我看机械飞升已经救不了我了，得找点别的办法（&lt;/p&gt;
&lt;p&gt;毕竟是第一篇，所以写的比较水，以后大概也会是这种结构，我还得重新熟悉一下写作。&lt;/p&gt;
&lt;p&gt;最近没太多灵感，欢迎向我提想法和问题！&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>在 GNOME 上实现可自定义主题的自动切换深色模式</title><link>https://lab.gb0.dev/blog/auto-darkmode-on-gnome</link><guid isPermaLink="true">https://lab.gb0.dev/blog/auto-darkmode-on-gnome</guid><description>经过几天的摸索，我最终找到了让 GNOME 桌面环境下随时间自动切换全局可自定义的深色模式的方法，同时也让一部分应用服从系统设定。</description><pubDate>Sat, 22 Jul 2023 21:16:18 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-tip&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;虽然标题是“在 GNOME 上实现可自定义主题的自动切换深色模式”，但是本文所述的方法也有可能可以用于其它桌面环境。（如对于特定应用的设置等等）&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文所述的方法不为 GNOME 官方所支持，甚至可能会未来的版本中失效，所以请谨慎使用。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;div class=&quot;callout callout-danger&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文所述的方法需要对系统进行一定的修改，如果你不知道自己在做什么，请不要使用本文所述的方法。同时请做好对原有配置的备份，以防万一。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h1 id=&quot;更新日志&quot;&gt;更新日志&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;2023.07.22 初稿&lt;/li&gt;
&lt;li&gt;2023.09.03 新增有关 Auto Dark Mode 插件的更新&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前一阵子，我把我的laptop重装成了 &lt;a href=&quot;https://archlinux.org/&quot;&gt;Arch Linux&lt;/a&gt;，并且使用了 &lt;a href=&quot;https://gnome.org&quot;&gt;GNOME&lt;/a&gt; 作为桌面环境，但是我发现它并没有像 macOS 那样自动切换深色模式，于是我就开始寻找方法来实现这个功能。&lt;/p&gt;
&lt;p&gt;经过多日的摸索，我终于找到了一种比较完全的切换深色模式的方法，而且还可以随时间自动切换，支持自定义主题，并&lt;a href=&quot;https://nya.one/notes/9hah8g2lry&quot;&gt;把大致思路分享在联邦宇宙上&lt;/a&gt;，下面展开说说。&lt;/p&gt;
&lt;h1 id=&quot;难点&quot;&gt;难点&lt;/h1&gt;
&lt;p&gt;要先说自动切换深色模式，我们先来说 GNOME 上的预配的深色模式的一些问题。&lt;/p&gt;
&lt;p&gt;GNOME 上的确是有 “深色模式” 的，但是它只支持 GNOME 预配的 Adwaita-dark 主题，如果你是默认主题的忠实用户，这应该是一件好事——它基本上支持所有的平台构建的应用（对应的Qt主题可能需要另行安装，详见&lt;a href=&quot;https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications#Styles_for_both_Qt_and_GTK&quot;&gt;Uniform look for Qt and GTK applications - ArchWiki#Adwaita&lt;/a&gt;）。但是这对于想要自定义主题的用户来讲，就不是那么友好了。&lt;/p&gt;
&lt;p&gt;而当通过 &lt;code&gt;User Themes&lt;/code&gt; 这个预装扩展使用自定义主题后，还会发现一个问题：主题明明是支持 GTK4 的，但是应用后，一些 GTK4 应用（比如 GNOME 在被安装时自带的一些应用）却没有切换到主题的样式，仍使用默认的adwaita主题。而且这种办法，对于很大一部分 Qt 应用和 Electron 应用，它是无能为力的。&lt;/p&gt;
&lt;p&gt;至于GTK4应用没有跟随主题的的原因，GNOME 官方博客的 &lt;a href=&quot;https://blogs.gnome.org/alatiera/2021/09/18/the-truth-they-are-not-telling-you-about-themes/&quot;&gt;The Truth they are not telling you about “Themes” – Rust in Peace&lt;/a&gt; 文章已经有所解释，便不在此赘述。&lt;/p&gt;
&lt;p&gt;并且，这种办法对于安装的 Flatpak 应用也是无效的，因为它们在一个与主系统相对隔离的沙盒环境中运行，你所安装和应用的主题并不会为其所读取。&lt;/p&gt;
&lt;p&gt;Qt 则更不必想，由于主题系统独立于GTK，所以自定义主题，甚至于深色主题都是不会被使用Qt作为界面构建的应用所使用，也就是说在不进行任何配置的情况下，Qt 应用是不会跟随系统主题的。&lt;/p&gt;
&lt;p&gt;&lt;del&gt;所以这就是为什么说 GNOME 坑很大，不如去用Plasma&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;然后就是自动切换的问题了，很明显，就像大多数桌面环境一样，GNOME 并没有提供自动切换深色模式的功能，所以我们需要自己动手。&lt;/p&gt;
&lt;h1 id=&quot;解决办法&quot;&gt;解决办法&lt;/h1&gt;
&lt;p&gt;通过以上我们不难看出，要解决这个看似简单的问题，我们需要先行解决以下几个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;如何为GTK4应用使用自定义主题？&lt;/li&gt;
&lt;li&gt;如何让使用系统界面组件的flatpak应用读取到系统当前主题？&lt;/li&gt;
&lt;li&gt;如何让Qt应用跟随系统主题？&lt;/li&gt;
&lt;li&gt;如何使系统在切换深浅色模式时使用自定义主题？
幸运的是，这些问题都有解决办法。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不过，先不要着急去解决这些特殊环境下的问题，我们先来解决最基本的问题：如何让系统自动切换深浅色模式，而且使用自定义主题？&lt;/p&gt;
&lt;h2 id=&quot;先行准备&quot;&gt;先行准备&lt;/h2&gt;
&lt;p&gt;在开始配置之前，我们需要提前准备一些东西：&lt;/p&gt;
&lt;p&gt;首先，我们需要安装一个叫做 &lt;a href=&quot;https://extensions.gnome.org/extension/2236/night-theme-switcher/&quot;&gt;Night Theme Switcher&lt;/a&gt; 的扩展，它可以让我们在指定的时间（或者是随日出日落）自动切换深浅色模式，而且可以自定义主题。&lt;/p&gt;
&lt;div class=&quot;callout callout-tip&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;不知道如何安装 GNOME Shell 扩展？请参考 &lt;a href=&quot;https://itsfoss.com/gnome-shell-extensions/#method-2-install-gnome-shell-extensions-from-a-web-browser&quot;&gt;How to Use GNOME Shell Extensions&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;（注：你可能需要根据自己所使用的发行版而调整步骤，如果觉得不靠谱这个东西网上搜一搜就有了）&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;然后，我们需要找两套主题，一套是浅色为主的，一套是深色为主的（或者是同一套主题的深浅色版本），我这里使用的是 &lt;a href=&quot;https://www.gnome-look.org/p/1013698&quot;&gt;vimix-gtk-theme&lt;/a&gt;（用于浅色模式下）和 &lt;a href=&quot;https://www.gnome-look.org/p/1267246&quot;&gt;Nordic&lt;/a&gt;（用于深色模式下）作为示例。&lt;/p&gt;
&lt;p&gt;但是无论如何，主题需要满足以下条件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;支持 GTK4&lt;/li&gt;
&lt;li&gt;最好有对应的 kvantum 主题&lt;/li&gt;
&lt;li&gt;符合自己的心意&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;找到了主题之后，我们需要把它们下载到 &lt;code&gt;~/.themes&lt;/code&gt; 目录下，如果没有这个目录，就自己创建一个。&lt;/p&gt;
&lt;p&gt;如果可以，还可以找一些对应的图标主题和光标主题，这样就可以让你的桌面环境更加统一。有余力的话，还可以为你所使用的应用找一些对应的样式主题。&lt;/p&gt;
&lt;p&gt;当然，还需要安装 kvantum，可以参考 &lt;a href=&quot;https://github.com/tsujan/Kvantum/tree/master/Kvantum&quot;&gt;Kvantum 项目的 README.md来进行安装&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;配置&quot;&gt;配置&lt;/h2&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;比较喜欢默认的 Adwaita 样式？你可以直接跳转到 &lt;a href=&quot;#%E5%AF%B9%E4%BA%8Eadwaita%E7%9A%84%E8%AE%BE%E7%BD%AE&quot;&gt;对于Adwaita的设置&lt;/a&gt;。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h3 id=&quot;night-theme-switcher-配置&quot;&gt;Night Theme Switcher 配置&lt;/h3&gt;
&lt;p&gt;一般来说，这个扩展在默认安装时就已经被启用，但是我们还是需要对其进行一些配置。&lt;/p&gt;
&lt;p&gt;打开扩展的设置，你会看到这样的界面：
&lt;img src=&quot;https://lab.gb0.dev/_astro/2023-07-29-14-32-46.BjUk9vJH_ZmTuoD.webp&quot; srcset=&quot;/_astro/2023-07-29-14-32-46.BjUk9vJH_Z2uRwEE.webp 640w, /_astro/2023-07-29-14-32-46.BjUk9vJH_8COl8.webp 750w, /_astro/2023-07-29-14-32-46.BjUk9vJH_ZYkxf7.webp 828w, /_astro/2023-07-29-14-32-46.BjUk9vJH_2ndRwQ.webp 1080w, /_astro/2023-07-29-14-32-46.BjUk9vJH_ZRdww5.webp 1280w, /_astro/2023-07-29-14-32-46.BjUk9vJH_ZmTuoD.webp 1560w&quot; alt=&quot;扩展界面&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1560px) 1560px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1560&quot; height=&quot;1110&quot;&gt;&lt;/p&gt;
&lt;p&gt;在默认打开的 &lt;code&gt;安排&lt;/code&gt; 一栏，可以自由调整切换发生的时间，或者是关闭手动安排，使其随日出日落自动切换。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;如果想要在日出日落前后一段时间内切换，还需要允许扩展访问位置信息。否则扩展无法获取到日出日落的时间，并自动切换回手动安排。&lt;/p&gt;&lt;p&gt;设置方法：打开&lt;code&gt;设置&lt;/code&gt;应用，在 &lt;code&gt;隐私&lt;/code&gt; 一栏中，找到 &lt;code&gt;位置信息&lt;/code&gt;，并将&lt;code&gt;定位服务&lt;/code&gt;的开关开启。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;&lt;code&gt;背景&lt;/code&gt; 一栏可以分别设置深色和浅色模式下的背景，这里不再赘述。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;命令&lt;/code&gt; 一栏可以设置切换时执行的命令，这里我们过会儿要设置两套命令，不过先不要着急，我们先往下看。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;主题&lt;/code&gt; 一栏可以设置切换要切换哪些元素的主题，以及要切换的主题，你可以根据需要进行调整。一般来说，只需要开启并调整 &lt;code&gt;GTK主题&lt;/code&gt; 和 &lt;code&gt;图标主题&lt;/code&gt; 两项即可。&lt;/p&gt;
&lt;h3 id=&quot;gtk4-的额外配置&quot;&gt;GTK4 的额外配置&lt;/h3&gt;
&lt;p&gt;前面说到，&lt;code&gt;Night Theme Switcher&lt;/code&gt; 可以在切换时执行命令，我们就可以利用这个功能来解决 GTK4 应用不跟随主题的问题。&lt;/p&gt;
&lt;p&gt;GTK 4 的主题实际上也是一些 CSS 文件，不过与 GTK 2/3 不同的是，GNOME 并没有提供设置自定义主题的方式，所以我们需要自己动手替换原有的样式。&lt;/p&gt;
&lt;p&gt;在网络搜索这个问题的解决办法时，我找到了 &lt;a href=&quot;https://github.com/odziom91/libadwaita-theme-changer&quot;&gt;odziom91/libadwaita-theme-changer&lt;/a&gt; 这个项目，它可以让我们替换 GTK4 应用的主题，而且还可以使用自定义主题。&lt;/p&gt;
&lt;p&gt;简单浏览了一下源码，我们不难发现：这个脚本是通过将原有的 GTK4 配置目录下 gtk.css 替换为主题内建的对应文件来实现的，而且我们也知道了这个文件的对应路径：&lt;code&gt;~/.config/gtk-4.0/gtk.css&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;那么我们只需要把这个脚本所做的事情用shell脚本改写一下，再在扩展中进行配置，就可以实现自动切换 GTK4 主题了。&lt;/p&gt;
&lt;p&gt;以下是以 &lt;code&gt;vimix-light-doder&lt;/code&gt; 主题（&lt;code&gt;vimix-gtk-theme&lt;/code&gt;的其中一个样式）为例，编写的相应的脚本，你可以根据需要修改它：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:83ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.themes/vimix-light-doder/gtk-4.0/assets/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#5A676D&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.config/gtk-4.0/assets/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;ln&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-s&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.themes/vimix-light-doder/gtk-4.0/gtk.css&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.config/gtk-4.0/gtk.css&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;cp $HOME/.themes/vimix-light-doder/gtk-4.0/assets/* $HOME/.config/gtk-4.0/assets/ln -s $HOME/.themes/vimix-light-doder/gtk-4.0/gtk.css $HOME/.config/gtk-4.0/gtk.css&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;你可以亲自执行一次这个脚本，再打开一个 GTK4 应用（比如设置）看看是否能够正常切换主题。（已经打开的应用需要重启才能看到效果）&lt;/p&gt;
&lt;div class=&quot;callout callout-tip&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;有些主题会把 &lt;code&gt;assets&lt;/code&gt; 目录放到 gtk.css 所在的上一级目录，或者是其它位置，这个时候可能就需要对CSS文件做一点修改。&lt;/p&gt;&lt;p&gt;使用你所喜爱的编辑器，打开主题当中的 gtk.css 文件，查找 &lt;code&gt;assets&lt;/code&gt; ，如果找到的路径不是 &lt;code&gt;./assets&lt;/code&gt; ，那么就需要修改脚本中的路径为其所对应的路径，而且还要将CSS文件中所有的 &lt;code&gt;assets&lt;/code&gt; 对应的路径改为 &lt;code&gt;./assets&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;这么做的原因是，GTK4 的主题文件中，所有的资源文件都是相对于 gtk.css 所在的路径的，而我们的脚本是将 gtk.css 放在了 &lt;code&gt;~/.config/gtk-4.0&lt;/code&gt; 目录下，所以需要将所有的资源文件的路径改为相对于 &lt;code&gt;~/.config/gtk-4.0&lt;/code&gt; 的路径。&lt;/p&gt;&lt;p&gt;举个例子，我所用的 Nordic 主题将 assets 目录放在了 gtk.css 所在的上一级目录（也就是主题的根目录），那么脚本就需要改为这样：&lt;/p&gt;&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:82ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.themes/Nordic-[variant]/assets/&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#5A676D&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.config/gtk-4.0/assets/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;ln&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-s&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.themes/Nordic-[variant]/gtk-4.0/gtk.css&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; $HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.config/gtk-4.0/gtk.css&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;cp $HOME/.themes/Nordic-[variant]/assets/* $HOME/.config/gtk-4.0/assets/ln -s $HOME/.themes/Nordic-[variant]/gtk-4.0/gtk.css $HOME/.config/gtk-4.0/gtk.css&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;并且 &lt;code&gt;gtk.css&lt;/code&gt; 中所有的 &lt;code&gt;../assets&lt;/code&gt; 都需要改为 &lt;code&gt;./assets&lt;/code&gt;。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;如果你觉得直接将上面的一串复制进扩展的输入框中不方便后续编辑，可以将其写入到一个shell文件中，然后在扩展中填写执行对应的文件的脚本。&lt;/p&gt;
&lt;p&gt;比如，我们将上面的脚本作为切换浅色主题的脚本写入到了 &lt;code&gt;~/.local/bin/light-theme-switcher.sh&lt;/code&gt; 中，那么就在扩展中的命令菜单的&lt;code&gt;日出&lt;/code&gt;一栏填写 &lt;code&gt;sh ~/.local/bin/light-theme-switcher.sh&lt;/code&gt;即可。&lt;/p&gt;
&lt;h2 id=&quot;qt-的额外配置&quot;&gt;Qt 的额外配置&lt;/h2&gt;
&lt;p&gt;Qt 的主题系统与 GTK 的主题系统是相互独立的，所以我们需要单独为 Qt 应用设置主题。&lt;/p&gt;
&lt;p&gt;在前面的步骤中，你应该安装了 kvantum，它可以让我们为 Qt 应用设置主题，而你可能不知道的是，它也拥有一系列的命令行参数，可以让我们在不打开设置界面的情况下，直接设置主题。&lt;/p&gt;
&lt;p&gt;不过先别急着尝试，因为我们还没有让 Qt 应用使用 kvantum 主题。先行添加以下的环境变量：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;env&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:25ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;QT_STYLE_OVERRIDE=kvantum&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;QT_STYLE_OVERRIDE=kvantum&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;callout callout-tip&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;有关如何设置环境变量，请参考 &lt;a href=&quot;https://wiki.archlinux.org/title/Environment_variables#Defining_variables&quot;&gt;ArchWiki - Environment variables&lt;/a&gt;。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;然后注销并重新登录（亦或重启，取决于你设置的环境变量范围），先打开 Kvantum Manager，选择一个你喜欢的主题，然后点击 &lt;code&gt;Apply&lt;/code&gt; 按钮，再打开一个 Qt 应用，看看是否能够正常使用主题。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;不知道如何安装自己想要的 kvantum 主题？试试把主题包解压，然后在 Kvantum Manager 中点击 &lt;code&gt;Install Theme&lt;/code&gt; 按钮，选择解压后的主题文件夹，再点击 &lt;code&gt;Apply&lt;/code&gt; 按钮即可。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;这样虽然可以让 Qt 应用使用 kvantum 主题，但是这种办法还需要打开 Kvantum Manager 才能切换主题，并不便于自动切换，这时我们就需要使用它的命令行参数了。&lt;/p&gt;
&lt;p&gt;要使用它的命令行工具切换主题：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:28ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;kvantummanager&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--set&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; [THEME]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;kvantummanager --set [THEME]&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;其中 [THEME] 为你想要使用的主题的名称，在 Kvantum Manager 中“变更主题”处可以找到（一般带有 &lt;code&gt;Kv&lt;/code&gt; 标识）。&lt;/p&gt;
&lt;p&gt;比如，要使用内置的类似于Adwaita样式的主题 &lt;code&gt;KvGNOME&lt;/code&gt;，我们可以这样写：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:28ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;kvantummanager&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--set&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;KvGNOME&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;kvantummanager --set KvGNOME&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;更改应当会立即生效。&lt;/p&gt;
&lt;p&gt;剩下要做的，就是将这个命令写入到上面所创建的脚本中，然后在扩展中配置即可。（如果你在上个步骤中直接将命令复制过去的话，再以’&amp;amp;&amp;amp;‘的方式附到扩展的相应命令中也可）&lt;/p&gt;
&lt;h2 id=&quot;使用系统界面组件的-flatpak-应用的额外配置&quot;&gt;使用系统界面组件的 flatpak 应用的额外配置&lt;/h2&gt;
&lt;p&gt;前面说到，flatpak 应用是在一个与主系统相对隔离的沙盒环境中运行的，所以我们需要让它们读取到系统当前的主题。&lt;/p&gt;
&lt;p&gt;这里的配置相对简单，只需要运行一次以下命令，将用户主题目录和gtk-4.0配置目录开放给flatpak应用访问即可。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:54ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;flatpak&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--user&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--filesystem=&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;~&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.config/gtk-4.0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;flatpak&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--user&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--filesystem=&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;~&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.themes&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;flatpak --user override --filesystem=~/.config/gtk-4.0flatpak --user override --filesystem=~/.themes&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;callout callout-danger&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;将系统中的目录开放给flatpak应用访问，可能会造成数据泄露，从而降低系统的安全性，所以请谨慎使用。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h2 id=&quot;对于adwaita的设置&quot;&gt;对于Adwaita的设置&lt;/h2&gt;
&lt;p&gt;考虑到很多人出于兼容性等等的原因可能会使用默认的 Adwaita 主题，所以这里也给出一些对于 Adwaita 主题的设置。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;此部分内容在Ubuntu 23.04上测试通过，其它发行版可能会略有差异。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;Adwaita 作为默认主题，毫无疑问的是它的兼容性是最好的，它支持 GTK4，也支持 Qt。但是，对于Qt应用来说，它在默认情况下并不会跟随系统的深色模式，所以仍需要我们手动设置。&lt;/p&gt;
&lt;p&gt;对于 Qt 5 应用，我们可以直接设置环境变量 &lt;code&gt;QT_STYLE_OVERRIDE=adwaita&lt;/code&gt;，这样会通过覆盖默认样式的方式让大部分的使用系统提供的Qt样式的Qt应用使用adwaita主题。&lt;/p&gt;
&lt;p&gt;对于稍旧一些的使用Qt4作为界面构建的应用，我们可以使用 &lt;code&gt;qtconfig-qt4&lt;/code&gt; 这个工具来设置。&lt;/p&gt;
&lt;p&gt;或者，如果你有安装 kvantum 的话，可以使用 Kvantum Manager 来设置 &lt;code&gt;KvGNOME&lt;/code&gt; 主题，它提供了类似于旧的 Adwaita 的样式。&lt;/p&gt;
&lt;h3 id=&quot;自动切换&quot;&gt;自动切换&lt;/h3&gt;
&lt;p&gt;在最开始的步骤中，我们已经安装了 &lt;code&gt;Night Theme Switcher&lt;/code&gt; 这个扩展，我们这次仍然使用它完成自动切换。&lt;/p&gt;
&lt;p&gt;考虑到有一部分人是直接跳转过来的，我还是简单说一下怎么配置。&lt;/p&gt;
&lt;p&gt;首先，我们需要在 &lt;code&gt;安排&lt;/code&gt; 一栏中设置好切换深浅色的时间，或者关闭手动安排，使其随日出日落自动切换。（如果扩展提示无法获取到日出日落的时间，请转到设置，在 &lt;code&gt;隐私&lt;/code&gt; 一栏中，找到 &lt;code&gt;位置信息&lt;/code&gt;，并将&lt;code&gt;定位服务&lt;/code&gt;的开关开启。）&lt;/p&gt;
&lt;p&gt;如果你想要设置分别设置两种模式下的壁纸，可以在 &lt;code&gt;背景&lt;/code&gt; 一栏中设置，这个由 GNOME （而不是插件）进行控制。&lt;/p&gt;
&lt;p&gt;这样设置就基本完成了，其它的选项基本不用调整，当然，如果你偏好自订的图标样式，也可以在 &lt;code&gt;主题&lt;/code&gt; 一栏中进行设置。&lt;/p&gt;
&lt;p&gt;当然，由于 Adwaita 是支持 Qt 的，如果你想要让大部分的 Qt 应用也要跟随系统主题，可以安装 &lt;code&gt;qgnomeplatform-qt5&lt;/code&gt; 和 &lt;code&gt;qgnomeplatform-qt6&lt;/code&gt; 这两个包，然后设置环境变量 &lt;code&gt;QT_QPA_PLATFORMTHEME=gnome&lt;/code&gt; 即可，这样避免了额外配置 Kvantum 和写脚本的麻烦。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;有关如何设置环境变量，请参考 &lt;a href=&quot;https://wiki.archlinux.org/title/Environment_variables#Defining_variables&quot;&gt;ArchWiki - Environment variables&lt;/a&gt;。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h2 id=&quot;善后工作&quot;&gt;善后工作&lt;/h2&gt;
&lt;p&gt;如果你按照上面的步骤进行了配置，那么你应该已经可以在深浅色模式之间自动切换了，但是，如果你想要在深浅色模式之间切换时，让所有的应用都使用自定义主题，那么你还需要做一些额外的工作。&lt;/p&gt;
&lt;p&gt;对于大部分应用来说，进行以上的配置就可以了，但是总有一些特立独行的应用，它们使用着自己的主题系统，甚至在设置主题后变得混乱不堪（说的就是你OBS），对此需要做些额外的配置。&lt;/p&gt;
&lt;h3 id=&quot;kde-系应用&quot;&gt;KDE 系应用&lt;/h3&gt;
&lt;p&gt;这个范围比较广，因为 KDE 开发的大部分应用都使用Qt进行构建，但是它们并不会跟随系统主题，所以我们需要对它们进行额外的配置。&lt;/p&gt;
&lt;p&gt;考虑到兼容性问题，我想大多数人并不会在 GNOME 上去安装 KDE 的应用，但是实际情况中，我们可能不得不需要使用到一些 KDE 应用（比如 Krita 和 Kate 等等），这就使事情变得比较复杂。&lt;/p&gt;
&lt;p&gt;这里以 Krita 为例，其它是相类似的。&lt;/p&gt;
&lt;p&gt;打开 Krita，点击菜单栏上的 &lt;code&gt;设置&lt;/code&gt;，在 &lt;code&gt;界面颜色&lt;/code&gt; 一栏中，选择与当前主题相对应的配色方案即可。&lt;/p&gt;
&lt;p&gt;如果你通过配置kvantum主题的方式配置了Qt主题，那么你还能在配色方案中找到对应的kvantum主题。&lt;/p&gt;
&lt;p&gt;不过，经过我的测试，即使安装了上面所述的 &lt;code&gt;qgnomeplatform&lt;/code&gt; 的一系列包，Krita 等应用并不会跟随系统主题，所以还是需要手动设置主题，如果有需要还是建议以暗色主题为主。&lt;/p&gt;
&lt;h3 id=&quot;firefox&quot;&gt;Firefox&lt;/h3&gt;
&lt;p&gt;作为一个浏览器，Firefox 遵循系统的深浅色设置————如果系统是深色模式，Firefox 就会使用深色模式，反之亦然。 在使用默认主题时浏览器自身的界面元素（标题栏等等）也会随之变化，界面较为协调。&lt;/p&gt;
&lt;p&gt;但是假如你是自定义主题爱好者，或者只是比较喜欢某一套主题（比如Mozilla之前推出的一套&lt;a href=&quot;https://blog.mozilla.org/en/products/firefox/firefox-news/independent-voices/&quot;&gt;“凡人之声”的主题&lt;/a&gt;，很显然这并不是一套默认主题），你可能会因为在系统全局深色模式下看到一个刺眼的浅色的标题栏而感到不适。&lt;/p&gt;
&lt;p&gt;不过好在，主题的切换也是能够通过浏览器扩展来实现的，你找到了 &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/automatic-dark/&quot;&gt;automaticDark&lt;/a&gt; 这个扩展来实现定时切换自定义主题。&lt;/p&gt;
&lt;p&gt;安装扩展后，你可以在扩展的选项中设置切换的条件（跟随系统、日出日落、手动设定时间），以及要切换的主题。（不过，跟随系统这点在Linux上表现并不太好，还是建议跟随日出日落或者手动设定时间）&lt;/p&gt;
&lt;p&gt;当然，如果想要获得更为完美的体验，还可以搭配 [Darkreader] 这个扩展，它可以让网页的内容也跟随系统深色主题设置，让你在夜间阅读也能保护你的眼睛。（或者，也可以使用&lt;a href=&quot;https://addons.mozilla.org/zh-CN/firefox/addon/midnight-lizard-quantum&quot;&gt;midnight lizard&lt;/a&gt;，深入自定义网页的配色）&lt;/p&gt;
&lt;h3 id=&quot;obs-studio&quot;&gt;OBS Studio&lt;/h3&gt;
&lt;p&gt;OBS 默认使用的 Yami 主题在自定义Qt主题下的显示效果并不好，甚至在浅色主题下会出现一些设置项看不清的情况，但可以通过更改为系统主题来解决，这样同时也会解决跟随系统主题的问题。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/2023-07-29-14-36-45.na9_0lFl_ZdP8Ct.webp&quot; srcset=&quot;/_astro/2023-07-29-14-36-45.na9_0lFl_ZEuDKJ.webp 640w, /_astro/2023-07-29-14-36-45.na9_0lFl_Zze3jA.webp 750w, /_astro/2023-07-29-14-36-45.na9_0lFl_Z1HcpTP.webp 828w, /_astro/2023-07-29-14-36-45.na9_0lFl_2nOOBm.webp 1080w, /_astro/2023-07-29-14-36-45.na9_0lFl_1BNuQP.webp 1280w, /_astro/2023-07-29-14-36-45.na9_0lFl_Z8Sjpe.webp 1668w, /_astro/2023-07-29-14-36-45.na9_0lFl_hupkS.webp 2048w, /_astro/2023-07-29-14-36-45.na9_0lFl_ZdP8Ct.webp 2156w&quot; alt=&quot;谢谢，已经瞎了&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2156px) 2156px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2156&quot; height=&quot;1524&quot;&gt;&lt;/p&gt;
&lt;p&gt;点击菜单栏上的&lt;code&gt;文件&lt;/code&gt;，打开 &lt;code&gt;设置&lt;/code&gt;，在 &lt;code&gt;通用&lt;/code&gt; 一栏中，将 &lt;code&gt;主题&lt;/code&gt; 的选项改为 &lt;code&gt;System&lt;/code&gt; 即可。&lt;/p&gt;
&lt;h3 id=&quot;telegram&quot;&gt;Telegram&lt;/h3&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;Telegram 各个设置在使用不同语言包下的显示差异较大，这里以英文为准。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;Telegram 桌面端默认不跟随系统深色模式设置，但是在设置中可以进行调整。&lt;/p&gt;
&lt;p&gt;打开侧边菜单（就是那三条杠），点击 &lt;code&gt;Settings&lt;/code&gt;，之后打开 &lt;code&gt;Chat Settings&lt;/code&gt;，将 &lt;code&gt;Auto-night mode&lt;/code&gt;  中的 &lt;code&gt;Match the system settings&lt;/code&gt; 勾选即可。&lt;/p&gt;
&lt;p&gt;如果要自定义对应颜色模式下的主题，可以在对应模式下在 &lt;code&gt;Chat Settings&lt;/code&gt; 中的 &lt;code&gt;Themes&lt;/code&gt; 一栏中进行设置。&lt;/p&gt;
&lt;h3 id=&quot;intellij-ides&quot;&gt;IntelliJ IDEs&lt;/h3&gt;
&lt;p&gt;虽然说写代码配合深色模式是最好的，但是吧考虑到总会有像我这样的&lt;del&gt;异端&lt;/del&gt;人，喜欢在白天使用浅色模式，晚上使用深色模式，所以这里也给出一些设置办法。&lt;/p&gt;
&lt;p&gt;众所周知，JetBrains 家的 IDE 在 Windows 和 macOS 下都是可以跟随系统颜色模式的，而且可以自订对应模式下所使用的主题。&lt;/p&gt;
&lt;p&gt;反观 Linux 这边虽然系统 API 已经做的十分完善，但是 Jetbrains 很长时间了也没有作出适配（是说 &lt;a href=&quot;https://youtrack.jetbrains.com/issue/IDEA-251176/Implement-IDE-theme-sync-with-OS-on-Linux&quot;&gt;IDEA-251176&lt;/a&gt; 这类已经在三年前就已经提出来了，还是没有），&lt;del&gt;难道是要给 Fleet 铺路？&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;不过，我们还是可以通过一些办法来实现自动切换主题的。&lt;/p&gt;
&lt;p&gt;首先，我们需要安装一个叫做 &lt;a href=&quot;https://plugins.jetbrains.com/plugin/12006-day-and-night&quot;&gt;Day And Night&lt;/a&gt; 的插件，它可以让我们在 IDE 中设置定时自动切换主题。&lt;/p&gt;
&lt;p&gt;插件启用后，我们可以在IDE的设置中找到 &lt;code&gt;Day And Night&lt;/code&gt; 一栏，然后在 &lt;code&gt;Theme&lt;/code&gt; 一栏中设置切换时间以及对应的主题即可。&lt;/p&gt;
&lt;p&gt;此外，我还发现了一个叫做 &lt;a href=&quot;https://plugins.jetbrains.com/plugin/14076-auto-dark-mode&quot;&gt;Auto Dark Mode&lt;/a&gt; 的插件，它可以做到跟随系统设定去切换主题，最近更新支持了目前最新的 2023.2 版本。&lt;/p&gt;
&lt;p&gt;在插件 Marketplace 搜索并安装这个插件，重启IDE，在设置中找到 &lt;code&gt;Auto Dark Mode&lt;/code&gt; 即可调整相关设置。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;对于 GNOME 42+ 用户，需要先行安装&lt;code&gt;xdg-desktop-portal-gnome&lt;/code&gt;将插件设置中 &lt;code&gt;implement type&lt;/code&gt; 设置为 &lt;code&gt;XDG-Desktop&lt;/code&gt;，否则主题切换不起作用。同时，若其它选项不起作用（在深色模式下仍显示为浅色主题）时也可尝试此选项。&lt;/p&gt;&lt;p&gt;有关 XDG-Desktop 如何向第三方应用提供相关信息，可以查看 &lt;a href=&quot;https://wiki.archlinux.org/title/XDG_Desktop_Portal&quot;&gt;XDG Desktop Portal - ArchWiki&lt;/a&gt;。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h3 id=&quot;fcitx5&quot;&gt;Fcitx5&lt;/h3&gt;
&lt;p&gt;GNOME 原生支持 &lt;code&gt;ibus&lt;/code&gt;，但我还没有测试它的情况，只好拿出目前用的比较多的小企鹅输入法来说。&lt;/p&gt;
&lt;p&gt;Fcitx5 的输入法主题很好配置，只需要打开 &lt;code&gt;Fcitx5 配置&lt;/code&gt; 这个应用，点击 &lt;code&gt;附加组件&lt;/code&gt;，点击 &lt;code&gt;经典用户界面&lt;/code&gt; 旁的设置图标就可以配置主题。&lt;/p&gt;
&lt;p&gt;如果要自定义当前的主题，我们可以点击主题旁边的设置图标，然后按照喜好来更改当前主题的设置。&lt;/p&gt;
&lt;p&gt;但是找现成的主题明显更为便捷，而且有大量的配色方案可供挑选，要想找到一个心仪的主题，去 &lt;a href=&quot;https://github.com/search?q=fcitx5-themes&amp;type=repositories&quot;&gt;GitHub&lt;/a&gt; 搜搜看或许是个不错的选择。&lt;/p&gt;
&lt;p&gt;如果你找到了一个合适的主题，那么下载下来直接丢到 &lt;code&gt;~/.local/share/fcitx5/themes&lt;/code&gt; 目录下就可以了。&lt;/p&gt;
&lt;p&gt;然后就是自动切换的问题了，Fcitx5 本身并没有提供跟随系统颜色设置主题的功能，但是我们可以通过写脚本直接修改配置文件来实现。&lt;/p&gt;
&lt;p&gt;Fcitx5 将所有的用户配置写进了一个配置文件里，想找到它们也不困难———打开 &lt;code&gt;~/.config/fcitx5&lt;/code&gt;，你可以发现所有的配置文件都在这里。&lt;/p&gt;
&lt;p&gt;翻找一下还能发现，&lt;code&gt;经典用户界面&lt;/code&gt; 的设置存放在 &lt;code&gt;classicui.conf&lt;/code&gt; 这个文件，那么思路就很明晰了：更改文件中主题相关的键值，然后在 &lt;code&gt;Night Theme Switcher&lt;/code&gt; 中配置执行脚本即可。&lt;/p&gt;
&lt;p&gt;直接使用文本编辑器打开 &lt;code&gt;classicui.conf&lt;/code&gt;，我们发现我们设置的主题存放在 &lt;code&gt;Theme&lt;/code&gt; 这个键值：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;conf&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:22ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;# 主题&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;Theme=catppuccin-mocha&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;...# 主题Theme=catppuccin-mocha...&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;那么我们只需要在切换深浅色模式时，使用脚本将这个键值改为相应的主题即可。&lt;/p&gt;
&lt;p&gt;大致思路是 &lt;code&gt;grep&lt;/code&gt; 查找 &lt;code&gt;Theme&lt;/code&gt; 这一行，然后使用 &lt;code&gt;sed&lt;/code&gt; 将其替换为我们想要的主题键值，最后将结果写入到原文件中。&lt;/p&gt;
&lt;p&gt;我请 &lt;a href=&quot;https://bard.google.com&quot;&gt;Bard&lt;/a&gt; 帮我写了一个示例脚本，你可以根据需要进行修改：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:64ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Set the name of the config file&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;config_file&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$HOME&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/.config/fcitx5/conf/classicui.conf&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Get the old value of the setting&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;old_value&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;grep&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; -E &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;^Theme=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$config_file&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;cut&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; -c 7-&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;`&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Get the new value of the setting&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;new_value&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D;--1fs:italic&quot;&gt;$1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Replace the old value with the new value&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;repl&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sed&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; -i -e &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;s/&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$old_value&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$new_value&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$config_file&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;`&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Save the changes to the config file&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#4C6690&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;The value of setting_name has been changed to &lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;$new_value&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;#!/bin/bash# Set the name of the config fileconfig_file=&amp;#34;$HOME/.config/fcitx5/conf/classicui.conf&amp;#34;# Get the old value of the settingold_value=`grep -E &amp;#34;^Theme=&amp;#34; $config_file | cut -c 7-`# Get the new value of the settingnew_value=$1# Replace the old value with the new valuerepl=`sed -i -e &amp;#34;s/$old_value/$new_value/&amp;#34; $config_file`# Save the changes to the config fileecho &amp;#34;The value of setting_name has been changed to $new_value.&amp;#34;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;顺便说一句，如果要使用这个脚本，我们还需要一个主题名作为参数，而主题名就是在 &lt;code&gt;~/.local/share/fcitx5/themes&lt;/code&gt; 存放的文件夹名字。&lt;/p&gt;
&lt;p&gt;比如，我想要使用 &lt;code&gt;catppuccino-mocha&lt;/code&gt; 这个深色调的主题，那么我就需要在扩展中的命令菜单的&lt;code&gt;日落&lt;/code&gt;一栏填写 &lt;code&gt;sh ~/.local/bin/fcitx5-theme-switcher.sh catppuccino-mocha&lt;/code&gt;。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;&lt;code&gt;Night Theme Switcher&lt;/code&gt; 用户请注意：&lt;/p&gt;&lt;p&gt;如果你在一个切换脚本中用到了这个脚本，请确保引用的路径是&lt;strong&gt;绝对路径&lt;/strong&gt;，否则可能会出现找不到脚本文件的情况。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;如果怕麻烦，我们可以直接使用 &lt;a href=&quot;https://extensions.gnome.org/extension/261/kimpanel/&quot;&gt;Input Method Panel&lt;/a&gt; 这个插件，它会让 KDE 的相关api兼容 GNOME，从而使其跟随 GNOME shell 的主题，不过缺点也在这儿，无法自定义主题（Fcitx5内相应选项也会失效，只能通过更换GNOME的主题来进行更换）。&lt;/p&gt;
&lt;h3 id=&quot;其它较为通用的解决方案&quot;&gt;其它较为通用的解决方案&lt;/h3&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;以下内容部分由AI所生成，并不保证可用性。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;如果应用并不在以上列表中，可以尝试以下的解决方案：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在应用的设置中查找是否有设置界面主题跟随系统的选项，如果有，就直接设置即可。（大概会在 &lt;code&gt;外观&lt;/code&gt; 或者 &lt;code&gt;界面&lt;/code&gt; 一类的设置中）&lt;/li&gt;
&lt;li&gt;使用第三方的工具修改样式&lt;/li&gt;
&lt;li&gt;如果有开发者的联系方式，直接和开发者联系，请求添加对应的功能&lt;/li&gt;
&lt;li&gt;如果实在不行，就寻找功能相近的替代品，或者忍一忍吧&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;以上便是我总结出来的一套比较全面的随日出日落切换深浅色主题的解决方案。&lt;/p&gt;
&lt;p&gt;但是上面说到的办法并不是唯一的，也不一定是最友好的，就比如我在写这篇总结性经验的时候找到了一个 &lt;a href=&quot;https://github.com/oskarsh/Yin-Yang&quot;&gt;Yin-Yang&lt;/a&gt; 的项目，而且做的比较完备，希望大家也可以试试。&lt;/p&gt;
&lt;p&gt;哦对了，我把上面所提到的所有项目都放在一个仓库里了，你可以直接在 &lt;a href=&quot;https://github.com/BlockG-ws/autodark-for-gnome&quot;&gt;GitHub&lt;/a&gt; 或者 &lt;a href=&quot;https://codeberg.org/grassblock/gnome-auto-dark&quot;&gt;Codeberg&lt;/a&gt; 上找到它，也希望大家在上面分享自己的经验办法。&lt;/p&gt;
&lt;p&gt;后期可能会看需求做成单独的文档站，这样可以更方便的寻找对应办法，不过现在就先这样吧。&lt;/p&gt;
&lt;p&gt;最后，感谢你能看到这里，希望这篇文章能够帮助到你。&lt;/p&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>利用 uptime-kuma × Zeabur 架设自己的网站监控服务</title><link>https://lab.gb0.dev/blog/uptime-kuma</link><guid isPermaLink="true">https://lab.gb0.dev/blog/uptime-kuma</guid><pubDate>Thu, 20 Jul 2023 21:03:38 GMT</pubDate><content:encoded>&lt;!-- 万事开头难啊 --&gt;
&lt;p&gt;作为一个折腾人，难免会在各种各样的地方架设不同的服务，或是测试，或是公开出来给大家用，而服务架设了放养不管也是一种不负责任的行为，所以就免不了要弄个服务来监控自己的服务，防止炸了之后自己都不知道，起初我是用的 &lt;a href=&quot;https://uptimerobot.com/&quot;&gt;UptimeRobot&lt;/a&gt;，但是这个服务有诸多的问题，比如免费版选项太少，基本没办法自定义监控页，于是开始寻找替代品。&lt;/p&gt;
&lt;p&gt;期间我尝试了完全利用 Github 相关服务的 &lt;a href=&quot;https://github.com/upptime/upptime&quot;&gt;upptime&lt;/a&gt; 和 已经不维护了的 &lt;a href=&quot;https://github.com/juliomrqz/statusfy&quot;&gt;statusfy&lt;/a&gt;，但它们都有各自的问题，最终在某个项目的状态页发现了 uptime-kuma ，在试用一段时间之后，我觉得它是比较合乎我心意的一个项目。&lt;/p&gt;
&lt;h1 id=&quot;介绍&quot;&gt;介绍&lt;/h1&gt;
&lt;p&gt;既然说到这里，就来介绍一下说的两个工具吧。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/louislam/uptime-kuma&quot;&gt;uptime-kuma&lt;/a&gt; 是一个 &lt;strong&gt;开源&lt;/strong&gt; &lt;strong&gt;可自建&lt;/strong&gt; 的网站监控服务，类似于一众服务，它提供各种各样的监控服务，比如 HTTP、TCP、DNS、Ping、证书 等等。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zeabur.com?referralCode=GrassBlock1&quot;&gt;Zeabur&lt;/a&gt; 是国人开发的一款服务部署平台，无论使用什么编程语言或开发框架，只需要通过几个简单就可的以部署，常见的 Vaultwarden、Halo、Umami 都能部署，甚至连 WordPress 都可以。&lt;/p&gt;
&lt;p&gt;而对于我来说，家中实在没有一台可以24小时不间断开机的设备，而且我也没有合适的服务器，所以我选择了serverless部署。&lt;/p&gt;
&lt;p&gt;这里使用 Zeabur，它对 Uptime Kuma 的支持可以说是开箱即用，而且按用量计费，对于小规模使用来说，日常使用基本不会超过每月的五美元免费额度，是非常划算的。&lt;/p&gt;
&lt;h1 id=&quot;部署&quot;&gt;部署&lt;/h1&gt;
&lt;p&gt;可以点下面的按钮套用模版，一键部署：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zeabur.com/templates/ZD3VHB?referralCode=GrassBlock1&quot;&gt;&lt;img src=&quot;https://zeabur.com/button.svg&quot; alt=&quot;Deploy on Zeabur&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;还可以手动创建项目，在新建服务时选择 &lt;code&gt;Marketplace&lt;/code&gt; 并找到 &lt;code&gt;Uptime Kuma&lt;/code&gt;，直接部署。
&lt;img alt=&quot;选择uptime kuma&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 624px) 624px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;624&quot; height=&quot;432&quot; src=&quot;https://lab.gb0.dev/_astro/2023-07-22-17-25-51_Zeabur.u4u9TueU_TbVTn.webp&quot; srcset=&quot;/_astro/2023-07-22-17-25-51_Zeabur.u4u9TueU_TbVTn.webp 624w&quot;&gt;&lt;/p&gt;
&lt;p&gt;部署完成后，点击 &lt;code&gt;域名&lt;/code&gt; 来绑定一个域名，你可以使用 &lt;code&gt;生成域名&lt;/code&gt; 来将 &lt;code&gt;*.zeabur.app&lt;/code&gt; 作为二级域名，也可以使用自己的域名
&lt;img alt=&quot;域名&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 890px) 890px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;890&quot; height=&quot;233&quot; src=&quot;https://lab.gb0.dev/_astro/2023-07-22-17-29-58_Zeabur.fCaDr0LT_bgnwW.webp&quot; srcset=&quot;/_astro/2023-07-22-17-29-58_Zeabur.fCaDr0LT_1IjIiG.webp 640w, /_astro/2023-07-22-17-29-58_Zeabur.fCaDr0LT_1s5Iqj.webp 750w, /_astro/2023-07-22-17-29-58_Zeabur.fCaDr0LT_1cH3Ok.webp 828w, /_astro/2023-07-22-17-29-58_Zeabur.fCaDr0LT_bgnwW.webp 890w&quot;&gt;&lt;/p&gt;
&lt;p&gt;如果要使用自己的域名，需要在你的域名解析商那里添加一条 &lt;code&gt;CNAME&lt;/code&gt; 记录，将你要使用的域名指向 &lt;code&gt;zeabur.app&lt;/code&gt;，然后在 Zeabur 中添加域名，等待几分钟即可。&lt;/p&gt;
&lt;p&gt;绑定域名成功后，点一下绑定的域名即可访问，不需要额外的配置。&lt;/p&gt;
&lt;h1 id=&quot;配置&quot;&gt;配置&lt;/h1&gt;
&lt;p&gt;部署成功后，打开你所绑定的域名，注册管理员账户并按需求创建监控项即可，支持 HTTP、TCP、DNS、Ping、证书 等等。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;添加监控&quot; title=&quot;添加监控项&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1792px) 1792px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1792&quot; height=&quot;984&quot; src=&quot;https://lab.gb0.dev/_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_ZxYHD.webp&quot; srcset=&quot;/_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_Z1RTGcl.webp 640w, /_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_Z2a7OhQ.webp 750w, /_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_5OY8e.webp 828w, /_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_1hpYMw.webp 1080w, /_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_1A6wFW.webp 1280w, /_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_1DKFd4.webp 1668w, /_astro/2023-07-22-17-39-44_Uptime_Kuma.CUw5oZWY_ZxYHD.webp 1792w&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;添加状态页面&quot;&gt;添加状态页面&lt;/h2&gt;
&lt;p&gt;和 UptimeRobot 一样，uptime kuma 也可以创建一个&lt;strong&gt;可自定义&lt;/strong&gt;的状态页面，用于展示你的服务的状态。&lt;/p&gt;
&lt;p&gt;如果你想要将状态页面设置为访问域名时的默认页面，可以在 &lt;code&gt;设置&lt;/code&gt; &gt; &lt;code&gt;入口页面&lt;/code&gt; 中选择你刚刚创建的状态页，最后点击’保存‘即可，这样访客访问你设置的域名时就会直接看到你的状态页了。
&lt;img alt=&quot;设定&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1146px) 1146px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1146&quot; height=&quot;981&quot; src=&quot;https://lab.gb0.dev/_astro/2023-07-22-17-52-19_Uptime_Kuma.CK43N4tw_muIob.webp&quot; srcset=&quot;/_astro/2023-07-22-17-52-19_Uptime_Kuma.CK43N4tw_2ay22A.webp 640w, /_astro/2023-07-22-17-52-19_Uptime_Kuma.CK43N4tw_Z29lBFV.webp 750w, /_astro/2023-07-22-17-52-19_Uptime_Kuma.CK43N4tw_1EsM5f.webp 828w, /_astro/2023-07-22-17-52-19_Uptime_Kuma.CK43N4tw_EvQon.webp 1080w, /_astro/2023-07-22-17-52-19_Uptime_Kuma.CK43N4tw_muIob.webp 1146w&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;设置通知&quot;&gt;设置通知&lt;/h2&gt;
&lt;p&gt;转到设置，然后点击 &lt;code&gt;通知&lt;/code&gt;，随后点击 &lt;code&gt;设置通知&lt;/code&gt;，你可以在这里设置通知的方式，包括邮件、Telegram、Ntfy、Server酱、Matrix等50多种方式，你可以根据自己的喜好来选择配置。
&lt;img alt=&quot;设置通知&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 498px) 498px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;498&quot; height=&quot;924&quot; src=&quot;https://lab.gb0.dev/_astro/2023-07-22-17-52-33_Uptime_Kuma.DAdSh97D_Z1QPpWe.webp&quot; srcset=&quot;/_astro/2023-07-22-17-52-33_Uptime_Kuma.DAdSh97D_Z1QPpWe.webp 498w&quot;&gt;
设置好之后，记得在已有的监控项中设置通知方式，否则你将无法收到通知。（或者直接在添加通知方式时直接选择 &lt;code&gt;默认开启&lt;/code&gt; 并 &lt;code&gt;应用到所有监控项&lt;/code&gt;，省事）&lt;/p&gt;
&lt;h1 id=&quot;备份&quot;&gt;备份&lt;/h1&gt;
&lt;p&gt;uptime kuma 预置的备份功能上已经年久失修，也因此产生了许多问题（如无法备份完整的数据），在设置中的备份选项中也已经表明了这一点。&lt;/p&gt;
&lt;p&gt;所以如果你想要备份，只能依靠备份容器等等类似的操作进行。&lt;/p&gt;
&lt;p&gt;Zeabur 备份的话，开发者表示会在后续加入备份功能。&lt;/p&gt;
&lt;h1 id=&quot;结语&quot;&gt;结语&lt;/h1&gt;
&lt;p&gt;Uptime Kuma 作为一个开源可自建的监控方案，它降低了个人管理服务的门槛，也让更多人免于 UptimeRobot 的限制，我希望这个项目能够越来越好，也希望大家能够喜欢它。&lt;/p&gt;
&lt;p&gt;Zeabur 作为一个无服务器部署方案，它让更多人可以在云端部署自己的服务，让开发者免于部署服务的困境，而且社区支持友好，在这里希望它能一直做下去。&lt;/p&gt;
&lt;p&gt;最后，感谢你的阅读，如果你有什么问题，欢迎在评论区/公告板对应帖提出，我会尽量回答。&lt;/p&gt;
&lt;h1 id=&quot;延伸阅读&quot;&gt;延伸阅读&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://zeabur.com/docs/marketplace/uptime-kuma&quot;&gt;Deploy Uptime Kuma - Zeabur&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/louislam/uptime-kuma&quot;&gt;louislam/uptime-kuma: A fancy self-hosted monitoring tool&lt;/a&gt;&lt;/p&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>「合订本」草方块的MC日常 (01-20)</title><link>https://lab.gb0.dev/blog/mc-daily-01</link><guid isPermaLink="true">https://lab.gb0.dev/blog/mc-daily-01</guid><description>#草方块的MC日常 合订本来咯！</description><pubDate>Fri, 14 Jul 2023 19:45:00 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文章完全使用了 WebP 格式的图片，如果图片无法正常显示，请更新/更换浏览器。要预先查看兼容 WebP 的浏览器，请访问 &lt;a href=&quot;https://caniuse.com/webp&quot;&gt;Can I use WebP&lt;/a&gt;。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本博客公告板账号正式在联邦宇宙上设立，欢迎关注 &lt;a href=&quot;https://calckey.social/@glog&quot;&gt;Mare_Infinitus 揭示板&lt;/a&gt; ！&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;封面图使用 &lt;a href=&quot;https://wallpapers.novaskin.me/hole&quot;&gt;Novaskin Wallpapers 的模板&lt;/a&gt; 制作。&lt;/p&gt;
&lt;p&gt;一个断断续续玩了八年的老玩家，在看到一些新特性，或者在不熟悉的地方看到了熟悉的东西的一点发疯。&lt;/p&gt;
&lt;p&gt;我把这些感受记录在了 Telegram 频道，断断续续发了两年多，我想是时候整理起来了。 以后大概会20条整理一次。&lt;/p&gt;
&lt;p&gt;我提供了消息原链接和联邦宇宙的对应链接（如果有），同时也欢迎在联邦宇宙上关注 &lt;a href=&quot;https://o3o.ca/tags/%E8%8D%89%E6%96%B9%E5%9D%97%E7%9A%84MC%E6%97%A5%E5%B8%B8&quot;&gt;#草方块的MC日常&lt;/a&gt; 这个话题。&lt;/p&gt;
&lt;h1 id=&quot;20200810-诶你这唱片机怎么能放曲子&quot;&gt;20200810 诶？你这唱片机怎么能放曲子&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/311&quot;&gt;原消息&lt;/a&gt;&lt;/p&gt;
&lt;video src=&quot;/mc_daily/vid/video_2023-07-14_20-41-53.mp4&quot;&gt;&lt;/video&gt;
&lt;p&gt;我火星了？1.16正式版自带音乐包的吗？&lt;/p&gt;
&lt;p&gt;追记：自带录屏居然支持内录了，我火星了&lt;/p&gt;
&lt;p&gt;（补记：之前的基岩版需要另行下载音乐包，而微软/bugjang的服务器老是爆炸，所以导致游戏一直没有背景音乐）&lt;/p&gt;
&lt;h1 id=&quot;20201219-发现化学功能时的欣喜&quot;&gt;20201219 发现化学功能时的欣喜&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/611&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-19_13-52-42.DCez5V3Q_2tuS1X.webp&quot; srcset=&quot;/_astro/photo_2023-07-19_13-52-42.DCez5V3Q_1I8xm4.webp 640w, /_astro/photo_2023-07-19_13-52-42.DCez5V3Q_2pKEAx.webp 750w, /_astro/photo_2023-07-19_13-52-42.DCez5V3Q_1UffeJ.webp 828w, /_astro/photo_2023-07-19_13-52-42.DCez5V3Q_1dTKuv.webp 1080w, /_astro/photo_2023-07-19_13-52-42.DCez5V3Q_2tuS1X.webp 1280w&quot; alt=&quot;创建新元素！&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;591&quot;&gt;
&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-34-30.Cju2e4lz_o6t2o.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-34-30.Cju2e4lz_Z1M6mBk.webp 640w, /_astro/photo_2023-07-15_10-34-30.Cju2e4lz_Z15tfmQ.webp 750w, /_astro/photo_2023-07-15_10-34-30.Cju2e4lz_Z1zYEIE.webp 828w, /_astro/photo_2023-07-15_10-34-30.Cju2e4lz_ZQtDu4.webp 1080w, /_astro/photo_2023-07-15_10-34-30.Cju2e4lz_o6t2o.webp 1280w&quot; alt=&quot;化合物创建器&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;591&quot;&gt;
我在 Minecraft 学化学，但是怎么创建化合物啊？&lt;/p&gt;
&lt;p&gt;（补记：左翻有找看到了启用教育版特性的选项，于是玩了一把）&lt;/p&gt;
&lt;h1 id=&quot;20210115-面板服ei&quot;&gt;20210115 面板服ei&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/659&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-34-35.D9Fo4mLv_ZIwyse.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-34-35.D9Fo4mLv_Z1uiDOP.webp 640w, /_astro/photo_2023-07-15_10-34-35.D9Fo4mLv_ZMFwAm.webp 750w, /_astro/photo_2023-07-15_10-34-35.D9Fo4mLv_Z1ibVWa.webp 828w, /_astro/photo_2023-07-15_10-34-35.D9Fo4mLv_Z1Y7FYG.webp 1080w, /_astro/photo_2023-07-15_10-34-35.D9Fo4mLv_ZIwyse.webp 1280w&quot; alt=&quot;游戏暂停界面&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;591&quot;&gt;
成功在白嫖的面板服上玩了一会儿&lt;/p&gt;
&lt;p&gt;（补记：当时用的是server.pro，其实说实话免费的很难用，因为要排队而且锁设置，似乎存档也不会留下，但我这点实在记不得了，但是对于当时的我来说仍然是一件很快乐的事（指和朋友一起玩））&lt;/p&gt;
&lt;h1 id=&quot;20210118-出现音乐的原因找到了&quot;&gt;20210118 出现音乐的原因找到了&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/731&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-34-40.BVhSGtj4_Z134DGe.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-34-40.BVhSGtj4_Z134DGe.webp 638w&quot; alt=&quot;一份文件列表&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 638px) 638px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;638&quot; height=&quot;1280&quot;&gt;
突然找到了我的&lt;del&gt;Minecarft&lt;/del&gt;Minecraft有音乐了的原因…（原文打错了）&lt;/p&gt;
&lt;p&gt;（补记：当时在车上还听了听这些原声，真的很有氛围！）&lt;/p&gt;
&lt;h1 id=&quot;20210119--断档点&quot;&gt;20210119-&amp;gt;? 断档点&lt;/h1&gt;
&lt;p&gt;（原频道丢了…具体细节我也不大记得了，好像是开号的频道丢了（？&lt;/p&gt;
&lt;h1 id=&quot;20210205-什么玩意儿&quot;&gt;20210205 什么玩意儿？&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/949&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-34-46.X2dvu0BI_Z1ppXgD.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-34-46.X2dvu0BI_Z1ppXgD.webp 632w&quot; alt=&quot;一个抄袭游戏的直播画面&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 632px) 632px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;632&quot; height=&quot;1280&quot;&gt;
啊这…这是什么玩意儿&lt;/p&gt;
&lt;p&gt;（补记：当时就比较喜欢短视频多一些，就没想到刷到了这么个鬼东西）&lt;/p&gt;
&lt;h1 id=&quot;20210212-更新日志但移除了him&quot;&gt;20210212 更新日志，但移除了him&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/1094&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-34-58.D4CbIaTD_Z1BcM9W.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-34-58.D4CbIaTD_Z2e7P7E.webp 640w, /_astro/photo_2023-07-15_10-34-58.D4CbIaTD_2ik31t.webp 750w, /_astro/photo_2023-07-15_10-34-58.D4CbIaTD_2fpY6g.webp 828w, /_astro/photo_2023-07-15_10-34-58.D4CbIaTD_Z1BcM9W.webp 900w&quot; alt=&quot;保熟的更新日志&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1280&quot;&gt;
删除了him（盯）&lt;/p&gt;
&lt;p&gt;（补记：这首是 布施明 的《君は薔薇より美しい（你比玫瑰更美丽）》，当时翻了翻评论区发现了这条，没绷住。）&lt;/p&gt;
&lt;p&gt;（顺便科普一下，此处”him”==“herobrine”，”移除了herobrine“其实是minecraft更新日志中一条开玩笑的内容。详见&lt;a href=&quot;https://mcbbs.wiki/index.php?title=%E5%B7%B2%E7%A7%BB%E9%99%A4Herobrine&quot;&gt;mcbbs wiki&lt;/a&gt;）&lt;/p&gt;
&lt;h1 id=&quot;20211110-传送的奇怪特性&quot;&gt;20211110 传送的奇怪特性&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/2923&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;video src=&quot;/mc_daily/vid/video_2023-07-15_10-17-48.mp4&quot;&gt;&lt;/video&gt;
&lt;p&gt;不是很理解 ver 1.17.10&lt;/p&gt;
&lt;p&gt;（补记：突发奇想，想做一个一次性的矿车铁路，但是发现传送到y坐标为0时矿车实体并不会消失，然后就有了这个视频）&lt;/p&gt;
&lt;h1 id=&quot;20220123-一日筑路工&quot;&gt;20220123 一日筑路工&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/3227&quot;&gt;原链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-05._-7dR_7n_1Luxyv.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-05._-7dR_7n_Z24o5jP.webp 640w, /_astro/photo_2023-07-15_10-35-05._-7dR_7n_Z1mKX5m.webp 750w, /_astro/photo_2023-07-15_10-35-05._-7dR_7n_Z1Rhnra.webp 828w, /_astro/photo_2023-07-15_10-35-05._-7dR_7n_vTq23.webp 1080w, /_astro/photo_2023-07-15_10-35-05._-7dR_7n_1Luxyv.webp 1280w&quot; alt=&quot;一列咱铺的铁轨&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;591&quot;&gt;&lt;/p&gt;
&lt;p&gt;只要我们不断铺路 道路就会向前延伸&lt;/p&gt;
&lt;p&gt;（补记：迫害团长(1/1)，当时是在一个朋友开的的服务器上，我们在那里铺设了一条非常长的铁路，可惜现在服务器已经没了）&lt;/p&gt;
&lt;h1 id=&quot;20230313-故地重游&quot;&gt;20230313 故^%$#地$%@$重@*%游&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6136&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110013695562425447&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110013695562425447&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-11.CfCQb53S_o3f5n.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-11.CfCQb53S_iN7c2.webp 640w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_mnYzL.webp 750w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_1SkzdQ.webp 828w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_Z1IncF5.webp 1080w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_Z23BBWR.webp 1280w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_YkHY2.webp 1668w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_OzOup.webp 2048w, /_astro/photo_2023-07-15_10-35-11.CfCQb53S_o3f5n.webp 2340w&quot; alt=&quot;出bug了的故地&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2340px) 2340px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2340&quot; height=&quot;1080&quot;&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=&quot;20230501-故地重游2&quot;&gt;20230501 故地重游2&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6303&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110291128120037048&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110291128120037048&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-22.B_nqEYtX_ZkwKyG.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-22.B_nqEYtX_ZQFmmb.webp 640w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_ZN5tXr.webp 750w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_HQ5ED.webp 828w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_Z2rXdk9.webp 1080w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_2hYvc0.webp 1280w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_fJHjX.webp 1668w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_5YNPl.webp 2048w, /_astro/photo_2023-07-15_10-35-22.B_nqEYtX_ZkwKyG.webp 2340w&quot; alt=&quot;新形象&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2340px) 2340px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2340&quot; height=&quot;1080&quot;&gt;
&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-29.DPj-XMMh_Z265tL5.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-29.DPj-XMMh_1QWE4N.webp 640w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_1Uxwsx.webp 750w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_Z1CH1Hj.webp 828w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_QFcho.webp 1080w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_wqLYB.webp 1280w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_Z1uN0Rq.webp 1668w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_Z1ExTm3.webp 2048w, /_astro/photo_2023-07-15_10-35-29.DPj-XMMh_Z265tL5.webp 2340w&quot; alt=&quot;故地的一部分&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2340px) 2340px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2340&quot; height=&quot;1080&quot;&gt;&lt;/p&gt;
&lt;p&gt;刚才玩了一圈Minecraft Bedrock，我只能说微软是懂怎么搞坏游戏的🌚&lt;/p&gt;
&lt;p&gt;顺便之前的地形似乎恢复了，可能是上次有bug
（不知道什么时候菜市场自动给咱更新到1.19.3了）&lt;/p&gt;
&lt;p&gt;（补记：bugjang要吃饭的嘛，不过玩得确实花）&lt;/p&gt;
&lt;h1 id=&quot;20230610-故地但与别人同游&quot;&gt;20230610 故地，但与别人同游&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6372&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110517263092978611&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110517263092978611&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-35.B9MQHYn7_Z1Cyj7E.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-35.B9MQHYn7_SPqTr.webp 640w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_Wqjib.webp 750w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_2tmSVg.webp 828w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_1kcmUO.webp 1080w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_YWWD2.webp 1280w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_Z12gPe0.webp 1668w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_Z1c1IHC.webp 2048w, /_astro/photo_2023-07-15_10-35-35.B9MQHYn7_Z1Cyj7E.webp 2340w&quot; alt=&quot;和某同学一起&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2340px) 2340px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2340&quot; height=&quot;1080&quot;&gt;&lt;/p&gt;
&lt;p&gt;拍毕业照拍完和某同学坐在台阶上玩 Minecraft 基岩版 ，还好mojang/ms对局域网联机没作出限制…&lt;/p&gt;
&lt;p&gt;他生存开荒，我负责乱玩（逃&lt;/p&gt;
&lt;p&gt;用的还是之前的世界，没想到爪机还能顺跑1.20（用流量现更新的呜呜）&lt;/p&gt;
&lt;p&gt;（补记：不知道他从哪里弄来的1.20版本，而且邀请咱和他一起玩ei，不过有个小插曲，他的mc没办法开启局域网游戏，我在那里疯狂下滑刷新的时候，倒是有许多人来围观）&lt;/p&gt;
&lt;h1 id=&quot;20230616-herobrine&quot;&gt;20230616 Herobrine?&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6496&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110552879987489670&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110552879987489670&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-19_14-03-48.BaN4Ugi9_2eWwwm.webp&quot; srcset=&quot;/_astro/photo_2023-07-19_14-03-48.BaN4Ugi9_2pi9wz.webp 640w, /_astro/photo_2023-07-19_14-03-48.BaN4Ugi9_Z1SVkCn.webp 750w, /_astro/photo_2023-07-19_14-03-48.BaN4Ugi9_Z1L89pb.webp 828w, /_astro/photo_2023-07-19_14-03-48.BaN4Ugi9_Z1RQNcm.webp 1080w, /_astro/photo_2023-07-19_14-03-48.BaN4Ugi9_2eWwwm.webp 1280w&quot; alt=&quot;你瞧瞧这现在哪儿有him啊，这都是改出来的&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;765&quot;&gt;&lt;/p&gt;
&lt;p&gt;上午听说了&lt;a href=&quot;https://www.bilibili.com/video/av613247631&quot;&gt;看见 Herobrine 的版本(a1.0.16_02)和存档种子&lt;/a&gt;，然后下午就把官端和存档一块下载安装下来之后就在这儿等，结果等了一个游戏日（大概快&lt;del&gt;七八分钟&lt;/del&gt;20多分钟(1)）也没等来，就成功印证了那句 &lt;em&gt;“Herobrine is frequently referred to by Mojang Studios, however, Herobrine has never appeared in Minecraft himself.”&lt;/em&gt; （来自&lt;a href=&quot;https://minecraft.fandom.com/wiki/Herobrine&quot;&gt;Minecraft Wiki&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;（版本目录已传在&lt;a href=&quot;https://t.me/realGrassblock/6496&quot;&gt;评论区&lt;/a&gt;！）如果你想玩会儿远古版本，或者等等那人的话，下载下来然后复制到启动器(2)目录就行。（等不来的，你相信我）&lt;/p&gt;
&lt;p&gt;(1)原来的说法是不正确的。根据&lt;a href=&quot;https://minecraft.fandom.com/zh/wiki/%E6%98%BC%E5%A4%9C%E6%9B%B4%E6%9B%BF&quot;&gt;wiki&lt;/a&gt;，&lt;em&gt;Minecraft中时间正好是现实时间流逝的速度的72倍。这是由于现实中1天有1440分钟，而1个完整的Minecraft天只有20分钟。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(2)咱用的PCL2，先下载1.0.16，然后替换成wiki提供的文件 &lt;del&gt;，java16也可以正常启动&lt;/del&gt; （不对，java16似乎启动不了，java8可以）&lt;/p&gt;
&lt;p&gt;（补记：做出了一定的措辞上的修正。真的感谢作者和大数据让我了解到更多有关这个传说的真相）&lt;/p&gt;
&lt;h1 id=&quot;20230624-一点感叹&quot;&gt;20230624 一点感叹&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6644&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110596052684608384&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110596052684608384&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;打开某张有关特性的测试题就发现虽然我各个端更新到 1.20.10 但是其实对新版本新特性根本不了解，这个坏习惯自从 1.18 左右就开始了…
（由于某些公开性的原因就不放图了）&lt;/p&gt;
&lt;p&gt;（补记：是另外一个朋友开的新服务器“云韵竹烟”，申请需要答题，大多是有关新版本特性的，可我明显没有太了解过）
&lt;em&gt;（如果你想了解更多有关这个原版生存服务器的信息，可以加入&lt;a href=&quot;https://t.me/minecraft_chat_cn&quot;&gt;群组&lt;/a&gt;）&lt;/em&gt;&lt;/p&gt;
&lt;h1 id=&quot;20230628-怀旧生存&quot;&gt;20230628 怀旧生存&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6723&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110621014550603032&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110621014550603032&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-44.CjK0pBsd_19FOvT.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-44.CjK0pBsd_ZMaM8z.webp 640w, /_astro/photo_2023-07-15_10-35-44.CjK0pBsd_7h7N2.webp 750w, /_astro/photo_2023-07-15_10-35-44.CjK0pBsd_w4PAt.webp 828w, /_astro/photo_2023-07-15_10-35-44.CjK0pBsd_67WeF.webp 1080w, /_astro/photo_2023-07-15_10-35-44.CjK0pBsd_19FOvT.webp 1280w&quot; alt=&quot;玩点旧的&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1280px) 1280px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1280&quot; height=&quot;745&quot;&gt;&lt;/p&gt;
&lt;p&gt;玩了一下 b1.7.3 （一个广受喜爱的版本） ，就有一种找回了曾经的感觉，但是当初拉我入坑的已经不玩了，就有一点悲伤。&lt;/p&gt;
&lt;p&gt;然后就是 为什么我下矿只挖到石头🌚&lt;/p&gt;
&lt;p&gt;（补记：那天上午看了个&lt;a href=&quot;https://www.youtube.com/watch?v=BBkxecgm5q4&quot;&gt;YouTuber的视频&lt;/a&gt;，讨论了下为什么这个版本会这么受欢迎，就玩了一下，然后有了上面的感叹）&lt;/p&gt;
&lt;h1 id=&quot;20230701-一点感叹2--我太菜了&quot;&gt;20230701 一点感叹2 | 我太菜了&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6773&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110638526776807586&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110638526776807586&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我不会（指没有能力）用PCL2更新目前用的forge等一切加载器，我自裁😶&lt;/p&gt;
&lt;p&gt;我只会自动安装然后像个憨憨一样玩儿，更新还得备份推翻文件夹重来这个样子&lt;/p&gt;
&lt;p&gt;（补记：我被PCL2的加载器更新机制搞得很烦，然后后来我发现HMCL支持给自动安装后的游戏安装/更新forge，这样就不用备份了（喜）&lt;/p&gt;
&lt;h1 id=&quot;20230711-在-chrome-os-上玩-minecraft&quot;&gt;20230711 在 Chrome OS 上玩 Minecraft&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6929&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110694999386726853&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110694999386726853&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-35-57.D0glLpyH_1MsQXE.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-35-57.D0glLpyH_Z2icd34.webp 640w, /_astro/photo_2023-07-15_10-35-57.D0glLpyH_3z265.webp 750w, /_astro/photo_2023-07-15_10-35-57.D0glLpyH_Z38eBc.webp 828w, /_astro/photo_2023-07-15_10-35-57.D0glLpyH_ZMWaTx.webp 1080w, /_astro/photo_2023-07-15_10-35-57.D0glLpyH_ZleL0i.webp 1280w, /_astro/photo_2023-07-15_10-35-57.D0glLpyH_Z1kNmdv.webp 1668w, /_astro/photo_2023-07-15_10-35-57.D0glLpyH_1MsQXE.webp 1889w&quot; alt=&quot;狐狸与狐狸&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1889px) 1889px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1889&quot; height=&quot;1118&quot;&gt;&lt;/p&gt;
&lt;p&gt;尝试在Chrome OS上用Linux容器玩了一会儿Minecraft Java 1.18.2，感觉性能损耗不是很明显（？&lt;/p&gt;
&lt;p&gt;顺便吐槽一下这与小🦊的信任实在是太难建立了，还得亲手杀掉其亲生父母，这实在是太（）了&lt;/p&gt;
&lt;p&gt;以及别问我为什么是Alex的皮肤&lt;/p&gt;
&lt;h1 id=&quot;20230714-来玩官方地图&quot;&gt;20230714 来玩官方地图&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6963&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110711640190560050&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110711640190560050&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-36-03.D6OA-FeO_Z16kEO0.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-36-03.D6OA-FeO_Z2meY9C.webp 640w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_Z2iE6KS.webp 750w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_ZLHw7N.webp 828w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_1Qq1et.webp 1080w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_1wbAVG.webp 1280w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_Zv3bUl.webp 1668w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_ZEN5oX.webp 2048w, /_astro/photo_2023-07-15_10-36-03.D6OA-FeO_Z16kEO0.webp 2340w&quot; alt=&quot;活动以及活动&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2340px) 2340px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2340&quot; height=&quot;1080&quot;&gt;
&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_Bex6I.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_Z1jOQ7X.webp 640w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_Z1geXJe.webp 750w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_fGASQ.webp 828w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_Z1vbTDJ.webp 1080w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_Z1PqjVw.webp 1280w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_1cw10n.webp 1668w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_12L7vK.webp 2048w, /_astro/photo_2023-07-15_10-36-06.CXTyN3Xj_Bex6I.webp 2340w&quot; alt=&quot;官方玩我（？&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 2340px) 2340px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;2340&quot; height=&quot;1080&quot;&gt;&lt;/p&gt;
&lt;p&gt;刷b站的时候看到 @邹陈云飞 发了新一期的 &lt;a href=&quot;https://b23.tv/BV1NW4y1Z7Pi&quot;&gt;MC 周报&lt;/a&gt;，看到官方夏日庆典的活动要到期了，咱就光速打开了许久没有打开的基岩版，补领了活动期间的物品。&lt;/p&gt;
&lt;p&gt;虽然是这么说，但是我对M$做的奇奇怪怪的角色创建器并不是很上心，还是比较喜欢经典皮肤，虽然基岩版的经典皮肤也已经被M$玩烂了。&lt;/p&gt;
&lt;p&gt;然后在看领到的物品的时候，发现了一个官方创建的 Timeless Trails 地图，就顺手玩了十几分钟，感觉还可以，很好地用剧情任务表现了新版本特性（？&lt;/p&gt;
&lt;h1 id=&quot;20230714-这游戏怎么玩了八年跟没玩过一样&quot;&gt;20230714 这游戏怎么玩了八年跟没玩过一样&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/6974&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110712740231254975&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110712740231254975&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-15_10-36-11.qsE-qbmD_ZauObq.webp&quot; srcset=&quot;/_astro/photo_2023-07-15_10-36-11.qsE-qbmD_1FJQq2.webp 640w, /_astro/photo_2023-07-15_10-36-11.qsE-qbmD_ecgDP.webp 750w, /_astro/photo_2023-07-15_10-36-11.qsE-qbmD_27SdE5.webp 828w, /_astro/photo_2023-07-15_10-36-11.qsE-qbmD_ZauObq.webp 1080w&quot; alt=&quot;一段对话记录&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;1172&quot;&gt;&lt;/p&gt;
&lt;p&gt;八年老玩家（我）现状：至今连末地传送门都不会找&lt;/p&gt;
&lt;p&gt;（补记：看到一个群友们都在兴趣盎然的讨论自己加入过的服务器，我不禁自卑起来，于是跑到一个朋友哪里倾诉，就有了上面的对话（对话已经过授权发布））&lt;/p&gt;
&lt;h1 id=&quot;20230715-梅开二度群友服一日游&quot;&gt;20230715 （梅开二度）群友服一日游&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://t.me/realGrassblock/7024&quot;&gt;原链接&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/110735026929619781&quot;&gt;联邦宇宙&lt;/a&gt; &lt;a href=&quot;https://social.ongov.ca/@grassblock/110735026929619781&quot;&gt;镜像&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/photo_2023-07-18_21-38-09.DVH2l2b9_Z2uajl2.webp&quot; srcset=&quot;/_astro/photo_2023-07-18_21-38-09.DVH2l2b9_l5sWq.webp 640w, /_astro/photo_2023-07-18_21-38-09.DVH2l2b9_14t5zF.webp 750w, /_astro/photo_2023-07-18_21-38-09.DVH2l2b9_ZEBNDv.webp 828w, /_astro/photo_2023-07-18_21-38-09.DVH2l2b9_1Af0ME.webp 1080w, /_astro/photo_2023-07-18_21-38-09.DVH2l2b9_1QHPV3.webp 1280w, /_astro/photo_2023-07-18_21-38-09.DVH2l2b9_Z2pDIxc.webp 1668w, /_astro/photo_2023-07-18_21-38-09.DVH2l2b9_Z2uajl2.webp 1792w&quot; alt=&quot;我又去养老了&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1792px) 1792px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1792&quot; height=&quot;1037&quot;&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=&quot;结语&quot;&gt;结语&lt;/h1&gt;
&lt;p&gt;断断续续弄了五天，终于完成了！&lt;/p&gt;
&lt;p&gt;希望你喜欢这个系列，我会继续更新的！&lt;/p&gt;
&lt;p&gt;如果你有什么想说的，欢迎在评论区以及公告板账号对应帖子下留言！&lt;/p&gt;</content:encoded><category>collection</category><author>草方块</author></item><item><title>202307 旅行随记</title><link>https://lab.gb0.dev/blog/2023-07-travelling</link><guid isPermaLink="true">https://lab.gb0.dev/blog/2023-07-travelling</guid><description>来一场第一次说走就走的旅行~</description><pubDate>Wed, 05 Jul 2023 20:20:16 GMT</pubDate><content:encoded>&lt;h1 id=&quot;d--1&quot;&gt;d -1&lt;/h1&gt;
&lt;p&gt;大概在我装完 Chrome OS 之后，家长突然跟我说：“啊那个谁（我的一个同学）的家长想找人一起出去玩，问你去不去”&lt;/p&gt;
&lt;p&gt;起初我是很动摇的，但转念一想在家闲着也不是长久之计，所以欣然应允。&lt;/p&gt;
&lt;p&gt;但是此后我却感到有一点失落，甚至怀着忐忑的心入睡，这至今为止我也没也没搞清楚。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;很奇怪的感觉😶
出去旅行本是一件好事，可我却并不觉得高兴
重装系统，尝试新的系统虽然也是一件好事，但我却对着Chrome OS 的桌面叹气&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&quot;d-0&quot;&gt;d 0&lt;/h1&gt;
&lt;p&gt;前前后后忙碌了许久，在下午四点多我们踏上了&lt;del&gt;这场流浪&lt;/del&gt;旅程。&lt;/p&gt;
&lt;p&gt;城市里的东西，对于我这种大多时间都在学校和离城市相距甚远的家里的人来说，无疑是十分新奇的。&lt;/p&gt;
&lt;p&gt;我第一次进入了市里的火车站。心里如小鹿乱撞般，生怕弄错了流程，不过好在票已经预定过，倒是减去了不少麻烦。&lt;/p&gt;
&lt;p&gt;在辗转许久后，我们站在站台上，等待着那个犹如令人畏惧的怪物般的绿皮火车。&lt;/p&gt;
&lt;p&gt;怪物缓缓停下。我小心翼翼地踏上火车，感受着从没感受过的气氛。&lt;/p&gt;
&lt;p&gt;列车里和我的想象完全不同，虽然是硬卧，但是却给我一种“我怎么又回到了我的高中宿舍”的错觉，这里居然也有上下铺之分。&lt;/p&gt;
&lt;p&gt;不同的人在做着自己的事情。但是似乎刷短视频的居多，不过还好外放得不多。&lt;/p&gt;
&lt;p&gt;不过上铺就对于我这个比设定重上几乎一三分之一的人就不大友好了，我花了九牛二虎之力，才成功的上了卧铺。&lt;/p&gt;
&lt;p&gt;而且上铺的空间十分狭窄，导致我只能以一个奇怪的方式坐着，而且十分难受，所以只能躺着。&lt;/p&gt;
&lt;p&gt;在于互联网上游荡之后，我尝试打这篇文章。我打开了Termux，尝试clone博客仓库，然后试了试装依赖，但可能是由于性能问题，手机忽地变得十分卡，差点导致无法重启动，于是只好作罢。&lt;/p&gt;
&lt;p&gt;但是此番折腾过后，我却忽地没有了热情，于是又搁置了一会儿。不过好在列车上的信号是比较稳定的（虽然看b站还是有点卡）。&lt;/p&gt;
&lt;p&gt;和一位朋友隐瞒了行程，帮他debug系统问题，不过好在都是我能力范围内的吗。&lt;/p&gt;
&lt;p&gt;除非我打开地图软件，否则我现在是不知道自己在哪里的，我只能从窗户看到一片片的水泥站台向后退去。&lt;/p&gt;
&lt;p&gt;列车是有些颠簸的。不过好在不是常事，但确确实实影响了睡眠。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;啤酒饮料矿泉水，花生瓜子火腿肠&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;联邦宇宙还是一如既往的热闹。&lt;/p&gt;
&lt;p&gt;打稿的时候随即到了那首《 I really want to stay at your house 》，心中又有无限说不上来的感慨。&lt;/p&gt;
&lt;p&gt;感觉觉不会睡的很安稳，虽然今天有点劳累，在出发前，还是头晕晕的状态。&lt;/p&gt;
&lt;p&gt;我怀念起了之前用termux玩hexo的时候，那时候我用的还7是 &lt;a href=&quot;https://github.com/gsantner/markor&quot;&gt;markor&lt;/a&gt; 什么的呢，不过现在已经很习惯面对一个命令行编辑器码字了。&lt;/p&gt;
&lt;p&gt;先这样吧，明天早上估计就到达目的地了。&lt;/p&gt;
&lt;h1 id=&quot;d-1&quot;&gt;d 1&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;今天是星期四，无论你问什么都先请v我50&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt=&quot;我也忘了我自己要补什么图了，所以只能贴来原图了&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 750px) 750px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;750&quot; height=&quot;648&quot; src=&quot;https://lab.gb0.dev/_astro/1689084888897.DVbdu7in_tFD5Q.webp&quot; srcset=&quot;/_astro/1689084888897.DVbdu7in_li9mT.webp 640w, /_astro/1689084888897.DVbdu7in_tFD5Q.webp 750w&quot;&gt;&lt;/p&gt;
&lt;p&gt;就只睡了三四个小时的样子，但是醒来已经在山西大同那个样子，别问我为什么知道，因为大概是我被列车员的“大同到了啊”吵醒了的样子。&lt;/p&gt;
&lt;p&gt;在铺上&lt;del&gt;沉思&lt;/del&gt;胡思乱想了一会儿才起床&lt;/p&gt;
&lt;p&gt;早上打开b站，第一个看到了云社的视频，啪的一下点进去，很快啊（&lt;/p&gt;
&lt;p&gt;不懂，但是，车为啥往东北开&lt;/p&gt;
&lt;p&gt;补张图，大概是我看窗外的一个视角
&lt;img alt=&quot;窗外的景象&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_053622.BPri2uTr_1BivS1.webp&quot; srcset=&quot;/_astro/IMG_20230706_053622.BPri2uTr_1o2GS9.webp 640w, /_astro/IMG_20230706_053622.BPri2uTr_ZI0dHT.webp 750w, /_astro/IMG_20230706_053622.BPri2uTr_vdoh5.webp 828w, /_astro/IMG_20230706_053622.BPri2uTr_1BivS1.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;可能是进隧道了，一下变的特别黑，好像突然就跳到晚上了，然后列车的灯突然亮了，啪的一下，很快啊（&lt;/p&gt;
&lt;p&gt;摇摇晃晃地来到了目的地，时侯尚早，我们来到车站附近的一家小店
&lt;img alt=&quot;photo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_080027.BjyGCoJg_1soppL.webp&quot; srcset=&quot;/_astro/IMG_20230706_080027.BjyGCoJg_1f8ApT.webp 640w, /_astro/IMG_20230706_080027.BjyGCoJg_ZQTkb9.webp 750w, /_astro/IMG_20230706_080027.BjyGCoJg_mjhNP.webp 828w, /_astro/IMG_20230706_080027.BjyGCoJg_1soppL.webp 900w&quot;&gt;
&lt;img alt=&quot;photo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_081746.BSpiGPtU_Z1lDdtl.webp&quot; srcset=&quot;/_astro/IMG_20230706_081746.BSpiGPtU_Z1yT2td.webp 640w, /_astro/IMG_20230706_081746.BSpiGPtU_1ofaIF.webp 750w, /_astro/IMG_20230706_081746.BSpiGPtU_Z2rIl5h.webp 828w, /_astro/IMG_20230706_081746.BSpiGPtU_Z1lDdtl.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;出门看到了猫猫：
&lt;img alt=&quot;店门口的猫猫&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_082140.DDrR9vvQ_Z19XtwB.webp&quot; srcset=&quot;/_astro/IMG_20230706_082140.DDrR9vvQ_Z1neiwt.webp 640w, /_astro/IMG_20230706_082140.DDrR9vvQ_1zTTFp.webp 750w, /_astro/IMG_20230706_082140.DDrR9vvQ_Z2g3B8x.webp 828w, /_astro/IMG_20230706_082140.DDrR9vvQ_Z19XtwB.webp 900w&quot;&gt;
&lt;img alt=&quot;photo:人机验证：请找出图中所有的猫猫&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_082413.DzzihNw7_Z25b9cW.webp&quot; srcset=&quot;/_astro/IMG_20230706_082413.DzzihNw7_Z2iqXcO.webp 640w, /_astro/IMG_20230706_082413.DzzihNw7_EHf04.webp 750w, /_astro/IMG_20230706_082413.DzzihNw7_1SUR03.webp 828w, /_astro/IMG_20230706_082413.DzzihNw7_Z25b9cW.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;商讨过后，我们决定打车前往五台山，但是似乎车费比单人门票还要贵些。&lt;/p&gt;
&lt;p&gt;虽然是网约车，但那个操着一口浓重的山西口音的司机还是热情回答了&lt;del&gt;我们&lt;/del&gt;那个家长的提问。&lt;/p&gt;
&lt;p&gt;正好了解到 Instagram 可以改换用户名以后，我就趁着空注册了个帐号（meta 没删我许久未用的号，呜呜
（就那个号名字属于是黑历史，我小学时候注册的）&lt;/p&gt;
&lt;p&gt;想在车上拍几张照，可奈何手机不行，只好作罢。&lt;/p&gt;
&lt;p&gt;景点人很多，不过好在天气比较适宜，并不觉得炎热。&lt;/p&gt;
&lt;p&gt;没想到，我这么大一个人，居然还能买半票，虽说半年之后就不行力（&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;我向佛祖许愿，佛祖说“不行”，我说“行”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;进售票处的时候，我发现那个展示屏是 Windows 系统，于是乎发疯，拍照发一条嘟嘟。&lt;/p&gt;
&lt;iframe src=&quot;https://social.ongov.ca/@grassblock/110664844769898986/embed&quot; class=&quot;mastodon-embed&quot; style=&quot;max-width: 100%; border: 0&quot; width=&quot;512&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;公交车通道进入的方式很奇怪，像是在走迷宫。这时候我真切的感受到人是真的多（（&lt;/p&gt;
&lt;p&gt;公交直达一个寺院，但我把寺院的名字一时间忘了，好像是普化寺（？&lt;/p&gt;
&lt;p&gt;沿途风景秀丽，如图所示🤣：
&lt;img alt=&quot;photo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_105533.BqChV3dM_Z2oAx5N.webp&quot; srcset=&quot;/_astro/IMG_20230706_105533.BqChV3dM_2skLIg.webp 640w, /_astro/IMG_20230706_105533.BqChV3dM_lhQ7d.webp 750w, /_astro/IMG_20230706_105533.BqChV3dM_1zvt7c.webp 828w, /_astro/IMG_20230706_105533.BqChV3dM_Z2oAx5N.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;不过兜兜转转，我们竟来到了五爷庙。来到寺庙，除了游览以外，自然是要拜一拜神明的，更何况，那位家长信仰这类东西（大抵是佛教了），我拗不过，只好象征性的拜了两拜。
&lt;img alt=&quot;photo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_120344.C0Bmt97s_Z2tzh08.webp&quot; srcset=&quot;/_astro/IMG_20230706_120344.C0Bmt97s_2nm2NV.webp 640w, /_astro/IMG_20230706_120344.C0Bmt97s_gj7cS.webp 750w, /_astro/IMG_20230706_120344.C0Bmt97s_1uwJcR.webp 828w, /_astro/IMG_20230706_120344.C0Bmt97s_Z2tzh08.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;紧接着，一行人来到了文殊菩萨殿，殿倒是极为端庄，不过我因为看到o3o把meta的ip全部给阻断了，心情未免有些郁闷，便无心听那位家长的科普了。不过在离开的时候，我默默的在心里拜了两拜，想着这位“菩萨”（仅是特殊称谓）能够让咱的记性好一点（（&lt;/p&gt;
&lt;p&gt;我也很快地发现，五台山除了青山清水和浓厚的宗教建筑外并没有什么别的可供参观欣赏的，再加上疲惫，就坐在一旁，打开了 YouTube，把耳机一戴，开始听早上已经听过几遍的《転生林檎》。&lt;/p&gt;
&lt;p&gt;路途上发现了一些小动物，也发出来吧：
&lt;img alt=&quot;鸽子&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/featured.PPBVm6po_Z1plGuS.webp&quot; srcset=&quot;/_astro/featured.PPBVm6po_wMqzK.webp 640w, /_astro/featured.PPBVm6po_Z1jYulL.webp 750w, /_astro/featured.PPBVm6po_22z3oL.webp 828w, /_astro/featured.PPBVm6po_Z1plGuS.webp 900w&quot;&gt;
&lt;img alt=&quot;猫猫，但是藏在排水沟里了&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230706_122029.C8ZgCcm5_2crDsw.webp&quot; srcset=&quot;/_astro/IMG_20230706_122029.C8ZgCcm5_1YbOsE.webp 640w, /_astro/IMG_20230706_122029.C8ZgCcm5_Z7Q68o.webp 750w, /_astro/IMG_20230706_122029.C8ZgCcm5_16mvQA.webp 828w, /_astro/IMG_20230706_122029.C8ZgCcm5_2crDsw.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;中午的时候品尝了当地的特色美食-----刀削面和凉粉（大概），不过我觉得那菊花放在水里权当泡茶的那份热茶深得我心，虽然它不归属于这一类。
&lt;img alt=&quot;photo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230710_213358.BacJVUlC_ZicKol.webp&quot; srcset=&quot;/_astro/IMG_20230710_213358.BacJVUlC_Zvszod.webp 640w, /_astro/IMG_20230710_213358.BacJVUlC_2rFCNF.webp 750w, /_astro/IMG_20230710_213358.BacJVUlC_Z1ohS0h.webp 828w, /_astro/IMG_20230710_213358.BacJVUlC_ZicKol.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;下午决计爬山，说是爬山，但其实是上那一级级阶梯，我好奇在咕噜咕噜搜索了一下，上五台山需要上1080级阶梯，又按照36级为一层，分了大约30个阶梯。&lt;/p&gt;
&lt;p&gt;我是没有设定上那般的力量的，便只上了一半左右的阶梯，虽然我自己是不清楚的，但是&lt;a href=&quot;https://github.com/OpenTracksApp/OpenTracks&quot;&gt;Opentracks&lt;/a&gt;告诉我已经到了1800公尺的海拔了，而我大略记得山海拔大概在3400m左右，于是便这样大略计算成这样了。&lt;/p&gt;
&lt;p&gt;和咱同行的同学倒是到了山顶，我也不敢替人妄下结论，毕竟我只记得一句“山顶上饮水机水流速度很慢”。&lt;/p&gt;
&lt;p&gt;话说回来，虽然我只上了山的一半，不过我见到了许许多多的人，他们互相鼓励，在经过短暂的休息后继续上山的旅途。我也见到了虔诚的信徒，他们前进三步，后又退一步跪拜，不在意自己身上出了多少汗。这给我了不小的震撼。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;上过山顶的人固然是英雄，我敬畏他们。但我尽了自己最大的努力，却只到达半山腰，我在心中为自己点赞，相信下次自己能做的更好。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;拖着劳累的身体，再加上没什么兴味，我们决定回家。&lt;/p&gt;
&lt;p&gt;起初是打算坐公交先回省区的，不过由于人太多，我们只能另想办法。&lt;/p&gt;
&lt;p&gt;或许是有着相近的信仰或者诚心吧，我们的行程中短暂的添了两个不认识的人，又在不久，一个热心的本地人主动提出送我们到那里去，就迷迷糊糊坐了大概两个小时车。&lt;/p&gt;
&lt;p&gt;在车上是在没事干，看了会儿《雪崩》，hmm，怎么说呢，我感觉放在现在的年龄分级的话，至少是17+，不过后劲确实大（（（&lt;/p&gt;
&lt;p&gt;过了很久，睡了几小觉后，到达了目的地。&lt;/p&gt;
&lt;p&gt;在一家旅店入住，头一回。&lt;/p&gt;
&lt;h1 id=&quot;d-2&quot;&gt;d 2&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;img alt=&quot;photo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 900px) 900px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;900&quot; height=&quot;1200&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230707_123301.OsBNTdNz_ZEGKqn.webp&quot; srcset=&quot;/_astro/IMG_20230707_123301.OsBNTdNz_ZRWzqf.webp 640w, /_astro/IMG_20230707_123301.OsBNTdNz_25bCLD.webp 750w, /_astro/IMG_20230707_123301.OsBNTdNz_Z1KLS2j.webp 828w, /_astro/IMG_20230707_123301.OsBNTdNz_ZEGKqn.webp 900w&quot;&gt;&lt;/p&gt;
&lt;p&gt;说实话，坐在这个火车，就像坐在一个功能齐全的公交车上一样，虽然坐着比较舒服，凡是，一站起来十分难受&lt;/p&gt;
&lt;p&gt;又看了一个多小时的《雪崩》，但只看到了五分之一，生词（我是说不熟悉的词语）倒是查了许多，等读完可能把这本书的随记批注分享出来。&lt;/p&gt;
&lt;p&gt;不过在搜索的时候发现了一个地方提供了这本书的在线阅读，可能也会放出来…&lt;/p&gt;
&lt;p&gt;有时候这列车，真的慢，感觉我走路都能追上了（&lt;/p&gt;
&lt;p&gt;或许这就是普快吧&lt;/p&gt;
&lt;p&gt;（neovim老给我提示恢复到昨天晚上的 .swp 存档，搞得我以为之前的努力白费了，还好现在删除了，应该不会再出事了）&lt;/p&gt;
&lt;p&gt;简单的瞥了一下天津（的火车站站台）（&lt;/p&gt;
&lt;p&gt;&lt;del&gt;那个穿着星战那个衣服的终于走了，我看东西的时候，已经发疯几次了&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;列车似乎比来程更加地晃…&lt;/p&gt;
&lt;p&gt;列车外面打雷下雨了诶，有种奇妙的感觉，拿出天气一看似乎在宁河…&lt;/p&gt;
&lt;p&gt;BTW 在天津的停靠时候，上来一对母子，偶尔和我们谈两句，&lt;del&gt;孩子倒是挺可爱的&lt;/del&gt;。&lt;/p&gt;
&lt;p&gt;&lt;del&gt;对一个初中的使用孩子这个称呼不大合适，但我实在想不出什么比较好的称呼了，只能先这样了&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;补两张图：
&lt;img alt=&quot;我随手拍的&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1200px) 1200px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1200&quot; height=&quot;900&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230707_202851.BxlgWK2h_2ulimH.webp&quot; srcset=&quot;/_astro/IMG_20230707_202851.BxlgWK2h_2ttIoY.webp 640w, /_astro/IMG_20230707_202851.BxlgWK2h_7mHew.webp 750w, /_astro/IMG_20230707_202851.BxlgWK2h_Z14UvmR.webp 828w, /_astro/IMG_20230707_202851.BxlgWK2h_ZfOuSn.webp 1080w, /_astro/IMG_20230707_202851.BxlgWK2h_2ulimH.webp 1200w&quot;&gt;
&lt;img alt=&quot;简陋的晚饭&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 4000px) 4000px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;4000&quot; height=&quot;3000&quot; src=&quot;https://lab.gb0.dev/_astro/IMG_20230707_203619.U-aXxb6o_FxVcJ.webp&quot; srcset=&quot;/_astro/IMG_20230707_203619.U-aXxb6o_ZxkpFw.webp 640w, /_astro/IMG_20230707_203619.U-aXxb6o_sh3In.webp 750w, /_astro/IMG_20230707_203619.U-aXxb6o_zIbHT.webp 828w, /_astro/IMG_20230707_203619.U-aXxb6o_Z11WrEo.webp 1080w, /_astro/IMG_20230707_203619.U-aXxb6o_Wsoru.webp 1280w, /_astro/IMG_20230707_203619.U-aXxb6o_HBvfR.webp 1668w, /_astro/IMG_20230707_203619.U-aXxb6o_Z1Jj0Po.webp 2048w, /_astro/IMG_20230707_203619.U-aXxb6o_Z1ouGtg.webp 2560w, /_astro/IMG_20230707_203619.U-aXxb6o_FxVcJ.webp 4000w&quot;&gt;&lt;/p&gt;
&lt;p&gt;听到那位母亲在和我家长讨论李玟的事情…（叹息&lt;/p&gt;
&lt;p&gt;不过她们三言两语的，聊的似乎很开心。&lt;/p&gt;
&lt;p&gt;再次到达车站后夜已深，“冷冷的冰雨在脸上胡乱地拍”，但我们旅行仍未结束，仍需匆忙赶路。&lt;/p&gt;
&lt;p&gt;上了一辆出租车，我突然觉得得听点应景的歌曲，于是下意识的打开b站，在搜索框中输入了那首只看到过封面的《夜间出租车》.然后戴上耳机，望着不断后退的景物，任思绪流过。&lt;/p&gt;
&lt;p&gt;我想起了夜之城，但我所在的地方，即使是市区，也没有那般的表面上的繁华的，至少，此时，大多数的人渴求着睡眠。&lt;/p&gt;
&lt;p&gt;离家越来越近了，我想是时候结束这冗长的随记了，雨早已停了，我想是时候结束我的思绪，让它休息休息了。&lt;/p&gt;
&lt;p&gt;此时，一个满分作文的写法应该是分享感受，升华主题了，但我目前的系统状况已经不容我写长长的一段话来总结了，等第二天再说吧，照片也会一并上传。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;我又想起了《大地球歌厅》&lt;/em&gt;&lt;/p&gt;
&lt;h1 id=&quot;d-3&quot;&gt;d 3&lt;/h1&gt;
&lt;p&gt;是时候总结一下了。
这次短促的旅行，来也匆匆，去也匆匆，但它带来了许多我的第一次经历，虽然这次人很多，天气很热（虽然五台山被称为清凉山，但是要注意上山的路还是要热的多的），而且累人，也不大好玩。&lt;/p&gt;
&lt;p&gt;我还是很期待下次旅行的。&lt;/p&gt;
&lt;p&gt;最后贴一首歌曲吧，就车上听到的，虽然我后来一查这歌词十分水平低。&lt;/p&gt;
&lt;iframe src=&quot;https://player.bilibili.com/player.html?aid=36068052&amp;#x26;bvid=BV1Rt41127SA&amp;#x26;cid=63320578&amp;#x26;page=1&quot; allowfullscreen=&quot;&quot; data-autoplay=&quot;false&quot; width=&quot;100%&quot; height=&quot;480px&quot;&gt; &lt;/iframe&gt;
&lt;p&gt;再提一句，如果你需要更多的相关照片，请联系我，我将视情况将所有可公开的照片上传到一个相册。&lt;/p&gt;</content:encoded><category>Daily</category><author>草方块</author></item><item><title>隔岸观火 - 又一波从 Twitter 到 Mastodon 的移民潮</title><link>https://lab.gb0.dev/blog/another-wave-of-migration-from-twitter-to-mastodon</link><guid isPermaLink="true">https://lab.gb0.dev/blog/another-wave-of-migration-from-twitter-to-mastodon</guid><description>马斯克几句话让 Mastodon 实例用户数涨了十八万。</description><pubDate>Mon, 03 Jul 2023 18:59:57 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;马斯克对阅读推文数做出限制，有效地让各个推油们产生了一定的戒断情绪，从而一定程度上减少了Twitter的使用时间和负载，促进了他们向去中心化平台转移的趋势，促进了其发展，由此可见，他真是个带善人🤣&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&quot;更新日志&quot;&gt;更新日志&lt;/h1&gt;
&lt;p&gt;2023-07-04 11:53:30 ：初稿
2023-07-14 21:15:55 ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;修改了部分措辞。&lt;/li&gt;
&lt;li&gt;拆分了部分内容，将参考文章与声明分开。&lt;/li&gt;
&lt;li&gt;补充了其他去中心化平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;发生什么事了&quot;&gt;发生什么事了&lt;/h1&gt;
&lt;p&gt;虽然可能众所周知，我还是给大家整理了一下。
{% timeline 6月,blue %}&lt;/p&gt;&lt;!-- timeline 30日 --&gt;
&lt;p&gt;Twitter 开启登录墙，未登录的情况下无法查看推文内容。
数小时后， Nitter 等其他服务也无法使用&lt;/p&gt;&lt;!-- endtimeline --&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;p&gt;{% timeline 7月,blue %}&lt;/p&gt;&lt;!-- timeline 2日 --&gt;
&lt;p&gt;Twitter 开启阅读推文数限制，马斯克声称这是暂时的。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;为了解决极端水平的数据搜刮和系统操纵，我们已经应用了以下临时限制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;经过验证（指订阅 Twitter Blue）的账户，每天只能阅读6000个帖子&lt;/li&gt;
&lt;li&gt;未验证的账户每天只能阅读600个帖子&lt;/li&gt;
&lt;li&gt;新的未经验证的账户每天不得超过300个
（使用Deepl翻译，&lt;a href=&quot;https://twitter.com/elonmusk/status/1675187969420828672?s=20&quot;&gt;原推文&lt;/a&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 2日 --&gt;
&lt;p&gt;用户抱怨限制，并开始寻求转出Twitter的方法。&lt;/p&gt;
&lt;p&gt;迫于压力，该限制逐步扩大到 相应的 10k，1k以及500条。&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 2日 --&gt;
&lt;p&gt;有些人发现自己在 Twitter 的数据难以导出。
Musk 转发了粉丝的一条推特，提醒大家不要成为过度沉迷 Twitter 的人:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我设置 “浏览限制 “的原因是，我们都是Twitter上瘾者，需要到外面去。
我为世界做了一件好事。
另外，这是你刚刚使用的另一个阅读数。
&lt;a href=&quot;https://twitter.com/ElonMuskAOC/status/1675268446089773056?s=20&quot;&gt;原推文&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 2日 --&gt;
&lt;p&gt;Mastodon 官方实例因涌入人数过多已发生多次故障。&lt;/p&gt;
&lt;p&gt;有用户发现此次政策更新与Twitter 前端更新，导致用户疯狂访问自己的API（&lt;a href=&quot;https://sfba.social/@sysop408/110639435788921057&quot;&gt;现象图&lt;/a&gt;）有关&lt;sup&gt;&lt;a href=&quot;#user-content-fn-lidang&quot; id=&quot;user-content-fnref-lidang&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;，&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 2日 --&gt;
&lt;p&gt;Twitter 大部分用户达到阅读限制，导致大规模的 #TwitterDown&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;大致意思是： 硅谷天才不肯付google cloud的账单—&gt;合同到期google开始限流—&gt; 推特数据迁移没做完—&gt; 昨天刚ban了外部服务—&gt;大量请求失败导致DDOS—&gt;天才灵机一动撒谎说是有意限流来拖时间顺便哄人购买付费服务……
&lt;a href=&quot;https://mastodon.world/@dreamplan2501/110642217976968083&quot;&gt;此信息暂时存疑，详见原文&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;!-- endtimeline --&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;h1 id=&quot;一个人的作死&quot;&gt;一个人的作死&lt;/h1&gt;
&lt;p&gt;实际上，马斯克在收购 Twitter 后整的幺蛾子可不止这些。&lt;/p&gt;
&lt;p&gt;像什么花 8$ 能获得认证标志，搅得一团糟的社交环境，对言论作出不必要的限制，在这里并不打算太展开说，感兴趣的可以看看这篇文章，说的比较详细：&lt;a href=&quot;https://moe23333.vercel.app/posts/twitter-to-mastodon#2-%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E7%A6%BB%E5%BC%80-twitter&quot;&gt;传送门&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我请教了一下Bing，大概来说是这几点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;他威胁要起诉微软，因为他指责这家技术巨头未经许可使用他的社交媒体公司的数据。&lt;sup&gt;&lt;a href=&quot;#user-content-fn-sue&quot; id=&quot;user-content-fnref-sue&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;他还认为 “cis”和 “cisgender”这两个词是对推特的侮辱，并警告说，任何在推特上骚扰他人的人会被暂时封禁账号。（cisgender 是指性别认同与出生时生理性别一致的人）&lt;sup&gt;&lt;a href=&quot;#user-content-fn-cis&quot; id=&quot;user-content-fnref-cis&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;在马斯克接管推特后的短时间内出现了一系列争议和混乱的空气。马斯克因计划对推特进行改变而引来反弹，而极右翼阴谋论者和反犹太主义分子则把马斯克的到来作为传播仇恨言论的机会。&lt;/li&gt;
&lt;li&gt;他接管后，似乎限制了与其政治观点不合的 Alexandria Ocasio-Cortez 的推特账号。&lt;sup&gt;&lt;a href=&quot;#user-content-fn-moe&quot; id=&quot;user-content-fnref-moe&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;mastodon-大浪潮&quot;&gt;Mastodon 大浪潮&lt;/h1&gt;
&lt;p&gt;Mastodon 是一个开源的去中心化的社交网络，它的运作方式类似于电子邮件，你可以在不同的服务器上注册账号，然后与其他服务器上的用户进行交流。&lt;/p&gt;
&lt;p&gt;Mastodon 在马斯克收购前后作为一个去中心化社交网络，已然拥有了较高的声誉，在那期间已经有许多人转到了 Mastodon 上。&lt;/p&gt;
&lt;p&gt;在这波浪潮逐渐消退时，马斯克用上述行为重新点燃了这场战火，让更多人了解并迁移到了 Mastodon，7月2日仅官方实例便新增大约8万用户（数据来源 &lt;a href=&quot;https://fedidb.org/network/instance/mastodon.social&quot;&gt;FediDB&lt;/a&gt;）。&lt;/p&gt;
&lt;h1 id=&quot;给新朋友的一些建议&quot;&gt;给新朋友的一些建议&lt;/h1&gt;
&lt;p&gt;你好，联邦宇宙的新朋友！初来乍到，我觉得以下这些内容可能对你有帮助。&lt;/p&gt;
&lt;h2 id=&quot;1-mastodon与-twitter-的明显区别&quot;&gt;1. Mastodon与 Twitter 的明显区别&lt;/h2&gt;
&lt;p&gt;可能你对 Mastodon 的了解，仅限于官网的那句 &lt;em&gt;不会出售的社交网络&lt;/em&gt;，或者只是那句“Mastodon 是一个免费、开源、联邦式的去中心化社交媒体平台”。&lt;/p&gt;
&lt;p&gt;但我想说，Mastodon 与 Twitter 的区别，远不止这些。&lt;/p&gt;
&lt;p&gt;Mastodon 没有所谓‘大数据’，不会主动向你投喂内容，你需要自己去关注感兴趣的人，或者在搜索栏中搜索你感兴趣的、而且在已知范围内的话题。&lt;/p&gt;
&lt;p&gt;Mastodon 不一定会有所有你想要关注的内容和话题，也不一定能在一个实例中就能找到所有的人，这一切都取决于互通性。&lt;/p&gt;
&lt;p&gt;Mastodon 的目标不是取代 Twitter，而是为用户提供一个更加自由的社交环境，让用户能够自由地表达自己的想法，而不是被 Twitter 的算法所束缚。&lt;/p&gt;
&lt;p&gt;Mastodon 仅仅是广阔的 &lt;a href=&quot;https://en.wikipedia.org/wiki/Fediverse&quot;&gt;Fediverse&lt;/a&gt; （联邦宇宙）的一部分，它使用标准化、开放式的 ActivityPub 技术，这意味着跨平台互联成为可能。&lt;/p&gt;
&lt;p&gt;也就是说，即使你与好友不在一个实例，甚至好友不在 Mastodon 上，你也可以与其进行互动。&lt;/p&gt;
&lt;p&gt;这并不仅是一种对未来的设想，而已经成为现实：例如同样采用 ActivityPub 技术的另一些开源项目：社交媒体 &lt;a href=&quot;https://join.misskey.page/zh-CN/&quot;&gt;Misskey&lt;/a&gt;、视频平台 &lt;a href=&quot;https://joinpeertube.org/zh_Hans&quot;&gt;Peertube&lt;/a&gt;、图片分享平台 &lt;a href=&quot;https://pixelfed.org/&quot;&gt;Pixelfed&lt;/a&gt;，以及 &lt;a href=&quot;https://pleroma.social/&quot;&gt;Pleroma&lt;/a&gt;、Friendica、GNU Social、Hubzilla 等平台均与 Mastodon 互通，这些不同平台间的用户可以互动。你不是必须要在 Mastodon 实例上注册：只要在任意基于 ActivityPub 的网站注册之后，皆可访问整个联邦宇宙！&lt;/p&gt;
&lt;p&gt;有关 Mastodon 和 Twitter 功能上的差别，详见&lt;a href=&quot;https://moe23333.vercel.app/posts/twitter-to-mastodon#%E5%AF%B9%E6%AF%94%E8%A1%A8%E6%A0%BC&quot;&gt;此处&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&quot;2-找到一个合适的家&quot;&gt;2. 找到一个合适的家&lt;/h2&gt;
&lt;p&gt;你决定要加入 Mastodon 了。 你想要创建一个账户，但你发现，官方网站把你导向了一个实例列表，有许多不同的实例，这让你有些不知所措。&lt;/p&gt;
&lt;p&gt;不过，不用担心，这些实例除了在主要主题以及规则外，并没有很大的区别。&lt;/p&gt;
&lt;p&gt;你可以通过筛选条件来找到一个合适的实例，例如你可以通过语言、主题、注册是否需要申请等条件来筛选。筛选过后，应当会存有几个实例，你可以通过访问它们的主页来了解更多信息，最后根据自己的喜好来注册。&lt;/p&gt;
&lt;p&gt;你不一定只开设一个账号，你可以在不同的实例开设不同的账号，这样你就可以在不同的实例上体验不同的氛围，关注发布不同的内容。&lt;/p&gt;
&lt;p&gt;如果你实在选择困难，你可以考虑一下这些实例（排名不分先后）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mastodon.social/&quot;&gt;mastodon.social&lt;/a&gt;：官方实例，但是最近由于用户过多已经发生多次故障。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://m.cmx.im/&quot;&gt;长毛象中文站（草莓县）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://o3o.ca&quot;&gt;O3O&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://alive.bar&quot;&gt;alive.bar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bgme.me&quot;&gt;BGME&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mastodon.world&quot;&gt;mastodon.world&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mas.to&quot;&gt;mas.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;…
但是需要说明的是，Mastodon实例大多数已经被GFW所限制，只有一小部分提供了国内可访问的镜像。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;除了官方提供的实例列表外，你还可以通过 &lt;a href=&quot;https://instances.social/&quot;&gt;instances.social&lt;/a&gt; 、&lt;a href=&quot;https://fediverse.observer/&quot;&gt;Fediverse Observer&lt;/a&gt;来以更细分的条件查找实例。&lt;/p&gt;
&lt;p&gt;总之，适合自己的才是最好的。&lt;/p&gt;
&lt;h2 id=&quot;3-长期驻留&quot;&gt;3. 长期驻留&lt;/h2&gt;
&lt;p&gt;你在 Mastodon 上注册了账号，经过了一些探索，你决定留在这里。&lt;/p&gt;
&lt;p&gt;但你可能会发现，Mastodon 与 Twitter 的使用方式有比较大的不同，你可能会觉得有些不适应。&lt;/p&gt;
&lt;p&gt;你可以参考以下文章，帮助你更好地使用、熟悉 Mastodon。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://moe23333.vercel.app/posts/twitter-to-mastodon#5-mastodon-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7&quot;&gt;杂谈：从 Twitter 迁移至 Mastodon#5.Mastodon使用技巧&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.joinmastodon.org/zh-cn/&quot;&gt;Mastodon 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你想找回你在 Twitter 上且已经完成转移的好友，你可以使用 &lt;a href=&quot;https://fedifinder.glitch.me/&quot;&gt;FediFinder&lt;/a&gt; 来查找。&lt;/p&gt;
&lt;h1 id=&quot;马斯克的锁&quot;&gt;马斯克的锁&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;还记得几个月前马斯克收购了Twitter，然后大家都骂骂咧咧地跑到了Fediverse，但是没过多久依旧活跃在Twitter。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;为什么？Twitter手中拿着一张王牌，那就是Twitter经过这十几年的积累，已经拥有了一个庞大的用户群体。虽然你可以说走就走，但你关注的画师，主播等公众人物并不会轻易地放弃这一个社交平台（因为他们有能力应对Twitter发生的变化），于是这些用户就会为Twitter带来一种非常强大的用户粘性。Fediverse分布式社交的理念再先进，但是它上面的内容资源相比推特是匮乏的。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;然后这就导致用户根本没办法转移，跑到Fediverse之后依旧想方设法去从Twitter搬运推文，然后现在马斯克直接把api禁了登录墙开了，直接从链接meta数据都抓不到推文信息。可以说马斯克现在用了一把锁把用户跟Twitter牢牢锁在了一起。&lt;/em&gt;
&lt;a href=&quot;https://twitter.com/mikan_chn/status/1675328756754550785&quot;&gt;from @mikan_chn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;借此，我想说，移民潮过去以后，又会有无数的账号变为沉寂，因为马斯克现在的举措，已经降低了Twitter上的信息通过外部访问的便捷性，即使你一时在 Mastodon 等平台驻留下来，但你也会因为没有你关注的公众人物的信息而再次回到 Twitter。&lt;/p&gt;
&lt;p&gt;你可能已经被锁在 Twitter 了，这是冷酷的事实。&lt;/p&gt;
&lt;h1 id=&quot;可能的远景与展望&quot;&gt;可能的远景与展望&lt;/h1&gt;
&lt;p&gt;基于目前 Musk 整的各种幺蛾子，我想会有更多而且范围更大的的移民潮发生。&lt;/p&gt;
&lt;p&gt;但是，我想说，这些移民潮只是一时的，因为这些人并没有真正理解 Fediverse 的理念，他们只是在追逐一个所谓的“自由”而已。&lt;/p&gt;
&lt;p&gt;事实上，去中心化的背后，只是一个个“中心”的实例互相连接的相对“自由”而已。&lt;/p&gt;
&lt;p&gt;Twitter 只会应了那句 “可能会变质，但绝不会倒闭”。它会一直存在，而且会一直有人使用。&lt;/p&gt;
&lt;p&gt;未来是不确定的，以上只是猜测而已。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;So, what will happen if he continues messing up Twitter? That depends on your perspective. Some might say he is ruining the platform and driving away users and advertisers. Others might say he is improving the platform and attracting new users and investors. The future of Twitter is uncertain, but one thing is clear: Elon Musk is not afraid to stir up controversy.  —Bing&lt;/em&gt;&lt;/p&gt;
&lt;h1 id=&quot;结语&quot;&gt;结语&lt;/h1&gt;
&lt;p&gt;这篇文章只是我个人的一些看法，可能有些地方不太准确，欢迎指正。&lt;/p&gt;
&lt;p&gt;不过既然来了，不要对 Mastodon ，或者在 Fediverse 的任何一处抱有与 Twitter 相同的期待，这里是一个不同的世界。&lt;/p&gt;
&lt;p&gt;如果有缺漏或错误的地方，欢迎在评论区和 Mastodon 上的文章发布帖与我交流，我会尽快做出修改。&lt;/p&gt;
&lt;h1 id=&quot;声明&quot;&gt;声明&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;文章部分使用了 New Bing 所产生的结果，但对于其提供的信息也有所查证。&lt;/li&gt;
&lt;li&gt;文章部分使用了 GitHub Copilot 生成的内容，但仅在议论性内容上有所使用，不影响事实。&lt;/li&gt;
&lt;li&gt;文章封面使用了 Mastodon 官方文档的图片，&lt;a href=&quot;https://docs.joinmastodon.org/#federation&quot;&gt;原链接&lt;/a&gt;, &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;许可证&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;注解&quot;&gt;注解&lt;/h1&gt;
&lt;p&gt;这篇文章因为‘站在巨人的肩膀上’，才得以完成。以下是部分参考资料：&lt;/p&gt;
&lt;section data-footnotes=&quot;&quot; class=&quot;footnotes&quot;&gt;&lt;h2 class=&quot;sr-only&quot; id=&quot;footnote-label&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol&gt;
&lt;li id=&quot;user-content-fn-lidang&quot;&gt;
&lt;p&gt;此处说法来自立党的推文：&lt;a href=&quot;https://twitter.com/lidangzzz/status/1675423624977690624?s=20&quot;&gt;原文&lt;/a&gt; &lt;a href=&quot;#user-content-fnref-lidang&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 1&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-sue&quot;&gt;
&lt;p&gt;Elon Musk threatens to sue Microsoft over Twitter data - BBC：&lt;a href=&quot;https://www.bbc.com/news/business-65332207&quot;&gt;https://www.bbc.com/news/business-65332207&lt;/a&gt; &lt;a href=&quot;#user-content-fnref-sue&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 2&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-cis&quot;&gt;
&lt;p&gt;Elon Musk Deems ‘Cis’ A Twitter Slur–Here’s Why It’s Is So Polarizing：&lt;a href=&quot;https://www.forbes.com/sites/kimelsesser/2023/07/02/elon-musk-deems-cis-a-twitter-slurheres-why-its-is-so-polarizing/&quot;&gt;https://www.forbes.com/sites/kimelsesser/2023/07/02/elon-musk-deems-cis-a-twitter-slurheres-why-its-is-so-polarizing/&lt;/a&gt; &lt;a href=&quot;#user-content-fnref-cis&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 3&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;user-content-fn-moe&quot;&gt;
&lt;p&gt;&lt;a href=&quot;https://moe23333.vercel.app/posts/twitter-to-mastodon#%E5%AF%B9%E8%A8%80%E8%AE%BA%E8%87%AA%E7%94%B1%E7%9A%84%E4%BE%B5%E7%8A%AF&quot;&gt;来源&lt;/a&gt;，可能需要往下翻翻 &lt;a href=&quot;#user-content-fnref-moe&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 4&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content:encoded><category>Thinking</category><author>草方块</author></item><item><title>这些天我在wine上装MS Office时踩过的坑</title><link>https://lab.gb0.dev/blog/ms-office-on-wine</link><guid isPermaLink="true">https://lab.gb0.dev/blog/ms-office-on-wine</guid><description>（GitHub Copilot我可真谢谢你）最近在wine上尝试折腾M$ Office，把方法和过程都堆这里了，希望再也不要有人跟我一样踩这些坑了</description><pubDate>Sat, 17 Jun 2023 16:51:22 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文有一小部分内容由 &lt;a href=&quot;https://copilot.github.com/&quot;&gt;GitHub Copilot&lt;/a&gt; 生成，但是我已经尽力修改了它生成的内容，以使其更加符合实际。如果你发现了一些还是奇怪的地方，那么请不要怀疑，那就是 Copilot 的锅。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;最近突发奇想，看看能不能在Linux上用 M$ Office，然后折腾了几天，也没弄好，但是也算是有了一些经验，所以就把这些经验写在这里，希望能帮到有需要的人。&lt;/p&gt;
&lt;h1 id=&quot;情况说明&quot;&gt;情况说明&lt;/h1&gt;
&lt;p&gt;以下的经历都是在参考了&lt;a href=&quot;https://ruados.github.io/articles/2021-05/office365-wine&quot;&gt;这个教程&lt;/a&gt;和WINE Appdb上的&lt;a href=&quot;https://appdb.winehq.org/objectManager.php?iId=31&amp;sClass=application&quot;&gt;页面&lt;/a&gt;后进行的。
不过为了方便大家看，我还是整理了一下以上所述的办法，也是我在实际操作时严格执行的。&lt;/p&gt;
&lt;h2 id=&quot;咱的办法&quot;&gt;咱的办法&lt;/h2&gt;
&lt;p&gt;宿主机是 Arch Linux(on VMware），WINE版本为最近的8.9&amp;amp;8.10。&lt;/p&gt;
&lt;h3 id=&quot;启用-multilib-仓库&quot;&gt;启用 &lt;a href=&quot;https://wiki.archlinux.org/title/Official_repositories#multilib&quot;&gt;multilib&lt;/a&gt; 仓库&lt;/h3&gt;
&lt;p&gt;修改 /etc/pacman.conf 文件，取消注释以下两行：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:34ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;[multilib]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;Include = /etc/pacman.d/mirrorlist&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;[multilib]Include = /etc/pacman.d/mirrorlist&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h3 id=&quot;安装依赖&quot;&gt;安装依赖&lt;/h3&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:57ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;pacman&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;-S&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;wine&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;winetricks&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;samba&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;wine-mono&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;wine-gecko&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;sudo pacman -S wine winetricks samba wine-mono wine-gecko&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h3 id=&quot;配置-wine-环境&quot;&gt;配置 WINE 环境&lt;/h3&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:21ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#9039C9&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; WINEARCH&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;win32&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;export WINEARCH=win32&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;(我这里测试时发现使用32位环境时成功启动安装程序概率更高，所以就一直用32位环境了）&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;注意：这个环境变量在64位环境的wine启动后可能失效，所以需要在启动前提前设置，之后无需再设置。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;如果你已经&lt;code&gt;wineboot&lt;/code&gt;启动和配置了默认的PREFIX，建议在新的PREFIX下执行下面的操作，以免出现意外，执行以下指令来切换到新的prefix：&lt;/p&gt;&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:29ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#9039C9&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; WINEARCH&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;win32&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;~/.msoffice&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#9039C9&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; WINEPREFIX&lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#256F74&quot;&gt;=~&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;/.msoffice&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;export WINEARCH=win32mkdir ~/.msofficeexport WINEPREFIX=~/.msoffice&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;建议在运行前使用 &lt;code&gt;winecfg&lt;/code&gt; 调整兼容性到 Windows 8/8.1，以便于获得更好的兼容性，但是不是必须的，Windows 10兼容性也可正常运行一部分Office版本。&lt;/p&gt;
&lt;h3 id=&quot;准备office安装包&quot;&gt;准备Office安装包&lt;/h3&gt;
&lt;p&gt;这个不赘述。&lt;/p&gt;
&lt;p&gt;只是要注意你需要下载&lt;strong&gt;32位&lt;/strong&gt;的&lt;strong&gt;离线&lt;/strong&gt;安装包，因为在线安装包极有可能因为网络连接问题导致无法安装。&lt;/p&gt;
&lt;p&gt;推荐前往 Internet Archive / MSDN (非官方的 MSDN I tell you 也可) / VLSC 下载。&lt;/p&gt;
&lt;p&gt;当然，你也可以使用Office Tool Plus部署Office，但是我这里一直无法启动，所以不保证能成功。&lt;/p&gt;
&lt;div class=&quot;callout callout-tip&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;对于 Office Tool Plus 用户，建议使用生成ISO的方式，或者直接把它所在的&lt;strong&gt;整个&lt;/strong&gt;目录复制到便于访问的地方。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h3 id=&quot;安装一些-tricks&quot;&gt;安装一些 tricks&lt;/h3&gt;
&lt;p&gt;对于 Office 2019 以前的版本，使用以下指令安装：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:57ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;winetricks&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;cmd&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;corefonts&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;msxml6&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;riched20&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;gdiplus&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;cjkfonts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;winetricks cmd corefonts msxml6 riched20 gdiplus cjkfonts&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;对于自定义PREFIX的用户，需要在指令前加上&lt;code&gt;WINEPREFIX=~/.msoffice&lt;/code&gt;，以便于wine能够找到PREFIX。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;之后的版本，根据我的翻车经验，可能需要部分UWP组件。&lt;/p&gt;
&lt;p&gt;wine：你是故意找茬是不是？&lt;/p&gt;
&lt;p&gt;所以，不建议拿来试&lt;/p&gt;
&lt;h3 id=&quot;开始安装&quot;&gt;开始安装&lt;/h3&gt;
&lt;p&gt;直接运行安装程序即可，但建议还是在终端上运行，以便于查看错误信息。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:23ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;wine&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;/path/to/setup.exe&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;wine /path/to/setup.exe&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;callout callout-warning&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;对于自定义PREFIX的用户，需要在指令前加上&lt;code&gt;WINEPREFIX=~/.msoffice&lt;/code&gt;，以便于wine能够找到PREFIX。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h2 id=&quot;注意事项&quot;&gt;注意事项&lt;/h2&gt;
&lt;p&gt;不要照搬命令！不要照搬命令！不要照搬命令！&lt;/p&gt;
&lt;p&gt;不同的发行版对于&lt;code&gt;winbind&lt;/code&gt;的提供方式是不一样的！
比如说，Arch Linux是通过samba来提供的，而Ubuntu是通过winbind来提供的。&lt;/p&gt;
&lt;p&gt;Office 2019还需要补充一些文件和配置，但是我这里始终没安装成功过，如果你恰好安装成功了，可以参考&lt;a href=&quot;https://ruados.github.io/articles/2021-05/office365-wine&quot;&gt;这个教程&lt;/a&gt;去补全dll文件。&lt;/p&gt;
&lt;h1 id=&quot;我的翻车经历&quot;&gt;我的翻车经历&lt;/h1&gt;
&lt;p&gt;按照以上的办法执行后，以下就是咱的经历了：&lt;/p&gt;
&lt;h2 id=&quot;69&quot;&gt;6.9&lt;/h2&gt;
&lt;p&gt;MS Office 365 安装在wine上运行报告：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;(MS 365 同 2021)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2021 2019 强制要求 Windows 10/11 兼容性，且需要Wine没有的 uwp 库（ms烦内）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2016 可正常运行，就是密钥难找（网上的都失效了，而且无法跳过）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;其它暂未测试&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office Tool Plus GUI 无法正常启动（可能是获取不到账户头像等信息），但是用 Console 可以部署，参考一下官方文档即可&lt;/p&gt;
&lt;p&gt;(Wine版本为8.8 staging，一律使用官方的iso文件/exe安装器，在endeavour os进行测试)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;610&quot;&gt;6.10&lt;/h2&gt;
&lt;p&gt;今日进展：滚了一次更新不知道为啥今天2021安装包调完兼容性能打开了🌚，然后报错 0-2031 (17006)&lt;/p&gt;
&lt;p&gt;365仍旧不行，OTP 似乎由于硬件渲染炸了无法启动&lt;/p&gt;
&lt;p&gt;2016突然跑不了了，在下新的镜像（之前拿的白板预装&lt;/p&gt;
&lt;p&gt;以及奇怪的是2019其实在Windows 8.1能原装的… 但在wine上就跑不了&lt;/p&gt;
&lt;p&gt;(wine更新到了8.9 staging，安装了samba包以支持winbind)&lt;/p&gt;
&lt;h2 id=&quot;612&quot;&gt;6.12&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;在经历一天的虚拟机爆炸和重配虚拟机我又重装回了原版Arch&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;安装基本的tricks后： 2019和2016都在显示splash后崩溃&lt;/p&gt;
&lt;p&gt;&lt;del&gt;在补了亿些组件后，无论如何我再也打不开安装程序了…&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;Update：安装包打开后显示splash后无响应，报错日志：
&lt;a href=&quot;https://gist.github.com/GrassBlock1/199e3dd24cb4ed3728e54955ff9b37d9&quot;&gt;https://gist.github.com/GrassBlock1/199e3dd24cb4ed3728e54955ff9b37d9&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这次OTP倒是有一个空窗口加载，似乎是拉不了更新导致的，终端报错：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;(The SSL connection could not be established, see inner exception.). Inner exception: The SSL connection could not be established, see inner exception.. Inner exception: The requested security package is not supported.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Office 2013-2021 C2R Install&lt;/code&gt; （不是官方的那个）这个东西倒是能用，但我一直下载不了office，终端表示它一直在下东西&lt;/p&gt;
&lt;h2 id=&quot;613&quot;&gt;6.13&lt;/h2&gt;
&lt;p&gt;今日如故，但是由于
&lt;code&gt;service:scmdatabase_autostart_services Auto-start service L&amp;quot;ClickToRunSvc&amp;quot; failed to start: 2&lt;/code&gt;，服务炸了&lt;/p&gt;
&lt;p&gt;于是试了下bottles，默认应用环境（Windows 10 兼容性）下，得补字体&lt;/p&gt;
&lt;p&gt;大多直接显示完splash闪退，2016 安装得到 &lt;code&gt;30088-1015(0)&lt;/code&gt; 报错。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://forum.usebottles.com/t/microsoft-office-365/239&quot;&gt;离线安装包似乎可以跑&lt;/a&gt; ，所以用部署工具构建了一份看看，然后发现这不和我用OTP部署的差不多嘛（（（&lt;/p&gt;
&lt;p&gt;Office 2013-2021 C2R Install 和昨天差不多，OTP GUI跑不了…&lt;/p&gt;
&lt;h2 id=&quot;614&quot;&gt;6.14&lt;/h2&gt;
&lt;p&gt;&lt;del&gt;经过群友的指点，今天只测试了2016，别的大抵差不多…&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;wine回退到稳定版(9.10)了，照着&lt;a href=&quot;https://appdb.winehq.org/objectManager.php?sClass=version&amp;iId=34941&quot;&gt;appdb&lt;/a&gt;上说的改成了Windows 7兼容性，补充了组件&lt;/p&gt;
&lt;p&gt;试着开了新的Bottles容器，调完32位和兼容性直接打不开了&lt;/p&gt;
&lt;p&gt;我现在严重感觉我从“msdn，我告诉你”下的镜像下错了，原版wine直接跑不了，一直无响应，报错大抵是和前天的一样&lt;/p&gt;
&lt;p&gt;&lt;em&gt;winetricks 的 .NET 2.0和4.0装不了（mono卸载了也不行）&lt;/em&gt;
&lt;code&gt;warning: Note: command wine dotNetFx40_Full_x86_x64.exe returned status 1. Aborting.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;试了一下果核的绿色版，就不知道怎么回事 &lt;code&gt;mode&lt;/code&gt; 命令都没有&lt;/p&gt;
&lt;p&gt;OTP也打不开…无论是从原环境还是新的Bottles环境，想必是坏掉了…&lt;/p&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;最后还是没成功…&lt;/p&gt;
&lt;p&gt;各位如果有什么好办法的话，欢迎在评论中提出来，我会尽快测试的…&lt;/p&gt;
&lt;p&gt;不过现在看来我还是得去找个Windows的镜像来装虚拟机了，或者等等看有没有人能把它成功的跑起来 ，又或者我去装WPS国际版吧（（（&lt;/p&gt;
&lt;p&gt;（这是Copilot补的）&lt;/p&gt;
&lt;p&gt;感觉运气成分会比较大，毕竟找到的资料大多都是比较顺利就安装的，尽管它们最后更新的时间都是在2021年以前，但是我还是想尝试一下，毕竟我也不想去装WPS国际版（（（&lt;/p&gt;
&lt;p&gt;后续，如果有机会实体安装Linux的话，我会再来更新的，大家多多关注更新喵&lt;/p&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>2022我的年度总结 - 前行</title><link>https://lab.gb0.dev/blog/2022-move-forward</link><guid isPermaLink="true">https://lab.gb0.dev/blog/2022-move-forward</guid><description>“长路浩浩荡荡，万事尽可期待。”</description><pubDate>Tue, 27 Dec 2022 10:16:22 GMT</pubDate><content:encoded>&lt;p&gt;&lt;/p&gt;
&lt;h2 id=&quot;闲话&quot;&gt;闲话&lt;/h2&gt;
&lt;p&gt;一年又要过去了…
今年的年底和往年都不一样，看到的不是“战疫有我”，而是“集体感染”，各路网友交流着感染经验，好不热闹。&lt;/p&gt;
&lt;p&gt;还好我是从学校回来的第三天就感染，现在好了的“第一批”淘汰者（&lt;/p&gt;
&lt;p&gt;中旬的时候就想着写个年终总结，不过我首先想的是看看各个平台有没有出“年度报告”一类的东西，结果到了快圣诞节的时候Github才出一个，29号的时候网易云和b站才出（b站是出了但没完全出，就出了个up主专属的），所以只能到这个时候去写…&lt;/p&gt;
&lt;p&gt;其实这一年过得比较浑水摸鱼的感觉，大多时间都是在混日子，感觉没什么意义（除了学习新东西之外），所以总结也不会很多（逃&lt;/p&gt;
&lt;h2 id=&quot;blog--lab&quot;&gt;Blog &amp;#x26; Lab&lt;/h2&gt;
&lt;p&gt;这一年活动比较少，有一部分原因是被即时通讯捆住了（我是说Telegram），还有一部分原因是闲的没事就看b站（冷知识：直到我现在写这篇总结时我还在手机放一边看b站，&lt;del&gt;效率低下&lt;/del&gt;（内心os：键盘进了什么东西似的，有些键特别难按），还有一部分原因是几乎没什么时间（大多数时间都在封校，呜呜）&lt;/p&gt;
&lt;p&gt;今年只有实验室（就是你现在浏览的这个网站）更新（水）了两篇文章。&lt;/p&gt;
&lt;p&gt;但是草稿箱里还有12篇文章…我会逐步完成这些文章的。&lt;/p&gt;
&lt;p&gt;主站重建了一次，把引擎从依靠php环境的typecho换作了纯静态的jekyll，因为服务器快到期了，没钱续期，并且删掉了一些残缺文&amp;#x26;水文，打算转型做技术站。（估计之后还会换一次框架）&lt;/p&gt;
&lt;p&gt;至于之前那些内容已经交由&lt;a href=&quot;https://save-web.org&quot;&gt;Save The Web 项目&lt;/a&gt; 存档，我也会择机放出。&lt;/p&gt;
&lt;p&gt;新的一年也要有新外观新体验，所以就把实验室在这两天又折腾了一下，比如说换成&lt;a href=&quot;https://nordtheme.com&quot;&gt;Nord&lt;/a&gt;配色，加一些侧边小部件什么的，可以看下下面的提交记录：
&lt;img alt=&quot;实验室提交记录&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1927px) 1927px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1927&quot; height=&quot;1554&quot; src=&quot;https://lab.gb0.dev/_astro/conclusion-lab-commits.qknhGZtc_Xg81P.webp&quot; srcset=&quot;/_astro/conclusion-lab-commits.qknhGZtc_1UePcv.webp 640w, /_astro/conclusion-lab-commits.qknhGZtc_ZvaHXr.webp 750w, /_astro/conclusion-lab-commits.qknhGZtc_Z2mBY4c.webp 828w, /_astro/conclusion-lab-commits.qknhGZtc_Z1zCQ8.webp 1080w, /_astro/conclusion-lab-commits.qknhGZtc_I8gVb.webp 1280w, /_astro/conclusion-lab-commits.qknhGZtc_jic6m.webp 1668w, /_astro/conclusion-lab-commits.qknhGZtc_Xg81P.webp 1927w&quot;&gt;
&lt;em&gt;你们这是什么rclone啊传输速度那么慢（？）&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;devices&quot;&gt;Devices&lt;/h2&gt;
&lt;p&gt;今年“很意外”地让家长买了台laptop（其实本想着23年高考结束再买，因为原先被送的Thinkpad还可以用一阵子，但是和家长这么一说，暑假快结束的时候便多了台设备）
目前那台ThinkPad正在吃灰，过两天想办法让它发光发热（&lt;/p&gt;
&lt;p&gt;经过两个月辗转，从群友处购得一块~~“大号手环”~~TicWatch Pro，目前用着还可以（到快年底才到，寄）&lt;/p&gt;
&lt;p&gt;然后坏消息是用了三年的嗡嗡嗡手机在临近12月的时候，经历了两次摔落事件后后盖支离破碎，屏幕也重重划痕，有时甚至部分区域触摸不起反应，方向传感器有一段时间也坏了，不过“又不是不能用”，对于这件事也有一些反思：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我想还是说点什么好…这次家长终于忍无可忍，一气之下将咱的手机重重摔在水泥地上，后盖已经面目全非了（没图），继上次失手之后又受损伤还没多久，我是真的没想到，它或许是伤残最严重的设备了吧，而到现在它还是能用的，真是个奇迹…
我不否认我自己要好好学习这个事实，而我真的是管不住自己，距离高烤还有不到半年我却还在这里无所事事，然后家长的苦心我也能理解，哎，算了，又不是不能用，但它估计已经无法在经受什么物理上的灾难冲击了吧，扬言“摔碎碎的”也是家长…
脑子彻底乱了。
设备已经没有置换的价值了…家里也没有钱，我自己也没有，所以就不异想天开了，还是务实一些吧，谁又知道明天会怎么样呢…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;原文可见于&lt;a href=&quot;https://t.me/realGrassblock/5371&quot;&gt;咱的频道&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;gaming&quot;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;这一年里仍旧没有认真的游玩过一款游戏，偶尔会到 Minecraft 看看之前自己的空岛建筑，然后乱玩&lt;/p&gt;
&lt;p&gt;退坑了 Cytoid，因为没什么时间去搓谱子，年初的时候尝试了下经常出没在推荐的Phigros（就连这个词我都是照抄官方Bilibili账号的名字才能正确拼写），但大概8月份的时候也因为同样的原因退坑。&lt;/p&gt;
&lt;p&gt;大概同时期的时候入坑了某群群友们一直在玩的Project Sekai : Colorful Stage! （刚刚查了一下wiki，好像 aka &lt;a href=&quot;https://wikiless.northboot.xyz/wiki/Hatsune_Miku%3A_Colorful_Stage!&quot;&gt;Hatsune Miku: Colorful Stage!&lt;/a&gt;？）感觉还可以吧，但由于Huawei和它之前的子厂公司生产的设备好像都有玩音游断触的问题，所以有些时候还是很头疼的。然后就是曲库，由于咱对日文歌曲不大了解，听过的歌很少，&lt;del&gt;不过玩音游谁在乎曲库啊&lt;/del&gt;，也只是偶尔拿一些熟悉的来打。&lt;/p&gt;
&lt;p&gt;但是离谱的是，无论prefect率有多高，评分就没出过B，直到我在我的自介当中写到这个情况时，我才从一群友那里知道评分没什么用（&lt;/p&gt;
&lt;p&gt;laptop上只整了个minecraft，存档虽说能和基岩版互通，但我终究还是没把存档复制过来（&lt;/p&gt;
&lt;p&gt;一直在想着重制一下咱的 Minecraft 皮肤，但始终没着手实施，或许这两天会弄吧。&lt;/p&gt;
&lt;h2 id=&quot;music&quot;&gt;Music&lt;/h2&gt;
&lt;p&gt;恭喜我成功住进了网易云（bushi&lt;/p&gt;
&lt;p&gt;现今的我的网易云已经被我调整成一个只能听英文歌的应用（？，当然偶尔会听些日文歌和几年前以及00年代的中文歌（现在的歌曲我表示还是算了，我还是喜欢旧曲子（（&lt;/p&gt;
&lt;p&gt;网易云今年年度总结的一小部分（今年做的我感觉有些不大可信的样子，所以大家看看就好）：&lt;/p&gt;
&lt;iframe src=&quot;https://social.ongov.ca/@grassblock/109595505983718631/embed&quot; class=&quot;mastodon-embed&quot; style=&quot;width: 100%; border: 0;height: 521px&quot; width=&quot;400&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;em&gt;提示:&lt;/em&gt;
&lt;em&gt;如果您无法正常存取上面的嘟文，可以点击&lt;a href=&quot;https://social.ongov.ca/@grassblock/109595505983718631&quot;&gt;此处&lt;/a&gt; &lt;a href=&quot;https://o3o.ca/@grassblock/109595505983718631&quot;&gt;镜像（需要自备网络环境）&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;fediverse&quot;&gt;Fediverse&lt;/h2&gt;
&lt;p&gt;{% timeline 2022,blue %}&lt;/p&gt;&lt;!-- timeline 10-14 --&gt;
&lt;p&gt;作为逃避杜叔叔封号铁拳的避难所，又出于一些个人原因，我重新启用了2021年&lt;del&gt;尾随一友&lt;/del&gt;注册的嘟站(o3o.ca)账户（之前不怎么用），作为 Telegram 频道的平替（原本打算存档，后来取消这个计划了），尝试发一些日常向内容。
&lt;em&gt;(@&lt;a href=&quot;mailto:grassblock@o3o.ca&quot;&gt;grassblock@o3o.ca&lt;/a&gt; 欢迎关注)&lt;/em&gt;&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 11-7 --&gt;
&lt;p&gt;尝试用rsshub和&lt;a href=&quot;https://github.com/edsu/feediverse&quot;&gt;feediverse&lt;/a&gt;在本地跑了个Telegram频道转发到Mastodon的bot，借此获得了自己在Fediverse的第一个机器人账号 @&lt;a href=&quot;mailto:blockcao@masto.ai&quot;&gt;blockcao@masto.ai&lt;/a&gt; 。&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 11-17 --&gt;
&lt;p&gt;看到嘟站的管理员salt的&lt;a href=&quot;https://o3o.ca/@salt/109352350086909522&quot;&gt;一篇帖子&lt;/a&gt;，了解到WriteFreely这个平台，就&lt;del&gt;脑子一热&lt;/del&gt;注册了一个账户，但是一直在考虑个人简介的事情就没有写什么东西，过两天把文章搬过去一些。&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 12-7 --&gt;
&lt;p&gt;因为学校里出现疑似而回家。Fediverse 账户进入高产期，基本上每天看看嘟站。bot在停运近一个月之后重新运作了起来。&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 12-17 --&gt;
&lt;ul&gt;
&lt;li&gt;Yuuta 开了个 Mastodon实例，&lt;del&gt;凑了下热闹&lt;/del&gt;，有了第二个账户（现在不怎么用了）&lt;/li&gt;
&lt;li&gt;从一篇博文里听说了Misskey 实例 “喵窝”，本着探索的精神打算注册，便发嘟文询问已经注册的人邀请码，没有回应&lt;/li&gt;
&lt;li&gt;关注了一些从Twitter逃亡到Fediverse的眼熟的人&lt;/li&gt;
&lt;/ul&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 12-19 --&gt;
&lt;p&gt;开始折腾各种Mastodon Android客户端，最终决定使用Tusky的测试版本，并逐步抛弃许久未更新的Avlanche。&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 12-20 --&gt;
&lt;p&gt;在一个朋友的帮助下（指用他的邀请码）注册了“喵窝”账号，在进行一些简单的摸索和设置后，决定这个账号作为发布技术性（？）内容的分身，也通过此交到一些新朋友。
&lt;em&gt;(@&lt;a href=&quot;mailto:grassblock@nya.one&quot;&gt;grassblock@nya.one&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;&lt;!-- endtimeline --&gt;&lt;!-- timeline 12-28 --&gt;
&lt;p&gt;经过几天寻觅以及折腾转发程序之后，在一个Misskey实例上上线了一个新的bot，将Telegram频道转发从之前的bot分离出来（因为tg到mastodon当时没找到什么太好的实现），并转移到这里，原bot暂时闲置，另有安排。&lt;/p&gt;&lt;!-- endtimeline --&gt;
&lt;p&gt;{% endtimeline %}
之后便是日常性使用了，没什么好说的。&lt;/p&gt;
&lt;p&gt;不过回想起来，来 Fediverse 除了有点探索的意味，更多的是对自由，不受制于_一些_“大公司”的一种渴求（尤其是看到Musk收购Twitter后所做的一切有关变动之后），同时这也让我有了更多的选择，看到了更大的世界。
正如这篇帖子：&lt;/p&gt;
&lt;iframe src=&quot;https://rainyme.ca/notes/9aegeottyd&quot; style=&quot;width: 100%; border: 0; height: 512px&quot; width=&quot;400&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;em&gt;（感谢 @hao-tian提出）如果您无法正常存取，请点击&lt;a href=&quot;https://rainyme.ca/notes/9aegeottyd&quot;&gt;这里&lt;/a&gt;跳转到原帖。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;对于遵守x-frame/CSP的现代浏览器（如Firefox、edge），如果无法显示，请点击相应的“在新标签页打开”/“在新窗口中打开”，或者跳转到原帖&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;tech&quot;&gt;Tech&lt;/h2&gt;
&lt;p&gt;依旧什么都没认真学（&lt;/p&gt;
&lt;p&gt;一直想补完某人说的前端三剑客（也即 HTML、CSS、JS，之前只掌握了一些浅显的知识），但是苦于没有利用好时间一直没能实现，之后的React计划也就随之推迟了。&lt;/p&gt;
&lt;p&gt;新的一年除了补完这些内容外，还会尝试众多的前端框架（？），最后选项一个趁手的掌握下去，至于时间嘛，像海绵里的水，只要愿挤，总是有的。&lt;/p&gt;
&lt;p&gt;\后端一点没动…打算先&lt;del&gt;当脚本小子&lt;/del&gt;学习诸如Python等等脚本语言，然后整点大活，学点C++和Java（不过可能是明年的事情了）&lt;/p&gt;
&lt;h2 id=&quot;circles&quot;&gt;Circles&lt;/h2&gt;
&lt;p&gt;常年混的b站比较能反映我所在的圈子和我看的内容，所以我们先从它的年度总结开始说：&lt;/p&gt;
&lt;iframe src=&quot;https://social.ongov.ca/@grassblock/109612705316431782/embed&quot; class=&quot;mastodon-embed&quot; style=&quot;width: 100%; border: 0; height: 512px&quot; width=&quot;400&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
~~确实看得有点多了~~
&lt;p&gt;像游戏、科技什么的都不意外，偶尔看点有意思的鬼畜（但是这并不包括某些极其阴间的鬼畜），可我想了半天也想不通，为什么我吃饭的时候看的下饭视频被归入了生活区…&lt;/p&gt;
&lt;p&gt;但是这些由大数据生成的东西也不完全准确。&lt;/p&gt;
&lt;p&gt;虽然没有太花时间去阅读、观看大部头的科幻作品，但是圈子里的事情还是有接触的，不敢说特别了解。&lt;/p&gt;
&lt;p&gt;基石幻报这边我只完成了一篇交托的文章，一直存有几个想法但我暂时没找到时间形成语言和其它发言人交流。&lt;/p&gt;
&lt;p&gt;想了一个比较近未来的设定(&lt;del&gt;为什么又要创死自己一次&lt;/del&gt;)，等过两天公布一下。&lt;/p&gt;
&lt;p&gt;科幻世界的话，不知是因为销量太低了还是学校出手了，学校里的书店已经很少看到它们的踪影了，不过比较好的消息是我找到了电子版，嘿嘿（&lt;/p&gt;
&lt;p&gt;TGCN 圈子也和其它圈子一样，内部是比较混乱的，不过林子大什么鸟都有，倒也可以理解。&lt;/p&gt;
&lt;p&gt;内群的话经过几次事件之后已经近于荒废，偶尔有人会想起来在里面说几句话这样子。
&lt;em&gt;&lt;del&gt;顺便眼熟的人可以找咱要内群链接&lt;/del&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;DP7经过n次周目后逐渐稳定下来，但是谁又说不准什么时候又会跑路（&lt;/p&gt;
&lt;p&gt;不过这几次改换对我的启示还蛮大的，或许以后经营社区会用得上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成员活跃性和质量对于社群来说是极其重要的，因为人是主要核心&lt;/li&gt;
&lt;li&gt;内部管理制度完善，但不至于让成员产生束缚&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这一年正式成为了b站up主，也算是一种大胆的尝试吧，满打满算这两天的话也快一年了，虽然没有什么太大的热度，但我想也好。&lt;/p&gt;
&lt;p&gt;先看看年度报告吧：&lt;/p&gt;
&lt;iframe src=&quot;https://nya.one/notes/99ceeyci4w&quot; style=&quot;width: 100%; border: 0; height: 512px&quot; width=&quot;400&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;em&gt;如果无法正常显示上面的内容请尝试更换网络环境，或者访问&lt;a href=&quot;https://nya.one/notes/99ceeyci4w&quot;&gt;原帖&lt;/a&gt;。（感谢 @hao_tian指出）&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;对于遵守x-frame/CSP的现代浏览器（如Firefox、Edge），如果无法显示，请点击相应的“在新标签页打开”/“在新窗口中打开”，或者访问原帖。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;恕我直言，现在科技区，尤其是操作系统区（包括但不限于Windows各个版本、Linux发行版），现在追求就是快，看谁能首发一个操作系统的评测，以及出相关的教程（虽然细分来看这是软件区的范畴），但是由于咱极其喜欢当鸽子咕咕咕，于是首发什么的便不可能，现在就处于一种有稿不敢发怕撞车的一种情况导致废稿众多，等我有时间看看能不能改出两个（&lt;/p&gt;
&lt;h2 id=&quot;结语&quot;&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;em&gt;&lt;del&gt;没活了，写点套话，因为也没几个人看，这都快开工/开学了&lt;/del&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;一年一度的 Special thx（无恰饭）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Obisidian ：以markdown为基底的知识库管理，具有丰富的功能和强大的可扩展性&lt;/li&gt;
&lt;li&gt;M$ 365 套件 设计器：为本文的封面提供设计灵感&lt;/li&gt;
&lt;li&gt;缓更时前来交流的群友们&lt;/li&gt;
&lt;li&gt;在看的你们&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;没看够？欢迎阅读博主写的&lt;a href=&quot;https://www.notion.so/wsblockg/2022-Firefox-A-Z-98ec0ff852f44cb0891ce9e65e4e4523&quot;&gt;2022 : 我的 Firefox 从 A 到 Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;或者看看其它人写的年度总结：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://zwh.moe/posts/default/review-2022&quot;&gt;年终总结 | 不断拉扯的 2022 - 捞人的小站&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.yuuta.moe/2022/12/31/the-year-of-2022/&quot;&gt;我与二零二二的故事 · Garden in the Wonderland&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://nekoq.eu.org/blog/2022&quot;&gt;2022 年的总结，但是没想好标题，还加更了内容（ · 湛蓝的调色板&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
</content:encoded><category>Daily</category><author>草方块</author></item><item><title>拿到一个轮子传教用的U盘</title><link>https://lab.gb0.dev/blog/a-udisk-from-xxx</link><guid isPermaLink="true">https://lab.gb0.dev/blog/a-udisk-from-xxx</guid><description>捡漏了属于是（</description><pubDate>Fri, 25 Feb 2022 15:27:37 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;warning : 你草并不建议通过此种方式来捡漏，并且，这是邪教！&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;昨天上午的时候，家长刚回家拿着一个小的包装袋，并说道：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;xxx（某邪教创始人） 不是已经逃到美国去了吗，怎么还有xx功&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;一边说着，拆开了包装：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/IMG_20220227_200846.Bsr2Jvlj_ZDCytm.webp&quot; srcset=&quot;/_astro/IMG_20220227_200846.Bsr2Jvlj_20smB6.webp 640w, /_astro/IMG_20220227_200846.Bsr2Jvlj_ZOLa7.webp 750w, /_astro/IMG_20220227_200846.Bsr2Jvlj_1dnPOR.webp 828w, /_astro/IMG_20220227_200846.Bsr2Jvlj_Z2ifOsG.webp 1080w, /_astro/IMG_20220227_200846.Bsr2Jvlj_Z1b6k14.webp 1280w, /_astro/IMG_20220227_200846.Bsr2Jvlj_Z282gyI.webp 1668w, /_astro/IMG_20220227_200846.Bsr2Jvlj_bT9pA.webp 2048w, /_astro/IMG_20220227_200846.Bsr2Jvlj_2dPVPR.webp 2560w, /_astro/IMG_20220227_200846.Bsr2Jvlj_ZDCytm.webp 3000w&quot; alt=&quot;图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 3000px) 3000px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;3000&quot; height=&quot;4000&quot;&gt;
&lt;img src=&quot;https://lab.gb0.dev/_astro/IMG_20220227_200857.Csx5h2lH_1lh7k.webp&quot; srcset=&quot;/_astro/IMG_20220227_200857.Csx5h2lH_Z24mLLf.webp 640w, /_astro/IMG_20220227_200857.Csx5h2lH_Ywdgt.webp 750w, /_astro/IMG_20220227_200857.Csx5h2lH_2dJPgs.webp 828w, /_astro/IMG_20220227_200857.Csx5h2lH_Z1CgXR0.webp 1080w, /_astro/IMG_20220227_200857.Csx5h2lH_Zv7tpn.webp 1280w, /_astro/IMG_20220227_200857.Csx5h2lH_Z1s3pX2.webp 1668w, /_astro/IMG_20220227_200857.Csx5h2lH_QS01h.webp 2048w, /_astro/IMG_20220227_200857.Csx5h2lH_Z2bmlmn.webp 2560w, /_astro/IMG_20220227_200857.Csx5h2lH_1lh7k.webp 3000w&quot; alt=&quot;反面图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 3000px) 3000px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;3000&quot; height=&quot;4000&quot;&gt;&lt;/p&gt;
&lt;p&gt;里面有一份介绍和使用说明，说是“自费制作”，能“看清真相”的“自由门”和一些传教视频，可以说是入门级教程了。&lt;/p&gt;
&lt;p&gt;还附赠了一个 type-C OTG转接头，为手机使用。&lt;/p&gt;
&lt;p&gt;这便是 U盘 本体了，样式我觉得还可以：
&lt;img src=&quot;https://lab.gb0.dev/_astro/IMG_20220227_210755.XEROwLFR_ZRFYKg.webp&quot; srcset=&quot;/_astro/IMG_20220227_210755.XEROwLFR_YuWIJ.webp 640w, /_astro/IMG_20220227_210755.XEROwLFR_Z1mB3qI.webp 750w, /_astro/IMG_20220227_210755.XEROwLFR_2vhQKO.webp 828w, /_astro/IMG_20220227_210755.XEROwLFR_ZIoUtA.webp 1080w, /_astro/IMG_20220227_210755.XEROwLFR_Z1zxerN.webp 1280w, /_astro/IMG_20220227_210755.XEROwLFR_23K0EY.webp 1668w, /_astro/IMG_20220227_210755.XEROwLFR_15ENBk.webp 2048w, /_astro/IMG_20220227_210755.XEROwLFR_28O6Sk.webp 2560w, /_astro/IMG_20220227_210755.XEROwLFR_ZRFYKg.webp 4000w&quot; alt=&quot;本体&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 4000px) 4000px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;4000&quot; height=&quot;3000&quot;&gt;&lt;/p&gt;
&lt;p&gt;我对此突然就来了兴趣，并找机会测试了一下，结果…&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20220227_201002.C-0dZa54_2cfcxd.webp&quot; srcset=&quot;/_astro/Screenshot_20220227_201002.C-0dZa54_ZuxQlu.webp 640w, /_astro/Screenshot_20220227_201002.C-0dZa54_WS7JB.webp 750w, /_astro/Screenshot_20220227_201002.C-0dZa54_Zv69Cy.webp 828w, /_astro/Screenshot_20220227_201002.C-0dZa54_2cfcxd.webp 950w&quot; alt=&quot;图片&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 950px) 950px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;950&quot; height=&quot;522&quot;&gt;&lt;/p&gt;
&lt;p&gt;不是，你的传教视频呢？你的自由门呢？怎么啥都没有啊（&lt;/p&gt;
&lt;p&gt;再说你这只有16G是不是正常的话放不下（逃&lt;/p&gt;
&lt;p&gt;&lt;del&gt;轮子太抠门了&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;不知道各位注意到没有，包装袋背面有这么一段英文：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;480&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;为了验证这段说法的真实性 我特意下载了 CrystalDiskMark 来测：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20220226_153939.CI6Im15f_2k8ugD.webp&quot; srcset=&quot;/_astro/Screenshot_20220226_153939.CI6Im15f_2k8ugD.webp 528w&quot; alt=&quot;测试结果仅供参考&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 528px) 528px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;528&quot; height=&quot;394&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;不得不说就这点是比较准确的，但还不如某人送我的呢&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;不过这个测试跑了2个小时，看来做大型工作是不太可能了。&lt;/p&gt;
&lt;p&gt;还发现一个问题：
&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20220227_203523.D-l39jLJ_2wDbzF.webp&quot; srcset=&quot;/_astro/Screenshot_20220227_203523.D-l39jLJ_2wDbzF.webp 347w&quot; alt=&quot;这文件系统&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 347px) 347px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;347&quot; height=&quot;205&quot;&gt;
这文件系统竟是FAT32，我不活了（（（&lt;/p&gt;
&lt;p&gt;最后总结一下吧，毕竟是从轮子那里白嫖的，要什么自行车（&lt;/p&gt;
&lt;p&gt;不过正如开头所说，不建议去捡这种漏，毕竟捡到 USB Killer ，就不好玩了。&lt;/p&gt;
&lt;p&gt;最近这几年的确很少见到轮子及其传教产物了（包括前几年非常猖獗的农村），这点说明国家的反邪教工作做的挺好，但似乎也止步于此了。&lt;/p&gt;
&lt;p&gt;可能，在某个时间，这些暗处的人还会出来，危害一方吧。&lt;/p&gt;</content:encoded><category>Daily</category><author>草方块</author></item><item><title>过年好！</title><link>https://lab.gb0.dev/blog/happy-lunar-new-year</link><guid isPermaLink="true">https://lab.gb0.dev/blog/happy-lunar-new-year</guid><description>在此新年之际，想写的东西。</description><pubDate>Sun, 30 Jan 2022 19:38:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;给您送上新春祝福，祝您虎年大吉，财源广进，阖家团圆！&lt;/p&gt;
&lt;p&gt;备注：&lt;/p&gt;
&lt;p&gt;1、此祝福是以个人身份送上的，不代表任何组织、机构的立场。&lt;/p&gt;
&lt;p&gt;2、「新春」指中国农历（Chinese Lunar Calendar）所确立的时间范围，并不特指某一节日。如果您基于自身宗教信仰、文化认同和生活习惯并无庆祝中国农历新年的习惯，请勿将其理解为干涉个人自由。&lt;/p&gt;
&lt;p&gt;3、「祝福」是一种基于传统文化观念的美好希望，不代表承诺某一种结果将会发生或不会发生。&lt;/p&gt;
&lt;p&gt;4、如果在您的传统文化中不存在「虎年」（例如，哈萨克族的十二生肖为鼠、牛、猎豹、兔、蜗牛、蛇、马、绵羊、猴、鸡、狗、野猪），可以联系笔者进行替换。&lt;/p&gt;
&lt;p&gt;5、「大吉」不代表对任何有价证券价格或者资产价格的预测，不构成投资建议。&lt;/p&gt;
&lt;p&gt;6、「财源广进」是一种美好的祝愿，不代表笔者承诺给付任何额度的财物。&lt;/p&gt;
&lt;p&gt;7、「家」并不局限于户口本中的家庭成员范围，也包括与直系、旁系亲属组成的家庭或者独居的情况。您可以根据自己的价值认同对其作出定义。&lt;/p&gt;
&lt;p&gt;8、「团圆」必须以遵守防疫政策为前提，笔者并不支持为了团圆而违反防疫政策、破坏社会秩序，也无意教唆、帮助或者放任违反防疫政策的行为发生，特此声明。&lt;/p&gt;
&lt;p&gt;---- Fwd from &lt;a href=&quot;https://t.me/PolIFW&quot;&gt;(tg)PIII&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;del&gt;又要过年辣！&lt;/del&gt;（bushi&lt;/p&gt;
&lt;p&gt;这不得拿出看了又看的AE摆烂视频出来！（x）&lt;/p&gt;
&lt;iframe src=&quot;//player.bilibili.com/player.html?aid=850175976&amp;#x26;bvid=BV1xL4y1E7nT&amp;#x26;cid=471104768&amp;#x26;page=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;h1 id=&quot;闲话&quot;&gt;闲话&lt;/h1&gt;
&lt;h2 id=&quot;习惯&quot;&gt;习惯&lt;/h2&gt;
&lt;p&gt;博主过去两年里有个习惯：在临近过年时下载一个“快手”，通过其中所谓的赚钱活动来为自己获取一些收入（似乎是唯一看似独立的“收入来源”），年后一段时间再卸载掉。（实际上不大喜欢此类国内软件）&lt;/p&gt;
&lt;p&gt;但是今年迟迟没有实行。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;传出去，某厌恶x音的不知名博主要下载x音！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;不是不是，是由于去年注册的手机号炸了，而现在不都提倡实名吗，提现都需要验证手机号的那种（&lt;/p&gt;
&lt;p&gt;也没心情弄新的，虽说我有包含旧帐号信息的备份（&lt;/p&gt;
&lt;h2 id=&quot;准备&quot;&gt;准备&lt;/h2&gt;
&lt;p&gt;大概半个月以前，家里就在准备过年要用的东西，比如&lt;del&gt;猪肉&lt;/del&gt;、一些小摆件什么的，直到现在我写这个post的时候，他们仍在准备明日的饭食：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.imgb.space/img/IMG_20220130_204722.jpg&quot; alt=&quot;是的，当然在老家&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;不过说起来似乎每年过年都是这样的&lt;/del&gt;&lt;/p&gt;
&lt;h2 id=&quot;安排&quot;&gt;安排&lt;/h2&gt;
&lt;p&gt;虽说也是大过年的 但是似乎也无事可做，&lt;del&gt;这时候我选择写作业&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;大部分时间都会在水群，&lt;del&gt;毕竟实际上我也帮不了太大忙&lt;/del&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;真就“在家和 Meta-verse 过”呗&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;（还好提前下了一部电影，&lt;del&gt;可以在作业写腻的时候看&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;下午还有合影活动 好耶&lt;/p&gt;
&lt;h1 id=&quot;居家过年指南&quot;&gt;居家过年指南&lt;/h1&gt;
&lt;p&gt;还有几个小时除夕（很奇怪今年不是大年三十），大家可以做好如下准备工作（？）&lt;/p&gt;
&lt;p&gt;个人推荐做好防止熊孩子接触你的设备导致血压升高的工作（&lt;/p&gt;
&lt;p&gt;如果有亲戚问奇怪的问题的话建议优雅的对回去，例子如下：&lt;/p&gt;
&lt;iframe src=&quot;//player.bilibili.com/player.html?aid=680764591&amp;#x26;bvid=BV1ES4y17765&amp;#x26;cid=489749047&amp;#x26;page=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;iframe src=&quot;//player.bilibili.com/player.html?aid=338457916&amp;#x26;bvid=BV1XR4y1K7aH&amp;#x26;cid=492761546&amp;#x26;page=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;iframe src=&quot;//player.bilibili.com/player.html?aid=893096852&amp;#x26;bvid=BV1VP4y1J79t&amp;#x26;cid=481784541&amp;#x26;page=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;p&gt;（仅供娱乐）&lt;/p&gt;
&lt;p&gt;当然和一群朋友（无论是现实的还是网络的）一起过姿势更佳（&lt;/p&gt;
&lt;p&gt;提前对自身做一些准备。&lt;/p&gt;
&lt;p&gt;晚上推荐观看晚会：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;春节联欢晚会（今年的或者之前的）&lt;/li&gt;
&lt;li&gt;bilibili拜年纪（同上，我没收广告费（&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;实在没意思的话看些“春晚密卷”（？）&lt;/p&gt;
&lt;p&gt;明日博主的活动&lt;/p&gt;
&lt;p&gt;看春晚    &lt;a href=&quot;http://icalgen.yc.sg/?sub=2022+%E5%A3%AC%E5%AF%85%E8%99%8E%E5%B9%B4+%E4%B8%AD%E5%A4%AE%E7%94%B5%E8%A7%86%E5%8F%B0%E6%98%A5%E8%8A%82%E8%81%94%E6%AC%A2%E6%99%9A%E4%BC%9A&amp;#x26;det=%E8%8A%82%E7%9B%AE%E5%8D%95+https%3A//news.cctv.com/2022/01/30/ARTIKsYrWulmR1VLuVHVLsRe220130.shtml&amp;#x26;tz=Antarctica/Casey&amp;#x26;allday=false&amp;#x26;sd=Jan+31%2C+2022&amp;#x26;st=8%3A00+PM&amp;#x26;ed=Feb+1%2C+2022&amp;#x26;et=12%3A30+AM&amp;#x26;venue=%EF%BC%88%EF%BC%9F%EF%BC%89&amp;#x26;isub=true&amp;#x26;idt=true&amp;#x26;iv=true&amp;#x26;dl=1&quot;&gt;ics download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;看拜年纪 &lt;a href=&quot;http://icalgen.yc.sg/?sub=2022+bilibili+%E6%8B%9C%E5%B9%B4%E7%BA%AA&amp;#x26;det=%E8%8A%82%E7%9B%AE%E5%8D%95+&amp;#x26;tz=Antarctica/Casey&amp;#x26;allday=false&amp;#x26;sd=Jan+31%2C+2022&amp;#x26;st=7%3A30+PM&amp;#x26;ed=Feb+1%2C+2022&amp;#x26;et=10%3A30+PM&amp;#x26;venue=233+%E7%9B%B4%E6%92%AD%E9%97%B4&amp;#x26;isub=true&amp;#x26;idt=true&amp;#x26;iv=true&amp;#x26;dl=1&quot;&gt;ICS download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;和朋友们合照&lt;/p&gt;
&lt;p&gt;摸鱼&lt;/p&gt;
&lt;p&gt;好像没力（&lt;/p&gt;
&lt;p&gt;&lt;del&gt;幻报啥的我大年初二再说，抽奖的话再看（？）&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;总之，过年好！&lt;/p&gt;</content:encoded><category>Daily</category><author>草方块</author></item><item><title>2021 我的年终总结 - 在时空的折跃门前</title><link>https://lab.gb0.dev/blog/2021-on-the-portal</link><guid isPermaLink="true">https://lab.gb0.dev/blog/2021-on-the-portal</guid><description>「你有一份年终总结待查收」2021马上就要过去了，又是新的一年，是时候回顾一下了。</description><pubDate>Sat, 25 Dec 2021 17:02:04 GMT</pubDate><content:encoded>&lt;p&gt;&lt;del&gt;标题总给人一种熟悉的感觉&lt;/del&gt;&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;封面图修改自 Maksim Istomin 在 Unsplash 发布的&lt;a href=&quot;https://unsplash.com/photos/jbzSAXYewtk&quot;&gt;图片&lt;/a&gt; ，若有侵权请告知。
本文部分内容来自网络，如果侵犯了您的权利也请告知。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;blockquote&gt;
&lt;p&gt;因为等待，所以让我们才渐渐成熟，也因为等待，所以让我们渐渐思考。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;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=&quot;圈子&quot;&gt;圈子&lt;/h1&gt;
&lt;h2 id=&quot;tgcn&quot;&gt;TGCN&lt;/h2&gt;
&lt;p&gt;今年年初加入了 Pd2 Project! （但不久后由于某些原因不活跃）又于 x年y日（忘了） 加入了 &lt;a href=&quot;http://dp7.link/&quot;&gt;.DP7 Network&lt;/a&gt;，在那里认识了许多新朋友
创建自己的&lt;del&gt;第n个&lt;/del&gt;内群—科学边界，并和 .DP7 建交，搞得还算不错（？），&lt;del&gt;只是一开学，人就集体不见了&lt;/del&gt;
喵体中文今年我只大更新了两次，（no time）咕咕咕（&lt;/p&gt;
&lt;h2 id=&quot;sci-fi&quot;&gt;sci-fi&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;又是一个因《三体》而入坑的屑幻迷（&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;你草在5月份学考期间&lt;del&gt;摸鱼&lt;/del&gt;看完《三体》之后被其中的设定什么的所吸引~~（其实早有听说大名，只是一直无缘拜读（？）~~，便对科幻作品产生了兴趣&lt;/p&gt;
&lt;p&gt;恰好自己从别人那里听说学校书店也有一些科幻作品和期刊什么的卖，我就兴冲冲地跑去买，从此一发而不可收，深深爱上了（?）科幻。&lt;/p&gt;
&lt;p&gt;今年暑假，有幸从一位朋友那里知道了&lt;a href=&quot;http:/l/sci-fic.xyz&quot;&gt;基石幻报&lt;/a&gt;，并&lt;del&gt;在软磨硬泡下&lt;/del&gt;加入到其中，成为一个“发言人”，&lt;del&gt;虽然一期幻报都没出过就是了&lt;/del&gt;（&lt;/p&gt;
&lt;h2 id=&quot;其他奇奇怪怪的圈子&quot;&gt;其他奇奇怪怪的圈子&lt;/h2&gt;
&lt;p&gt;当然也加入了一些奇奇怪怪的圈子，比如furry （&lt;del&gt;这也叫圈子？&lt;/del&gt;)，音游圈子，科技圈子啥的，但也由于某些原因，不常常和圈内的非熟人有过什么联系，对其的了解也只限于某些熟人的消息而已。&lt;/p&gt;
&lt;p&gt;你可以通过点击下面的咱的bilibili年度报告卡片来了解一小部分我活跃的圈子：&lt;/p&gt;
&lt;div class=&quot;gallery-group-main&quot;&gt;&lt;/div&gt;
&lt;h1 id=&quot;音乐&quot;&gt;音乐&lt;/h1&gt;
&lt;p&gt;虽然咱已经拥有了 Spotify 账户和 Cracked 过的 客户端，但平时用的最多的还是网易云（lazy to move（&lt;/p&gt;
&lt;div class=&quot;gallery-group-main&quot;&gt;&lt;/div&gt;
&lt;p&gt;今年尝试听了一些音游曲子，感觉海星（&lt;del&gt;感觉自己s听的那些音游曲子也都是电子向多一些&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;也听了一些 vocaloid 曲子，但似乎也是比较旧的歌曲，比如&lt;a href=&quot;https://www.bilibili.com/video/BV1es41127Fd&quot;&gt;霜雪千年&lt;/a&gt;啥的，比较新的也就是&lt;a href=&quot;https://www.bilibili.com/bangumi/play/ep376266&quot;&gt;夜航星（指2020最美的夜那版）&lt;/a&gt;，&lt;/p&gt;
&lt;p&gt;anyway , I’m not serious about them.和去年基本一致，你草听歌仍以英文歌（尤其是电子）为主，&lt;del&gt;同时加大了传教力度&lt;/del&gt; （传教啥的就不细说了，懂的都懂）&lt;/p&gt;
&lt;h1 id=&quot;游戏&quot;&gt;游戏&lt;/h1&gt;
&lt;p&gt;由于大多数时间都是在学校，再加上繁复的课业，所以真正能玩游戏的时间很少。&lt;/p&gt;
&lt;p&gt;今年入坑了一款音游  — &lt;a href=&quot;https://cytoid.io&quot;&gt;Cytoid&lt;/a&gt; (对，就是今年8月12日在国内永久停运的那个音游) ，玩起来手感还不错&lt;/p&gt;
&lt;p&gt;《关于我身边的朋友都在osu &amp;amp; maimai时我还在Cytoid这件事》&lt;/p&gt;
&lt;p&gt;也试着玩了隔壁以前玩过的荒野乱斗，但最近也没太玩了。&lt;/p&gt;
&lt;p&gt;不过作为一个老（？）Minecrafter ，玩minecraft还是生活必需品，只不过自己常常忘了更新，现在连最新版本是多少都不知道（&lt;/p&gt;
&lt;p&gt;我终于可以用手机通过pojav launcher玩Java版mc了，感dong（&lt;/p&gt;
&lt;p&gt;啊对了，我还用官方的设计器整了个新minecraft形象，如下图&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cloud.imgb.space/api/v3/file/source/60/Screenshot_new_character_com.mojang.minecraftpe.jpg?sign=vgWevM094nOpMRAe52pq1TjVSSTZMv20QbDCjbkywZM%3D%3A0&quot; alt=&quot;新形象&quot;&gt;&lt;/p&gt;
&lt;h1 id=&quot;技术&quot;&gt;技术&lt;/h1&gt;
&lt;p&gt;不幸的是，学习 ReactJS 的计划被咕咕咕到新的一年（&lt;/p&gt;
&lt;p&gt;今年也摸索了许多东西，比如这个hexo站，也算是不断的发现并解决问题的一个成果吧&lt;/p&gt;
&lt;p&gt;当然 这一年来折腾的东西 还有 域名邮箱 用limbo在手机上跑x64的Arch Linux （没想到吧 今年我也入教了）啥的&lt;/p&gt;
&lt;p&gt;你草也在考虑新的一年学一些后端知识，&lt;del&gt;因为自己觉得纯靠前端也不能做一切事情&lt;/del&gt;&lt;/p&gt;
&lt;h1 id=&quot;现实&quot;&gt;现实&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;北海，要多想。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在网络中纵然十分快乐，但作为一名学生，我显然不是过得很好的那种人。&lt;/p&gt;
&lt;p&gt;首先，由于咱过度的活跃于网络，使用电子设备，已经逐渐分不清现实与虚拟世界了 （&lt;del&gt;提前进入元宇宙(bushi&lt;/del&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=&quot;结语&quot;&gt;结语&lt;/h1&gt;

&lt;p&gt;纵然 2021 许多不快之处，但它已然成为过去。快看-----&lt;/p&gt;
&lt;p&gt;“ 折跃门要开启了！ 大家快来！ ”&lt;/p&gt;
&lt;p&gt;（全文完）&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Special Thx:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://laple.me&quot;&gt;Lapis_Apple&lt;/a&gt; 为撰写此文章提供了设备支持。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://typora.io/&quot;&gt;Typora&lt;/a&gt;  所见即所得的markdown编辑器（当然是旧版）&lt;/p&gt;
&lt;p&gt;.DP7  Project &amp;amp; 科学边界 &amp;amp; 其它 所有的朋友们&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;看看其他dalao的年终总结：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.pan93.com/2020-memories/&quot;&gt;pan.blog&lt;/a&gt; : 開箱 2020 的時光胶囊
�&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我的新年计划（Todo）：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://nxtc.imgb.space/index.php/apps/calendar/p/RjdZm5dPpNr4qGrF&quot;&gt;NextCloud 日历&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://to-do.microsoft.com/tasks/sharing?InvitationToken=42i1i3srksbwazBOo7FLQQoEI59weWbY-LfKmGmwIhxvh_GQ4c0vlW3gATsehfmug&quot;&gt;M$ Todo （需要 Microsoft 账户）&lt;/a&gt;&lt;/p&gt;</content:encoded><category>Daily</category><author>草方块</author></item><item><title>Another Widget v2 - 可自定义的“一目了然”小部件</title><link>https://lab.gb0.dev/blog/another-widget-v2</link><guid isPermaLink="true">https://lab.gb0.dev/blog/another-widget-v2</guid><description>又一个假装是Pixel的新方式？</description><pubDate>Tue, 09 Nov 2021 19:06:32 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Another Widget 智能地汇总了您最需要的信息。 它可以以直观而优雅的方式了解接下来的事件、天气和您想要的信息。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文部分翻译/节选自
&lt;a href=&quot;https://www.computerworld.com/article/3269497/at-a-glance-widget-android.html&quot;&gt;https://www.computerworld.com/article/3269497/at-a-glance-widget-android.html&lt;/a&gt; ，如有侵权请告知&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;一个好的 Android 小部件可以使主屏幕有吸引力、有效和特别有用，作为你所有移动生产力需求的起点。（当然，这同样适用于您的移动拖延需求 - 并不是说您会出于如此愚蠢的目的使用手机…）&lt;/p&gt;
&lt;p&gt;随 Pixel 2 一起推出的 Google 的“概览”小部件是一个很好的 Android 小部件。它以简单、紧凑且具有视觉吸引力的形式向你显示当前日期和天气。在适当的时候，它甚至可以扩展以显示上下文信息，例如即将到来的日历事件的倒计时。它可以作为你的日历和完整预测应用程序的单击快捷方式，因此您可以快速到达任何一个地方，而无需为标准快捷方式图标分配额外的屏幕空间。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://images.idgesg.net/images/article/2018/04/at-a-glance-widget-android-100756386-large.jpg?auto=webp&amp;quality=85,70&quot; alt=&quot;Sample&quot;&gt;&lt;/p&gt;
&lt;p&gt;可惜这个“生产力起点”的小部件如果不装有 Google App / Pixel Launcher 系启动器 是无法愉快的使用的（Google App 基本插大陆手机卡就只有日期了），不过也令人喜悦的是，tommasoberlose 开发了 Another Widget，在带来“生产力”的提供了更多可自定义项。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://images.idgesg.net/images/article/2018/04/at-a-glance-widget-android-another-widget-100756385-large.jpg?auto=webp&amp;quality=85,70&quot; alt=&quot;你看差不多对吧（左为 Google ，右为 Another Widget）&quot;&gt;&lt;/p&gt;
&lt;p&gt;当然，你也可以进行一些自定义，比如这样（是不是有Lawnchair Q内味了）：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20211112092633.Imb3yGSo_2jnxQD.webp&quot; srcset=&quot;/_astro/Screenshot_20211112092633.Imb3yGSo_Z2qKHWJ.webp 640w, /_astro/Screenshot_20211112092633.Imb3yGSo_1NpNmq.webp 750w, /_astro/Screenshot_20211112092633.Imb3yGSo_164Aiu.webp 828w, /_astro/Screenshot_20211112092633.Imb3yGSo_2jnxQD.webp 1080w&quot; alt=&quot;还可以这样&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;300&quot;&gt;&lt;/p&gt;
&lt;p&gt;一切也归于它众多的可自定义选项，比如你可以控制哪些来源出现在“速览上：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20211112093057.DDQocZtX_1HJquC.webp&quot; srcset=&quot;/_astro/Screenshot_20211112093057.DDQocZtX_Z1TspuO.webp 640w, /_astro/Screenshot_20211112093057.DDQocZtX_Z2nsi5e.webp 750w, /_astro/Screenshot_20211112093057.DDQocZtX_14lEcz.webp 828w, /_astro/Screenshot_20211112093057.DDQocZtX_1HJquC.webp 1080w&quot; alt=&quot;“速览”的一些自定义&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;2162&quot;&gt;&lt;/p&gt;
&lt;p&gt;当然你也可以更改各部分控件的大小，使其更有 Android 12风格：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20211112093516.j76JVFgv_Z1ekprP.webp&quot; srcset=&quot;/_astro/Screenshot_20211112093516.j76JVFgv_fIjKA.webp 640w, /_astro/Screenshot_20211112093516.j76JVFgv_ZOl7sT.webp 750w, /_astro/Screenshot_20211112093516.j76JVFgv_2wY9PH.webp 828w, /_astro/Screenshot_20211112093516.j76JVFgv_Z1ekprP.webp 1080w&quot; alt=&quot;？？？&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;1749&quot;&gt;&lt;/p&gt;
&lt;p&gt;同时，这个应用也提供了一些其它易于调整的选项，而且它的设置界面采用类 Material 设计（谷粉震怒），十分美观。&lt;/p&gt;
&lt;p&gt;（虽说你 Kustom Widget 也能做，但是很麻烦 &lt;del&gt;为啥不用现成的轮子&lt;/del&gt;）&lt;/p&gt;
&lt;p&gt;不过 这个应用的天气功能是个很玄学的存在，默认的 YR.no/Met.no 似乎真的不能用，而切到 OpenWeatherMap 后天气位置又只能“地理定位”了（&lt;/p&gt;
&lt;p&gt;但总而言之，这是一个超级简单的应用程序，远非革命性的。但是，对于我白天多次浏览和交互的主屏幕的核心部分，拥有看起来很棒且工作完美的东西会让世界变得不同。&lt;/p&gt;
&lt;p&gt;Another Widget 完全免费，且开源在 GitHub 。你可以在 &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.tommasoberlose.anotherwidget&quot;&gt;Google Play&lt;/a&gt;  下载它。&lt;/p&gt;
&lt;p&gt;（不便于访问 Google Play？&lt;a href=&quot;https://obj.imgb.space/apps/another_w&quot;&gt;点我去 OneDrive 搬运站&lt;/a&gt; 下载）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/tommasoberlose/another-widget&quot;&gt;&lt;img src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=tommasoberlose&amp;repo=another-widget&quot; alt=&quot;Readme Card&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.tommasoberlose.anotherwidget&amp;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1&quot;&gt;&lt;img alt=&quot;Get it on Google Play&quot; height=&quot;100px&quot; src=&quot;https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>使用 Cloudflare Workers 部署一个 Hexo</title><link>https://lab.gb0.dev/blog/hexo-with-cfworkers</link><guid isPermaLink="true">https://lab.gb0.dev/blog/hexo-with-cfworkers</guid><description>利用Cloudflare，加速你的Hexo站吧～（当然其它静态站点也是支持的）</description><pubDate>Sun, 08 Aug 2021 18:35:56 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文基于 Sukka’s Blog 的 &lt;a href=&quot;https://blog.skk.moe/post/deploy-blog-to-cf-workers-site/&quot;&gt;《将 Hexo 部署到 Cloudflare Workers Site 上的趟坑记录》&lt;/a&gt; ，图片来源网络，如有侵权请联系。&lt;/p&gt;&lt;p&gt;本文在其基础上做了一些更新，&lt;del&gt;使之能够适应3202年的情况&lt;/del&gt;（&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h1 id=&quot;更新日志&quot;&gt;更新日志&lt;/h1&gt;
&lt;p&gt;2021-08-08 18:35:56 ：初稿
2023-09-04 18:34:53 ：基于有人看以及wrangler的更新废弃了大量旧的东西，更新了一下内容&lt;/p&gt;
&lt;div class=&quot;callout callout-danger&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;最新版本的wrangler已不再支持通过此办法部署纯静态站点，参见&lt;a href=&quot;https://developers.cloudflare.com/workers/wrangler/deprecations/#init&quot;&gt;Deprecations · Cloudflare Workers docs&lt;/a&gt;。如有类似需求，请移步&lt;a href=&quot;https://pages.cloudflare.com/&quot;&gt;Cloudflare Pages&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;以下内容中部分已经失效，仅供参考。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;Cloudflare Workers KV 的Pricing一变再变，现在终于开放免费使用辣！不过话说去年似乎KV仍需要5$/月的付费，#我火星了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/pricing.DT7EFdz8_ZuL06e.webp&quot; srcset=&quot;/_astro/pricing.DT7EFdz8_Z1jTM7B.webp 640w, /_astro/pricing.DT7EFdz8_ZuL06e.webp 720w&quot; alt=&quot;现在啥情况&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 720px) 720px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;720&quot; height=&quot;1725&quot;&gt;&lt;/p&gt;
&lt;p&gt;虽说只有1GB存储，每天只有100000次读取，不过对于一个静态站点来说，足矣。&lt;/p&gt;
&lt;p&gt;所以借此机会就把部署的Hexo（本站）也部署到了Cloudflare Workers一份，打开速度嘛…&lt;del&gt;由于咱挂着梯子所以感受不到差别&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;所以话不多说，我们开始吧。&lt;/p&gt;
&lt;h1 id=&quot;准备&quot;&gt;准备&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;一台 &lt;strong&gt;amd64 (x86_64)&lt;/strong&gt; 的机器
（其它架构的貌似不支持 Wrangler ，已知aarch64架构不行，&lt;del&gt;所以用Termux不能弄（哭&lt;/del&gt;）&lt;/li&gt;
&lt;li&gt;一个Cloudflare账号&lt;/li&gt;
&lt;li&gt;一个GitHub账号（自动部署时需要）&lt;/li&gt;
&lt;li&gt;基本的命令行&amp;amp;Git知识&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;开始&quot;&gt;开始&lt;/h1&gt;
&lt;p&gt;我们假设你已经有一个本地 Node 环境&amp;amp;一个站点项目了（如果没有，可以参看&lt;a href=&quot;https://hexo.io&quot;&gt;官方文档&lt;/a&gt;创建一个Hexo项目）&lt;/p&gt;
&lt;h2 id=&quot;安装-wrangler&quot;&gt;安装 Wrangler&lt;/h2&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:37ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;npm&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;@cloudflare/wrangler&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--save-dev&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;npm i @cloudflare/wrangler --save-dev&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;（小声：也可以使用 yarn :  &lt;code&gt;$ yarn add -dev @cloudflare/wrangler&lt;/code&gt;）&lt;/p&gt;
&lt;h2 id=&quot;创建-api-token&quot;&gt;创建 API token&lt;/h2&gt;
&lt;p&gt;在使用之前，先 &lt;a href=&quot;https://dash.cloudflare.com/profile/api-tokens&quot;&gt;申请一个 API token&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/token.BG6G17lS_lxpxx.webp&quot; srcset=&quot;/_astro/token.BG6G17lS_Z2rBAEN.webp 640w, /_astro/token.BG6G17lS_ZPm6X4.webp 750w, /_astro/token.BG6G17lS_Z101Q5P.webp 828w, /_astro/token.BG6G17lS_lxpxx.webp 1010w&quot; alt=&quot;创建 Token&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1010px) 1010px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1010&quot; height=&quot;1621&quot;&gt;&lt;/p&gt;
&lt;p&gt;选择“编辑 Cloudflare Workers”模板继续。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/permisson.a63QdrZH_2fLkkk.webp&quot; srcset=&quot;/_astro/permisson.a63QdrZH_37oOt.webp 640w, /_astro/permisson.a63QdrZH_2hmG61.webp 750w, /_astro/permisson.a63QdrZH_ZAFK8J.webp 828w, /_astro/permisson.a63QdrZH_2fLkkk.webp 1071w&quot; alt=&quot;去除不必要的权限&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1071px) 1071px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1071&quot; height=&quot;783&quot;&gt;&lt;/p&gt;
&lt;p&gt;将“&lt;strong&gt;账户设置&lt;/strong&gt;”和“&lt;strong&gt;用户详细信息&lt;/strong&gt;”权限删除，部署 Workers Sites 不需要这两个权限，其余配置按照偏好选择
（删除两个权限后后不要动权限！）&lt;/p&gt;
&lt;p&gt;将生成的 Token 保留在一个安全的地方备用。&lt;/p&gt;
&lt;h2 id=&quot;初始化项目&quot;&gt;初始化项目&lt;/h2&gt;
&lt;p&gt;在站点项目（比如 Hexo）的根目录下执行：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:37ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;wrangler&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;--site&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; [your-site-name]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;wrangler init --site [your-site-name]&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Wrangler CLI 会使用 Cloudflare Workers Site 的模板在项目里新生成一个 &lt;code&gt;workers-site&lt;/code&gt; 目录和一个 &lt;code&gt;wrangler.toml&lt;/code&gt; 文件&lt;/p&gt;
&lt;p&gt;使用编辑器（比如 vim ）打开 &lt;code&gt;wrangler.toml&lt;/code&gt; 文件。&lt;/p&gt;
&lt;p&gt;将site一行的 bucket 项改为 ./public：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:29ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;site &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;bucket &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;./public&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;site = {bucket = &amp;#34;./public&amp;#34;&amp;#34;}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;在任意位置创建新行&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:24ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;account_id &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;[your_id]&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;account_id = &apos;[your_id]&apos;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;其中[your_id]是你的 Cloudflare 账户id，可以在你域名页面的 “概述” 翻找到&lt;/p&gt;
&lt;h3 id=&quot;域名的额外配置&quot;&gt;域名的额外配置&lt;/h3&gt;
&lt;p&gt;如果你有域名，那么可以查阅&lt;a href=&quot;https://support.cloudflare.com/hc/zh-cn/articles/201720164-%E5%88%9B%E5%BB%BA-Cloudflare-%E5%B8%90%E6%88%B7%E5%B9%B6%E6%B7%BB%E5%8A%A0%E7%BD%91%E7%AB%99&quot;&gt;官方文档&lt;/a&gt;将其转移到 Cloudflare， 并且配置路由：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:22ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;route = &amp;#39;domain.com/*&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;route = &apos;domain.com/*&apos;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;如不需要cf提供的 workers.dev 子域名，将 &lt;code&gt;workers_dev&lt;/code&gt; 的值改为 &lt;code&gt;false&lt;/code&gt; 即可。&lt;/p&gt;
&lt;p&gt;以下是一个完整的&lt;code&gt;wrangler.toml&lt;/code&gt;示例供参考：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;toml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:47ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;grassblog&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;main &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;workers-site/index.js&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;compatibility_date &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;2023-09-04&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;#填写一个就近的日期即可&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;route &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;lab.imgb.space/*&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;account_id &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;b45fa9889b43a142f63e2b4ca1509588&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;usage_model &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;compatibility_flags &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;[]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;workers_dev &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;false&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;site &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt;bucket &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;./public&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;name = &amp;#34;grassblog&amp;#34;main = &amp;#34;workers-site/index.js&amp;#34;compatibility_date = &amp;#34;2023-09-04&amp;#34;#填写一个就近的日期即可route = &apos;lab.imgb.space/*&apos;account_id = &apos;b45fa9889b43a142f63e2b4ca1509588&apos;usage_model = &apos;&apos;compatibility_flags = []workers_dev = falsesite = {bucket = &amp;#34;./public&amp;#34;}&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;部分涉及隐私的部分已经进行替换。&lt;/p&gt;
&lt;p&gt;配置保存后，运行 &lt;code&gt;wrangler login&lt;/code&gt; ，然后按指引登录你的 Cloudflare 账户。&lt;/p&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;如果你在一台拥有GUI和浏览器的机器上进行连接时，会自动打开一个浏览器窗口进行登录。&lt;/p&gt;&lt;p&gt;如果你在一台没有GUI的机器（如SSH等）进行连接时，那么需要在本地打开这个链接。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h2 id=&quot;预览和发布&quot;&gt;预览和发布&lt;/h2&gt;
&lt;p&gt;运行下述命令可对 Workers Site 在本地预览：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:12ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;wrangler&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;dev&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;wrangler dev&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;选择是否将统计信息发送给Cloudflare（默认为是）&lt;/p&gt;
&lt;p&gt;之后会将本地public中的内容构建，浏览器会自动打开一个窗口进行预览（如果没有…手动打开提供的链接吧）。&lt;/p&gt;
&lt;p&gt;若预览正常工作，运行下述命令即可将它发布到 Workers Site：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;sr-only&quot;&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;shell&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:16ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#88C0D0;--1:#8B5B12&quot;&gt;wrangler&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;publish&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;wrangler publish&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;使用自定义子域名时，还需要为上述的route添加一条值为 &lt;code&gt;100::&lt;/code&gt; 的 AAAA 记录。
&lt;a href=&quot;https://developers.cloudflare.com/workers/platform/routes#subdomains-must-have-a-dns-record&quot;&gt;参见：Cloudflare Workers Docs&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;h2 id=&quot;使用-github-actions&quot;&gt;使用 GitHub Actions&lt;/h2&gt;
&lt;p&gt;嗯…听起来既繁琐又简单，配置完成后之后再部署时 只需要 &lt;code&gt;hexo g&lt;/code&gt; 之后再 &lt;code&gt;wrangler publish&lt;/code&gt; 即可。但是像我一样的大鸽子（？）不愿每次更改后都要执行这两个命令（突然麻烦了QAQ）&lt;/p&gt;
&lt;p&gt;不过 GitHub Actions 就可以简化这一流程，一次编写配置文件，之后只需要将博客源码推送到GitHub，就可以自动构建了，方便了许多～&lt;/p&gt;
&lt;p&gt;（据说隔壁 Bitbucket 也有一个类似的自动化 “pipelines”， 有时间试试，咕）&lt;/p&gt;
&lt;h3 id=&quot;尝试自动构建静态文件&quot;&gt;尝试自动构建静态文件&lt;/h3&gt;
&lt;p&gt;既然 Hexo 是一个依赖 Node 的程序…那我们就可以按照一个普通Node.js程序的逻辑来写配置文件。&lt;/p&gt;
&lt;p&gt;在站点目录 新建 &lt;code&gt;.github/workflows&lt;/code&gt; 文件夹，并创建一个任意名字的YAML文件（.yml/.yaml），填写以下内容：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;yaml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:151ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;My Hexo Blog&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 名字随意&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;branches&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;master&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;build&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;runs-on&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;ubuntu-latest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;strategy&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;matrix&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;node-version&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:10ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;          &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;12.x&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;steps&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Checkout&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;uses&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;actions/checkout@v2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 令 GitHub 在 git clone 和 git checkout 后「忘记」使用的 credentials。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 如果之后需要以另外的身份（如你的 GitHub Bot）执行 git push 操作时（如部署到 GitHub Pages），必须设置为 false。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;persist-credentials&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#94AFCA;--1:#B33A4F&quot;&gt;false&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Use Node.js ${{ matrix.node-version }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;uses&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;actions/setup-node@v1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;node-version&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${{ matrix.node-version }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 缓存 node_modules，缓存机制参见 GitHub 文档：https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Cache node_modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;uses&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;actions/cache@v1&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 使用 GitHub 官方的缓存 Action。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;env&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;cache-name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;hexo-node-modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;node_modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles(&amp;#39;package-lock.json&amp;#39;) }}&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 使用 package-lock.json 的 Hash 作为缓存的 key。也可以使用 package.json 代替&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Wrangler 在构建时会在 workers-site 目录下执行 npm i，因此也要缓存这里的 node_modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Cache workers-site/node_modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;uses&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;actions/cache@v1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;env&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;cache-name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;workers-site-node-modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:6ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;workers-site/node_modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:8ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles(&amp;#39;workers-site/package-lock.json&amp;#39;) }}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;run&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;npm i&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 执行 Hexo 的依赖安装&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 完成 npm i 后，hexo 已经被链接到 node_modules 下的 bin 目录、并被注册在 Node.js 的 $PATH 中&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Hexo 博客的 package.json 中默认注册了这些 script：clean/build/deploy/server&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 因此，在目录下执行 npm run build 等同于执行 hexo g，但是不需要全局安装 hexo-cli&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;run&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;npm run build&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;name: My Hexo Blog # 名字随意on:  push:    branches:      - masterjobs:  build:    runs-on: ubuntu-latest    strategy:      matrix:        node-version:          - 12.x    steps:    - name: Checkout      uses: actions/checkout@v2      with:        # 令 GitHub 在 git clone 和 git checkout 后「忘记」使用的 credentials。        # 如果之后需要以另外的身份（如你的 GitHub Bot）执行 git push 操作时（如部署到 GitHub Pages），必须设置为 false。        persist-credentials: false    - name: Use Node.js ${{ matrix.node-version }}      uses: actions/setup-node@v1      with:        node-version: ${{ matrix.node-version }}    # 缓存 node_modules，缓存机制参见 GitHub 文档：https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows    - name: Cache node_modules      uses: actions/cache@v1 # 使用 GitHub 官方的缓存 Action。      env:        cache-name: hexo-node-modules      with:        path: node_modules        key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles(&apos;package-lock.json&apos;) }} # 使用 package-lock.json 的 Hash 作为缓存的 key。也可以使用 package.json 代替    # Wrangler 在构建时会在 workers-site 目录下执行 npm i，因此也要缓存这里的 node_modules    - name: Cache workers-site/node_modules      uses: actions/cache@v1      env:        cache-name: workers-site-node-modules      with:        path: workers-site/node_modules        key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles(&apos;workers-site/package-lock.json&apos;) }}    - run: npm i # 执行 Hexo 的依赖安装    # 完成 npm i 后，hexo 已经被链接到 node_modules 下的 bin 目录、并被注册在 Node.js 的 $PATH 中    # Hexo 博客的 package.json 中默认注册了这些 script：clean/build/deploy/server    # 因此，在目录下执行 npm run build 等同于执行 hexo g，但是不需要全局安装 hexo-cli    - run: npm run build&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;将配置文件推到 GitHub 上，如果自动触发开始构建，且没有错误，那么再添加 部署到 Workers Site 的 Actions。&lt;/p&gt;
&lt;h3 id=&quot;publish-到-workers-site&quot;&gt;Publish 到 Workers Site&lt;/h3&gt;
&lt;p&gt;利用 Cloudflare 推出的 &lt;a href=&quot;https://github.com/cloudflare/wrangler-action&quot;&gt;Wrangler 的 GitHub Action&lt;/a&gt; 通过引入 &lt;code&gt;wrangler-action&lt;/code&gt; 可以直接执行 &lt;code&gt;wrangler publish&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;先在 GitHub 仓库的 Secret 设置（ Settings &amp;gt; Secrets ）添加一个&lt;code&gt;CF_WORKERS_TOKEN&lt;/code&gt;的变量，内容为刚刚获取到的Token。&lt;/p&gt;
&lt;p&gt;然后再在Actions的配置文件的末尾添加以下内容：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;yaml&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:66ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;Deploy to Cloudflare Workers&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;uses&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;cloudflare/wrangler-action@1.1.0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#8FBCBB;--1:#BE2F2C&quot;&gt;apiToken&lt;/span&gt;&lt;span style=&quot;--0:#ECEFF4;--1:#256F74&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A3BE8C;--1:#566D35&quot;&gt;${{ secrets.CF_WORKERS_TOKEN }}&lt;/span&gt;&lt;span style=&quot;--0:#D8DEE9;--1:#5A676D&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# 前一步设置的 Secrets 的名称&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#A5ADBB;--1:#5A676D;--1fs:italic&quot;&gt;# Wrangler Action 也支持使用传统的 Global API Token + Email 的鉴权方式，但不推荐&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;- name: Deploy to Cloudflare Workers  uses: cloudflare/wrangler-action@1.1.0  with:    apiToken: ${{ secrets.CF_WORKERS_TOKEN }} # 前一步设置的 Secrets 的名称    # Wrangler Action 也支持使用传统的 Global API Token + Email 的鉴权方式，但不推荐&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;好了，恭喜你，你成功在 Workers Site 部署了一个 Hexo 博客！&lt;/p&gt;
&lt;p&gt;使用 Workers 后，节省了网站回源的时间，应该会让网站加载更快吧，嗯？&lt;/p&gt;
&lt;p&gt;不过也有点小问题，比如对 Pretty Urls 的支持不好，对中文路径的不适配，等等。&lt;/p&gt;
&lt;p&gt;这个嘛…中文路径已经有了解决方案，可以搜索…但是”Pretty Urls”至今无解…&lt;/p&gt;
&lt;p&gt;&lt;del&gt;所以至今这个网站还是在 Vercel 上部署&lt;/del&gt;&lt;/p&gt;</content:encoded><category>tech</category><author>草方块</author></item><item><title>在 Android 上优雅的使用 UnblockNeteaseMusic</title><link>https://lab.gb0.dev/blog/unblock-ncm</link><guid isPermaLink="true">https://lab.gb0.dev/blog/unblock-ncm</guid><description>无需root&amp;*posed，在Android设备上享受本地解锁音乐的乐趣。</description><pubDate>Thu, 25 Mar 2021 21:30:00 GMT</pubDate><content:encoded>&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;本文最后更新于 2021/11/12，方法可能于一段时间内可用，若不可用请评论告知。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;先来看效果：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/Grassblock1/jsdelivr/624282_origin_Collage_20210321_191754.jpg&quot; alt=&quot;对比图（左图为未使用，右图为使用后）&quot; title=&quot;对比图&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://lab.gb0.dev/_astro/Screenshot_20211112085506.Dm4lMOz1_1peLp2.webp&quot; srcset=&quot;/_astro/Screenshot_20211112085506.Dm4lMOz1_OELdu.webp 640w, /_astro/Screenshot_20211112085506.Dm4lMOz1_LaBFh.webp 750w, /_astro/Screenshot_20211112085506.Dm4lMOz1_ZJnKJm.webp 828w, /_astro/Screenshot_20211112085506.Dm4lMOz1_1peLp2.webp 1080w&quot; alt=&quot;运行样例&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; style=&quot;--fit: cover; --pos: center;&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;1256&quot;&gt;&lt;/p&gt;
&lt;p&gt;可以看到，“VIP”的歌曲变为“免费”了，说明 UnblockNeteaseMusic 已经生效。&lt;/p&gt;
&lt;h1 id=&quot;那么什么是-unblockneteasemusic-呢&quot;&gt;那么，什么是 UnblockNeteaseMusic 呢？&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/UnblockNeteaseMusic/server&quot;&gt;&lt;img src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=UnblockNeteaseMusic&amp;repo=server&amp;show_owner=true&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;UnblockNeteaseMusic是一个利用HTTP代理来解锁网易云音乐客户端“变灰”歌曲的一个小工具，支持从多家平台获取音频。&lt;/p&gt;
&lt;p&gt;上面是项目卡片，你可以点击它了解更多信息。&lt;/p&gt;
&lt;p&gt;下面，我们将逐步地在Termux上搭建并使用它。&lt;/p&gt;
&lt;h1 id=&quot;一些准备工作&quot;&gt;一些准备工作&lt;/h1&gt;
&lt;p&gt;你需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一台运行Android7.0+、WiFi正常的手机（模拟设备也可以，主要用于安装Termux）&lt;/li&gt;
&lt;li&gt;一个网易云客户端/网页端（用于测试）&lt;/li&gt;
&lt;li&gt;&lt;del&gt;眼睛、正常思考的大脑、手（（&lt;/del&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;callout callout-info&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;推荐配合较低版本的官方客户端进行使用，以下办法仅在6.5.2上测试通过。&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; 
&lt;p&gt;首先要说的是，官方readme并不完全适用于咱的Termux，会出现一些奇怪的问题，我在经历了一番折腾和查找后才最终成功。&lt;/p&gt;
&lt;p&gt;（这其中也感谢 一位朋友 &lt;a href=&quot;https://github.com/pan93412&quot;&gt;Pan93412&lt;/a&gt; 的帮助）&lt;/p&gt;
&lt;p&gt;闲话少说，我们正式开始吧。&lt;/p&gt;
&lt;h1 id=&quot;安装termux&quot;&gt;安装Termux&lt;/h1&gt;
&lt;p&gt;推荐前往 &lt;a href=&quot;https://f-droid.org/packages/com.termux/&quot;&gt;F-droid&lt;/a&gt; 下载&lt;/p&gt;
&lt;p&gt;其它下载方式： &lt;a href=&quot;https://www.coolapk.com/apk/com.termux&quot;&gt;酷安（太旧，不推荐）&lt;/a&gt; &lt;a href=&quot;http://od.imgb.pp.ua/Apps/Termux_0.104.apk&quot;&gt;OneDrive （较旧，也不太推荐）&lt;/a&gt; &lt;a href=&quot;https://github.com/termux/termux-app/releases&quot;&gt;GitHub Releases&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&quot;method-1一键脚本-recommended&quot;&gt;Method 1：一键脚本 ［Recommended］&lt;/h1&gt;
&lt;p&gt;在 &lt;a href=&quot;https://github.com/UnblockNeteaseMusic/server/releases&quot;&gt;项目 Releases 页面&lt;/a&gt; 下载最新版本的 unblockneteasemusic-linux-arm64 脚本复制到 Termux 主目录&lt;/p&gt;
&lt;p&gt;一般地，你可以执行以下命令来复制：
&lt;code&gt;cp ./storage/shared/Download/unblockneteasemusic-linux-arm64 ~/unblockneteasemusic-linux-arm64&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;或者，直接在Termux执行
&lt;code&gt;wget https://github.com/UnblockNeteaseMusic/server/releases/download/v0.27.0-beta.9/unblockneteasemusic-linux-arm64&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;（获取最新release版本然后复制文件即可）&lt;/p&gt;
&lt;p&gt;赋予执行权限
&lt;code&gt;chmod +x unblockneteasemusic-linux-arm64&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;执行脚本
&lt;code&gt;./unblockneteasemusic-linux-arm64&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;如果出现 &lt;code&gt;no such file or directory: ./unblockneteasemusic-linux-arm64&lt;/code&gt; ，那么先安装一个proot容器（比如使用 &lt;a href=&quot;https://github.com/2moe/tmoe-linux&quot;&gt;tmoe-linux&lt;/a&gt; 安装容器）后在容器内再尝试以上步骤。&lt;/p&gt;
&lt;h2 id=&quot;更新&quot;&gt;更新&lt;/h2&gt;
&lt;p&gt;得手动去Releases更新（&lt;/p&gt;
&lt;p&gt;不过更新需要先将原有的删除再进行以上步骤：
&lt;code&gt;rm -r unblockneteasemusic-linux-arm64&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&quot;method-2--clone-存储库&quot;&gt;Method 2 ： Clone 存储库&lt;/h1&gt;
&lt;h2 id=&quot;安装相关软件包&quot;&gt;安装相关软件包&lt;/h2&gt;
&lt;p&gt;注：下面的过程可能对国内网络不太友好（指速度慢），请尝试科学上网，或者更换Termux的软件源（这个请自行Google）。&lt;/p&gt;
&lt;p&gt;在Termux的命令行输入&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pkg install nodejs-lts git&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这将会把 NodeJS 长期支持版、git 安装到 Termux 。&lt;/p&gt;
&lt;h2 id=&quot;clone-存储库并运行&quot;&gt;clone 存储库并运行&lt;/h2&gt;
&lt;p&gt;在上述过程完成后，于任意目录（建议在根目录）执行&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git clone https://github.com/UnblockNeteaseMusic/server&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这将会克隆官方存储库。&lt;/p&gt;
&lt;p&gt;之后执行&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd server&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;node app.js&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;如果出现类似于以下的消息，那么恭喜你已经成功了一半！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2021/03/25/y1MYvGRatrhpWe8.jpg&quot; alt=&quot;success&quot; title=&quot;success&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;更新-1&quot;&gt;更新&lt;/h2&gt;
&lt;p&gt;直接在此目录下执行
&lt;code&gt;git pull origin master&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&quot;更改为-unblockneteasemusic-http-代理&quot;&gt;更改为 UnblockNeteaseMusic HTTP 代理&lt;/h1&gt;
&lt;p&gt;配置好后，其他设备也能用哦（&lt;/p&gt;
&lt;h2 id=&quot;android&quot;&gt;Android&lt;/h2&gt;
&lt;p&gt;前往 设置 &amp;gt; WLAN ， 找到当前连接的WLAN，并找到“修改网络”&lt;/p&gt;
&lt;p&gt;注：各大系统的修改方式不同，请尝试点击/长按当前WLAN，看其是否显示修改选项。&lt;/p&gt;
&lt;p&gt;在修改网络页找到 代理 并改为自动，填写以下内容：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;http://0.0.0.0:8080/proxy.pac&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后保存即可。&lt;/p&gt;
&lt;h2 id=&quot;其它设备&quot;&gt;其它设备&lt;/h2&gt;
&lt;p&gt;可以查看&lt;a href=&quot;https://github.com/UnblockNeteaseMusic/server/blob/enhanced/README.md&quot;&gt;官方 readme&lt;/a&gt;。&lt;/p&gt;
&lt;h1 id=&quot;最后一步&quot;&gt;最后一步&lt;/h1&gt;
&lt;p&gt;在已配置好代理的设备上启动网易云，享受解锁的乐趣吧～&lt;/p&gt;
&lt;h1 id=&quot;已知问题&quot;&gt;已知问题&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;使用后会导致部分使用网易云api等的应用、网页及其插件等都会间歇失效（表现为无限加载），这个暂时无解。&lt;/li&gt;
&lt;li&gt;在开启 歪球尔派尔沃特奈特沃克（VPN） 等情况下会出现间歇性失效（即未解锁状态），可重启VPN和服务解决。实在不行，建议添加以下内容到绕行列表：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:363ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;0.0.0.0,*.163.com,p1.music.126.net,p2.music.126.net,p3.music.126.net,p4.music.126.net,p5.music.126.net,p6.music.126.net,p7.music.126.net,p8.music.126.net,p9.music.126.net,p10.music.126.net,163yun.com,music.163.com,music.126.net,api.iplay.163.com ,apm.music.163.com,apm3.music.163.com,interface.music.163.com,interface3.music.163.com,mam.netease.com,hz.netease.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;0.0.0.0,*.163.com,p1.music.126.net,p2.music.126.net,p3.music.126.net,p4.music.126.net,p5.music.126.net,p6.music.126.net,p7.music.126.net,p8.music.126.net,p9.music.126.net,p10.music.126.net,163yun.com,music.163.com,music.126.net,api.iplay.163.com ,apm.music.163.com,apm3.music.163.com,interface.music.163.com,interface3.music.163.com,mam.netease.com,hz.netease.com&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;（或者导入一个现成的规则/对网易云应用本体进行绕过）&lt;/p&gt;
&lt;h1 id=&quot;题外话&quot;&gt;题外话&lt;/h1&gt;
&lt;p&gt;那么教程应该到这里就结束了，还有诸多不完善的地方，欢迎在评论区讨论反馈。&lt;/p&gt;
&lt;p&gt;在 Android 上，还有一些方案，详情可以看&lt;a href=&quot;https://t.me/realGrassblock/1414&quot;&gt;这条消息的评论&lt;/a&gt;  以及 &lt;a href=&quot;https://github.com/nining377/dolby_beta#%E4%B8%8B%E8%BD%BD%E6%96%B9%E5%BC%8F&quot;&gt;此部分 Readme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;另外，官方readme提供的方法也可以一试（尽管这在部分设备上不起作用）&lt;/p&gt;
&lt;div class=&quot;callout callout-danger&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt;  &lt;div class=&quot;callout-content&quot; data-astro-cid-6ucd66zl=&quot;&quot;&gt; &lt;p&gt;不建议使用别人搭建的UnblockNeteaseMusic代理，可能会造成隐私泄露等问题。（前两天有群友在传这种方法，所以顺便说一嘴）&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; </content:encoded><category>tech</category><author>草方块</author></item><item><title>利用 Termux × GitHub × Hexo 创建免费博客</title><link>https://lab.gb0.dev/blog/hexo-blogging-old</link><guid isPermaLink="true">https://lab.gb0.dev/blog/hexo-blogging-old</guid><description>利用GitHub × Termux逐步帮你搭建一个hexo的免费博客（白嫖一个博客岂不妙哉</description><pubDate>Thu, 25 Feb 2021 05:55:00 GMT</pubDate><content:encoded>&lt;p&gt;利用GitHub × Termux逐步帮你搭建一个hexo的免费博客（白嫖一个博客岂不妙哉&lt;/p&gt;&lt;!-- more --&gt;
&lt;p&gt;炒冷饭（确信&lt;br&gt;
又是一篇新的教程力（&lt;/p&gt;
&lt;p&gt;应该是比较详尽的安装教程辣（&lt;/p&gt;
&lt;p&gt;这篇文章主要是利用GitHub × Termux逐步帮你搭建一个hexo的免费博客（&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;白嫖一个博客岂不妙哉&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;原文作于 2020/6/13 下午4:09 ，又加以了完善和更新&lt;/p&gt;
&lt;h1 id=&quot;准备工作&quot;&gt;准备工作&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;一个装有 Termux 的手机&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;如果没有，请到 &lt;a href=&quot;https://f-droid.org/packages/com.termux/&quot;&gt;f-droid&lt;/a&gt; 下载（推荐）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;一个动手能力强，聪明可爱的你（&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;着手安装&quot;&gt;着手安装&lt;/h1&gt;
&lt;p&gt;话不多说 我们直接开始吧（&lt;br&gt;
在进行以下步骤前，请确保给予了存储权限！&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装 git&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;pkg install git&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装 npm &amp;#x26; node-js （注意是长期支持版本，其它版本是安装不上的现在可以）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;pkg install nodejs-lts&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;（这也会将npm安装到termux）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装 hexo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;npm install hexo-cli -g&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;如果你觉得速度慢 可以在安装之前更换为国内镜像：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;npm config set registry http://registry.npm.taobao.org&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;创建一个博客目录&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;hexo init blog（此处名字随意）&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;据说必须是termux自己的目录才可以，否则会报错（故不能输入外部文件夹路径）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;更方便的访问博客目录&amp;#x26;编辑配置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可以开启sftp服务器进行管理。&lt;br&gt;
首先输入 &lt;code&gt;sshd &amp;#x26;&amp;#x26; whoami&lt;/code&gt; 以获取身份信息（&lt;br&gt;
然后输入 passwd 以设置一个密码（记得要输两次相同的密码！ &lt;em&gt;建议设置易记的密码&lt;/em&gt; ）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;其实此处就是为了开启sftp服务，方便管理文件（&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;打开你的文件管理器（比如 solid explorer） 添加一个sftp服务器&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;服务器地址： 127.0.0.1 端口：8022&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;使用刚刚的信息登录即可。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;已知：mixplorer无法正常使用&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;（当然如果你习惯于vim 编辑器，可以直接进行以下步骤（&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;设置 git 部署&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;首先安装 hexo-deployer-git 。&lt;br&gt;
在博客目录运行：&lt;br&gt;
&lt;code&gt;npm install hexo-deployer-git --save&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;安装完成后&lt;br&gt;
在博客目录的_config.yml的最后面deploy部分输入以下内容：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:55ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;deploy:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;type: git&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;repo: https://github.com/username/reponame&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;# example, https://github.com/hexojs/hexojs.github.io&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:2ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;branch: gh-pages&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;deploy:  type: git  repo: https://github.com/username/reponame  # example, https://github.com/hexojs/hexojs.github.io  branch: gh-pages&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;然后保存即可&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你没有 GitHub 账号，也可以使用码云账号（兼容性未知），或者注册一个（&lt;/p&gt;
&lt;p&gt;如果使用码云账号 需要把 repo 链接处改为码云 （ gitee.com ）repo链接&lt;/p&gt;
&lt;p&gt;建议新建一个repo以确保无问题&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;同时，你还需要更改网站（#url）处为 你 GitHub Pages 的地址（&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果使用自己的域名，也请同步更改，否则会出现问题&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;开始部署&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1&gt; 进入博客目录&lt;br&gt;
&lt;code&gt;cd blog（也即上面你创建的目录）&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;2&gt; 输入以下命令&lt;br&gt;
&lt;code&gt;hexo clean &amp;#x26;&amp;#x26; hexo g &amp;#x26;&amp;#x26; hexo d&lt;/code&gt;&lt;br&gt;
（不过要保证你的配置文件正确）&lt;br&gt;
之后输入你的 GitHub 账号和密码 即可&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 GitHub 方面的设置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;打开你部署好的repo,进入它的settings（别问我在哪里，顶上那么多东西自己看看&lt;br&gt;
找到 Github pages 并启用它（记得使用 gh-pages 的分支）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你想设置自己的域名，可以在启用后设置，注意和hexo的配置保持一致！，也可以打开强制https，获得更好体验（&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&quot;开始写作&quot;&gt;开始写作&lt;/h1&gt;
&lt;p&gt;使用 &lt;code&gt;hexo new &amp;#x3C;文章标题&gt;&lt;/code&gt; 来创建文章，或者在 /source/_post 新建一个 .md （Markdown）文件&lt;/p&gt;
&lt;h1 id=&quot;换个样子&quot;&gt;换个样子？&lt;/h1&gt;
&lt;p&gt;Hexo 和许多开发者们提供了大量的主题，你可以前往 &lt;a href=&quot;https://hexo.io/themes/&quot;&gt;https://hexo.io/themes/&lt;/a&gt; 获取它们。&lt;/p&gt;
&lt;h1 id=&quot;配置-rss&quot;&gt;配置 RSS&lt;/h1&gt;
&lt;p&gt;这里参考了&lt;a href=&quot;https://segmentfault.com/a/1190000012647294&quot;&gt;为hexo博客添加RSS订阅功能 - SegmentFault 思否&lt;/a&gt;。&lt;br&gt;
需要用到 hexo-generator-feed 。&lt;br&gt;
在博客目录运行&lt;br&gt;
&lt;code&gt;npm install hexo-generator-feed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;完成后再修改 _config.yml，在一块空的风水宝地添加以下内容（确信：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:28ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;feed:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;type: atom&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;path: atom.xml&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;limit: 20&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;hub:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;content:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;content_limit:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:4ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;content_limit_delim: &apos; &apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;feed:    type: atom    path: atom.xml    limit: 20    hub:    content:    content_limit:    content_limit_delim: &amp;#x27; &amp;#x27;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;然后保存即可。&lt;br&gt;
若想立即看到结果，可以运行&lt;br&gt;
&lt;code&gt;hexo clean &amp;#x26; hexo g &amp;#x26; hexo s&lt;/code&gt;&lt;br&gt;
并在浏览器打开 localhost:4000 来查看。&lt;/p&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;嗯 教程大概到这里就结束了，希望能对你有一些帮助，Happy Writing!&lt;/p&gt;
&lt;p&gt;更详尽的hexo教程烦请看这里辣👇👇&lt;br&gt;
&lt;a href=&quot;https://github.com/blinkfox/hexo-theme-matery/blob/develop/README_CN.md&quot;&gt;https://github.com/blinkfox/hexo-theme-matery/blob/develop/README_CN.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://hexo.io/zh-cn/docs/&quot;&gt;https://hexo.io/zh-cn/docs/&lt;/a&gt;&lt;br&gt;
我们下个教程见！&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>遇见 - 2020我的年度报告</title><link>https://lab.gb0.dev/blog/meet-2020</link><guid isPermaLink="true">https://lab.gb0.dev/blog/meet-2020</guid><description>光阴里，所有的遇见，都是美好的缘份。</description><pubDate>Tue, 23 Feb 2021 07:24:00 GMT</pubDate><content:encoded>&lt;p&gt;（不正经的）写在前面　　光阴里，所有的遇见，都是美好的缘份。 …&lt;/p&gt;&lt;!-- more --&gt;
&lt;h1 id=&quot;不正经的写在前面&quot;&gt;（不正经的）写在前面　　&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;光阴里，所有的遇见，都是美好的缘份。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;/_astro/ec.j8lfr.css&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:89ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:79ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;                                                                               &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;--某中学的超短文章&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot;                                                                               --某中学的超短文章&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;啊嘞？这篇总结（报告）鸽了一个月了吗？看来除夕前能写完罢（然而并没），这其中的因素也挺多的，一直在本地里放着…改了又改…有些东西不合时宜了，就删去…导致了由公历2020的总结改成了农历2020的总结（（（&lt;br&gt;
还是对世界关注太多了吧…dalao们的总结都是对自己的总结，而我…之前写的就有点开幕雷击了（（，于是就开始重写，才有了这篇文章。&lt;/p&gt;
&lt;p&gt;头图什么的就别介意了（&lt;/p&gt;
&lt;p&gt;注：若无特别说明，此处的时间均指2020年（废话）.&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:41ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:1ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;本文章字数略多（大约5200字），可以收藏（Ctrl+D）起来/离线下载慢慢看。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot; style=&quot;--ecIndent:1ch&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#d8dee9;--1:#5a676d&quot;&gt;搭配上面的音乐食用更佳。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy&quot;&gt;&lt;button title=&quot;Copy to clipboard&quot; data-copied=&quot;Copied!&quot; data-code=&quot; 本文章字数略多（大约5200字），可以收藏（Ctrl+D）起来/离线下载慢慢看。 搭配上面的音乐食用更佳。&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/button&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h1 id=&quot;概览&quot;&gt;概览&lt;/h1&gt;
&lt;p&gt;这一年既有苦难，也有快乐。&lt;br&gt;
2020，一个人人既爱又恨的一年，我在其中学到许多，并予新的一年以希望。&lt;/p&gt;
&lt;h1 id=&quot;music&quot;&gt;Music&lt;/h1&gt;
&lt;p&gt;这一年，咱正式入坑电音。自从2019年接触它以来，我对它的喜爱一直不减。&lt;br&gt;
不太记得是哪首让我入的坑了，可能是之前的一些x音热曲（？）（Anyway，我现在不怎么看了）&lt;br&gt;
也逐渐地对一些特定的DJ的鸽曲产生了喜爱，比如说教主（指 Alan Walker （（&lt;br&gt;
当然也在听其它类型的鸽曲了，比如说一些奇怪的鸽曲（&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;可能是网易云的喜爱歌曲超过500的原因？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;也尝试过用其它平台听，比如 Spotfiy ，但是后来炸了，没法登录账号，就弃用了（（补记：2021.02.19，我又重新注册了一个。&lt;br&gt;
如果 Telegram 也可以算播放器的话，那我也听过很长时间（（&lt;/p&gt;
&lt;p&gt;—&lt;/p&gt;
&lt;p&gt;贴个网易云的报告吧，虽然不太准（：&lt;br&gt;
&lt;a href=&quot;https://st.music.163.com/c/year2020/main?eid=71584848672023D12D1BA83E6FA428FE&quot;&gt;https://st.music.163.com/c/year2020/main?eid=71584848672023D12D1BA83E6FA428FE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;咱最喜欢的鸽曲（重新整理版）：&lt;br&gt;
&lt;a href=&quot;https://music.163.com/#/playlist?id=5204684852&amp;#x26;userid=543946870&quot;&gt;https://music.163.com/#/playlist?id=5204684852&amp;#x26;userid=543946870&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&quot;website--blogging&quot;&gt;Website | Blogging&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;话多提醒：不知道为什么一谈及这个话题就话非常多（&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2020.03.30（大概），我在上网课期间看到了一个群友发的建立自己的博客的教程，看过之后发现十分简易（？），便自己动手搭建了一个Typecho博客，并以光速换上了飞天（？）dalao的MDr主题（Material Design yyds）&lt;br&gt;
当时大多东西不懂，便又去问另外一个群友（现在人不知道哪里去了，可能是开学了（？），也获得了一些帮助，自此后的一段时间内便和他用一台服务器，直到大概五月初（当时也经常换域名&amp;#x26;重装，大概有四五个吧…记录也在&lt;a href=&quot;https://t.me/gb_board/1&quot;&gt;博客公告板（Telegram）&lt;/a&gt;上有留存。&lt;br&gt;
此时也是一段“高产期”，最多时能发布三四篇长文章。&lt;br&gt;
此间在同学和官方文档的帮助下，搭建了 Hexo 博客，但是也不经常更，中间也经历了几次重装。&lt;br&gt;
五月初的时候又通过白嫖（？）的途径获得了一台服务器（但由于在美国，所以速度极慢，但还能接受），经过转移之后又开始了在这台服务器的生活。&lt;br&gt;
此后可能是自居吧…也没更新几篇文章…&lt;br&gt;
大概六月份的时候，了解到 Gridea &amp;#x26; Jekyll ，并在不同的设备上进行了几次尝试，结果还蛮好，但最后还是鸽了（&lt;br&gt;
开学之后就基本不更新了（没时间）&lt;br&gt;
一直到大概12.30吧（大概），那个群友不再续费服务器…而我又没有备份的习惯…所以数据就全丢了…不得不重建&lt;br&gt;
（又大概经历了两三次）&lt;br&gt;
最后才成为了现在看到的文章寥寥无几的现状…&lt;/p&gt;
&lt;h1 id=&quot;programming&quot;&gt;Programming&lt;/h1&gt;
&lt;p&gt;编程这块儿吧，貌似想说的话还多些。&lt;br&gt;
首先真的要感谢咱的一个同学，带我入坑了编程（可能他自己也不知道吧）&lt;br&gt;
年初的时候参加了一个现高中组织的冬令营（严格来讲叫补课（迫真），在此过程中认识了这位同学，并和他进行了十分深入的交流，在这个过程中，基本每刻奇怪的知识都在增加（，也激起了我对编程的兴趣，之后便一发不可收拾，基本逃不出去了（&lt;/p&gt;
&lt;p&gt;历程大概分几部分：&lt;br&gt;
1.20~4月（大概），主要是后端语言（主要是 Python ），咱主要通过研究&amp;#x26;写 Telegram bot练手（&lt;br&gt;
后来吧由于搞网站之类，开始投身前端（主要是 HTML CSS ， JS 尚且不大会），利用 MDUI 框架写出来不少东西（当然质量我自己觉得不太高（&lt;br&gt;
大概6月的时候，看到&lt;a href=&quot;https://material.io/develop/web&quot;&gt;Google官方的Material Design框架&lt;/a&gt;，对 MD2 追求许久的我立马上手试了试，觉得还不错，但是技术门槛有点高，我还得学习学习（&lt;br&gt;
7月的时候，突然想整一个Material Design的Typecho主题，“说干就干”，但由于对 PHP和JS 十分生疏（没时间+1），所以做的很慢，到现在只做了一半，我估计下个长假能做完吧…&lt;/p&gt;
&lt;p&gt;咱做的一些东西大多放在 GitHub 上，可以&lt;a href=&quot;https://github.com/GrassBlock1&quot;&gt;去看看&lt;/a&gt;。&lt;/p&gt;
&lt;h1 id=&quot;games&quot;&gt;Games&lt;/h1&gt;
&lt;p&gt;1月初咱换了新手机（一些翻阅频道历史和那时比较熟悉的人都知道我之前并不用这台手机，但是现在大家都知道了（（（（，配置对于我来说是一次很大的升级（&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/Grassblock1/jsdelivr/Screenshot_20210117073527.jpg&quot; alt=&quot;《论我为何买了这台子厂给母厂丢脸的手机这件事》&quot; title=&quot;《论我为何买了这台子厂给母厂丢脸的手机这件事》&quot;&gt;&lt;br&gt;
&lt;em&gt;希望热水不会打我（（（&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;（好家伙，现在大家都知道我换了一台嗡嗡嗡手机）&lt;/p&gt;
&lt;p&gt;话归正题，自从有了这台手机，我终于可以畅快的玩 Minecraft 辣（无端兴奋）&lt;br&gt;
这一年我尝试了许多游戏，包括经营、解谜（如果《纪念碑谷》算的话）等等的游戏，但最终一年过去了，除了 Minecraft 外，我只留下了这些&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plants vs. Zombies&lt;/li&gt;
&lt;li&gt;Catcha!&lt;/li&gt;
&lt;li&gt;冒险村物语&lt;/li&gt;
&lt;li&gt;PC Simulator&lt;/li&gt;
&lt;li&gt;Easter Egg Collection&lt;/li&gt;
&lt;li&gt;YASUHATI&lt;/li&gt;
&lt;li&gt;跳舞的线&lt;/li&gt;
&lt;li&gt;元气骑士&lt;/li&gt;
&lt;li&gt;纪念碑谷2&lt;/li&gt;
&lt;li&gt;osu!droid&lt;/li&gt;
&lt;li&gt;数独酷&lt;/li&gt;
&lt;li&gt;Minetest&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你也感兴趣的话，可以去咕咕噜的菜市场（Google Play）看看&lt;/p&gt;
&lt;p&gt;这些游戏或多或少的陪我消磨了一些时光，让我在课后在家之余增添了一点趣味。&lt;/p&gt;
&lt;p&gt;当然作为一名五六年的Minecraft玩家，时不时的看看自己的存档也是一种乐趣（&lt;br&gt;
虽然这一年来十分繁忙，但那份热爱并没变。&lt;br&gt;
也曾无数次的尝试过开服务器，虽然计划都以破产告终，但还是由此认识了一些朋友（&lt;/p&gt;
&lt;h1 id=&quot;online-social-media&quot;&gt;Online Social Media&lt;/h1&gt;
&lt;p&gt;这一年来我在众多社交平台活跃，下面就列举一些，分别来谈谈&lt;/p&gt;
&lt;h2 id=&quot;国内平台&quot;&gt;国内平台&lt;/h2&gt;
&lt;h3 id=&quot;某手&quot;&gt;某手&lt;/h3&gt;
&lt;p&gt;没办法，这玩意儿是手机预装的（可卸载app），本来想卸载，但是为了春节期间存一些💰，就更新了一下…&lt;br&gt;
然后有时无时便看一些，一般不会超过1h，随着一些观看的深入，大数据开始找上门，给隔壁平台也推了类似的视频…（阿b别看了就是你），评论区的画风也越来越奇怪（比隔壁x音差点），便逐渐远离。&lt;/p&gt;
&lt;h3 id=&quot;哔哩哔哩-乾杯&quot;&gt;哔哩哔哩 乾杯（？）&lt;/h3&gt;
&lt;p&gt;换了新手机，把很久之前的账号登了上去。同时为了防止臃肿的原版侵害手机（？），便装了旧版本的概念版（到后来发现不能用又换回去了），主要看各种版本的Windows系统评测，听鸽（主要是dalao们混的电音（嘿嘿），还有“神医”等一些烂梗（这个害苦我了）。&lt;br&gt;
期间（大概10月份），阿b和楼上那位梦幻联动，给我推了些奇奇怪怪的视频（主要是我在某手看过的视频）&lt;br&gt;
（大 数 据）&lt;/p&gt;
&lt;p&gt;这份不准的年度报告也可以参考：&lt;a href=&quot;https://b23.tv/73YAlY&quot;&gt;https://b23.tv/73YAlY&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;酷安&quot;&gt;酷安&lt;/h3&gt;
&lt;p&gt;新机装的第一个应用就是酷安（嘿嘿），当时主要是看我的年终总结（&lt;br&gt;
这一年我觉得可以称之为我来到酷安的第一年（之前都是用旧版本没法发动态（&lt;br&gt;
看到了酷安2020出的许多“乱子”，自乱子以后就再没看过“头条”。&lt;br&gt;
在酷安认识了许多新朋友，也找到了一些同好者，没有了“头条”，日子反而好过了一些…&lt;/p&gt;
&lt;p&gt;今年酷安没有年度报告…所以没法贴出来…抱歉。&lt;/p&gt;
&lt;h2 id=&quot;国外平台&quot;&gt;国外平台&lt;/h2&gt;
&lt;h3 id=&quot;telegram&quot;&gt;Telegram&lt;/h3&gt;
&lt;p&gt;今年是我来到 Telegram 的第二年，也是见证我在中文圈逐渐“过气”的一年（（（&lt;br&gt;
年初的时候用小号开了一个群，并把它作为2019.11开的频道（对，就是 @gblock_cn ，我们稍后来说它的事）的讨论群（当时 telegram 好像支持讨论群好久了），这便成为“草方块 の 茶话室”的基础，并通过一些宣传增添了一些人员。&lt;br&gt;
后来了解到“抽奖”这种方式能起到一定“引流”的作用（让我姑且这么说吧），并将手头剩余的一些东西抽奖抽出了一些，群组的人数每天都在增加，最高值甚至达到了260人（&lt;br&gt;
可是大家都明白，这种方法并不是万能的，所以在没有连续抽奖活动之后的半个月里，群很死寂。&lt;br&gt;
我也至此明白了经营好一个群组的一些启示，但是为时已晚。&lt;br&gt;
暑假时又出现了新的高峰期，但是好景不长，到了临近开学时又是死寂。&lt;br&gt;
我明白再也救不回来了…就趁着小号被官方删号这件事另起炉灶---重开一个群组（[船新版本]），如今它已经有了三四个分支，虽然不太大，但是不至于一片死寂。&lt;/p&gt;
&lt;p&gt;频道 @gblock_cn 也经历了一周年，这一年来新增了18位管理！（大概），频道订阅者也达到了272人，首先感谢一年多来的陪伴。&lt;br&gt;
频道经历了从无到有，从无人到繁盛，可谓是巨变（&lt;br&gt;
其实我也没想到一个小小的日常频道能成为一个聚集各种奇怪话题的版聊频道（（（&lt;/p&gt;
&lt;p&gt;自己维护的语言包（喵体中文）的知晓的人数不断增多，大概呈这个趋势（由于咱实在不知道是什么函数只能截图了（迫真&lt;br&gt;
&lt;img alt=&quot;增长趋势&quot; title=&quot;增长趋势&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 814px) 814px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;814&quot; height=&quot;715&quot; src=&quot;https://lab.gb0.dev/_astro/7d1a8625fc452a9293ce138e128c3b7f.Cv7YdDAH_1iwCf4.webp&quot; srcset=&quot;/_astro/7d1a8625fc452a9293ce138e128c3b7f.Cv7YdDAH_UDhKf.webp 640w, /_astro/7d1a8625fc452a9293ce138e128c3b7f.Cv7YdDAH_1BpIFi.webp 750w, /_astro/7d1a8625fc452a9293ce138e128c3b7f.Cv7YdDAH_1iwCf4.webp 814w&quot;&gt;&lt;br&gt;
&lt;em&gt;大概就这个样子（图源 Telegram 统计）&lt;/em&gt;&lt;br&gt;
当然这其中的因素还是挺多的：比如 @zh_cn 的停止维护，大家对猫猫的喜爱等等。&lt;br&gt;
由年度调查来看，大多数人是在2020下半年了解到我们并加入频道的，而且大多数为 Android / Windows 用户。&lt;br&gt;
他们对喵体中文都十分满意（4.5/5），这是十分令人高兴的。&lt;br&gt;
下面贴出一些留言：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;祝你们变得更加可爱w&lt;br&gt;
嘛，建议什么的嘛，当然是更可爱了。&lt;br&gt;
能多多覆盖多一点的翻译，别出现生硬的东西大概就好…&lt;/p&gt;
&lt;p&gt;喵！喵体中文是一个很可爱的语言包！跟我在Android平台使用的Nekogram Lite很契合。频道里总是发一些让我（可能是作为一个加入较晚的人）看不懂的东西…现在听说你们打算支持Desktop了，很开心。也祝喵体中文越來越完善，拥有长久的生命力～&lt;/p&gt;
&lt;p&gt;Arch L I N U X 用户表示问号&lt;br&gt;
emmm…除了完全不兼容Qt端没啥问题吧（（&lt;/p&gt;
&lt;p&gt;希望越做越好,非常喜欢这个语言包.jpg 同时希望电脑端完善一下，非常需要。加油(ง •̀_•́)ง&lt;/p&gt;
&lt;p&gt;没什么可建议的，只希望你们越来越好吧，毕竟这语言字体每天也给我很快乐的生活体验，不像是中文字体一样，很喜欢喵喵字体&lt;br&gt;
（据咱考证，此处“字体”=“语言包”，不知道大多数人为什么这么说）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;discord&quot;&gt;Discord&lt;/h3&gt;
&lt;p&gt;年初在上面那位同学的怂恿下，注册了一个账号（，因为主要用 Telegram，所以也不经常用（迫真&lt;br&gt;
也曾经自己创建过服务器，但是很快就凉了，所以最后只“复兴”了一次便放弃了（&lt;br&gt;
主要是在看 Minecraft , Minecraft Earth 的一些消息（但不知道什么时候，Minecraft 服务器把我踢出去了（迫真&lt;br&gt;
自己捣鼓过 bot，也是在年初，出于好奇就在本地写并运行了一个，现在也快凉了（x&lt;/p&gt;
&lt;h3 id=&quot;其它&quot;&gt;其它&lt;/h3&gt;
&lt;p&gt;YouTube 作为Google家的软件，我在装了Google框架后的第一时间就下载了，不过只在年初的时候看了一阵子，后来不经常看了（开学了（，自己也发过视频，不过发现没人看就不发了，就转向 Telegram 频道发视频（&lt;br&gt;
Spotify 正如上文所说，整过，主要是听电音（现在也是，就没变过（（，后来不知为何登陆不上账号了，便好长时间没有听过（现在感觉是梯子的原因）。&lt;br&gt;
Google家的其它东西也有试过（比如环聊），感觉还不错，就是有的功能确实有些鸡肋。&lt;br&gt;
有生以来第一次成功在巨硬那里白嫖来了Office 365 （现在的 Microsoft 365）（划掉）&lt;/p&gt;
&lt;h1 id=&quot;studying&quot;&gt;Studying&lt;/h1&gt;
&lt;p&gt;由于网课期间有一段时间不断在摸鱼，导致成绩呈指数下滑，还好滑的不算快，能补（&lt;br&gt;
但是到了高中，我也不知道是什么原因，自己学习越来越差，甚至班级里垫底。希望新的一年有所改善吧…&lt;br&gt;
于学科而言，数学、物理我自己觉得是最差的（于这五六科而言），其它的稍好一点。&lt;/p&gt;
&lt;h1 id=&quot;daily&quot;&gt;Daily&lt;/h1&gt;
&lt;p&gt;今年的变故还是挺多的，比如离去，比如消散，比如发展，比如加速。&lt;br&gt;
自己不知道何时犯了人格分裂症，还有轻度的抑郁（至少我自己这么觉得），但是我还是挺过了这一年，这或许是比较大的幸运吧。&lt;br&gt;
由于疫情，这一年比较无趣，去过的最远的地方不超过家与学校的距离。（完全遵守疫情防控要求（（（&lt;br&gt;
在家的处境比较艰难（并非是物质上的），几乎这一年来吵了许多架（不限于我和家长之间）&lt;br&gt;
感觉自己这一年过度依赖手机了…也不知道为什么，因此带来的负面效果极大。&lt;/p&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;到这里年度报告就快结束了，又是新的开始。&lt;br&gt;
这一年，感谢这所有的“遇见”，让我在迷茫中明白了一些东西。&lt;br&gt;
（怪怪的&lt;br&gt;
新的一年，新的开始，希望会更好。&lt;/p&gt;
&lt;p&gt;　　　　　　　　　　　　　　　　　　草方块于2020.02.23&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item><item><title>Tap,Tap - 用一次，玩一天</title><link>https://lab.gb0.dev/blog/tap-tap</link><guid isPermaLink="true">https://lab.gb0.dev/blog/tap-tap</guid><description>可玩性高的效率应用。</description><pubDate>Sat, 22 Aug 2020 20:48:00 GMT</pubDate><content:encoded>&lt;p&gt;可玩性高的效率应用。Google在2月份发布了第一个Android 11 Developer Preview之后，我们了解到Google正在开发一套新的手势，代号为“哥伦布”。 通过此功能，您可…&lt;/p&gt;&lt;!-- more --&gt;
&lt;p&gt;可玩性高的效率应用。&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;Google在2月份发布了第一个Android 11 Developer Preview之后，我们了解到Google正在开发一套新的手势，代号为“哥伦布”。 通过此功能，您可以双击Pixel手机的背面以执行诸如启动Google Assistant，启动Google Camera，控制媒体播放等操作。 在Android 11 Developer Preview 2中，Google继续了这些手势方面的工作，并采取了一些新操作来拍摄截图并打开最近的应用程序概述。 但是，这些手势仍然对Pixel用户隐藏，并且在随后的Android 11 Beta版本中被完全删除。 （机翻自XDA Developers）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;不过值得庆幸的是，开发人员Kieron Quinn（在xda论坛上也称为Quinny899）设法移植了此功能，因此它基本上可以在任何运行Android 7+的设备上使用。（喜大普奔）&lt;/p&gt;
&lt;p&gt;现在你的后盖除了保护作用外，又有了新的用途。&lt;/p&gt;
&lt;p&gt;（这事一个不太专业的评测）&lt;/p&gt;
&lt;p&gt;如标题所见，这个 Tap,Tap （理论上来说）是一个效率工具，让你的动作又多了一种执行的方式（譬如说，双击背部截图）。&lt;/p&gt;
&lt;p&gt;（真是搞不明白咕咕噜为啥要把它删掉）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;顺便一提，iOS 14 中也加入了这个功能。（无端）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&quot;界面不仅仅是实用&quot;&gt;界面：不仅仅是实用&lt;/h1&gt;
&lt;p&gt;界面采用了最新的 Material Design 设计（MD2），并且拥有着比较漂亮的动画～&lt;/p&gt;
&lt;p&gt;（就是图标不太好看）&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Screenshot_界面&quot; title=&quot;Screenshot_界面&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;2255&quot; src=&quot;https://lab.gb0.dev/_astro/1c5a5edb87b69f93bf3561eeb26b3295.CB4RRBQK_18KQWD.webp&quot; srcset=&quot;/_astro/1c5a5edb87b69f93bf3561eeb26b3295.CB4RRBQK_m8Pf8.webp 640w, /_astro/1c5a5edb87b69f93bf3561eeb26b3295.CB4RRBQK_Z1wizPk.webp 750w, /_astro/1c5a5edb87b69f93bf3561eeb26b3295.CB4RRBQK_Z1e6Tw.webp 828w, /_astro/1c5a5edb87b69f93bf3561eeb26b3295.CB4RRBQK_18KQWD.webp 1080w&quot;&gt;&lt;/p&gt;
&lt;h6 id=&quot;注这是开启黑暗模式的效果具体可能不太相同中文尚未完备还在不断完善甚至第一个版本还没有中文&quot;&gt;注：这是开启黑暗模式的效果，具体可能不太相同。中文尚未完备，还在不断完善（甚至第一个版本还没有中文（&lt;/h6&gt;
&lt;h1 id=&quot;食用方法&quot;&gt;食用方法&lt;/h1&gt;
&lt;p&gt;下载完此应用后，按照引导操作开启其应用的辅助功能（也叫无障碍应用会自动帮你跳转），并且关闭电池优化。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;由于国产定制rom的特殊性，还需要去诸如“手机管家”等应用内授权该应用的自启动权限！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;（奇葩就完事了，连xda都没写的那种好像也不必写）&lt;/p&gt;
&lt;p&gt;授权完成后就可以愉快食用了，你也可以通过调整各个设置，使其符合你的使用习惯。（建议配合Tasker食用，效果更佳）&lt;/p&gt;
&lt;p&gt;比如。你可以配置成这样（：&lt;br&gt;
&lt;img alt=&quot;Screenshot_配置动作&quot; title=&quot;Screenshot_配置动作&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; sizes=&quot;(min-width: 1080px) 1080px, 100vw&quot; data-astro-image=&quot;constrained&quot; width=&quot;1080&quot; height=&quot;2253&quot; src=&quot;https://lab.gb0.dev/_astro/f9512636aa3c6d82edc1bd539b89767a.BuEVNas1_Zfavnj.webp&quot; srcset=&quot;/_astro/f9512636aa3c6d82edc1bd539b89767a.BuEVNas1_Z295rRt.webp 640w, /_astro/f9512636aa3c6d82edc1bd539b89767a.BuEVNas1_12EfQ0.webp 750w, /_astro/f9512636aa3c6d82edc1bd539b89767a.BuEVNas1_Z1x1LBf.webp 828w, /_astro/f9512636aa3c6d82edc1bd539b89767a.BuEVNas1_Zfavnj.webp 1080w&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;与Tasker联动的办法：Tap,Tap添加Tasker事件&gt;Tasker&gt;配置&gt;事件&gt;插件&gt;Tap,Tap&gt;编辑（实则没编辑项，点 &lt;em&gt;create&lt;/em&gt; 图标就行）&gt;返回&lt;/p&gt;
&lt;p&gt;还有一种：Tap,Tap添加Tasker任务&gt;Tasker&gt;任务&gt;选择已有/新建任务&lt;/p&gt;
&lt;p&gt;图中所示的事件在双击背部时优先级从上到下执行，且只执行一个事件，也就是说，当第一个事件被成功触发后，后面的事件不再执行。当第一个事件未能执行时，将会执行下一个，以此类推。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;当然你还可以决定在什么情况下，避免激活动作，一般保持默认就好了～（在”门槛”选项中，话说为什么要起这么奇怪的名字）&lt;/p&gt;
&lt;p&gt;之后你还可以调整灵敏度（在“手势”选项中），以及选择机器学习的模型（后面会讲，虽然国内没啥用）&lt;/p&gt;
&lt;p&gt;唔…好长的介绍和讲解，没办法，可玩性真的很高（&lt;/p&gt;
&lt;h1 id=&quot;原理&quot;&gt;原理&lt;/h1&gt;
&lt;p&gt;自打下载第一个版本时便发现了这个原理，也非常简单，虽然也是问大佬们才发现的（&lt;/p&gt;
&lt;p&gt;当你在敲击后盖时，z轴加速度会快速上升，且被z轴加速度传感器检测到，并返回给应用。（这也就是为啥它需要无障碍权限了）（不信你可以试试）&lt;/p&gt;
&lt;p&gt;此外，应用还会针对您的敲击学习并做出变化（机器学习），更好的适应您的习惯（虽然国内没啥用就是了），这也是应用体积较大的原因之一。&lt;/p&gt;
&lt;h1 id=&quot;下载&quot;&gt;下载&lt;/h1&gt;
&lt;p&gt;（白嫖怪们最喜欢的环节）&lt;br&gt;
应用大小约14 mb，您可以前往 &lt;a href=&quot;https://www.coolapk.com/apk/com.kieronquinn.app.taptap&quot;&gt;酷安&lt;/a&gt; 或 &lt;a href=&quot;https://github.com/KieronQuinn/TapTap&quot;&gt;官方Github项目&lt;/a&gt;（推荐） 下载。&lt;/p&gt;
&lt;p&gt;（话说这应用更新太勤了吧，月初刚更新0.5，今天又更新0.6.1了）&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;本文完，感谢阅读。&lt;/p&gt;
&lt;p&gt;如果您喜欢此类（不正经）软件评测的文章，可以评论区留言（&lt;/p&gt;</content:encoded><category>uncategorized</category><author>草方块</author></item></channel></rss>