diff --git a/docs/src/content/docs/zh-cn/components/code.mdx b/docs/src/content/docs/zh-cn/components/code.mdx new file mode 100644 index 00000000000..b7c7c1040c1 --- /dev/null +++ b/docs/src/content/docs/zh-cn/components/code.mdx @@ -0,0 +1,103 @@ +--- +title: 代码 +description: 了解如何在没有 Markdown 代码块的情况下,在 Starlight 中显示语法高亮的代码。 +--- + +import { Code } from '@astrojs/starlight/components'; + +`` 组件可以渲染出语法高亮的代码。 +当无法使用 [Markdown 代码块](/zh-cn/guides/authoring-content/#代码块) 时,它非常有用,例如,渲染来自文件、数据库或 API 等外部源的数据。 + +import Preview from '~/components/component-preview.astro'; + + + + + + + +## 导入 + +```tsx +import { Code } from '@astrojs/starlight/components'; +``` + +## 用法 + +使用 `` 组件的渲染能将代码语法高亮,例如在展示从外部源获取的代码时。 + +有关如何使用 `` 组件和可用属性的完整列表信息,请参阅 [Expressive Code “代码组件” 文档](https://expressive-code.com/key-features/code-component/)。 + + + +```mdx +import { Code } from '@astrojs/starlight/components'; + +export const exampleCode = `console.log('这可能来自文件或 CMS!');`; +export const fileName = 'example.js'; +export const highlights = ['文件', 'CMS']; + + +``` + + + +```markdoc +{% code + code="console.log('这可能来自文件或 CMS!');" + lang="js" + title="example.js" + meta="'文件' 'CMS'" /%} +``` + + + +export const exampleCode = `console.log('这可能来自文件或 CMS!');`; +export const fileName = 'example.js'; +export const highlights = ['文件', 'CMS']; + + + + + +### 显示导入的代码 + +在 MDX 文件和 Astro 组件中,使用 [Vite 的 `?raw` 导入后缀](https://cn.vitejs.dev/guide/assets#importing-asset-as-string) 将任何代码文件作为字符串导入。 +然后,你可以将此导入的字符串传递给 `` 组件,以将其包含在你的页面上。 + + + +```mdx "?raw" +# src/content/docs/example.mdx + +import { Code } from '@astrojs/starlight/components'; +import importedCode from '/src/env.d.ts?raw'; + + +``` + +import importedCode from '/src/env.d.ts?raw'; + + + + + +## `` 的属性 + +**实现:** [`Code.astro`](https://github.com/expressive-code/expressive-code/blob/main/packages/astro-expressive-code/components/Code.astro) + +`` 组件接受 [Expressive Code “Code Component” 文档](https://expressive-code.com/key-features/code-component/#available-props) 中记录的所有 props。