前言
在前端开发中,有众多优秀的 npm 包可供使用,这些包中大部分都是为我们提供更简单、更有效的解决方案。在本篇文章中,我们将探讨一个名为wenxue的 npm 包,它为我们提供了一种更好的阅读体验。
简介
wenxue 是一个基于 Vue.js 和 simplemde 的 npm 包,它提供了一个易于使用、高度自定义和可扩展的 markdown 编辑器,可以帮助你创建优美的博客文章和其他的在线文档。
安装
可以通过 npm 或 yarn 安装 wenxue。
使用 npm:
$ npm install wenxue
使用 yarn:
$ yarn add wenxue
快速开始
要在项目中使用 wenxue,需要先引入它:
import Wenxue from 'wenxue' import 'wenxue/dist/wenxue.min.css' // 引入样式文件 import 'simplemde/dist/simplemde.min.css' // 如果你没有自定义 simplemde 样式,也可以一起引入
然后,您可以将 wenxue 的组件添加到您的模板中:
-- -------------------- ---- ------- ---------- ----- ------- ------------------ -- ---- -------------------- ------ ----------- -------- ------ ------ ---- -------- ------ ------- - ----------- - ------ -- ------ - ------ - --------- --- ----- -- - -- ------ - ------------- - --------- - ----------------------- - - - ---------
在上面的示例中,我们将 wenxue 的 v-model 值绑定到 markdown,这样当用户在 wenxue 编辑器中输入 markdown 文本时,它将自动更新到我们组件的 data 中。然后,我们使用 watch 函数在 markdown 数据改变时将更新的 html 渲染出来。
API
props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
value / v-model | String | 当前 markdown 文本。 | |
options | Object | {} | simplemde 的配置项,使用方法请参考 simplemde 的官方文档。 |
preview | Object | { delay: 500 } | 将 markdown 文本转换成 HTML 页面所需的配置项。其中 delay 参数是 delayRender 的别名,表示当用户在编辑器中输入文本时,需要等待的时间(ms)才会触发 parse 和 render 函数。这可以避免在文本变化时重新计算 HTML 的开销。 |
events
名称 | 参数 | 说明 |
---|---|---|
change | markdown, html | 当编辑器内容发生变化时触发。包含当前的 markdown 和 HTML。 |
upload | files, type | 当用户上传文件时触发。包含上传的文件和文件类型。 |
command | cm, compiled, data | 当使用命令执行函数时触发,包含 CodeMirror 对象和停止编辑时的 markdown 数据。 |
focus | 当编辑器获得焦点时触发。 | |
blur | 当编辑器失去焦点时触发。 |
methods
名称 | 参数 | 说明 |
---|---|---|
undo | () | 撤销上一次更改。 |
redo | () | 恢复最近更改。 |
focus | () | 将焦点设置到编辑器中。 |
blur | () | 将焦点从编辑器中移除。 |
togglePreview | () | 切换 markdown 预览。在初始化后,默认启用 markdown 编辑状态。 |
isPreviewActive | () | 判断预览状态是否打开。 |
parse | (markdown) | 将 markdown 转换为 HTML。在大量的 markdown 数据初始化时非常有用。 |
render | (markdown) | 将 markdown 转换为 HTML,并将结果输出到渲染区域。 |
compilePreview | (markdown) | 将 markdown 转换为 HTML,并执行编译函数(编译函数可用于简化渲染区域中的 html)。 |
command | (name, args) | 调用 simplemde 的命令。此方法非常有用,因为它可以统一处理所有命令。 |
insertImage | (file) | 在编辑器中插入图片。此方法使用 simplemde 的粘贴图片功能,因此需要上传图片并返回图片的 URL。 |
getCodeMirror | () | 获取 simplemde 的 CodeMirror 对象。这可以让你直接访问 CodeMirror 编辑器。 |
getCursorPosition | () | 获取光标的当前位置。 |
setCursorPosition | (line, ch) | 将光标移动到指定的行和列位置。如果只传入行数,则将列数设置为1。 |
insertAtCursor | (value) | 将文本插入到光标的当前位置。 |
insertAround | (prefix, suffix) | 将文本插入到选定文本的前后。如果没有选中区域,则直接包裹在光标周围。 |
destroy | () | 销毁组件。此方法也可以用于释放内存占用,并清除 input 上的事件监听器。当你不再使用 wenxue 时,请务必调用 destroy 方法。 |
示例代码
输入 markdown 文本并转换为 HTML
-- -------------------- ---- ------- ---------- ----- ------- ------------------ -- ---- -------------------- ------ ----------- -------- ------ ------ ---- -------- ------ ------- - ------ - ------ - --------- --- ----- -- - -- ------ - ------------- - --------- - ----------------------- - - - ---------
高度自定义的配置
-- -------------------- ---- ------- ---------- ------- ------------------ ----------- ---------- ----- ------------- ------ --------- ------- --------- ---------------- ---- ------------ ------------ ------------ ---- ----------------- --------------- ---- ------- ------- -------- ---- - ----- ---------- ------- -------- --------------------- - -- -------------------------- - ----------------------- - ---- - --------------------- - -- ---------- --- -------- ------ ------- -------- - - -- -- ----------- -------- ------ ------ ---- -------- ------ ------- - ----------- - ------ -- ------ - ------ - --------- --- --- ---- -- - ------ ----- - -- - ---------
上传图片
-- -------------------- ---- ------- ---------- ----- ------- ------------ ------------------ -- ------ ----------- ----------------------------- -- ------ ----------- -------- ------ ------ ---- -------- ------ ------- - ----------- - ------ -- ------ - ------ - --------- --- - -- -------- - ------------------ - ----- ------ - ------------------ -- ------ - ------------ ------------------ --------- -- - ----------------------------------- ------------------------- -- --------- -- - --------------------- -------- -- - - -- - ---------
结语
wenxue 是一个非常优秀的 npm 包,它为我们提供了一种更好的 markdown 编辑方案。通过学习本文档,您已经可以了解到如何安装和使用 wenxue,以及它所提供的 API 和示例代码。希望通过阅读本文,您可以对 wenxue 有更深入的理解,并在实际项目中得到应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006710a8dd3466f61ffe0b5