缺少好用的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);

用上CommonMark.NET,.NET平台终于有了好用的markdown引擎的更多相关文章

  1. 在阿里云上搭建 Spark 实验平台

    在阿里云上搭建 Spark 实验平台 Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程 [传统文化热爱者] 阿里云服务器搭建spark特别坑的地方 阿里云实现Hadoop+Sp ...

  2. Git 本地项目上传至托管平台(OsChina/GitHub)

    为了方便自己的代码管理,通常是把自己的写的一些小项目分享到GitHub 或者git.oschina上面! 区别: GitHub 只能创建公开的项目,国外的,速度慢! git.oschina 开源中国的 ...

  3. Springboot 一行代码实现文件上传 20个平台!少写代码到极致

    大家好,我是小富~ 技术交流,公众号:程序员小富 又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴们也分享一下,d ...

  4. 乾象投资:基于JuiceFS 构建云上量化投研平台

    背景 乾象投资 Metabit Trading 成立于2018年,是一家以人工智能为核心的科技型量化投资公司.核心成员毕业于 Stanford.CMU.清北等高校.目前,管理规模已突破 30 亿元人民 ...

  5. Git初次使用总结,安装到上传代码,多平台[码云|github]

    安装步骤 1.选择安装路径 2.选择创建图标,选择安装Git Bash和Git GUI 3.选择创建开始菜单 4.选择:use git and optional unix tools from the ...

  6. 【.NET 遇上 GraphQL】 ChilliCream 平台介绍

    ChilliCream ChilliCream 是一个开源免费的 GraphQL 平台, 提供了构建.管理, 和访问 GraphQL API 的端到端的解决方案. https://chillicrea ...

  7. Jexus 5.8.3正式发布:Asp.Net Core在Linux上最友好服务器平台

    Jexus Web Serever 是一款运行于 Linux 操作系统,以支持 ASP.NET.ASP.NET CORE.PHP 为特色的高性能 WEB 服务器和反向代理服务器.最新版 5.8.3 已 ...

  8. 20165302 程上杰 Exp1 PC平台逆向破解

    实验内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数. 注入一个自己制作的she ...

  9. 在MacOS上搭建Vulhub漏洞平台环境

    一.安装python3和docker brew install python3 brew cask install docker sudo pip3 install docker-compose 二. ...

随机推荐

  1. js 20160810

    jquery 获取不到所有相同id 的元素 ,只能获取此id的第一个元素.可以获取所有相同class 的元素

  2. GitHub学习心得之 分支操作

    目录 前言 1. 一般的push和pull 2. 分支操作 前言 本文对Github的分支操作进行了总结, 主要基于以下文章: http://blog.csdn.net/guang11cheng/ar ...

  3. .net 配置文件设计工具 Configuration Section Designer

    Configuration Section Designer 简称 CSD 下载及英文介绍地址点击我 以下为简单使用说明 选择自己需要的版本安装好该设计插件之后重启vs 新建选择 在工具栏里选择想使用 ...

  4. iOS cocoapods升级及问题

    安装 安装RubyCocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境.幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装.检测是否安装Ruby:$ ...

  5. 活用UML-软件设计高手(广州 2014年6月14-15日)

    我们将在广州为您奉献高级技术课程”活用UML-软件设计高手“,首席专家张老师将会为您分享软件架构设计.数据库设计.用户体验设计及详细设计的最佳实践,帮助您成为优秀的软件设计师! 时间:2014.06. ...

  6. Android应用开发基础之十二:版本控制

    为什么需要版本控制? 场景1: 你的代码正常工作 你改了其中的几行代码 程序出了问题 你把代码改回来 程序还是不能正常工作——为什么? 场景2: 你的程序昨天还能正常运行 昨天晚上你修改了很多内容,做 ...

  7. [C#6] 5-自动属性增强

    0. 目录 C#6 新增特性目录 1. 老版本代码 internal class Person { public string Name { get; private set; } public in ...

  8. Expdp 导数错误 ORA-00832

    问题实验环境 操作系统:Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库  :Oracle Database 10g Release ...

  9. python安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  10. SSL handshake alert: unrecognized_name error since upgrade to Java 1.7

    今天将jdk从1.6升级到1.7,但是HttpUrlConnection连接https出现问题了. javax.net.ssl.SSLProtocolException: handshake aler ...