<script>
和<img onerror>
。无需引入额外的 DOM 清理步骤。你可以通过 npm 或 yarn 安装 ByteMD:
npm install bytemd
或
yarn add bytemd
import 'bytemd/dist/index.css'
<script>
import { Editor, Viewer } from 'bytemd'
import gfm from '@bytemd/plugin-gfm'
let value
const plugins = [
gfm(),
// Add more plugins here
]
function handleChange(e) {
value = e.detail.value
}
</script>
<template>
<Editor {value} {plugins} on:change={handleChange} />
</template>
import { useState } from 'react';
import { Editor } from 'bytemd';
import gfm from '@bytemd/plugin-gfm';
const plugins = [gfm()];
function MyEditor() {
const [value, setValue] = useState('');
return (
<Editor
value={value}
plugins={plugins}
onChange={(v) => setValue(v)}
/>
);
}
<template>
<Editor :value="value" :plugins="plugins" @change="handleChange" />
</template>
<script>
import { ref } from 'vue';
import { Editor } from 'bytemd';
import gfm from '@bytemd/plugin-gfm';
export default {
setup() {
const value = ref('');
const plugins = [gfm()];
function handleChange(v) {
value.value = v;
}
return { value, plugins, handleChange };
}
};
</script>
import { Editor } from 'bytemd';
import gfm from '@bytemd/plugin-gfm';
const plugins = [gfm()];
const editor = new Editor({
target: document.body,
props: {
value: '',
plugins,
},
});
editor.$on('change', (e) => {
editor.$set({ value: e.detail.value });
});
Editor
:编辑器组件,支持 React、Vue 和 Vanilla JS。Viewer
:Markdown 内容查看组件,支持仅渲染和显示 Markdown 内容。plugins
:插件数组,用于扩展编辑器的功能。value
:编辑器的初始内容,类型为字符串。onChange
:内容变化时的回调函数。mode
:编辑器显示模式,可选值有 split
, tab
, auto
,默认值为 auto
。uploadImages
:自定义图片上传函数,如果设置,将在工具栏显示上传图片的图标。ByteMD 提供了一些高级功能和用法,例如自定义插件、使用不同的主题、定制编辑器样式等。
你可以根据需要创建自己的插件来扩展 ByteMD 的功能。例如,添加一个支持特定 Markdown 语法的插件:
import { useState } from 'react';
import { Editor } from 'bytemd';
import { BytemdPlugin } from 'bytemd';
function myPlugin() {
return {
remark: (processor) => {
processor.use(() => {
// 自定义 remark 插件逻辑
});
},
};
}
const plugins = [myPlugin()];
function MyEditor() {
const [value, setValue] = useState('');
return (
<Editor
value={value}
plugins={plugins}
onChange={(v) => setValue(v)}
/>
);
}