常见问题
这和 Hexo 版的 Fluid 是什么关系?
Fluid for Astro 是社区移植版本,视觉与交互尽量与 hexo-theme-fluid 保持一致,但代码完全基于 Astro 重写。
它不是 Hexo 主题的 npm 包,也不能直接在 Hexo 中使用。Hexo 版的配置项(_config.yml)被翻译成了 src/config.ts 中的 TypeScript 对象。
如何从 Hexo 迁移?
大致步骤:
- 把 Hexo 的
source/_posts/*.md复制到src/content/posts/。 - 调整 front matter:
index_img→indexImgbanner_img→bannerImgbanner_img_height→bannerImgHeightbanner_mask_alpha→bannerMaskAlphasticky、tags、categories保持不变
- 把图片放到
public/img/,并把文章中的图片路径改成/img/...。 - 把
_config.yml中的设置迁移到src/config.ts。 - 运行
npm run dev,逐页检查。
Hexo 的 tag 插件({% note %}、{% fold %}、{% mermaid %} 等)不会自动转换。可以用 Markdown 引用、<details> 标签或 Mermaid 代码块替代。
为什么评论没有显示?
按顺序检查:
postConfig.comments.enable是否为true。postConfig.comments.type是否与commentsConfig中已填写的 provider 一致。- 对应 provider 的必要参数是否完整,例如 Giscus 需要
repo与repoId。 - 文章 front matter 中是否设置了
comments: false。
如果 provider 配置不完整,组件会安静地不渲染,以免在页面上留下空白区域。
为什么搜索没有结果?
- 确认
searchConfig.enable为true。 - 确认构建后存在
dist/search.json。 - 如果
searchConfig.content为false,搜索只会匹配标题。 - 开发模式下首次打开搜索框需要等待索引加载完成。
如何修改样式?
有两种方式:
方式一:修改配置。 颜色、字体、圆角、头图高度等都在 src/config.ts 中。
方式二:追加自定义 CSS。 把 CSS 文件放到 public/css/custom.css,然后在配置中引用:
export const customConfig: CustomConfig = {
css: "/css/custom.css",
js: "",
head: "",
html: "",
};
Fluid 的样式源码位于 src/styles/fluid/,使用 Stylus 编写。直接修改源码也可以,但升级主题时需要手动合并改动。
为什么头图不显示?
bannerImg路径是否以/开头?它相对于public/目录。- 图片文件是否真的存在于
public/img/? bannerImgHeight是否为0?为0时头图高度为零。
支持 MDX 吗?
当前模板只启用了 .md。如果需要 MDX,可以安装 @astrojs/mdx 并在 astro.config.mjs 中添加集成。内容集合也需要相应调整。
可以只用其中的某些页面吗?
可以。Astro 的文件路由意味着删除 src/pages/links.astro 就会移除友链页。记得同时清理导航菜单中的对应链接。
如何更新依赖?
npm outdated
npm update
Astro 的大版本升级可能包含破坏性变更,建议先阅读 Astro 升级指南,并在独立分支中测试。
发现 Bug 怎么办?
请在仓库中提交 Issue,并附上:
- 复现步骤
- 浏览器与操作系统
- 相关配置片段
- 控制台报错(如果有)
如果方便,附上一张截图会更有帮助。
常见问题
https://fluid-astro.example.com/posts/faq/