網站審計
有幾種情況可能會在已發布的網站中產生錯誤,而這些錯誤在構建期間不會被檢測到。在最終構建之前運行此審計。
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 搜索可能會捕獲大多數情況而不會產生誤報。