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

如何在Astro的Markdown中禁用缩进代码块?

如何禁用Markdown中的缩进代码块(适配新版remark-parse/micromark)

由于新版remark-parse基于micromark重构,旧工具remark-disable-tokenizers已不再兼容,可通过配置micromark的扩展禁用规则实现需求,无需切换到MDX:

核心方案:通过remarkParse配置禁用缩进代码块解析

在使用unified/remark的流程中,给remark-parse传入配置,禁用codeIndented扩展即可关闭缩进代码块的识别:

import { unified } from 'unified'
import remarkParse from 'remark-parse'
import remarkRehype from 'remark-rehype'
import rehypeStringify from 'rehype-stringify'

// 构建解析管道
unified()
  .use(remarkParse, {
    extensions: [
      {
        disable: ['codeIndented'] // 禁用缩进代码块规则
      }
    ]
  })
  .use(remarkRehype)
  .use(rehypeStringify)
  .process('    这行缩进文本将被解析为普通段落')
  .then(file => console.log(String(file)))

在Astro中直接配置(无需切换MDX)

若你使用Astro,可直接在astro.config.mjs中配置Markdown的remark解析选项,替代临时切换MDX的方案:

import { defineConfig } from 'astro/config'

export default defineConfig({
  markdown: {
    remarkParseOptions: {
      extensions: [{ disable: ['codeIndented'] }]
    }
  }
})

原理说明

新版remark通过micromark处理Markdown语法解析,codeIndented是控制缩进代码块的内置扩展,通过disable数组指定该扩展后,micromark会跳过对缩进4个空格/1个制表符文本的代码块识别,将其视为普通段落文本。

内容的提问来源于stack exchange,提问作者Aravind Prabhakaran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:30:42