はじめに
Rehype Pretty CodeはShikiベースのシンタックスハイライト機能を提供するrehypeプラグイン。
GitHub - rehype-pretty/rehype-pretty-code: Beautiful code blocks for Markdown or MDX.Beautiful code blocks for Markdown or MDX. Contribute to rehype-pretty/rehype-pretty-code development by creating an account on GitHub.github.com
ShikiA beautiful yet powerful syntax highlightershiki.style
この記事では、実際にRehype Pretty Codを使用した例を挙げていきます。
シンタックスハイライト
タイトル
title=""
でタイトルがつけられる。
キャプション
caption=""
でタイトルがつけられる。
行番号の追加
showLineNumbers
をつけると行番号をつけられる。
showLineNumber{4}
のようにしたら最初の数字を変更できる。
行ハイライト
go {2}
のように行番号で指定する。
文字のハイライト
go /Println/`のように単語を指定すると、特定の単語にハイライトをつけられる。
"Println"のように
"でも可能。複数追加する場合は、
js /carrot/ /apple/`のようにする。
マーカー
グループを設定して、マーカをつけることができる。
以下のcssを修正すると、マーカーの色やグループIDを変えたり追加したりすることができる。
diff
diff
+ 言語のシンタックスハイライトを付与する。
Shikiのtransformerで実現している。
// [!code --]をつけると、-
、// [!code ++] をつけると+
になる。
表示されないのでmarkdownの方では/
の後のスペースを抜いている。
ANSIコード
ANSIコードのハイライトもできる。おそらく使用することはなさそう。
Inline ANSI: > Local: http://localhost:3000/
インラインコードのハイライト
インラインコード内のプログラミング言語のシンタックスハイライト
[1, 2, 3].join('-')
Context Aware Inline Code
これは使えるが、自分の環境ではshikiのCSS変数と衝突して、文字の色が変化しない。
getStringLength
function
str
str
カスタムコンポーネント
以下の例は既存のアイテムではなく、独自に作成したコンポーネント、CSSを適応して実装しています。
BlogCard
ブログカードを表示します。
tomokiota.comThe Official Website of Tomoki Ota, Traveler and Photographer.tomokiota.com
Accordion
アコーディオンです。折りたたみ表示を実現します。中身はdetails
タグとsummary
タグで実装してます。