No meu entendimento, unified
é uma interface para processamento de conteúdo com árvores sintáticas , e remark
é um conjunto de plugins . Isso significa que é necessário usar unified
e anexar plug-ins a ele. Por exemplo:
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))
Mas esta página lista exemplos que podem ser usados remark
diretamente. Por exemplo:
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))
Não entendo por que pode funcionar assim. Será que remark
é uma versão (ou fork) unified
mais focada em alguma coisa?
Não funciona de forma independente.
remark
usaunified
como dependência.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
é semelhante a
Chamar
remark()
é apenas um atalho para configurarunified
comremarkParse
eremarkStringify
.O Remark pode funcionar independentemente do Unified porque o Remark é uma implementação específica e uma ferramenta dentro do ecossistema Unified, projetada para processar conteúdo Markdown.