
スポンサーリンク
Astroプロジェクトにastro-expressive-code
を導入し、コードブロックをスタイリングする方法を紹介します。
前提
- Astroプロジェクトを作成していること。
- MDX(Markdown+JSX)でページを作成していること。
expressive-codeインストール
Astroプロジェクトのディレクトリに移動し、astro-expressive-codeをインストールします。
以下のコマンドを実行してパッケージをインストールします。
npm install astro-expressive-code
astro.config.mjs編集
プロジェクト配下のastro.config.mjs
に、astro-expressive-code
プラグインを追加します。
以下にコード例を示します。
import { defineConfig } from 'astro/config';import expressiveCode from "astro-expressive-code";import mdx from "@astrojs/mdx";
export default defineConfig({ integrations: [ expressiveCode({ theme: 'github-dark', }), mdx() ],});
これで、astro-expressive-codeがAstroプロジェクトに導入され、コードブロックのスタイリングが有効になります。
以下コマンドでAstroプロジェクトを起動して、コードブロックの表示が変わったことをご確認ください。
npm run dev
コードブロックの表示
コマンドに関するコードブロックの表示例を示します。
基本的な使い方
コードブロックは```で値を囲うことで利用できます。
```コードブロックです```
表示例
コードブロックです
形式を指定する
プレーンテキストやプログラミング言語、コマンド等の形式を指定することができます。
```plaintextこんにちは!```
```pythonnumbers = [1, 2, 3, 4, 5]for num in numbers: print(num)```
```bashecho "test"```
表示例(プレーンテキスト)
こんにちは!
表示例(Python)
numbers = [1, 2, 3, 4, 5]for num in numbers: print(num)
表示例(コマンド)
echo "test"
タイトルを表示する
コードブロックにタイトルをつける例です。
プロジェクトのmdxファイルに、titleを指定してコードブロックを作成します。
```bash title="実行コマンド"echo 'test'```
表示例
以下のように、タイトル付きのスタイリングされたコードブロックが表示されます。
echo 'test'
フレームを指定する
```plaintext title="ソースコード" frame="code"コードブロックです``````plaintext title="ターミナル" frame="terminal"コードブロックです```
表示例(コード)
コードブロックです
表示例(ターミナル)
コードブロックです
特定の行をハイライトする
特定の行をハイライトする例を示します。
プロジェクトのmdxファイルに以下のようなコードブロックを指定します。
```javascript title="test.js" {2}var value = aaa;alert(value);```
表示例
以下のように、2行目のコードがハイライトされて表示されます。
var value = aaa;alert(value);
行番号を表示する
line-numbersインストール
コードブロックに行番号を表示するにはplugin-line-numbers
プラグインをインストールします。
npm install @expressive-code/plugin-line-numbers
以下のようにastro.config.mjs
のコードを修正します。
import { defineConfig } from 'astro/config';import expressiveCode from 'astro-expressive-code';import { pluginLineNumbers } from '@expressive-code/plugin-line-numbers';import mdx from '@astrojs/mdx';
export default defineConfig({ integrations: [ expressiveCode({ theme: 'github-dark', plugins: [pluginLineNumbers()], }), mdx(), ],});
行番号の表示・非表示
行番号を表示する場合は、showLineNumbers=true
を指定し、非表示にする場合はshowLineNumbers=false
を指定します。
※showLineNumbers未指定の場合は、行番号が表示されます。
```plaintext showLineNumbers=true行番号を表示します。行番号を表示します。行番号を表示します。```
```plaintext showLineNumbers=false行番号を表示しません。行番号を表示しません。行番号を表示しません。```
表示例(行番号を表示)
行番号を表示します。行番号を表示します。行番号を表示します。
表示例(行番号を非表示)
行番号を表示しません。行番号を表示しません。行番号を表示しません。
オプションまとめ
紹介したオプションをまとめると以下の通りになります。
オプション | 説明 |
---|---|
title | コードブロックのタイトルを指定する |
frame | コードブロックのフレームを指定する(auto , code , terminal , none ) |
showLineNumbers | 行番号を表示する(true で有効、false で無効) |
{n} | 特定の行をハイライトする(例:{1} で1行目をハイライト) |
以上で本記事の解説を終わります。
よいITライフを!