优秀的Markdown引擎-MUME

因项目需要,尝试了[markdown.js]和[GitHub的Markdown Web API],都不尽如人意,于是将目标对准了大名鼎鼎Markdown Preview Enhanced插件,翻其源码,最终挖出的背后功臣MUME。
如此优秀的Markdown引擎,其在GitHub上的Star仅有83个,着实让人意外。

阅读原文

调用简单

以导出为html为例:

//引入
const mume = require("@shd101wyy/mume");

async function main() {
  // 初始化
  await mume.init();
  
  // 创建Markdown Engine实例
  const engine = new mume.MarkdownEngine({
    filePath: "/Users/wangyiyi/Desktop/markdown-example/test3.md",
    config: {
      previewTheme: "github-light.css",
      codeBlockTheme: "default.css",
      printBackground: true,
      enableScriptExecution: true, // <= for running code chunks
    },
  });

  // 导出Markdown为html格式
  await engine.htmlExport({ offline: false, runAllCodeChunks: true });
}
main();

上面代码中完成了mume的导入初始化源文件指定目标样式指定导出

功能强大

导出多种格式

在官方示例代码中可以清晰的看到:

  // open in browser
  await engine.openInBrowser({ runAllCodeChunks: true });

  // html export
  await engine.htmlExport({ offline: false, runAllCodeChunks: true });

  // chrome (puppeteer) export
  await engine.chromeExport({ fileType: "pdf", runAllCodeChunks: true }); // fileType = 'pdf'|'png'|'jpeg'

  // phantomjs export
  await engine.phantomjsExport({ fileType: "pdf", runAllCodeChunks: true }); // fileType = 'pdf'|'png'|'jpeg'

  // prince export
  await engine.princeExport({ runAllCodeChunks: true });

  // ebook export
  await engine.eBookExport({ fileType: "epub" }); // fileType=`epub`|`pdf`|`mobi`|`html`

  // pandoc export
  await engine.pandocExport({ runAllCodeChunks: true });

  // markdown(gfm) export
  await engine.markdownExport({ runAllCodeChunks: true });

自带丰富样式

  • 预览样式
    previewTheme: 'github-light.css',
    // "atom-dark.css",
    // "atom-light.css",
    // "atom-material.css",
    // "github-dark.css",
    // "github-light.css",
    // "gothic.css",
    // "medium.css",
    // "monokai.css",
    // "newsprint.css",
    // "night.css",
    // "none.css",
    // "one-dark.css",
    // "one-light.css",
    // "solarized-dark.css",
    // "solarized-light.css"
    // "vue.css"
    
  • 代码块样式
    codeBlockTheme: 'auto.css',
    //  "auto.css",
    //  "default.css",
    //  "atom-dark.css",
    //  "atom-light.css",
    //  "atom-material.css",
    //  "coy.css",
    //  "darcula.css",
    //  "dark.css",
    //  "funky.css",
    //  "github.css",
    //  "hopscotch.css",
    //  "monokai.css",
    //  "okaidia.css",
    //  "one-dark.css",
    //  "one-light.css",
    //  "pen-paper-coffee.css",
    //  "pojoaque.css",
    //  "solarized-dark.css",
    //  "solarized-light.css",
    //  "twilight.css",
    //  "vue.css"
    //  "vs.css",
    //  "xonokai.css"
    
    • 几个样例


      mume-demo1.png
mume-demo2.png
mume-demo3.png
mume-demo4.png
mume-demo5.png

支持数学公式渲染

  • KaTeX渲染库
  • MathJax渲染库

导出代码易用

MUME导出的html代码结构清晰,便于修改再利用


mume-htmlcode.png

其他

更多功能请见官方GitHub库说明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容

  • 作者:王子亭 Atom 是 GitHub 在 2014 年发布的一款基于 Web 技术构建的文本编辑器,我从 20...
    LeanCloud官方帐号阅读 3,052评论 0 13
  • 大家好,我今天与大家聊的话题 是:为什么智力是社会的最大不公平? 很多人以为家庭背景什么的是最大的不公平。 其实本...
    温万春阅读 993评论 0 0
  • 《红海行动》是跟据2015年的也门撤侨行动改编的,影片是将中国军队在海外武装撤侨、扬我国威的故事再度升级,...
    解家胡卜猪宝阅读 827评论 0 0
  • 你从亘古走来 袭一抹烟霞 惹醉一岸葱茏 芦苇慢摇 花儿轻唱 余晖里天鹅身影绰约 艾比淖尔 你是花颜的娇娘 长曵的舞...
    墨紫mz阅读 352评论 1 0
  • 本教程将使用Visual Studio 2013手把手教你实现webform动态页面的伪静态。本教程配套的C#源码...
    做全栈攻城狮阅读 789评论 0 0