Theme-ui/prism 不适用于 gatsbyjs markdown 文件
Theme-ui/prism won't work for gatsbyjs markdown files
我正在使用@theme-ui/prism 来格式化降价文件中的代码块文本。我使用的 markdown 插件是 gatsby-plugin-mdx。它似乎不起作用,因为我在代码块中没有得到深色背景。
这是我所做的:
yarn add @theme-ui/prism
创建src/gatsby-plugin-theme-ui/components.ts:
import Prism from '@theme-ui/prism'
const components = {
pre: props => props.children,
code: Prism,
}
export default components
在src/gatsby-plugin-theme-ui/index.ts中我已经为pre
定义了一个样式:
import nightOwl from '@theme-ui/prism/presets/night-owl.json';
import colors from "./colors";
import headings from "./headings";
const systemFonts =
'-apple-system, BlinkMacSystemFont, San Francisco, Helvetica Neue, Helvetica, Ubuntu, Roboto, Noto, Segoe UI, Arial, sans-serif';
const transition = '0.2s ease-out';
export default {
useColorSchemeMediaQuery: true,
colors,
initialColorMode: `dark`,
fonts: {
body: systemFonts,
heading: "Avenir Next",
monospace: 'Menlo, monospace'
},
fontSizes: [12, 14, 16, 24, 28, 36, 48, 64],
fontWeights: {
body: 400,
heading: 500,
bold: 600,
},
lineHeights: {
body: 1.7,
heading: 1.1275,
},
letterSpacings: {
body: 'normal',
caps: '0.2em'
},
breakpoints: [
'320px', '376px', '540px', '735px', '1070px', '1280px', '1640px', '1880px'
],
transition,
styles: {
root: {
fontFamily: 'body',
lineHeight: 'body',
fontWeight: 'body',
...headings
},
...headings,
p: {
my: 4,
},
a: {
color: 'secondary',
transition: `color ${transition}`,
':hover,:focus': {
color: 'text'
}
},
pre: {
...nightOwl,
fontFamily: `"Operator Mono", monospace`,
fontSize: '0.9rem',
tabSize: 4,
hyphens: `none`,
overflow: `auto`,
borderRadius: 6,
p: 3,
my: 4
},
inlineCode: {
color: `primary`,
background: `rgba(233, 218, 172, 0.15)`,
borderRadius: 3,
px: `0.4rem`,
py: `0.2rem`
},
table: {
width: '100%',
borderCollapse: 'separate',
borderSpacing: 0
},
th: {
textAlign: 'left',
borderBottomStyle: 'solid'
},
td: {
textAlign: 'left',
borderBottomStyle: 'solid'
}
}
}
棱镜功能似乎实际上是 theme-ui 的未来版本的目标,因此默认(v0.3.x
在撰写本文时)doesn't support it。
要解决此问题,您可以将 theme-ui*
和 gatsby-plugin-theme-ui
软件包版本更改为 ^0.4.0-rc.1
(rc.3 实际上已出,但 it's broken atm 所以不要使用它)。
// package.json
{
...
"dependencies": {
"gatsby-plugin-theme-ui": "^0.4.0-rc.1",
"@theme-ui/prism": "^0.4.0-rc.1",
"theme-ui": "^0.4.0-rc.1",
}
}
我正在使用@theme-ui/prism 来格式化降价文件中的代码块文本。我使用的 markdown 插件是 gatsby-plugin-mdx。它似乎不起作用,因为我在代码块中没有得到深色背景。
这是我所做的:
yarn add @theme-ui/prism
创建src/gatsby-plugin-theme-ui/components.ts:
import Prism from '@theme-ui/prism'
const components = {
pre: props => props.children,
code: Prism,
}
export default components
在src/gatsby-plugin-theme-ui/index.ts中我已经为pre
定义了一个样式:
import nightOwl from '@theme-ui/prism/presets/night-owl.json';
import colors from "./colors";
import headings from "./headings";
const systemFonts =
'-apple-system, BlinkMacSystemFont, San Francisco, Helvetica Neue, Helvetica, Ubuntu, Roboto, Noto, Segoe UI, Arial, sans-serif';
const transition = '0.2s ease-out';
export default {
useColorSchemeMediaQuery: true,
colors,
initialColorMode: `dark`,
fonts: {
body: systemFonts,
heading: "Avenir Next",
monospace: 'Menlo, monospace'
},
fontSizes: [12, 14, 16, 24, 28, 36, 48, 64],
fontWeights: {
body: 400,
heading: 500,
bold: 600,
},
lineHeights: {
body: 1.7,
heading: 1.1275,
},
letterSpacings: {
body: 'normal',
caps: '0.2em'
},
breakpoints: [
'320px', '376px', '540px', '735px', '1070px', '1280px', '1640px', '1880px'
],
transition,
styles: {
root: {
fontFamily: 'body',
lineHeight: 'body',
fontWeight: 'body',
...headings
},
...headings,
p: {
my: 4,
},
a: {
color: 'secondary',
transition: `color ${transition}`,
':hover,:focus': {
color: 'text'
}
},
pre: {
...nightOwl,
fontFamily: `"Operator Mono", monospace`,
fontSize: '0.9rem',
tabSize: 4,
hyphens: `none`,
overflow: `auto`,
borderRadius: 6,
p: 3,
my: 4
},
inlineCode: {
color: `primary`,
background: `rgba(233, 218, 172, 0.15)`,
borderRadius: 3,
px: `0.4rem`,
py: `0.2rem`
},
table: {
width: '100%',
borderCollapse: 'separate',
borderSpacing: 0
},
th: {
textAlign: 'left',
borderBottomStyle: 'solid'
},
td: {
textAlign: 'left',
borderBottomStyle: 'solid'
}
}
}
棱镜功能似乎实际上是 theme-ui 的未来版本的目标,因此默认(v0.3.x
在撰写本文时)doesn't support it。
要解决此问题,您可以将 theme-ui*
和 gatsby-plugin-theme-ui
软件包版本更改为 ^0.4.0-rc.1
(rc.3 实际上已出,但 it's broken atm 所以不要使用它)。
// package.json
{
...
"dependencies": {
"gatsby-plugin-theme-ui": "^0.4.0-rc.1",
"@theme-ui/prism": "^0.4.0-rc.1",
"theme-ui": "^0.4.0-rc.1",
}
}