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

如何在Docusaurus中为页面元素添加id属性?

原因说明

Docusaurus 内置的 Markdown/MDX 解析规则默认仅对标题元素开放 {#自定义ID} 语法支持,普通行内、块级元素直接套用原生 Markdown 的 {#ID} 写法不会被解析,因此无法正常生效。

可行解决方案

  • 零配置通用方案:直接书写原生HTML
    Docusaurus 原生支持在 Markdown 内容中直接插入HTML标签,无需修改任何配置即可生效。比如需要给链接添加自定义ID,直接按HTML语法书写即可:
    <a href="/some/text/etc" id="your-custom-id">Some Text</a>
    
    给段落、容器等其他块级/行内元素添加ID的逻辑完全一致,直接给对应HTML标签添加id属性即可。
  • 保留Markdown简写方案:扩展解析插件
    如果需要继续使用[Some Text](/some/text/etc){#ID}这类原生Markdown简写语法,可以通过添加remark-attr插件扩展解析能力:
    1. 安装插件依赖:
      npm install remark-attr
      # 使用yarn/pnpm的话替换为对应包管理工具的安装命令即可
      
    2. 修改项目根目录下的docusaurus.config.js配置文件,在需要启用该语法的模块(文档、博客等)的remarkPlugins配置项中加入插件声明:
      presets: [
        [
          '@docusaurus/preset-classic',
          {
            docs: {
              // 保留原有文档模块的其他配置
              remarkPlugins: [
                // 保留原有其他remark插件
                [require('remark-attr'), {}]
              ],
            },
            // 博客等其他模块需要开启该语法的话,同步在对应配置项中添加相同插件声明即可
          },
        ],
      ],
      
    3. 重启本地开发服务或重新执行构建,之后{#自定义ID}写法就可以在所有支持的元素上正常生效。

补充:如果编写的是MDX内容,也可以直接给引入的组件传入id属性,实现自定义ID的需求。

内容的提问来源于stack exchange,提问作者Some Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.11 16:16:22