在我的理解中,unified
是一个用语法树处理内容的接口,remark
是一组插件。这意味着必须使用unified
和附加插件。例如:
import rehypeSanitize from 'rehype-sanitize'
import rehypeStringify from 'rehype-stringify'
import remarkParse from 'remark-parse'
import remarkRehype from 'remark-rehype'
import {unified} from 'unified'
const file = await unified()
.use(remarkParse)
.use(remarkRehype)
.use(rehypeSanitize)
.use(rehypeStringify)
.process('# Hello, Neptune!')
console.log(String(file))
但此页面列出了直接使用的示例remark
。例如:
import {remark} from 'remark'
import remarkPresetLintConsistent from 'remark-preset-lint-consistent'
import remarkPresetLintRecommended from 'remark-preset-lint-recommended'
import {reporter} from 'vfile-reporter'
const file = await remark()
.use(remarkPresetLintConsistent)
.use(remarkPresetLintRecommended)
.process('1) Hello, _Jupiter_ and *Neptune*!')
console.error(reporter(file))
我不明白为什么它可以这样工作。是不是因为它是一个更专注于某件事remark
的版本(或分支) ?unified
它不能独立工作。
remark
用作unified
依赖。https://github.com/remarkjs/remark/blob/remark-stringify%4011.0.0/packages/remark/package.json#L43
https://github.com/remarkjs/remark/blob/remark-stringify%4011.0.0/packages/remark/index.js#L10
类似于
调用只是使用和
remark()
进行配置的快捷方式。unified
remarkParse
remarkStringify
Remark 可以独立于 Unified 工作,因为 Remark 既是 Unified 生态系统内的特定实现,也是工具,旨在处理 Markdown 内容。