SimpleMDE:一款可在浏览器和 Electron 中使用的 Markdown 编辑器。

大家好,
我是Mandai,Wild团队负责开发工作的成员。

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

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

 

介绍

一个演示版本这里,看起来非常简单,只包含基本功能。

由于该模块可通过 CDN 获取,我们将使用 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 解释器,你需要自己编写 CSS 并覆盖默认样式。

此外,当在并排视图中并排显示 Markdown 和预览时,它会自动切换到全屏模式。
检查 CSS 后发现,这是通过 `!important` 指定的,因此还有改进的空间,或者更确切地说,需要一个机制来控制这种行为。

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

 

概括

以上就是我对 simpleMDE 的介绍,它是一款可以轻松创建 Markdown 编辑器的工具。
它与 Electron 的结合似乎非常有效,因此,创建一个基于 Electron 的 Markdown 编辑器项目可能会是一次简单而有益的体验。

 
就这样。

如果您觉得这篇文章对您有帮助,请点个“赞”!
0
加载中...
0票,平均分:0.00/10
1,827
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但幸运的是,我也有机会参与其他各种任务,包括市场营销。
我在Beyond中的图像版权采用CC0协议。