HUGO
Menu
GitHub 87548 stars Mastodon

网站审计

在部署生产网站之前运行此审计。

有几种情况可能会在已发布的网站中产生错误,而这些错误在构建期间不会被检测到。在最终构建之前运行此审计。

HUGO_MINIFY_TDEWOLFF_HTML_KEEPCOMMENTS=true HUGO_ENABLEMISSINGTRANSLATIONPLACEHOLDERS=true hugo && grep -inorE "<\!-- raw HTML omitted -->|ZgotmplZ|\[i18n\]|\(<nil>\)|(<nil>)|hahahugo" public/

已在 GNU Bash 5.1 和 GNU grep 3.7 中测试。

示例输出

网站审计终端输出

说明

环境变量

HUGO_MINIFY_TDEWOLFF_HTML_KEEPCOMMENTS=true :即使启用了最小化,也保留 HTML 注释。这优先于网站配置中的 minify.tdewolff.html.keepComments。如果在执行此审计时最小化而不保留 HTML 注释,你将无法检测到何时遗漏了原始 HTML。

HUGO_ENABLEMISSINGTRANSLATIONPLACEHOLDERS=true :如果翻译缺失,显示占位符而不是默认值或空字符串。这优先于网站配置中的 enableMissingTranslationPlaceholders

Grep 选项

-i, --ignore-case :忽略模式和输入数据中的大小写区别,使得仅大小写不同的字符相互匹配。

-n, --line-number :在每行输出前加上其输入文件中基于 1 的行号。

-o, --only-matching :仅打印匹配行中匹配(非空)的部分,每个这样的部分在单独的输出行上。

-r, --recursive :递归读取每个目录下的所有文件,仅当命令行中指定时才跟随符号链接。

-E, --extended-regexp :将模式解释为扩展正则表达式。

模式

<!-- raw HTML omitted --> :默认情况下,Hugo 在渲染之前会从 Markdown 中剥离原始 HTML,并在此位置留下此 HTML 注释。

ZgotmplZ :ZgotmplZ 是一个特殊值,表示不安全的内容在运行时到达了 CSS 或 URL 上下文。请参阅 详细信息

[i18n] :如果翻译缺失,这是生成的占位符,而不是默认值或空字符串。

(<nil>) :当将 nil 值传递给 printf 函数时,此字符串将出现在渲染后的 HTML 中。

(<nil>) :与上面相同,当 printf 函数返回的值未通过 safeHTML 传递时。

HAHAHUGO :在某些情况下,渲染后的 shortcode 可能包含字符串 HAHAHUGOSHORTCODE 的全部或部分(大写或小写)。这在所有情况下都难以检测,但对输出进行不区分大小写的 HAHAHUGO 搜索可能会捕获大多数情况而不会产生误报。


Last updated: January 1, 0001
Improve this page