В Gatsby я использую общий знак js, чтобы проанализировать контент уценки из моей CMS и отобразить его как HTML. Вот код:
import React, { ReactNode, Component } from 'react'
import { HtmlRenderer, Parser } from 'commonmark' // <- I import some commonmarkjs classes...
interface Props {
markdown: string
}
export default class Text extends Component<Props> {
parsedMarkdown: string
constructor(props: Props) {
super(props)
const parser = new Parser()
const renderer = new HtmlRenderer()
this.parsedMarkdown = renderer.render(parser.parse(props.markdown)) // <- ...and use them here
}
render(): ReactNode {
return (
<div className="text">
<div dangerouslySetInnerHTML={{ __html: this.parsedMarkdown }} />
</div>
)
}
}
Я запускаю задачу сборки, а затем анализирую вывод с помощью source-map-explorer . Вот результат:
Вы можете видеть, что общий знак включен в мой комплект. Почему? Я думал, что Гэтсби будет достаточно умен, чтобы использовать библиотеку только для создания фактического шаблона, а не для включения его в свой комплект.