最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Vite2+Vue3渲染Markdown文檔的方法實(shí)踐

 更新時(shí)間:2021年08月03日 15:32:37   作者:木亦Sam  
本文主要介紹了Vite2+Vue3渲染Markdown文檔的方法實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下

大部分使用 Vite2 的開(kāi)發(fā)者遇到的一個(gè)問(wèn)題,就是文檔里并沒(méi)有相關(guān)支持 Markdown 的介紹,那么如果想要在 Vite 項(xiàng)目中支持 Markdown 引入并渲染,需要怎么操作?這篇文章將介紹兩種方式。

自定義 Vite 插件

如果去網(wǎng)上相關(guān)問(wèn)題,大部分都是這種方式,就是自定義插件,使得 Vite 支持 Markdown 渲染,具體做法如下:

在項(xiàng)目根目錄創(chuàng)建 md.js 文件,填充如下內(nèi)容:

import path from 'path';
import fs from 'fs';
import marked from 'marked';

const mdToJs = str => {
  const content = JSON.stringify(marked(str));
  return `export default ${content}`;
};

export function md() {
  return {
    configureServer: [ // 用于開(kāi)發(fā)
      async ({ app }) => {
        app.use(async (ctx, next) => {
          // 獲取后綴為 .md 的文件,將他變?yōu)?js 文件
          if (ctx.path.endsWith('.md')) {             
            ctx.type = 'js';
            const filePath = path.join(process.cwd(), ctx.path);
            ctx.body = mdToJs(fs.readFileSync(filePath).toString());
          } else {
            await next();
          }
        });
      },
    ],
    transforms: [{  // 用于 rollup
      test: context => context.path.endsWith('.md'),
      transform: ({ code }) => mdToJs(code)
    }]
  };
}

接著修改 vite.config.js,引入上面創(chuàng)建的插件。

import {md} from './md';

export default {
  plugins: [md()]
};

這樣,在使用時(shí),會(huì)將導(dǎo)入的 md 文件轉(zhuǎn)換成 js 文件渲染。具體使用示例:

<template>
<article v-html="md" />
</template>

<script lang="ts">
import md from './xxx.md'
export default {
setup(){

  return {md}
  
  }
}

使用 vite-plugin-markdown

這款第三方插件不僅支持引入并渲染 Markdown 文件,并且支持渲染成各種格式,例入 HTML 字符串、React 或 Vue 的組件等。
安裝 vite-plugin-markdown。

npm i vite-plugin-markdown

在 vite.config.js 中修改:

const mdPlugin = require('vite-plugin-markdown')

export default {
  plugins: [
    mdPlugin.plugin({
      mode: ['html'],
    })
  ]
}

配置中傳入一個(gè) options,選項(xiàng)對(duì)象,支持以下參數(shù):

mode?: ('html' | 'toc' | 'react' | 'vue')[]

markdown?: (body: string) => string

markdownIt?: MarkdownIt | MarkdownIt.Options

各個(gè)模式下的渲染示例:

Import Front Matter attributes

---
title: Awesome Title
description: Describe this awesome content
tags:
  - "great"
  - "awesome"
  - "rad"
---
# This is awesome
Vite is an opinionated web dev build tool that serves your code via native ES Module imports during dev and bundles it with Rollup for production.

import { attributes } from './contents/the-doc.md';

console.log(attributes) //=> { title: 'Awesome Title', description: 'Describe this awesome content', tags: ['great', 'awesome', 'rad'] }

Import compiled HTML (Mode.HTML)

import { html } from './contents/the-doc.md';

console.log(html) 
//=> "<h1>This is awesome</h1><p>ite is an opinionated web dev build tool that serves your code via native ES Module imports during dev and bundles it with Rollup for production.</p>"

Import ToC metadata (Mode.TOC)

# vite

Vite is an opinionated web dev build tool that serves your code via native ES Module imports during dev and bundles it with Rollup for production.

## Status

## Getting Started

# Notes

import { toc } from './contents/the-doc.md'

console.log(toc)
//=> [{ level: '1', content: 'vite' }, { level: '2', content: 'Status' }, { level: '2', content: 'Getting Started' }, { level: '1', content: 'Notes' },]

Import as a React component (Mode.REACT)

import React from 'react'
import { ReactComponent } from './contents/the-doc.md'

function MyReactApp() {
  return (
    <div>
      <ReactComponent />
    </div>
}

Import as a Vue component (Mode.VUE)

<template>
  <article>
    <markdown-content />
  </article>
</template>

<script>
import { VueComponent } from './contents/the-doc.md'

export default {
  components: {
    MarkdownContent: VueComponent
  }
};
</script>

寫(xiě)在最后

到此這篇關(guān)于使用Vite2+Vue3渲染Markdown文檔的方法實(shí)踐的文章就介紹到這了,更多相關(guān)Vite2+Vue3渲染Markdown內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vuejs 切換導(dǎo)航條高亮(路由菜單高亮)的方法示例

    vuejs 切換導(dǎo)航條高亮(路由菜單高亮)的方法示例

    這篇文章主要介紹了vuejs 切換導(dǎo)航條高亮路由高亮的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Vue項(xiàng)目部署到IIS后刷新報(bào)錯(cuò)404的問(wèn)題及解決方法

    Vue項(xiàng)目部署到IIS后刷新報(bào)錯(cuò)404的問(wèn)題及解決方法

    這篇文章主要介紹了Vue項(xiàng)目部署到IIS后,刷新報(bào)錯(cuò)404,這里需要用到URL重寫(xiě)工具?--URL?Rewrite,需要的話需要自己下載安裝,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Vue3偵聽(tīng)器的實(shí)現(xiàn)原理詳情

    Vue3偵聽(tīng)器的實(shí)現(xiàn)原理詳情

    這篇文章主要介紹了Vue3偵聽(tīng)器的實(shí)現(xiàn)原理詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • vue3 element的Form表單用法實(shí)例

    vue3 element的Form表單用法實(shí)例

    這篇文章主要為大家介紹了vue3中element的Form表單用法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • vue項(xiàng)目中使用ts(typescript)入門(mén)教程

    vue項(xiàng)目中使用ts(typescript)入門(mén)教程

    最近項(xiàng)目需要將原vue項(xiàng)目結(jié)合ts的使用進(jìn)行改造,本文從安裝到vue組件編寫(xiě)進(jìn)行了說(shuō)明,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue恢復(fù)初始數(shù)據(jù)this.$data,this.$options.data()解析

    vue恢復(fù)初始數(shù)據(jù)this.$data,this.$options.data()解析

    這篇文章主要介紹了vue恢復(fù)初始數(shù)據(jù)this.$data,this.$options.data()解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 八個(gè)一看就覺(jué)得很棒的Vue開(kāi)發(fā)技巧分享

    八個(gè)一看就覺(jué)得很棒的Vue開(kāi)發(fā)技巧分享

    在用Vue開(kāi)發(fā)的這幾年里,我學(xué)到了很多有用的技巧,所以這篇文章主要給大家分享介紹了八個(gè)一看就覺(jué)得很棒的Vue開(kāi)發(fā)技巧,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • vue實(shí)現(xiàn)輪播圖幀率播放

    vue實(shí)現(xiàn)輪播圖幀率播放

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)輪播圖幀率播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • vue.js 獲取當(dāng)前自定義屬性值

    vue.js 獲取當(dāng)前自定義屬性值

    本篇文章主要介紹了vue.js 獲取當(dāng)前自定義屬性值,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • vue實(shí)現(xiàn)節(jié)點(diǎn)增刪改功能

    vue實(shí)現(xiàn)節(jié)點(diǎn)增刪改功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)節(jié)點(diǎn)增刪改功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評(píng)論

台江县| 宝清县| 阜康市| 萨嘎县| 虹口区| 安陆市| 西平县| 抚远县| 牙克石市| 永康市| 平利县| 甘谷县| 永城市| 繁峙县| 江都市| 昌乐县| 奈曼旗| 富源县| 册亨县| 界首市| 崇州市| 霸州市| 富锦市| 永泰县| 信宜市| 章丘市| 卢氏县| 乐业县| 高州市| 民县| 长海县| 绥阳县| 甘谷县| 邵武市| 建昌县| 平罗县| 城口县| 宜川县| 甘洛县| 通道| 手机|