扩展配置
提示
扩展配置是 Valaxy 提供的高阶配置,允许你自定义更多与底层/构建相关的配置。
以下是所有的扩展配置项与相关类型。
package/valaxy/node/types/index.ts ValaxyExtendConfig
所以,你可以像这样使用:
Build
build 字段用于配置 valaxy build 的构建行为。
The build field configures the behavior of valaxy build.
ssgForPagination
启用后,Valaxy 会为分页页面生成独立的静态 HTML(如 /page/1、/page/2 等)。默认 false。
When enabled, Valaxy generates static HTML for pagination pages (e.g., /page/1, /page/2). Default is false.
foucGuard
FOUC(Flash of Unstyled Content)防护配置。通过在 <head> 中内联 body { opacity: 0 !important } 隐藏页面,并通过 JS 监测所有样式表(包括 beasties 异步加载的样式表)加载完成后,移除该隐藏样式标签以显示页面,防止首屏样式闪烁和样式分批渲染的问题。
enabled(默认true):是否启用 FOUC 防护maxDuration(默认5000):最大等待时间(毫秒),作为 CSS 加载失败时的安全兜底。设为0可禁用超时兜底
FOUC (Flash of Unstyled Content) guard. Inlines body { opacity: 0 !important } in <head> and uses JS to monitor all stylesheets (including async ones loaded by beasties) until they finish loading, then removes the hidden style tag to reveal the page with a smooth fade-in.
enabled(defaulttrue): enable/disable the guardmaxDuration(default5000): max wait time (ms) before force-showing the page. Set to0to disable the timeout fallback
@vitejs/plugin-vue
Valaxy 默认集成了 @vitejs/plugin-vue 插件,你可以通过 vue 配置项进行配置。
Vite
你可以参见 Vite 文档 自定义 Vite 相关配置。
SSG Options
Valaxy 使用 vite-ssg 进行静态站点生成。 你可以通过 vite.ssgOptions 自定义 SSG 行为。
Valaxy 默认设置了以下 SSG 选项,用户配置会覆盖这些默认值:
script:'async'— 脚本加载模式formatting:'minify'— HTML 输出格式(低内存时自动降级为'none')beastiesOptions.preload:'media'— 非关键 CSS 预加载策略(详见 beasties)concurrency— 并发渲染页面数(根据可用堆内存自动调整)onFinished— 构建完成后自动生成 sitemap(始终执行,用户回调会在其后运行)
完整参数列表请参见 ViteSSGOptions。
注意
SSG 构建最低内存要求:~2.3 GB
vite-ssg 在同一 Node.js 进程中执行 Vite 构建和页面渲染,构建阶段的内存无法完全释放。Valaxy 会根据 V8 堆限制自动调整:堆 ≤ 2.5 GB 时禁用 Critical CSS(beasties)和 HTML minify 以节省内存。
如果遇到 JavaScript heap out of memory 错误,请增大堆限制:
Markdown
可自定义 Markdown 相关配置,如代码主题、区块内容、添加 markdown-it 插件、transformer 等。
效果参见: Markdown。
valaxy/node/plugins/markdown/types.ts
DevTools
设置 devtools: false 以关闭 DevTools。
插件 Addons
参见 使用插件。
UnoCSS
参见 UnoCSS。
Modules
RSS
Valaxy 内置了 RSS 模块,你可以在 valaxy.config.ts 中通过 modules.rss 配置项进行配置。
enable: 是否启用 RSS 模块。默认true,启用。fullText: 是否输出文章全文。默认false,只输出摘要。extractImagePathsFromHTML: 是否从构建后的 HTML 中提取图片路径(用于解析 Vite 打包后的 hash 文件名)。默认true,启用。
关于 extractImagePathsFromHTML
当你在 Markdown 中使用相对路径引用图片时(如 ),Vite 会将图片打包并生成带 hash 的文件名(如 /assets/test.zBFFFKJX.webp)。
- 启用此选项(默认):RSS feed 中的图片 URL 将使用构建后的实际路径,如
https://example.com/assets/test.zBFFFKJX.webp - 禁用此选项:RSS feed 中的图片 URL 将基于文章目录构建,如
https://example.com/posts/article-name/test.webp
大多数情况下,你应该保持此选项为 true,以确保 RSS 阅读器能正确加载图片。
LLMS
Valaxy 内置了 LLMS 模块,遵循 llms.txt 标准,在构建时生成 AI 可读的 Markdown 内容。
启用后,构建产物中将包含:
/llms.txt— 站点页面索引,按目录分组,包含指向各.md文件的链接/llms-full.txt— 所有页面内容的合集(可选)/*.md— 每个页面的原始 Markdown 文件,可通过 URL 直接访问
同时,主题可以利用 useCopyMarkdown() composable 为文章页添加「复制 Markdown」按钮(Yun 主题已内置支持)。
enable: 是否启用 LLMS 模块。默认false,关闭。files: 是否为每个页面生成独立的.md文件。默认true。fullText: 是否生成llms-full.txt(包含所有页面完整内容)。默认true。prompt: 自定义提示词,添加到llms.txt的描述部分。默认''。include: 要包含的 Markdown 文件 glob 模式(相对于pages/目录)。默认['posts/**/*.md']仅包含 posts 目录。设为['**/*.md']可包含所有pages/下的 Markdown 文件,也可指定多个目录如['posts/**/*.md', 'guide/**/*.md']。
llms.txt 中的页面会按顶级目录自动分组(如 ## Posts、## Guide 等)。
CDN 外部化
实验性功能
通过 cdn.modules 配置项,你可以指定某些 npm 包在构建时从 CDN 加载,而非打包到最终产物中。 这可以显著减小构建产物体积,并利用 CDN 加速资源加载。
该配置仅在 valaxy build 时生效,开发模式下不受影响。
提示
cdn.modules 中的每个模块需要提供以下字段:
name: npm 包名(如'katex')global: 该库在window上暴露的全局变量名(如'katex')url: CDN 脚本的完整 URLcss(可选): CDN 样式表的完整 URLexports(可选): 需要重新导出的命名导出列表(如['ref', 'computed'])
示例:通过 CDN 加载 KaTeX
KaTeX 默认会被打包进构建产物。如果你希望通过 CDN 加载 KaTeX 以减小打包体积,可以如下配置:
你也可以使用其他 CDN 源,只需替换 URL 即可。例如使用 unpkg: