我处于类似的情况,我只想使用 react 来开发故事,并且只在文档中显示 HTML,以便它可以与其他框架一起使用。
这是我到目前为止想出的。
在.storybook/preview.js
我使用自定义函数来呈现源代码时,文件看起来像这样:
import renderToHTML from './renderToHTML'
export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
docs: {
transformSource: (src, storyContext) => renderToHTML(storyContext.storyFn),
},
}
这在此处记录。
我的renderToHTML
函数定义如下:
import { renderToStaticMarkup } from 'react-dom/server'
import { AllHtmlEntities } from 'html-entities'
import prettier from 'prettier'
import HTMLParser from 'prettier/parser-html'
const entities = new AllHtmlEntities()
export default (story) =>
prettier.format(entities.decode(renderToStaticMarkup(story())), {
parser: 'html',
plugins: [HTMLParser],
})
我renderToStaticMarkup
用来编译故事,然后html-entities
取消转义,然后prettier
用来格式化它。
我仍在尝试这个,所以如果我发现问题或更好的做事方式,我可能会更新答案