masanos note

🔧frontmatter-markdown-loader & highlight.js

2022-04-10
icon

Install

frontmatter-markdown-loader

npm i -D frontmatter-markdown-loader


package.json

"devDependencies": {
  "frontmatter-markdown-loader": "^3.7.0"
}


nuxt.config.js

  build: {
    extend(config, ctx) {
      config.module.rules.push({
        test: /\.md$/,
        loader: "frontmatter-markdown-loader",
      });
    }
  }


pages/*.vue

<template>
  <main>
    <div v-html="md.html" />
  </main>
</template>

<script>
import { defineComponent } from '@nuxtjs/composition-api'

export default defineComponent({
  asyncData({ params }) {
    const md = require(`~/posts/**.md`)
    return { md }
  },
  head() {
    return {
      title: this.md.attributes.title,
    }
  }
})
</script>


with markdown-it & highlight.js

npm i -D markdown-it
npm i -D highlight.js


package.json

"devDependencies": {
  "markdown-it": "^12.3.2"
}


nuxt.config.js

build: {
  extend(config, ctx) {
    config.module.rules.push({
      test: /\.md$/,
      loader: "frontmatter-markdown-loader",
      options: {
        markdownIt: {
          html: true,
          linkify: true,
          breaks: true,
          highlight(str, lang) {
            const hljs = require('highlight.js')
            if (lang && hljs.getLanguage(lang)) {
              try {
                return (
                  '<pre class="hljs p-3"><code>' +
                  hljs.highlight(lang, str, true).value +
                  '</code></pre>'
                )
              } catch (__) { }
            }
            return (
              '<pre class="hljs p-3"><code>' +
              hljs.highlight('plaintext', str, true).value +
              '</code></pre>'
            )
          }
        }
      }
    })
  }
}


Related Notessupabase with Vue3 Vue3 with bootstrap-icons[vue3]Install bootstrap5[vue3] install[Nuxt3]The first thing I do when launching a nuxt3 project. (^3.5.2)[Nuxt3][Bootstrap]Use Bootstrap icons with Nuxt3.[Node.js] Storing API results in js🔧[GA4][GTM]Configure GA4 in GTM🔧[Nuxt3]Using Google Tag manager with NUXT3🔧[GA4][BigQuery]Linking GA4 and BigQuery🔧When you want to scrape a SPA site, PhantomJsCloud is solution.🐛Error brew -v | update-reset🔧Use Google Spreadsheet as API with Nuxt3.🔧 Get json from a spreadsheet using GoogleSheetsAPI v4.🔧[Python]Install Python to Mac[Nuxt3]Install stable version of Nuxt 3.0.0. | npx nuxi init nuxt3-appMake Ranking with MySQLwatch & v-model | Vue3 (Nuxt3)window & document | Nuxt3Using custom domain, Hosting to GitHub Pages with Nuxt3GA4 with Nuxt3📝MySQL - Date Function - Tips Use Nuxt3 props🔧Use MicroCMS with Nuxt3🔧Using GoogleFont with Nuxt3📝Error - Deprecation Warning: $weight: Passing a number without unit % (100) is deprecated. - Bootstrap5 📝using sass with nuxt📝Firebase9 Google Authentication with Nuxt3.📝Set favicon in Nuxt3📝Use bootstrap5 with Nuxt3🐛Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement[Nuxt3] How to separate source directoriesmicroCMS & GitHub Actions & Nuxt3Using highlight in Nuxt3.use package.json value🔧Install Font Awesome on Nuxt2 via npm.Github pages with GitHub ActionsCannot find module '~/*/*.vue' or its corresponding type declarations.Vetur(2307)🐛Cannot find module. Consider using '--resolveJsonModule' to import module with '.json' extension.ts(2732)TypeScript Object.🔧Bootstrap5 with Nuxt2processmd with Nuxt2🔧[MySQL]Install MySQL Workbench🔧Convert Markdown to HTML. convert frontmatter to json🔧Install homebrew, nvm, node to Mac🔧[MySQL]Record of installing and starting mysql with homebrew.🎨 Display the photo full screen and overlay the header and footer on top.🔧Set git repository to created project.[Nuxt3] Make Header & Footer
A record of the development is left in a web note.
Masanos
I want to make the world I see happy. Little by little, I am preparing to start a business. Thank you for your support.
Buy Me A Coffee
Copyright© masanos All Rights Reserved.