缺少好用的markdown引擎之前一直是.NET平台上的一个痛点。因为这个痛点,我们被迫痛苦地使用了pandoc——不是pandoc做的不好,而是pandoc是由Haskell开发的,只能在Windows Server 2008上编译,而且编译出来的dll只能在Windows Server 2012上使用,并且只能在IIS 32位应用程序池下使用,甚至有时会引起CPU 100%造成服务器宕机。

昨天,我们在github上发现了今年新上市的一款.net markdown引擎 —— CommonMark.NET(当前在github上有188颗星)。它是CommonMark规范的一个.NET实现,所以叫CommonMark.NET。CommonMark是什么呢?它是一个markdown标准。之前我们经常抱怨markdown最大的问题是缺少标准,而现在已经有了标准。我们只知道抱怨问题,而有人却已经在解决问题,这就是差距啊。

发现CommonMark.NET之后,我们进行了一番测试,测试下来效果不错,能满足我们的应用需求,除了一个问题 —— 不支持表格。这不是CommonMark.NET的问题,而是CommonMark规范本身不支持markdown表格标记,支持表格的markdown标记是由GitHub Flavored Markdown定义的,但没能成为markdown标准。(针对不支持表格的问题,CommonMark.NET的开发者也进行了专门的说明,详见 Tables)。

经过评估,我们最终决定选用CommonMark.NET作为博客程序的markdown主引擎,昨天晚上已经发布上线。如果您遇到markdown生成html的转换问题,麻烦您发邮件至contact@cnblogs.com向我们反馈。

对于不支持表格的问题,我们正在尝试折衷的解决方法。如果在markdown文本中检测到markdown表格标记,就换一个markdown引擎进行转换。

使用CommonMark.NET非常简单,nuget安装CommonMark.NET包包:

PM> Install-Package CommonMark.NET

然后在代码中调用CommonMark.CommonMarkConverter.Convert()方法进行转换:

body = CommonMark.CommonMarkConverter.Convert(body);

最新文章

  1. 时间复杂度分别为 O(n)和 O(1)的删除单链表结点的方法
  2. Swift-常量变量
  3. jsp模仿QQ空间说说的发表
  4. iOS设备的越狱方法
  5. angularjs之自己定义指令篇
  6. Neutron分析(7)—— neutron-l3-agent HA solutions
  7. android手机配置hosts文件
  8. centos msyql 安装与配置
  9. fix org.openqa.selenium.NoSuchWindowException when find element on windows8.1 ie11.
  10. chrome浏览器解决ajax跨域问题
  11. Android Studio 下载与安装配置
  12. Python中列表、元组、集合、字典
  13. HDU 4639 Hehe 2013 Multi-University Training Contest 4
  14. vm参数配置的理解
  15. SOA,Webservice,SOAP,REST,RPC,RMI的区别与联系
  16. php通过$_SERVER['HTTP_USER_AGENT']获取浏览器useAgent
  17. 20155231 邵煜楠《网络对抗技术》实验一 PC平台逆向破解
  18. Hadoop基础-HDFS的读取与写入过程
  19. C++的四种初始化形式以及类型转换
  20. vs2005新建项目中没有ASP.NET WEB应用程序的解决方法

热门文章

  1. jquery模拟LCD 时钟
  2. 浅谈HTML5单页面架构(三)—— 回归本真:自定义路由 + requirejs + zepto + underscore
  3. Metasploit各版本对比
  4. centos 7 64位虚机上android4环境运行
  5. [Java编程思想-学习笔记]第4章 控制执行流程
  6. MySQL学习笔记之视图
  7. mysql数据库乱码解决方法之一
  8. mysql权限与安全
  9. DbVisualizer连接hbase
  10. CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target