本篇文章小编给大家分享一下使用Vite2+Vue3渲染Markdown文档代码方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
自定义 Vite 插件
如果去网上相关问题,大部分都是这种方式,就是自定义插件,使得 Vite 支持 Markdown 渲染,具体做法如下:
在项目根目录创建 md.js 文件,填充如下内容:
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: [ // 用于开发
async ({ app }) => {
app.use(async (ctx, next) => {
// 获取后缀为 .md 的文件,将他变为 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,引入上面创建的插件。
import {md} from './md';
export default {
plugins: [md()]
};
这样,在使用时,会将导入的 md 文件转换成 js 文件渲染。具体使用示例:
使用 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'],
})
]
}
配置中传入一个 options,选项对象,支持以下参数:
mode?: ('html' | 'toc' | 'react' | 'vue')[]
markdown?: (body: string) => string
markdownIt?: MarkdownIt | MarkdownIt.Options
各个模式下的渲染示例:
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)
//=> "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.
"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 (
Import as a Vue component (Mode.VUE)
uc浏览器网页版入口官网-手机/电脑uc浏览器网页版入口地址
little fox官方网站入口地址-little fox网页版中国官网入口地址
樱花动漫网官网在线观看入口-樱花动漫网最新网页版入口地址2026
剑桥少儿英语官网入口网址-剑桥少儿英语网页版入口地址
手机百度网盘登录入口地址-百度网盘手机网页版登录入口地址
192.168.1.1无线路由怎么访问?192.168.1.1无线路由器设置登录入口地址