Skip to main content
Starlight

Search documentation

Type to search this documentation.

On this pageOverview

Code

The <Code> component renders syntax highlighted code. It is useful when using a Markdown code block is not possible, for example, to render data coming from external sources like files, databases, or APIs.

example.md
## Welcome

Hello from **space**!
TSX
import { Code } from '@astrojs/starlight/components';

Use the <Code> component to render syntax highlighted code, for example when displaying code fetched from external sources.

See the Expressive Code ā€œCode Componentā€ docs for full details on how to use the <Code> component and the list of available props.

MDX
import { Code } from '@astrojs/starlight/components';

export const exampleCode = `console.log('This could come from a file or CMS!');`;
export const fileName = 'example.js';
export const highlights = ['file', 'CMS'];

<Code code={exampleCode} lang="js" title={fileName} mark={highlights} />
markdoc
{% code
   code="console.log('This could come from a file or CMS!');"
   lang="js"
   title="example.js"
   meta="'file' 'CMS'" /%}

In MDX files and Astro components, use Vite’s ?raw import suffix to import any code file as a string. You can then pass this imported string to the <Code> component to include it on your page.

"?raw"
# src/content/docs/example.mdx

import { Code } from '@astrojs/starlight/components';
import importedCode from '/tsconfig.json?raw';

<Code code={importedCode} lang="json" title="tsconfig.json" />

Implementation: Code.astro

The <Code> component accepts all the props documented in the Expressive Code ā€œCode Componentā€ docs.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu