• 用上CommonMark.NET,.NET平台终于有了好用的markdown引擎团队


    缺少好用的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);
    
  • 相关阅读:
    OpenGL 混合功能
    Android之Project、Module的区别
    Android之基于监听的事件处理机制
    Android之布局
    You may experience an access violation when you access an STL object through a pointer or reference in a different DLL or EXE
    导出类成员里含有stl对象
    从html代码里提取字符编码
    libcurl-7.54.1附加zlib1.2.11的编译
    libcurl同时下载多个文件
    在内存中运行可执行程序(转)
  • 原文地址:https://www.cnblogs.com/cmt/p/markdown-commonmark-dotnet.html
Copyright © 2020-2023  润新知