字节跳动开源了一款markdown编辑器,bytemd,项目地址:GitHub - bytedance/bytemd: ByteMD v1 repository
安装
npm i @bytemd/vue-next
引入方式如下,再main.js中引入样式
import 'bytemd/dist/index.css'
直接封装一个Markdown编辑器
<template><Editor :value="value" :plugins="plugins" @change="handleChange" />
</template><script setup lang="ts">
import gfm from "@bytemd/plugin-gfm";
import { Editor, Viewer } from "@bytemd/vue-next";
import { withDefaults, defineProps } from "vue";
import highlight from "@bytemd/plugin-highlight";const plugins = [gfm(), highlight()];// 定义组件属性类型
interface Props {value: string;handleChange: (v: string) => void;
}const props = withDefaults(defineProps<Props>(), {value: () => "",handleChange: (v: string) => {console.log(v);},
});
</script>
封装一个Markdown展示组件
<template><Viewer :value="value" :plugins="plugins" />
</template><script setup lang="ts">
import gfm from "@bytemd/plugin-gfm";
import { Viewer } from "@bytemd/vue-next";
import { withDefaults, defineProps } from "vue";
import highlight from "@bytemd/plugin-highlight";const plugins = [gfm(), highlight()];// 定义组件属性类型
interface Props {value: string;
}const props = withDefaults(defineProps<Props>(), {value: () => "",
});
</script>
接下来就可以在需要用到的地方引入组件就可以了。