Перейти к содержимому

Подсветка синтаксиса

Astro поставляется со встроенной поддержкой Shiki и Prism. Это обеспечивает подсветку синтаксиса для:

В Markdown блоки кода выделяются тремя обратными кавычками ```. Вы можете указать язык программирования сразу после открывающих кавычек.

```js
// Код JavaScript с подсветкой
const hello = "world";
```

По умолчанию Astro использует Shiki с темой github-dark. Итоговый HTML содержит инлайновые стили и не требует дополнительных CSS-файлов или клиентского JavaScript.

Вы можете выбрать любую встроенную тему Shiki в конфигурации:

astro.config.mjs
import { defineConfig } from 'astro/config';
export default defineConfig({
markdown: {
shikiConfig: {
theme: 'dracula',
},
},
});

Shiki позволяет настроить разные темы для разных режимов отображения:

astro.config.mjs
export default defineConfig({
markdown: {
shikiConfig: {
themes: {
light: 'github-light',
dark: 'github-dark',
},
},
},
});

В файлах .astro и .mdx доступны два компонента для рендеринга кода.

Этот компонент работает на базе Shiki. Он поддерживает все популярные темы и языки, а также автоматический перенос строк.

---
import { Code } from 'astro:components';
---
<Code code={`const foo = 'bar';`} lang="js" theme="dark-plus" wrap />

Если вы предпочитаете Prism, установите пакет @astrojs/prism:

Окно терминала
npm install @astrojs/prism

Затем импортируйте и используйте его:

---
import { Prism } from '@astrojs/prism';
---
<Prism lang="js" code={`const foo = 'bar';`} />