您的位置:首页 / 168同城社区 / 用 Markdown 写作,用什么文本编辑器?

信息未审核或下架中,当前页面为预览效果,仅管理员可见
  • #摄友基地#用 Markdown 写作,用什么文本编辑器?

    顶 顶 热
    2026/10/19 19:37:58 发布5 浏览0 回复0 点赞
sdpusi
管理
普通会员

帖子:1

精华:0

注册:2026/10/19 10:07:54

IP属地:未知

如果你心情好到想用 Markdown 写论文、出幻灯片的话,那就试试 MS Research 开源的


Madoko

在线 IDE 吧。


Madoko 除了提供一套强大且系统的 Markdown 语法拓展之外,其输出部分也是很有意思。Madoko 的输出提供 HTML 和 PDF,其中 PDF 部分交给 LaTeX(官方默认配置是 TeXLive XeLaTeX)处理。


Madoko 的 PDF 输出长这样(


http://research.microsoft.com/en-us/um/people/daan/madoko/samples/esop15/out/esop15.pdf

):



相比之下


http://research.microsoft.com/pubs/210640/paper.pdf

的正经版本丑多了,毕竟没高亮没对齐(。


网页可以拖拽上传 Document Class 定义(*.cls),这些 http://madoko.net 上面都有。还有个差不多大的文档的例子:


From Monads to Effects and Back

Madoko 的幻灯片输出可以用 Reveal.js 做 HTML,同时 PDF 使用 Beamer:




(删掉目录去掉 INCLUDE 就可以拉扁成普通文档…)


这块实现是和 madoko 核心解耦合的:


madoko: styles/presentation.mdk

自带模板:



嗯 Presentation 是那堆模板之一。


可以在浏览器中带语法高亮地编辑 TeX、BiB、CSS、JS(包括 MDK 里面用 TeXRaw Block 以及 script/style tag 内嵌的),当然还有 MaDoKo:



这东西还提供 HTML/mdk 实体、引用标识符自动补全,和 Visual Studio online 一样用的是作者 daan 自己写的 monaco-editor。


另外还有诸如编程语言语法高亮可以自定义 Tokenizer 规则拓展(当然你也可以用 Prettify 之类的东西)、使用非等宽字体打印代码时支持对齐之类的特性。和这玩意比起来,StackEdit 之流的 Markdown Extra 彻底成了小打小闹。网盘同步也是有的(包括 Dropbox 和 GitHub 的三路合并和实时队友位置显示),还有 ReStructuredText 里面的手绘复杂表格也有。要注意这些都是一式两份同时给 HTML 和 TeXLive PDF 输出的哟。


详细的手册页可以看


Madoko Reference

。你问作者是谁?


Daan Leijen

。嗯,Parsec 那个。daan 自己搞了个带副作用的面向函数编程语言


Koka

,然后就造了个 Markdown in Koka。


对了,这玩意支持文件头定义导入任意 TeXLive 包(例如 ctex),并且还能导入 LaTeX 文档,同时支持用 Snippet Block 插入任何 LaTeX 片段的渲染结果(DVI -> SVG)。TiKZ/pgf、tikz-uml、graphviz,爱用啥用啥。如果你要贯彻落实 Madoko 自定义 Block 的精神,自己加上 WebGraphViz、flowchart.js、js-sequence-diagrams 之类的东西,那也行,以后写在哪个文件里面当模板 INCLUDE 就好了。


我看到这玩意的各种框支持“写作……读作……”那样处理,这样可以高亮器接受到的是一般源码,最终输出的结果可以接受一大堆变换。bhuztez 的 J 语言可以自动转写成人话了。另外 tests 目录里面有一个用这玩意写成的


SKI combinator expander

。


* * *


CJK 处理指南


要优化 Madoko 的 CJK 输出其实很简单。


对于 HTML 输出,使用 html-lang 属性定义 DOM 节点的 html 'lang=' attribute:


.madoko { html-lang: zh-Hans-CN; } <!-- 全文定义,头上来一行就够 -->

<!-- 可以写成 class:-->

.cn { html-lang: zh-Hans-CN } <!-- 谁给个日语版的 CN block 那一段,我好改成 ja? -->

.tw { html-lang: zh-Hans-TW }


……一点示例文字,那么给你们作为一个示范。


我一篇安利 MSR Redmond 大法的文章,怎麼就被选進日報去了?

{.tw} <!-- 一段紧接一行加类 CSS 定义就是整段定义 -->


<!-- 或者这样: -->

He then said, [苟利国家生死以]{html-lang: zh-Hans-CN} <!-- 对方括号部分定义 -->


~ CN  <!-- 定义 class 就是定义了一个 block -->

这篇文章呢,一共就做了三件事:


1. 

2.

3.


还有呢,就是为开 [MadokoCJK] 这个坑打下了理论基础,这个对……

~

  [MadokoCJK]: https://github.com/Arthur2e5/MadokoCJK


稍微配合一点点 before after 以及 TexRaw 魔法的话也可以让 CTeX 有意思起来。

这样浏览器会自己选择该用的字体和排版方式。


对于 XeLaTeX PDF 输出,我们可以用 ctex 宏包(


@郭昊

在评论区提到的):


Package: [UTF8]ctex

<!-- 类似于:

~ TexRaw

\usepackage[UTF8]{ctex}

~

-->

要用 xecjk 也是一个道理,当然你也可以像 madoko 自己那样手撸 fontspec。咦,怎么谈 LaTeX 了?


* * *


在


https://v2ex.com/t/249268

处也有一些讨论。


以下内容回复后可见
赏

已有0人打赏

赞

已有0人点赞

等0人赞

168-wechat-white-transparent.png

    加载中...

    回复楼主

    该帖子已经关闭回复
    回复 承诺遵守文明发帖,国家相关法律法规

    超级管理

    发布新帖 帖子管理 返回顶部