sundown 0.1.0

sundown 0.1.0

测试已测试
Lang语言 CC
许可证 MIT
发布最后发布2014年12月

未声明 维护。



sundown 0.1.0

  • Dominik Pich

Sundown

Sundown 是一个基于 Natacha Porté 的原始代码 Upskirt 库 的 Markdown 解析器。

特性

  • 完全符合标准

    Sundown 能够通过官方的 Markdown v1.0.0 和 v1.0.3 测试套件,并且经过广泛的测试和额外的边界情况测试,以确保其输出始终保持尽可能的正常。

  • 广泛的支持扩展

    Sundown 具有对多个(非官方)Markdown 扩展的可选支持,如非严格强调、定界代码块、表格、自动链接、删除线等。

  • 支持 UTF-8

    Sundown 完全支持 UTF-8,无论是解析源文档还是生成结果(X)HTML 代码。

  • 已测试并可供生产使用

    Sundown 经受了广泛的网络安全审查,包括针对所有可能的 DOS 攻击(堆栈溢出、内存不足、格式错误的 Markdown 语法)以及通过恶意嵌入的 HTML 对客户端的攻击的保护。

    我们非常努力确保在输入的情况下 Sundown 从来不会有崩溃或耗尽内存。 Sundown 渲染了 GitHub 上的所有 Markdown 内容,到目前为止还没有崩溃过。

  • 自定义渲染器

    Sundown 不限于 XHTML 输出:库中的 Markdown 解析器与渲染器解耦,因此可以轻松地通过自定义渲染器扩展库。包含了一个完全功能的(X)HTML渲染器。

  • 优化速度

    Sundown 用 C 语言编写,特别注重性能。当在动态语言(如 Python 或 Ruby)上包装时,它比其他本机替代方案快 40 倍。

  • 无依赖项

    Sundown 是一个无依赖项的库,由 3 个 .c 文件及其头文件组成。无依赖项,无屁成分。只有标准 C99,可在任何地方构建。

致谢

Sundown 基于 Natacha Porté 的原始 Upskirt 解析器,由 Vicent Marti (@tanoku) 等人进行了许多添加,并得到了以下作者的贡献

Ben Noordhuis, Bruno Michel, Joseph Koshy, Krzysztof Kowalczyk, Samuel Bronson,
Shuhei Tanuma

绑定

Sundown 可通过我们优秀贡献者开发的以下绑定在其他编程语言中使用。

帮助我们

Sundown 专注于安全性。如果您在库中发现(潜在的)安全漏洞,或者通过恶意输入使其崩溃的方法,请向我们报告,无论是通过电子邮件直接报告,还是在GitHub上创建问题,共同让网络更安全。

Unicode字符处理

鉴于Markdown规范没有对Unicode字符处理做出规定,Sundown在决定哪些扩展字符触发Markdown功能时采取了保守的方法。

  • 位于U+007F代码点之外的标点符号不被视为标点。它们被视为正常的单词内部字符,用于词边界检查。

  • 位于U+007F代码点之外的空白字符不视为空白。它们被视为正常的单词内部字符,用于词边界检查。

安装

没有需要安装的内容。 Sundown 由3个.c文件组成(markdown.cbuffer.carray.c),所以只需将其放入您的项目中。零依赖意味着零依赖。如果您想使用包含的XHTML渲染器,可以包含render/html.c,或者编写自己的渲染器。无论如何,都是有趣和快乐的。

如果您是高手,可以使用包含的MakefileSundown构建为动态库,或者构建示例可执行文件,它只是一个Markdown到XHTML的命令行解析器。(如果您使用gcc遇到关于-fPIC的问题,例如MinGW,请尝试使用make MFLAGS=而不是只用make。)

许可证

基于此,授予在不收取任何费用的情况下,根据本协议的条款使用、复制、修改和分发本软件的任何目的的许可,前提是所有副本中均包含上述版权声明和本许可声明。

本软件按“现状”提供,并且作者放弃与该软件有关的任何保修,包括所有默示保证的适销性和适用性。在任何情况下,作者均不对任何特殊、直接、间接或后果性损害或任何因使用或性能该软件而导致的任何损害(无论提起的是合同诉讼、疏忽诉讼或其他侵权行为诉讼)承担责任。