跳转到导航
1-2 分钟阅读
作者:Titus Wormer

关于

本文简要介绍了 MDX 的由来以及它存在的原因。 同时向那些帮助创建和启发 MDX 的人们表示感谢。

什么是 MDX?

MDX 是 Markdown 与 JSX 的结合。 更多信息请参见§ 什么是 MDX?

为什么要有 MDX?

Markdown 没有自定义组件的语法。 MDX 解决了这个问题。

虽然有很多语言在客观上比 Markdown 更好,但 Markdown 的优势在于:

  • 它看起来就是它所表达的意思,相对容易阅读
  • 虽然图片有时令人困惑,但大多数内容写起来都比较简单
  • 它宽松且有歧义性:可能不会正确渲染,但不会报错(对于在论坛上发表评论 忘记加星号的人来说很好)

Markdown 确实有一种扩展方式——HTML,但它有一些缺点:

  • Markdown 中的 HTML 处理很粗糙,解析方式有时不合理
  • HTML 默认不安全,所以有时会被(部分)不支持
  • HTML 和 Markdown 混合效果不好,导致一些令人困惑的规则, 例如需要空行或 markdown="1" 属性
  • HTML 与浏览器耦合,而 Markdown 还可以用于其他用途

前端世界有一个 HTML 的替代方案:JSX。 JSX 很好,原因包括:

  • 它的语法相对熟悉(类似 XML)
  • 它不绑定语义,专为编译器设计(可以有任意领域特定的含义)
  • 它严格且无歧义(如果作者忘记了一个斜杠,会提前报错, 而不是带着错误内容印刷出版)

谁管理 MDX?

该项目由 unified 集体 管理。

谁创建了 MDX?

markdownJavaScriptJSX 结合起来的想法 是由以下人员共同努力的结果: Guillermo Rauch (@rauchg)、 James K. Nelson (@jamesknelson)、 John Otander (@johno)、 Tim Neutkens (@timneutkens)、 Brent Jackson (@jxnblk)、 Jessica Stokes (@ticky) 等人。

虽然以上所有人都对 MDX 至关重要,但我们要特别强调 John Otander (@johno) 的贡献。 John 编写了该项目第一个 alpha 版本以及后来的稳定版本 1 的大部分代码!

Logo 设计VercelEvil Rabbit 创建。

哪些项目启发了 MDX?

以下项目、语言和文章在实现或灵感方面帮助塑造了 MDX。

markdownJSX 语言启发了 MDX。 Markdown 由 John Gruber 创建 (@gruber)。 CommonMark 是最流行的 Markdown 变体,由 John McFarlane (@jgm) 等人创建。 JSX 由 Sebastian Markbåge (@sebmarkbage) 等人 在 Facebook, Inc. 创建。

@mdx-js/* 项目目前大量使用 unified(特别是 micromarkremarkrehype)以及 Acorn。 unified、remark、rehype 及相关工具由 Titus Wormer (@wooorm) 等人创建。 Acorn 由 Marijn Haverbeke (@marijnh) 等人创建。

以下项目最初启发了 @mdx-js/*

以下文章最初启发了 @mdx-js/*

MDX 用 ❤️ 在阿姆斯特丹、博伊西和全球各地打造
本站不会跟踪你。
MIT © 2017-2026
项目在 GitHub
网站在 GitHub
更新订阅 RSS
赞助 OpenCollective