You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Hugo中markdownify生成的链接点击后打开新标签页

Hugo 模板中 markdownify 生成链接默认新标签页打开的解决方案

方法1:单模板局部修改(仅对当前模板生效,无需改动全局配置)

直接替换你现有的模板代码即可:

<p>{{ . | markdownify | replaceRE `<a (href="[^"]+")` `<a $1 target="_blank" rel="noopener noreferrer"` | safeHTML }}</p>
  • 逻辑说明:
    • 先通过markdownify将原始Markdown内容转换为HTML格式
    • 再通过replaceRE正则匹配所有<a>标签,自动追加target="_blank"新标签打开属性,以及rel="noopener noreferrer"安全属性(避免新开页面的恶意脚本获取原页面权限)
    • 末尾的safeHTML用于声明渲染后的内容为可信HTML,避免Hugo自动转义特殊字符导致标签失效

方法2:全局生效配置(全站所有Markdown渲染的链接统一生效)

如果你希望站点内所有通过Markdown渲染生成的链接都默认新标签打开,可以使用Hugo的Link Render Hook功能:

  1. 在Hugo项目根目录下新建文件layouts/_default/_markup/render-link.html
  2. 往文件内写入以下内容:
<a href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }} target="_blank" rel="noopener noreferrer">{{ .Text | safeHTML }}</a>
  1. 保存后重新构建站点即可,所有调用markdownify生成的链接都会自动携带新标签打开属性。

内容的提问来源于stack exchange,提问作者Michael Mabinuola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:54:02