如何在构建时因缺失指定Front Matter字段触发致命错误?
解决方案:缺失指定Front Matter时终止构建
当然可以实现。主流静态站点生成器(比如Jekyll、Hugo、Eleventy)都支持通过自定义逻辑检查Front Matter字段,当last-medical-review缺失时抛出致命错误,直接终止构建流程。
举几个常见工具的实现方式:
- Hugo:在布局模板里添加检查逻辑,用
errorf函数触发致命错误:{{ if not .Params.last_medical_review }} {{ errorf "页面 %q 缺失必填的last-medical-review字段" .Path }} {{ end }} - Jekyll:编写Ruby插件,在构建前的钩子中遍历所有页面检查字段:
Jekyll::Hooks.register :pages, :pre_render do |page| unless page.data['last-medical-review'] raise "页面 #{page.path} 缺少必填的last-medical-review字段" end end - Eleventy:在配置文件中使用构建前钩子来检查所有页面:
module.exports = function(eleventyConfig) { eleventyConfig.on('eleventy.before', async ({}) => { const allPages = await eleventyConfig.getAllTemplates(); for (const page of allPages) { if (!page.data['last-medical-review']) { throw new Error(`页面 ${page.inputPath} 缺失必填的last-medical-review字段`); } } }); };
这类逻辑会在构建过程中主动校验每个页面的Front Matter,一旦发现缺失必填字段,就抛出错误并终止构建,确保所有上线页面都符合规则。
内容的提问来源于stack exchange,提问作者William Entriken
相关产品推荐
相关产品推荐

