描述bug
在编写MDX时,主题fontCode
在某些场景中没有应用,而是使用了浏览器用户代理的默认值(monospace
)或storybook的默认值(ui-monospace, Menlo, Monaco, ...
)。
{/* .storybook/preview.tsx */}
import type { Preview } from '@storybook/react';
import { create } from '@storybook/theming/create';
export const theme = create({
base: 'light',
fontCode: 'VT323', // <-- the property I'm referring to
...
});
const preview: Preview = {
parameters: {
docs: { theme },
...
}
};
export default preview;
{/* src/stories/reproduction.mdx */}
import { Meta, Source } from '@storybook/blocks';
export function Code({ code = '' }) {
return <code>{code}</code>;
}
<Meta title="Example/Reproduction" />
# Reproduction
`Inline code with backticks` ✅
<code>Inline code as code element</code> ❌
<Code code="Inline code as react component returning code element" /> ✅
'Plain markdown code block' ❌
```js
'Syntax highlighted markdown code block' ✅
- 我认为*预期的行为是作为主题
fontCode
指定的font-family
应该在上述所有场景中都应用,但是...也许有些场景是有原因的?
重现bug
https://stackblitz.com/edit/github-fj1jen?file=src/stories/reproduction.mdx
系统信息
Environment Info:
System:
OS: macOS 13.1
CPU: (8) arm64 Apple M1 Pro
Binaries:
Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v18.12.1/bin/yarn
npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm
Browsers:
Chrome: 111.0.5563.110
Firefox: 111.0.1
Safari: 16.2
npmPackages:
@storybook/addon-essentials: ^7.0.0-rc.8 => 7.0.0-rc.8
@storybook/addon-interactions: ^7.0.0-rc.8 => 7.0.0-rc.8
@storybook/addon-links: ^7.0.0-rc.8 => 7.0.0-rc.8
@storybook/blocks: ^7.0.0-rc.8 => 7.0.0-rc.8
@storybook/react: ^7.0.0-rc.8 => 7.0.0-rc.8
@storybook/react-vite: ^7.0.0-rc.8 => 7.0.0-rc.8
@storybook/testing-library: ^0.0.14-next.1 => 0.0.14-next.1
其他上下文
- 无响应*
5条答案
按热度按时间sqserrrh1#
我相信正在发生的事情是:
SyntaxHighlighter
组件替换所有<code>
示例,这尊重了 SB 主题。你可以认为未被替换的示例仍然应该尊重 SB 主题,这是一个 bug。我不确定我们在这个问题上的观点是什么。@JReinhold,你能对此发表意见吗?
无论如何,目前的解决方法是使用能够正确工作的语法🙈
gk7wooem2#
更新:这个已经记录在案了!
6qftjkof3#
感谢伟大的复刻!
<code>Inline code as code element</code> ❌
这在MDX2中是预期的,@shilman指出。https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#explicit-code-elements-are-no-longer-syntax-highlighted
这应该可以工作,我认为这是一个bug。
<Source code={
'语法高亮源代码块' ❌} />
这也应该可以工作,我认为这也是一个bug。
deikduxw4#
啊哈,我明白了。我搜索了一下但是没有找到那份文档。无论如何,感谢你们快速的响应和在storybook上所做的所有工作!
ff29svar5#
以下是关于此问题的GitStart工单:https://clients.gitstart.com/storybook-oss/1/tickets/STORYBOOK-21804