今回は、Nuxt.jsでコードのシンタックスハイライトの設定方法を解説していきます。
Prism.jsを使用すると簡単に実現することができます。
Prism.jsというライブラリを使用します。
Nuxt.jsプロジェクトにインストールしましょう。
yarn add prismjs
Nuxt.jsプロジェクトにplugins/prism.js
を作成します。
├── plugins │ └── prism.js
import Prism from "prismjs" import "prismjs/themes/prism.css" export default Prism
nuxt.config.js
に先ほど作ったplugins/prism.js
を読み込ませます。
nuxt.config.js
は、Nuxt.jsの設定ファイルです。
export default { plugins: [ "@/plugins/prism", ], }
Vueファイルのmounted
にprism.jsを適用させるコードを書きます。
mounted
はDOMが作成された後に、実行される関数です。
APIで取得したコンテンツをDOMに適用させた後に、Prism.highlightAll()
を実行します。
<template> <div v-html="$md.render('記事データ')"></div> </template> <script> import Prism from "@/plugins/prism" // <= Vueファイルに読み込む export default { mounted() { Prism.highlightAll() // <= ここで適用させる } } </script>
※$md.render
は、markdown-it
を使用しています。
シンタックスハイライトは、いくつかのカラーの中からを選ぶことができます。
plugins/prism.js
に上記の中のCSSを読み込んであげると適用されます。
import Prism from "prismjs" import "prismjs/themes/prism.css" // <= ここを変更 export default Prism
ハイライトできる言語を増やすには、plugins.prism.js
にファイルを追加します。
import Prism from "prismjs" import "prismjs/themes/prism-tomorrow.css" import 'prismjs/components/prism-java' // <= 追記 import 'prismjs/components/prism-ruby' // <= 追記 import 'prismjs/components/prism-bash' // <= 追記 export default Prism
JavaやRubyなど主要な言語から、様々な言語が用意されています。
対応している言語は、下記から確認することができます。
Prism.jsは、標準で様々なプラグインも用意されています。
コードをコピーするプラグインも用意されていますが、依存性を解消するためにclipboard.js
を使用します。
yarn add clipboard
import 'clipboard' // <= 追記 import Prism from "prismjs" import 'prismjs/plugins/toolbar/prism-toolbar' // <= 追記 import 'prismjs/plugins/toolbar/prism-toolbar.css' // <= 追記 import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard' // <= 追記 export default Prism
上記のようにコードを追記すると、コードスニペットの右上にコピーボタンが表示されます。
Prism.jsは、標準で言語を表示できるプラグインも用意されています。
import 'clipboard' import Prism from "prismjs" import 'prismjs/plugins/toolbar/prism-toolbar' import 'prismjs/plugins/toolbar/prism-toolbar.css' import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard' import 'prismjs/plugins/show-language/prism-show-language' // <= 追記 export default Prism
こちらも、上記のようにコードを追記すると、コードスニペットの右上に言語が表示されます。
他にも様々なプラグインが用意されているようなので、是非触ってみてください。