如何在Hugo Markdown代码块中保留长横线分隔行
解决VSCode中Hugo Highlight短代码长横线被篡改的问题
核心原因
VSCode的Markdown格式化器会把连续短横线识别为Markdown分隔线,自动替换成标准的---,干扰了Hugo短代码内的PowerShell输出内容。
方法1:用注释跳过格式化
在Hugo短代码块前后添加格式化忽略注释,让VSCode跳过这段内容的自动格式化:
<!-- prettier-ignore --> {{< highlight plaintext "linenos=false" >}} # PowerShell输出内容 这里保留原始长横线:---(不会被篡改) {{< /highlight >}} <!-- prettier-ignore-end -->
该规则同时适用于VSCode内置Markdown格式化器和Prettier等第三方格式化工具。
方法2:调整VSCode全局格式化配置
打开VSCode设置(快捷键Ctrl+,),编辑settings.json,添加以下配置,阻止格式化工具修改短代码内的内容:
"[markdown]": { "editor.formatOnSave": true, "markdown.preview.breaks": false, // 针对Hugo短代码块禁用格式化 "markdown.format.extra": { "disableFormattingBlocks": ["{{<", "{{%"] } }
如果你的VSCode版本不支持disableFormattingBlocks选项,可改用以下配置,关闭Markdown文件的自动格式化(按需启用):
"[markdown]": { "editor.formatOnSave": false }
方法3:替换长横线为Unicode字符
如果不想修改配置,可将PowerShell输出中的长横线替换为Unicode的短破折号(–)或长破折号(—),VSCode不会将其识别为Markdown分隔线,渲染效果和原长横线一致:
{{< highlight plaintext "linenos=false" >}} # PowerShell输出示例 替换后的分隔线:– – – {{< /highlight >}}
内容的提问来源于stack exchange,提问作者Martin Cairney
相关产品推荐
相关产品推荐

