Markdown 的一些问题

把我之前的博文基本上转换成了 markdown 格式。我发现 markdown 虽然在编辑器里看起来比 HTML 清晰一些,但也有一些不足。

这些 markup 语言的格式都有点像我本科的时候给我爸做的一种“标准化试卷标记语言”(因为他是中学英语老师)。当时我写了一个1000来行的 Perl 脚本,可以把这种简单的标记语言转换成美观的 LaTeX 格式文档,并且带有友好的 Tk 图形界面。现在回想起来,我那时候的设计就已经相当先进了。跟我的语言相比,这些 blog 用的 markup 语言真是小巫见大巫了,而且问题多多。有点跑题了,还是回头来看看 markdown 的问题吧。

  • Markdown 实际上采用的是类似 Python 和 Haskell 的 layout 语法。

    我已经在一篇英文博文里提到了 layout 语法的多种问题。因为空格的数量决定了文档的结构,这种文档格式相当的“脆弱”。稍微少打一两个空格,就会出现不可预测的结果。这种现象在“itemize”内部的代码块最容易出现。因为每个 item 带来了缩进,所以内部的代码必须比 item 的缩进多4个空格,才能被排到正确的位置。比如我转换博文的时候多次出现以下的情况:

    这里的问题是,代码里的第一行 helloworld z = let x = 1 因为缩进不够,被放到了代码块外面。但是为了准确的缩进所耗费的精力,其实比直接打 <pre> 这样的 tag 还要多。

  • 特殊字符的选择不合理

    markdown 对特殊字符的使用不大合理。我多次发现文档段落整段的变成斜体,就是因为原来的文档里出现了 x*y 这样的表达式。在程序员的世界里,“乘法”显然比“强调”更加频繁。把 * 用于标记“强调”,实际上把一个非常有用的字符用在了很不频繁的用途。

  • 表达力相当有限

    在很多细节上,markdown 并不能表达我想要的格式。比如它不能正确的插入断行 <br>。如果你有两块紧接在一起的代码,但你不想把它们连在一起,markdown 非要给你连在一起…… 于是我就发现自己加入了越来越多的 HTML。

    这在图片的语法上就更加明显,markdown 引入了 ![alt](image url) 这样的格式,其实比起 HTML 还要难看和不一致。比如现在它仍然无法表达图片的大小,这是相当重要的信息。所以我觉得 markdown 的语法已经显示出了它的弱点,如果它要表达更复杂的信息,就会变得比 HTML 还要难记,难看。所以对于图片,我觉得还不如直接用 HTML 的 <img> 。

所以总的感觉是 markdown 引入了太多的“语法”,以至于稍微复杂一点的信息表达起来还不如 HTML 来的直接。现在就这样先凑合着吧。也许过段时间自己设计一个格式。

【转】Markdown 的一些问题的更多相关文章

  1. NiceMark——我的Markdown编辑器

    NiceMark--我的Markdown编辑器 闲来无事,写了一个Markdown编辑器.基于electron,完全采用Web前段技术(Html,css,JavaScript)实现.代码已托管在Git ...

  2. Markdown 图片助手-MarkdownPicPicker

    title: Markdown 图片助手 v0.1 toc: true comments: true date: 2016-06-04 16:40:06 tags: [Python, Markdown ...

  3. 前端学Markdown

    前面的话   我个人理解,Markdown就是一个富文本编辑器语言,类似于sass对于css的功能,Markdown也可以叫做HTML预处理器,只不过它是一门轻量级的标记语言,可以更简单的实现HTML ...

  4. 好用的Markdown编辑器一览 readme.md 编辑查看

    https://github.com/pandao/editor.md https://pandao.github.io/editor.md/examples/index.html Editor.md ...

  5. mac好用的markdown编辑器

    在刚开始接触markdown的时候,就被吸引了.此后一直在找贴心的好用的markdown编辑器.印象笔记和马克飞象配合着用也是挺好的,唯一的缺点就是比较封闭,发个笔记的链接给同学,还得注册才能看,导致 ...

  6. Markdown学习笔记

    分为两步: 1.阅读Markdown中文官网的文档 2.下载MarkdownPad2将中文官网中文档的例子敲一遍,其中Markdownpad2为官网中推荐的编辑器 备注: 如果只看中文官网文档,不边看 ...

  7. Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)

    这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...

  8. Markdown是怎样接管我的各种的写作工作的

    对于一个程序猿来说,没有什么比单纯的写代码更能让人兴奋了.如果能让你像写代码一样写文档,不用再面对那些繁琐的样式,你会怎么看?它就是Markdown!即使博客园已经有不少介绍的文章了,但是我依然还是不 ...

  9. markdown常用语法总结

    转自markdown示例[模板] 1.1.段落标题 根据原文中的文档标题可以对应设置标题. # 一级标题## 二级标题### 三级标题 效果 => 一级标题 二级标题 三级标题 1.2.斜体.加 ...

  10. 基于 Cmd MarkDown 的 markdown 语法学习

    首先我要打一个属于干货的广告:CmdMarkDown 是非常好用的markdown编辑器软件,支持全平台,由作业部落出品,分为客户端与WEB端两种使用场景. 本篇博客学习的markdown语法都是基于 ...

随机推荐

  1. android中实现简单的聊天功能

    这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 andr ...

  2. Android 如何关闭Navigation Bar M

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  3. 数据对接—kettle使用之四

    上一篇介绍了表输出插件,并通过实例介绍插件的简单使用,如果有这样的需求大家可以参考一下并深入研究插件的其它细节设置.这一篇我们介绍和表输出对应的插件(表输入)的使用. 表输入: 1. 从步骤插入数据: ...

  4. 微信小程序 - 滚动公告组件

    支持横轴.纵轴滚动. 点击下载:speaker

  5. Yahoo邮箱最后登录,成为历史!

  6. Mongodb3安装授权

    (1) mongodb 官网下载解压包mongodb-win32-x86_64-3.0.7.zip解压释放在d盘,目录为mongodb,接下来手动创建data文件夹和log文件夹分别用于存放数据和日志 ...

  7. WIP 003 - Create page with a tablewalker

    Need ability to delete records by click the trash can Need ability to add new records to database an ...

  8. mysql: SELECT ... FOR UPDATE 对SELECT语句的阻塞实验

    开两个连接A, B, 分别执行以下三个sql start 和 start ; 在A执行完1和2后, B执行1, 正常B执行2, 立即返回B执行3, 这时候被阻塞了 A执行3后, B的3立即返回 可以得 ...

  9. 强力密码暴力破解工具:hydra

    语法: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FIL ...

  10. vmware与virtualbox之对比分析

    2012-04-01 16:01:17        vmware与virtualbox之对比分析   测试过程:本机安装双系统xp.ubuntu:在每个系统中安装两种虚拟机:每个虚拟机虚拟一个Win ...