我正在正在设计一个 Markdown/kramdown 语言的变种,希望大家提供一些 Markdown 相关的使用问题,例如语法和功能上的。

2014-02-09 23:29:01 +08:00
 jakwings
我个人的使用问题已经在另一篇文章中说明了:http://blog.likelikeslike.com/posts/2014-02-05/gossip-about-md.html

同时,我也正在用 Javascript 实现一个 HTML 转换工具。
9011 次点击
所在节点    Markdown
44 条回复
jakwings
2014-02-09 23:50:42 +08:00
啊,忘了说了,我设计的这个变种,语法上是要求更严格的,尽量去除原生 Markdown 的语法歧义,所以我才真觉得的有必要实现这个变种。
faceair
2014-02-10 00:01:05 +08:00
404 ?
jakwings
2014-02-10 00:16:31 +08:00
@faceair 抱歉抱歉……我对网络爬虫设的屏蔽规则有一条太夸张了……现在去缓存应该可以访问了。
oott123
2014-02-10 00:46:42 +08:00
听说原生的md没有表格…
jakwings
2014-02-10 00:52:05 +08:00
@oott123 是的,因为 Markdown 并不是专门针对 HTML 文档而设计的。但是若要转换为 HTML ,没有表格功能多少会有点不便。

DokuWiki 的表格语法我觉得十分好,因为它不要求对齐表格线,也没有设定表格宽度这些不太重要的功能,左中右对齐语法也很简单而不碍眼。
icylogic
2014-02-10 01:40:23 +08:00
希望加一个toc支持,table of content。

话说楼主是打算实现一个大而全的语法还是有所侧重?像比较成功的pandoc markdown,gfm这些都是有侧重点的。
jakwings
2014-02-10 02:44:20 +08:00
@icylogic 功能上应该是着重于 HTML 转换方面吧,语法设计上更考虑日常写作的可读性,若去除扩展功能,则几乎相当于语法更严格的 Markdown 。另外表格和标题目录应该算作可选扩展功能。

用 Javascript 写的转换工具不考虑自带代码高亮功能,不过会提供自定义高亮措施的选项。也会提供某些扩展功能的开关(例如 HTML 嵌入功能、表格功能、印刷字符转换功能、和文本缩进以及代码尾部空白行有关的偏执模式)。

TOC 支持有点让人纠结呢,肯定要做成带开关的扩展功能的,不知道生成的列表元素要用什么方式包裹,同时包括目录名称比较能令人接受。这个支持必定会涉及标题的链接中转位置,标题目录是否要带数字前缀的选项,是否允许用户提供自定义 HTML 生成函数。

当然我希望越全越好,只要是利于普遍的日常写作。功能只考虑那些可读性比较好的,扩展功能除了 kramdown 介绍的部分功能以及 TOC 之外,我想不会有其它更常用的功能了吧。

我用 Javascript 写的转换工具是借鉴 GitHub 的 marked 和 markdown-js 的,想要自行修改或扩展应该会挺方便的。

我不知道这个变种以后会不会流行呢,总之我会搞定那个 Javascript 语言写的 HTML 转换工具的,至少能用于前端或后端的 Javascript ,摆脱语法不够严谨且功能过少的原生 Markdown 。
hkongm
2014-02-10 08:26:36 +08:00
公司程序员一百多号人,除了自己没看到有谁用MD,还都在用WORD和记事本。。。这东西始终小众啊
jakwings
2014-02-10 08:44:43 +08:00
@hkongm 没关系,那些经常写(技术)博客或将要编写 MD 相关的软件的人用得着就行了~ reStructuredText 更小众啊,不过已经帮助我分享了上百篇文章了~
chenlong451
2014-02-10 08:44:46 +08:00
要良好支持表格,表格要漂亮点。
写API文档时很需要表格。
jakwings
2014-02-10 08:46:45 +08:00
@chenlong451 你觉得 DokuWiki 的表格语法怎么样?https://www.dokuwiki.org/wiki:syntax#tables
terrance
2014-02-10 09:23:02 +08:00
你需要考虑语法、解析器、编辑器三个部分
目前语法是有点乱,主要流派有gfm,mmd,pandoc
解析器有一大把,几个比较有意思的有:pagedown,pegdown,pandoc,其中pandoc用Haskell写的
编辑器如Mou、stackedit等,分离线和在线

我认为如果要改变目前的生态,首先你要利用好目前的这些工具,其次要做一个令人信服的test suit,另外目前的离线编辑器对markdown的原生功能支持还是太弱了,譬如表格编辑,图片插入等。

我认为比较好的发展方向:用pandoc的子集做一个严格的语法规范,并建立test suit。在此之上做一个离线编辑器,参考emacs的orgtbl-mode实现表格编辑功能,参考Ghost实现图片插入功能。
RIcter
2014-02-10 09:32:21 +08:00
Github style的markdown很棒,如果能扩展成那样并且出Python的package就更好w
znx5858
2014-02-10 10:48:03 +08:00
想提一个段前缩进,但是这应该属于样式的- -
jakwings
2014-02-10 11:47:10 +08:00
@terrance 其实我还没有这么大的目标呢。我不是很擅长编写解释器和转换工具,目前借鉴 marked 这个 Markdown 转换工具的代码,能够达到日常写作的用途是我的基本目标了,编辑器倒没有大的要求,尽量采用一种方便普通文本编辑工具的表格语法(目前看好 DokuWiki 的表格语法)。

我希望定好规范,弄好 Javascript 写的转换工具后有人能够移植或者帮忙改进算法。我有在编写 Javascript 解释工具时考虑严格带来的好处和坏处,相信好处是更多的。目前我是用正则表达式来匹配各种元素的,因为浏览器上的正则貌似比纯粹的字符循环快很多。

我对其它编程语言不怎么熟悉呢,可能没有精力去继续编写维护其它语言的工具了。不过我会尝试将这个变种应用到我以后的网页应用上的。
jakwings
2014-02-10 11:49:01 +08:00
@znx5858 CSS 用 text-indent 可以实现,只是列表元素可能要添加一些额外设定。可以参考我的博客。
jakwings
2014-02-10 11:50:27 +08:00
@RIcter 不知道 GFM 的哪些语法比较吸引你?如果是表格语法,可以和 DokuWiki 的比较一下:

https://www.dokuwiki.org/wiki:syntax#tables
chenlong451
2014-02-10 12:27:11 +08:00
@jakwings 还好。无论什么语法,描述表格总是麻烦些。倒不如直接用html来的直接。
oott123
2014-02-10 12:34:07 +08:00
@jakwings 我比较喜欢php markdown extra那个表格语法…怎么说呢,感觉写在编辑器里一看就知道是表格,毕竟markdown是一个机器和人都可以读的~
另外也就是说你这个工具和原生的markdown是兼容的?
Tink
2014-02-10 12:51:10 +08:00
需要一个能调整图片大小的参数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/99499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX