当富文本遇上Markdown - Milkdown简介

Posted Saul-Mirone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当富文本遇上Markdown - Milkdown简介相关的知识,希望对你有一定的参考价值。

Markdwon之痛

作为程序员,平时总少不了和markdown打交道,知识管理,项目文档,静态博客...然而繁琐的输入和一定的学习门槛劝退了不少非程序员,使得markdown这种简洁优雅的文档载体只能成为少数代码人手中的工具,而无法普及到更多地方。

那么,能否让编辑markdown的成本降低,以类似于富文本编辑的方式来编写markdown呢?答案当然是肯定的,大名鼎鼎的typora正因这样的特性而收到许多人的欢迎。但是Typora作为一个桌面应用,也有着自己的局限性:

  1. 闭源,只能下载app使用
  2. 仅支持给定的一些语法,无法自行扩展

由于这些局限性,如果我们想给自己的网站或electron应用中加上typora,或者我们想自己定义一些markdown语法,显然并不能做得到。


Milkdown简介

正因如此,才有了Milkdown这个轮子,它提供了一种插件化的开发所见即所得的Markdown编辑器的能力,并且提供了一系列官方插件以保证编辑器能够开箱即用,如果你需要定制化能力,也可以通过编写插件来实现。你也可以编写自己的主题,来让编辑器完全按照你需要的样式来展示。

点我在线试用

那么如何在自己的web app里用上milkdown呢?

快速搭建项目

这里使用vite来快速搭建一个demo项目:

# npm 7
$ npm init @vitejs/app milkdown-demo -- --template vanilla-ts

# npm 6
$ npm init @vitejs/app milkdown-demo --template vanilla-ts

# yarn
yarn create @vitejs/app milkdown-demo --template vanilla-ts

搭建好项目后使用npm install(或yarn install如果您使用yarn)来安装依赖。

安装

npm install @milkdown/core @milkdown/preset-commonmark @milkdown/theme-nord

使用

import { Editor } from \'@milkdown/core\';
import { commonmark } from \'@milkdown/preset-commonmark\';

// import theme
import \'@milkdown/theme-nord/lib/theme.css\';

const root = document.body;
const defaultValue = \'你好,[milkdown](https://saul-mirone.github.io/)很高兴认识你。\';
new Editor({ root, defaultValue }).use(commonmark).create();

此时使用npm run dev(或yarn dev如果您用yarn),我们就能在浏览器中看到Milkdown编辑器了!


除了原生js,milkdown还提供了开箱即用的react和vue3组件,和许多官方插件。

以上是关于当富文本遇上Markdown - Milkdown简介的主要内容,如果未能解决你的问题,请参考以下文章

当Solr遇上Elasticsearch,你该选择谁?

45-文本挖掘:无案牍之劳形

微信小程序使用txv-miniprogram-plugin播放视频

###好好好#####BOOM!推荐系统遇上多模态信息

###好好好#####BOOM!推荐系统遇上多模态信息

新的vim自带markdown插件,请问markdown怎么折叠文本,只显示标