初始之地S2

发表于 2026-02-24 11:05 1241 字 7 min read

汉堡肉大王 avatar

汉堡肉大王

aka 烤肉肉 || INTP/万金油/碎碎念制造机/居家办公中/尽量让自己热爱生活中

新主题的装修记录

和过去一样,这篇文章记录我网站建站的修改进度。之所以叫起始之地 S2,是因为之前有过 S1,灵感来自塞尔达传说-旷野之息,游戏开始的地名。

想要实现的东西

  • 图片环绕文字,类似 word 的非嵌入式插入。
  • 版权说明,虽然这玩意没啥用,但是写了就是写了。
  • 建站时长,这个是我每次折腾网站必搞的装修。
  • 评论功能,这个功能我在考虑加不加,其实小个站加不加无所谓
  • 引用样式的修改,我不是很喜欢现在这个引用的样式。
  • 逐步替换掉现在的随机封面图片

已经实现的功能

2026.3.30

  • 给首页的PostItemCard上的图片加上了一个过度效果,原理是用的mask-image
具体代码
src\components\post\PostItemCard.astro

"[mask-image:linear-gradient(to_right,black_70%,transparent_100%)]",
"[-webkit-mask-image:linear-gradient(to_right,black_70%,transparent_100%)]",

2026.3.16

  • 加了一个好物分享墙,后面慢慢加东西吧

  • 原主题有一套非常专业的 CLI 模块化架构,支持直接用pnpm koharu新建 md 文件(博文),但是 koharu 有点难记,我得研究下源代码,魔改成我能记住的。

心路历程

这里用 codex 直接搓出来的。老记不住koharu,让 ai 按照模板搓了个pnpm singlebee的版本,直接能生成当周周记,默认日期周五。ai 直接搓出来的肯定不如原代码优雅,不过我不是很在意,能用就行。

2026.3.14

  • 图片下方文字
心路历程

这里用 cursor 直接搓出来的。理论上就是把原本 alt 里的文字显示在图片下方,很久之前在 hugo 的博客里就有类似的实现思路,把实现的原理告诉 ai 很快就搓出来了。

我觉得这个功能应该是博客必备的,只上一张图片总觉得少了点什么,很多图片还是想加点介绍(吐槽)。

2026.3.10

  • banner 图替换/2026.3.10
心路历程

因为最近在推 p3r,阿特拉斯的设计审美还是太在线了,优秀的作品果断抄一下,嗯,这该死的美感。视频是直接去 p3r 的官网偷的,日本人的网站做得是真糙,连阿特拉斯这么注重设计的公司也全用图片了事。

2026.2.24

  • mdx 支持/2026.2.24
心路历程

我用这个框架主要原因就是想用 mdx,不过这个主题用了 react19,这个有一个 bug,我问 ai 才知道这是 Astro 官方的 MDX 内部扫描 Bug:

AI 生成

在 Astro 官方仓库(Issue #12802)中,社区和维护者确认了:当开启 MDX 集成后,Astro 内部的“检查 (check)”函数会去尝试评估组件的渲染方式。在这个扫描过程中,它会意外地像调用普通函数一样,直接去调用底层的 React 组件。

它会导致启用 dev 开发模式之后,控制台一直蹦错误,但是实际上应该不影响渲染,总之除了心烦一点没别的事就不管了。

后续发现两个问题,一个是 mdx 虽然正常渲染出来了,但是很多面向 mdx 的语法都没启用,连基本的 import 都会以文本的形式出现,之前转 mdx 的时候就发生过这个问题。

./astro.config.mjs
mdx({
      extendMarkdownConfig: false,
      remarkPlugins: remarkPlugins,
      rehypePlugins: rehypePlugins,
    }),

把这个里面的extendMarkdownConfig: true 改成false就行了。

问题二就是发现 mdx 启用后原本图片支持点开放大的灯箱模式用不了,同一个地方的代码加上remarkPlugins: remarkPlugins,就行了,这是 md 的配置和 mdx 的配置分离了。理论上还有很多它独特的语法没兼容过来,我先不管了,遇到再说吧。

  • dbcard 组件自动导入/2026.2.24
心路历程

这个功能其实也是早就写了的,最开始在 hugo 上面装修就是搞的这玩意,一路改代码改到上一个博客也能用。mdx 的特性就是能在 md 文件里直接用 react 的组件,相对于 md 的这种自由度自然是会高很多。

其实这些问题在我手搓 mdx 博客的时候都遇到过了,解决的思路就是在渲染前就把这些搞好。在CustomContent.astro里导入好就行了,以后如果有其他的组件了也可以这么用。

  • 竖排图片功能/2026.2.24
心路历程

这个功能其实是原主题就有的,逻辑是两个连续的 img 语法经过一系列判定宽度合适就启用竖排布局,但它是长宽比大于 1.2 才启用竖排,我觉得这个功能理论上我可以在写博客的时候就控制是否要竖排,所以我改成了长宽比大于等于 1 就直接启用。

© 2015 - 2026 汉堡肉大王 @singleBee
Powered by theme astro-koharu · Inspired by Shoka