搜索博客与维基

About

关于这个站点

一个自己用的博客加维基。写给自己看的,也顺便放在网上。

它是干什么的

博客放长文、折腾记录和阶段性总结,按时间倒序,走普通文章的心智。 维基放知识词条,按分类组织,词条之间可以用[[双链]] 互相引用,被引用的页面会自动列出反向链接。

两边共用同一套渲染管线:Markdown、GFM 表格、KaTeX 公式、Shiki 代码高亮、 Mermaid 图表、提示框(callout)。写法一致,样式一致。

怎么加内容

  1. 写博客:在 src/content/blog/ 下新建某个文件名.md,顶部写上 title 和 pubDate, 下面正常写正文。文件名会变成网址。
  2. 写词条:在 src/content/wiki/ 下新建 Markdown, 顶部写 title,也可以加 aliases(别名,让别的词条能用别名连过来)。
  3. 分类:写 category: 技术/前端/性能, 斜杠就是层级,想嵌多少层就多少层。中间层就算没有直接文章,也会自动生成页面。
  4. 标签:写 tags: [Astro, 前端],逗号分隔或方括号都行。
  5. 本地看效果:跑 npm run dev,浏览器开http://localhost:4321。改文件会自动刷新。
  6. 发布:跑 npm run build,产物在 dist/。 想本地预览成品就跑 npm run preview。

这一版的技术选择

Astro

整站是静态的:每次构建把 Markdown 变成纯 HTML。没有数据库、没有后台进程,扔到任何静态托管上就能跑。

内容集合(Content Collections)

每篇文章顶部的 title、category、tags 会被 schema 校验。写错字段名或类型,构建时就报错,不会悄悄漏掉。

Shiki 双主题高亮

代码块的浅色与深色两套配色在构建时同时生成,切主题不需要重新下载资源,也不会有配色闪动。

KaTeX

数学公式在构建时渲染成 HTML 与内联字体,不依赖客户端 JS。行内用 $...$,独占一行用 $$...$$。

Pagefind

构建完成后扫描生成的 HTML,生成一套纯静态的检索索引。搜索不联网、没有第三方服务。

Mermaid

流程图与关系图在浏览器里按需加载渲染,只在页面真的出现图表时才下载脚本。

目前的已知边界

  • 搜索要等 npm run build 生成索引后才能用;dev 模式下点搜索会提示这一点。
  • Mermaid 走公开 CDN 加载。断网或 CDN 不可达时图表不会渲染,会退回显示图的源码,页面上其他内容不受影响。
  • 站点域名在 src/lib/site-url.mjs 的 SITE 里,目前是占位值,部署前要换成自己的。
  • 首页那张鲸鱼娘插画来自网友二创整理站「蓝色大肥鱼」,版权归原作者,这里只做个人站点展示用;要商用得先找原作者要授权。