nazar-pc/php-markdown-next

PHP Markdown Next

2.0.6 2014-01-28 21:22 UTC

README

PHP Markdown Next

由 Nazar Mokrynskyi nazar@mokrynskyi.com

基于 Michel Fortin 的 PHP Markdown Extra http://michelf.ca/

包含 Egil Hansen 的 PHP Markdown Extra Extended 的修改 egil@assimilated.dk

基于 John Gruber 的原始 Markdown http://daringfireball.net/

简介

这是一个包含基于 PHP Markdown Extra 和 PHP Markdown Extra Extended 解析器的 PHP Markdown Next 解析器的库包。

Markdown 是一个用于网页作者的文本到 HTML 转换工具。Markdown 允许您使用易于阅读、易于书写的纯文本格式进行编写,然后将其转换为结构良好的 XHTML(或 HTML)。

"Markdown" 是两件事:一种纯文本标记语法,以及一个将纯文本标记转换为 HTML 的软件工具,该工具用 Perl 编写。PHP Markdown 是 John Gruber 的原始 Markdown 程序的 PHP 版本。

Markdown 语法的完整文档可在 John 的 Markdown 页面上找到:http://daringfireball.net/projects/markdown/ PHP Markdown Extra 语法的描述由 Michel Fortin 提供:http://michelf.ca/projects/php-markdown/extra/ PHP Markdown Extra Extended 的更改在 Egil Hansen 的相应仓库中描述:https://github.com/egil/php-markdown-extra-extended

需求

此库包需要 PHP 5.4 或更高版本。

用法

为了使用此库,您可以使用 composer

{
    "require": {
        "nazar-pc/php-markdown-next": "*"
    }
}

或手动包含文件 src/nazarpc/MarkdownNext.php(见 example/index.php 文件)。

然后您可以使用类

use nazarpc\MarkdownNext;
$my_html = MarkdownNext::defaultTransform($my_text);

示例上方使用的是静态方法 defaultTransform,但如果您想自定义默认设置,则可以创建 MarkdownNext 类的实例

use nazarpc\MarkdownNext;
$parser = new MarkdownNext;
$parser->fn_id_prefix = "post22-";
$my_html = $parser->transform($my_text);

要了解更多信息,请参阅 Markdown Extra 配置变量 的完整列表和 Markdown 配置变量

公共 API 和版本策略

版本号的形式为 ..修订

PHP Markdown Next 的公共 API 包括解析器类 MarkdownNext、其构造函数、transformdefaultTransform 方法及其配置变量。对于给定的主版本号,公共 API 是稳定的。在次版本号增加时可能会添加新功能。

受保护的成员不被视为公共 API。 这是不寻常的,需要解释。每次底层实现发生变化时都增加主版本号,将为大量仅使用解析器的人提供非关键版本号。受保护的成员旨在创建具有不同行为的解析器子类。很少有人创建解析器子类。我不想通过使所有内容都为私有来阻碍这种做法,但同时我无法保证如果使用受保护的成员,版本之间的任何稳定钩子。

语法更改 将增加新功能的次要版本号,以及小修正的补丁号。一个 新功能 是指需要更改语法文档的部分。

错误和贡献

报告问题和创建拉取请求非常受欢迎!

也可以通过电子邮件联系我 nazar@mokrynskyi.com

请在您的错误报告中包括:(1)输入示例;(2)您期望的输出;(3)PHP Markdown Next实际产生的输出。

版本历史

PHP Markdown Next 2.0.0(2013年11月10日)

这是Next系列的第一个版本。

  • 2013年11月4日PHP Markdown存储库的Git版本被用作基础。
  • 代码重构,一些属性重命名,添加了正确的PHPDoc部分,以便IDE现在可以与之一起工作。
  • 添加了PHP Markdown Extra的几个拒绝的拉取请求。
  • Jason Caldwell的GFM-Style Fenced Code Blocks
  • Matt Gorle增强的有序列表
  • Mark Trapp将公共成员注释转换为PHPDoc格式(在这个方向上部分工作)
  • 添加了PHP Markdown Extra Extended的更改,该扩展基于旧的PHP Markdown Extra版本
  • Markdown和MarkdownExtra类以及其他更改合并为单个MarkdownNext类
  • 一些内部更改,如将受保护的方法移动到回调中的闭包,使用短数组语法,短三元运算符

PHP Markdown Lib 1.3(2013年4月11日)

这是PHP Markdown Lib的第一个版本。此软件包需要PHP版本4.3或更高版本,旨在与PSR-0自动加载一起使用,并且可选地与Composer一起使用。以下是自PHP Markdown Extra 1.2.6以来的更改列表:

  • WordPress和其他系统的插件接口不再存在于Lib软件包中。如果您需要,经典软件包仍然可用:http://michelf.ca/projects/php-markdown/classic/

  • 添加了publicprotected保护属性,并在Readme文件中添加了关于“公共API”和“非公共API”的部分。

  • 更改了脚注的HTML输出:现在不再添加relrev属性,脚注链接具有类名footnote-ref,回链footnote-backref

  • 修复了一些正则表达式,以使PCRE在有关POSIX排序类的警告(取决于您的PCRE版本)中保持沉默。

  • 为图像和链接添加了可选的类和id属性,其语法与标题相同。

    [link](url){#id .class}
    ![img](url){#id .class}
    

    这同样适用于引用样式链接和图像。在这种情况下,您需要在引用定义处放置这些属性。

    [link][linkref] or [linkref]
    ![img][linkref]
    
    [linkref]: url "optional title" {#id .class}
    
  • 修复了当某些表格列分隔符标记在列标题下分隔行中缺失时触发的PHP通知消息。

  • 修复了可能导致解析器在多次运行中保留与解析链接相关的无效状态的小错误。据我所知,这从未被观察到,但仍然值得修复。

版权和许可

BSD 3-Clause License

有关详细信息,请参阅license.md文件