如何在Markdown文件的<pre>预格式化块内嵌入超链接
解决方案
你之前尝试失败的核心原因是:pre 标签的作用是原样输出内部的所有文本内容,默认会屏蔽内部的Markdown语法解析,同时你使用的<href>是错误的HTML标签,正确的超链接标签为<a>。
方案1:HTML嵌套实现(兼容性最优,支持绝大多数渲染环境)
直接在<pre>标签内部使用标准<a>标签包裹需要加链接的目录/文件名即可,示例代码如下:
<pre> ├── <a href="t_databases/">t_databases</a> │ └── <a href="t_databases/MongoDB-Go.md">MongoDB-Go.md</a> └── <a href="t_webdev/">t_webdev</a> ├── <a href="t_webdev/editor-Swagger.md">editor-Swagger.md</a> └── <a href="t_webdev/packages-Go.md">packages-Go.md</a> </pre>
- 注意:该方案需要你使用的Markdown渲染器支持HTML语法解析,GitHub、GitLab、绝大多数静态站点生成器的Markdown渲染器都支持该特性。
方案2:纯Markdown语法实现(适配禁用HTML的平台)
如果你的使用平台不支持嵌入HTML,可以放弃pre块,用空格/HTML空格占位符手动对齐树状结构,直接用Markdown标准链接语法,示例代码如下:
├── [t_databases](t_databases/) │ └── [MongoDB-Go.md](t_databases/MongoDB-Go.md) └── [t_webdev](t_webdev/) ├── [editor-Swagger.md](t_webdev/editor-Swagger.md) └── [packages-Go.md](t_webdev/packages-Go.md)
- 注意:不同字体的空格宽度可能有差异,你可以微调占位符的数量适配显示效果。
方案3:扩展插件实现(适配静态站点场景)
如果你是在MkDocs、VitePress、Hexo这类静态站点框架中使用,可以直接安装对应框架的目录树插件,插件支持自动生成带跳转链接的结构化目录树,不需要手动编写格式。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

