· 1分で読了
prismjs から shiki に乗り換えた
この記事は中国語から自動翻訳されたものです。翻訳によりニュアンスが失われている場合があります。
shiki はコードのシンタックスハイライトを行うパッケージで、他のパッケージ(highlightjs、prismjs)と比べると比較的新しく、まだあまり知られていない。shiki は TextMate 文法をトークナイザーの定義として使っており、他の場所からそのまま流用できて独自にカスタム言語を書く必要がないだけでなく、統一された標準があるため後から拡張するのも容易だ。
また、サポートしている構文が非常に豊富で設定もしやすく、組み込みテーマもたくさんあるので、ついでに元々の prismjs を置き換えることにした。gatsby-remark-shiki をインストールして設定を適用するだけで完了した。最高だ。
いくつかちょっとした問題にも遭遇した:
- 元々 react でハイライトしていた箇所は、すべて jsx または tsx に変更する必要がある
c++を指定していた場合は、cppに変更する必要がある
成果を見てみよう:
const Component = () => <MyComponent /> 関連記事
- Three.js で僕の部屋を表現する 僕が React Three Fiber を使って実際の自分の部屋をブラウザ上に再現し、実世界のオブジェクトを目録に見立て、空間の記憶を通してここ数年の生活と仕事について語った話。
- フロントエンドで画像を扱う際に注意すべきこと Jake Archibaldの記事を起点に、現代のレスポンシブ画像の書き方を整理する。なぜwidth/heightを付ける必要があるのか、CSSのaspect-ratioはいつ使うべきか、AVIFとWebPの選び方、そしてpicture/source/srcsetを使ったモバイル向け画像の切り替えについて。
- CSS field-sizing — たった1行のCSSでフォーム要素を自動リサイズする かつてtextareaの自動高さ調整は、JavaScriptでscrollHeightを監視するしかなかった。しかしCSSのfield-sizing: contentなら、わずか1行で代替でき、textarea、input、selectに対応している。本記事では従来のやり方のペインポイントと、field-sizingの使い方をまとめる。
- リンクの下線をもっと見栄え良くする:text-underline-offset デフォルトでは下線と文字が近すぎて、このスタイルを好まないデザイナーもいるし、僕自身もあまり綺麗ではないと感じていた。