MoreRSS

site iconJuby | 渚碧修改

阅读和一些杂思。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Juby | 渚碧的 RSS 预览

Hugo博客更新笔记:Shortcode、RSS与FOUC

2025-12-28 21:30:18

行内Shortcode去除空格

初衷是不再在博客的内文插入html标签,从而关闭Hugo的unsafe模式。一番整理后,只剩一处<ruby>标签不舍得删,虽不知何时会再用到,还是为它写了一个简单的shortcode。Hugo的shortcode是块元素,插入行内时会产生空格,{{- -}}的写法也消除不掉。我是强迫症,非要苛求这一个像素的完美,然而ChatGPT提供的诸多方法无一生效。久不用搜索引擎,一搜就找到了解法,AI竟然不知,也是奇怪。

去掉所有空格的方法很简单,在末尾加{{- "" -}}即可,示例如下:

<ruby>{{ .Get 0 }}<rt>{{ .Get 1 }}</rt></ruby>{{- "" -}}

RSS输出保留HTML标签

这是另一个ChatGPT未能帮我解决的问题,它提供的方法要么不能防止html标签转义,要么会导致XML校验报错。正确的写法就在Hugo的官方示例中,AI竟然也没学到,令人诧异。

官方写法如下,如果不这么写,Inoreader阅读器将无法正确排版。

{{ .Content | transform.XMLEscape | safeHTML }}

页面切换闪屏

给博客新加了一个暗色主题后,切换页面开始出现闪屏现象,本地运行没有问题,发布之后却有问题。试了AI提供的各种方法均无效果,准备放弃之际,无意中看到植入博客的rocket-loader.min.js脚本,罪魁祸首原来是它,导致资源的加载顺序有问题从而闪屏。这是域名迁移到Cloudflare后打开的功能,当时并未细查有何用处,而AI也没有想到这一点,似乎不太应该。

戏习檄

2025-12-28 17:14:51

习袭玺,喜,夕徙西溪细洗。犀嬉溪,螅吸屣,汐袭膝。习葸,蹝屣1息蹊,戏蟋樨隙。媳奚习,习嘻,惜媳,系媳,徙席戏媳。曦稀,媳悉玺,希袭玺,习阋媳,媳袭习,习熄,析习,腊2习,吸鼷3蜥翕4。媳惜昔,唏兮,锡5《戏习檄》。


  1. 蹝屣:趿拉着鞋子走路。 ↩︎

  2. 腊:晒干;制成干肉。 ↩︎

  3. 鼷:一种小老鼠,亦称“耳鼠”。一说就是小家鼠。 ↩︎

  4. 翕:翕集,聚集。 ↩︎

  5. 锡:通“赐”。给予;赐给。 ↩︎

海瑞上贺表

2025-12-28 14:28:41

翻红的老剧《大明王朝1566》中有一个海瑞上贺表的情节,也是全剧的高潮之一。

嘉靖皇帝要迁新居,要求在京官员每人必须上一道贺表。海瑞最后一刻才上呈,呈的不是贺表,而是“直言天下之大弊”的《治安疏》。嘉靖御览后气急败坏,多疑的他以为有人指使,天下臣民都等着有一个人站出来骂自己。

出人意料的是,独断专行的嘉靖皇帝并未兴大狱,甚至还不杀海瑞,最主要的原因应该是只有海瑞一人直言,其他大臣并未参与,权力仍尽在自己手中掌握。

这让我想起本朝的一段历史。太祖自开国之后,励精图治,自诩治国有方,于是大开言路,颁了一道“百花齐放,百家争鸣”的旨意,本意是让大家写些歌功颂德的文章,提些不痛不痒的意见。

有些耿直的臣民却会错了意,以为是“致君尧舜”,净揭有关痛痒的疤,更有如储安平者上呈“直言天下之大弊”的《党天下》,触逆龙鳞,让太祖下不来台面。太祖自以天下臣民皆感恩戴德于己,如今却冒出许多狂悖言论,妄图动摇独治基业。

面对“事情正在起变化”,太祖将“双百”释为引蛇出洞之计,既掩盖自己的失策,保全脸面,又能趁机整治这班逆臣贼子,一举两得。

“顺君者昌,逆君者亡”,乃王朝不变之至理。海瑞上贺表而能全己身是幸运的,储安平则活不见人死不见尸。

手机号被停止服务

2025-12-21 20:38:51

要付款收验证码的时候,发现怎么也收不到,初以为手机号欠费了,充值之后仍无消息,打电话一试,才发现被停止服务了。

这可真是让人摸不着头脑,手机号用了十几年,只是今年才用的少了,就莫名其妙遭逢了这种事,不禁怒从心生。

赶忙给电信客服打电话,说是要到有权限的营业厅解锁,也可使用“电信比邻柜台”微信小程序转线上人工解锁,须得有身份证和手机卡。问客服手机被停止服务的原因,只说是使用异常,封禁之前曾发短信提醒。

平时不会特意看短信,翻查记录,发现果然有这样一条:

您的号码使用异常,根据《中华人民共和国反电信网络诈骗法》相关要求,为维护您的合法权益,防止号卡被他人盗用产生不必要的损失,将对本号码采取临时保护措施。

手机号不同于其他服务,是现代生活不可或缺的工具,在未与号主电话联系确认的情况下,以“使用异常”这种含糊不清的理由,仅凭一条短信知会,就擅自停止客户的手机服务,造成的损失又该谁来承担?这种行为实在是蛮横独断至极,多少事情都是假法之名行侵权之实!

这条短信的解释并不能消解我的怒气,于是又在12345平台上投诉,想向电信要一个解释,所谓的“使用异常”到底是哪种行为。

次日尝试“电信比邻柜台”解锁,我还未开口,客服便问是不是要给手机卡解锁,看来遇到我这种情况的人不在少数。首先身份证拍照,然后报手机卡上的一串数字,最后再人脸验证,整个过程几分钟即可结束,解锁流程倒是挺便捷。

一直没接到12345的电话,纳闷了两天,登录平台查看竟是自己联系方式没公开。手机号既已解锁,气也消了,我不是较真的人,此事就到此了解了。大概正是较真的人少,侵权成本低,才让这些企业肆无忌惮吧。

父母之爱子

2025-12-21 15:53:44

父母爱子,是动物本能、人之常情。即便冷峻如鲁迅也不免为爱子辩说“怜子如何不丈夫”。我尚没有孩子,不能感同身受,甚至见到言必子女的父母还会心生鄙夷。

“父母之爱子,则为其计深远”,用现在的说法叫“托举”。如何计深远、如何托举,这就取决于为人父母的能力了,能力越大谋划越多。

一般父母尽力为子女争取衣食无忧的物质生活,中产及以上家庭思虑为子女提供更好的教育资源,最常见的是各种名目的补习和培训,更有资财者可通过购买学区房、转换户籍或国籍等手段置换优质教育资源,或者直接留学跳出国内教育体系,免受高考之苦与筛选。揣度皇亲贵胄、世家大族之为子女也在此列,不过事更易为而已。

然而同道者多,为了让自己的子女更为突出,父母也是煞费苦心,以至于这份苦心与爱意催生出一批天才,实为古今教育未有之大突破。

翻一翻国内的竞赛获奖者,不难找出做着博士级科学研究或发表博士级科研论文的神童,限制他们成就的不是自己的天资不足,而是父母的水平不够。倘或父母是爱因斯坦,那他便也是相对论的提出者了。在国内以卫道士居、擎科研打假旗的科学家饶毅,其女亦是此等科研天才之一1,大学却弃理从文,惜乎。

非是理科独领风骚,文科也不遑多让。韩寒的名字逐渐隐匿了,贾浅浅又以屎尿领文坛,她的研究可谓无人能出其右,毕竟是自己的亲爹。董袭莹便又不同了,与饶女相反,弃文从理一朝变医学天才,只因没有写小说的父母供自己研究。

为子计深远之心,国外父母亦有之,2019年爆出的美国大学招生舞弊,除了赵、郭等华人家庭,更多的是美国家长。

这些爆出的遗传天才,萝卜坑招聘,还有法律、烟草、警察世家,不过是冰山一角,而皇亲贵胄的经营,又岂是一般平民可以探知。“普天之下,莫非王土”,打下天下的人便是王,中国历史的底层逻辑仍在循环。

今日以爱子女的名义造假舞弊,他日不保以爱父母、爱妻子、爱情人、爱艺术的名义以公谋私。若造假的人喊起打假,只可能是分赃不均的利益争斗,正如喊着爱国反美口号却让子女入籍美国的公职人员,肯定不是送子入虎穴。

偶然看到一则笑话:若美国在三月举行家长会,中国将无法召开两会。不管是将子女“出口转内销”还是“纯出口”,掌公众之事、行公众之权者却不让子女为母国之人,试问还有何公信力可谈。

借助AI将博客从Jekyll迁移至Hugo

2025-12-14 17:52:42

将博客从Jekyll迁到Hugo,是我几年前就想做的事了,然而积重难返,力有不逮,这几年也就逐渐淡忘了。为什么想要抛弃Jekyll呢,喜新厌旧的心态远胜于实际需要,Jekyll所被诟病的性能差的问题,在我的环境中并不关键,构建速度从8s提升到2s,看似有4倍之巨,实则并没有那么大的吸引力,还是对未知事物的探索更诱人。

如今有了AI,又有闲心,便想重启这一工程。我想要的是1:1复刻,AI并不能一步到位进行转化,但90%的工作确实都是由它完成。从一种形态切换到另一种形态,最重要的是观念的转变。Jekyll和Hugo虽然相似,但并非完全对应,当了解Hugo构建网页的逻辑后,很多问题也便迎刃而解了,对不懂编程的我来说,这是一个艰难的过程,也有事先未阅读官方文档的原因。

第一步是模板的迁移,Hugo有自己内置的引用逻辑,不如Jekyll用layout指定那么直观,主页、文章、页面需要用什么模板都得重整,对我来说是整个迁移过程中学习曲线最陡峭的部分了。AI的信息有点落后,它提供的架构是老版本的,而新版本进行了结构和逻辑的优化,不管是ChatGPT还是Gemini似乎都不太了然。幸亏我在迷惑之时想到了官方文档,否则就被AI带入落后版本的境地里了。

第二步在迁移资源文件时遇到了最大问题,是Sass一直编译不成功,和AI“讨论”了一两个小时,尝试了不同编译写法、文件结构和语法检查,最终的怀疑点在Sass的解析器上,看过官方文档后确认如此。因为我用了@use的新语法,需要用Dart Sass解析,而Hugo默认使用LibSass。在编译函数上,ChatGPT用的是已废弃的resources.ToCSS,Gemini却知道用新的toCss,这大概是在此次任务中Gemini唯一胜出的一处。

后面都是一些具体而微的问题,捡一些主要的来说。非常重要的一步是posts的适配,Hugo的语法要求更为严格,而我旧文的front matter无法通过检查。文章有几百篇,当然是让AI帮忙写脚本批量处理,Gemini写的脚本引入了新问题,而ChatGPT的脚本一次性就成功了。想来这一步若无AI而让我自己抠脚本,不知要忙到何时。

Hugo更为严格的一个地方在于不能在markdown中执行模板语言,比如partial等,而我在Jekyll中大量使用了此类写法,所以很多页面要重写。Hugo采用的方法是将其编写为shortcode,再在markdown中引用,相比Jekyll多了一步,也完全可以接受。对于图片的插入,我在Jekyll中使用了include的方法,自然也要转换为shortcode,并让AI对功能进行了扩展,支持插入单张或多张图片,这却只是因为某篇文章在新环境中无法再使用模板语言的循环结构。

有一处让人遗憾的功能是Hugo不支持csv格式的数据集,对我来说这是维护读书列表最简单的方式。Hugo也可以处理csv文件,但AI提供的data.GetCSV方式已废弃,用transform.Unmarshal却遇到了csv文件的BOM问题,怎么也修复不了,只能忍痛将读书列表转成了json格式。

Hugo的链接格式生成也不如Jekyll符合心意。我已养成了2025-12-14-hello-world.md风格的文件命名习惯,觉得如此更为条理,但Hugo的:contentbasename不能像Jekyll一样自动取文件名中的英文标题加入链接,:title又带有中文,唯有在front matter中多加一个 slug字段来指定链接内容。

还有一个无伤大雅的功能便是字数统计,前几天才刚让AI写了能较准确统计中英文混排字数的Jekyll插件,现在却突然改弦易帜了,插件也无用武之地。虽说Hugo也能编码实现相同功能,但我图省事就用内置的{{ .WordCount }},在站点配置hasCJKLanguage = true的情况下也还堪用,不过会虚高一些。

Hugo也是老人了,难怪AI掌握的多是一些过时信息,最新的静态博客引擎是什么,我暂时没有兴趣。Hugo就是我以前心中的“白月光”,如今已达夙愿,也可安稳一段时间——Jekyll不也用了七年吗,难道是七年之痒——即便博客再写好多年,Hugo的性能也足够。我觉得Jekyll和Hugo各有千秋,正如开头所说,此一番折腾不过是喜新厌旧而已。而此次工程的两位帮手,俱是免费版的ChatGPT和Gemini两相比较,我觉得ChatGPT写的代码更简洁、更健壮、也更有效。至于一开始订立的1:1还原目标,实际并未完全做到,不是不能,而是没有必要了。