nuxt/content + Vuetifyでコードブロックの表示がおかしい場合の対策
2022.04.13 08:30
nuxtjs prismjs prism-theme

nuxt/content を Vuetify と使うとコードブロックの表示がおかしい


このブログを Nuxt.js で作る際に、nuxt/conten を利用して Markdown で記事を書けるようにしました。 サイトデザイン用に Vuetify.js をインストールしていると、CSS が2重に適用されてしまうようで、コードブロックを使うと表示がおかしくなっていたので対策しました。

Vuetify.js の CSS をオフにする


.v-application code {
  all: unset !important;
}

これでコードブロックの表示は nuxt/cotent で使われているPrismJSの CSS の CSS が適用されます。 また、PrismJS はテーマに対応しているので好きなデザインを使用することができます。

Prism Theme を適用する


まずはインストール。

yarn add prism-themes

nuxt.config.jsに設定を追加することで簡単に適用できます。

Prism themes - Githubを見て好きなデザインの css ファイル名を確認し、追加します。

nuxt.config.js
  content: {
    markdown: {
      prism: {
        theme: 'prism-themes/themes/prism-one-dark.css',
      },
    },
  },

参考サイト


https://github.com/PrismJS/prism-themes
https://developer.same-san.com/detail/nuxtcontent-vuetify-conflict
https://hukurouo.com/articles/2020-10-04-codeblock