用 Markdown 写作用什么文本编辑器?

关注者
4,838
被浏览
739,935

209 个回答

------------------------------------------------------------------------
开启您的卓越写作之旅: Cmd Markdown 编辑阅读器
------------------------------------------------------------------------

Cmd Markdown 编辑阅读器

十四个版本更新,五十三大功能特性,不断进击中的 Cmd Markdown 编辑阅读发布器

【1】实时渲染效果
【2】实时同步预览
【3】工具栏语法辅助
【4】更好的中文支持和优化
【5】四十一种编程语言语法高亮,行数显示
【6】LaTex 表达式公式支持
【7】表格,列表项支持
【8】独立编辑模式
【9】独立阅读模式
【10】黑白主题界面
【11】全屏模式
【12】全快捷键支持
【13】实时,自动保存编辑中的文字
【14】云端存储,随时随地编辑阅读
【15】从云端导出 Markdown,Html
【16】在网络上发布共享您的文稿
【17】管理,编辑,阅读多个文稿
【18】标签、分类、搜索功能
【19】依据当前的网络状况,自动切换离线在线模式
【20】离线使用:桌面客户端或者浏览器中输入zybuluo.com/mdeditor 即可离线使用
【21】云同步:一次书写,各处云同步
【22】智能合并文稿版本间的差异,提醒人工干预冲突
【23】编辑器语法高亮
【24】智能富文本编辑器
【25】Vim/Emacs 模式支持,支持搜索,替换
【26】可嵌套 html 语法
【27】可内嵌 font awesome 图标字体
【28】流程图支持
【29】序列图支持

【30】文稿字数,阅读量统计
【31】段落批注
【32】段内高亮
【33】社交化批注回复
【34】新批注、回复通知服务
【35】待办事宜 Todo 列表功能
【36】迅捷部分渲染算法提升渲染速度。
【37】Windows / Linux / Mac 全平台桌面客户端版本
【38】IE / Firfox / Chrome / Safari 全平台浏览器支持
【39】原样复刻页面样式导出带目录的 PDF 文件

【40】原样复刻导出带页面样式的 HTML
【41】上传本地图片或者附件
【42】设置发布文稿的访问密码
【43】ZIP包形式一键导出所有文稿
【44】原样复刻页面样式导出到印象笔记和Evernote国际版
【45】企业级隐私的离线文稿
【46】手动或自动保存历史版本,可回顾、比对版本或恢复
【47】咨询支持,数据安全保障
【48】自定义字体,字号以及CSS
【49】Cmd Markdown 客户端读取本地文件
【50】一键上传截屏、图片、文件
【51】全屏显示流程图、序列图和图像
【52】最近使用的文稿列表
【53】可以折叠的编辑器行号

2015.05.16 第十四次产品更新说明:

Cmd Markdown 发布第十四次更新 --- 使命的召唤

2015.12.10 第十三次产品更新说明:

Cmd Markdown 发布第十三次更新 --- 更私密,更安全,更开放

2015.09.08 第十二次产品更新说明:

为和你同样优秀的 Cmd Markdown 助力喝彩

2015.06.30 第十一次产品更新说明:

Cmd Markdown 发布第十一次更新 --- 愈快愈强

2015.04.27 第十次产品更新说明:

Cmd Markdown 发布第十次更新 --- 走,带着 Cmd 去旅行

2014.10.29 第九次产品更新说明:

Cmd Markdown 发布第九次更新 --- 写在侧边

2014.07.07 第八次产品更新说明:

Cmd Markdown 发布第八次更新 --- 键盘制图

2014.05.08 第七次产品更新说明:

Cmd Markdown 发布第七次更新 --- 击键的节奏

2014.04.16 第六次产品更新说明:

Cmd Markdown 编辑阅读器发布第六次更新

2014.03.08 第五次产品更新说明:

Cmd Markdown 编辑阅读器发布第五次更新

编辑预览主界面:

编辑模式:

文稿标签和列表:

预览模式:

流程图和序列图:

社交化的段落高亮、批注:
如果你心情好到想用 Markdown 写论文、出幻灯片的话,那就试试 MS Research 开源的 Madoko 在线 IDE 吧。

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

Madoko 的 PDF 输出长这样(research.microsoft.com/):
相比之下 research.microsoft.com/ 的正经版本丑多了,毕竟没高亮没对齐(。
网页可以拖拽上传 Document Class 定义(*.cls),这些 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 了?

* * *
v2ex.com/t/249268 处也有一些讨论。