SimpleMDE,一款可在浏览器和电子产品中使用的 Markdown 编辑器

你好。
我是Mandai,负责Wild 开发团队。

虽然浏览器中可以使用许多富文本编辑器,但说到 Markdown 编辑器,似乎选择仍然非常少。

这次我们将介绍易于实现的 SimpleMDE。

 

介绍

在这里演示,它看起来非常简单,并且具备所有基本功能。

模块已通过 CDN 分发,我们将使用它来加载该模块。
接下来只需在 HTML 中创建一个文本区域,并创建一个新的 simpleMDE,即可拥有一个简单的 Markdown 编辑器!

<!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>测试</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css"></head><body><textarea></textarea><script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script><script> var simplemde = new SimpleMDE(); </script></body></html>

 

在网站上使用可能比较困难,但如果将其与 Electron 或类似技术结合,并将其转化为原生桌面应用程序,我认为它的用途将会扩展。

 

从 node.js 中使用

接下来,我将向您展示如何使用electron

在这里,我想尝试从 npm 安装一个模块并显示它。

首先,安装它。

npm install simplemde

 

入口点 JavaScript 代码应该类似于这样:

// app.js 'use strict'; var electron = require('electron'); var app = electron.app; var BrowserWindow = electron.BrowserWindow; var mainWindow = null; app.on('window-all-closed', () => { if (process.platform != 'darwin') app.quit(); }); app.on('ready', () => { mainWindow = new BrowserWindow(); mainWindow.on('closed', ()=>{ mainWindow = null; }); mainWindow.loadURL('file://' + __dirname + '/index.html'); });

 

接下来,在同一层级创建 index.html 文件。
这与之前的 HTML 代码几乎相同,但更加简洁。

<!-- index.html --><!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>测试</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css"></head><body><textarea></textarea><script src="./index.js"></script></body></html>

 

创建 index.js 文件,该文件将从 HTML 加载。

// index.js var simplemde = require('/path/to/simplemde.min.js'); var editor = new simplemde();

 

准备好上述文件并编译后,会显示一个与浏览器中显示的编辑器样式相同的编辑器。

 

修改建议

simleMDE 具有很强的可扩展性,添加菜单也很容易。
为菜单图标Font Awesome,这样就无需为每个菜单图标准备图片了。

我们来尝试添加一个保存按钮。

// index.js var simplemde = require(/path/to/simplemde.min.js''); var editor = new simplemde({ toolbar: { { name: 'save', action: save_content, className: 'fa fa-save', title: '保存', }, '|', 'bold', 'italic', 'heading', '|', 'quote', 'unordered-list', 'ordered-list', '|', 'link', 'image', '|', 'preview', 'side-by-side', 'fullscreen', '|', 'guide', } }); function save_content(){ // 一些处理过程 }

 

您需要自行实现保存机制,但这样就完成了编辑器端的设置。
如果您注册了其他菜单,默认菜单将会消失,因此您也需要注册它们,但设置过程非常简单。

 

棘手问题

单独使用时,它似乎很容易上手,但与其他 CSS 框架结合使用时,布局问题就会变得很明显。
例如,Foundation,预览屏幕中每行三个反引号之间都会出现边框。CSS
集成似乎有些粗糙,而且由于它似乎没有使用像 Sass 这样的解释器,因此你需要自己创建和覆盖 CSS。

此外,当使用并排显示模式(即 Markdown 和预览并排显示)时,它会自动切换到全屏模式。
检查 CSS 后发现,这也是通过 `!important` 指定的,所以还有改进的空间,我希望能够添加一个控制机制。

就速度而言,随着文本量的增加,处理速度会变慢,但我认为这是内部使用的 CodeMirror 模块的问题,所以如果速度对你很重要,你可能需要考虑其他库。

 

概括

至此,我对 simpleMDE 的介绍就结束了。simpleMDE 可以让你轻松创建 Markdown 编辑器。
我认为将它与 Electron 结合使用效果极佳,因此,使用 Electron 创建一个 Markdown 编辑器作为练习项目既简单又充满成就感。

 
就是这样。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
1,723
X Facebook 哈特纳书签 口袋

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。