xp-forge/markdown

v8.1.1 2024-04-22 15:03 UTC

README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version

为 XP 框架实现的 Markdown 语法

示例

要将 Markdown 转换为 HTML,只需做以下操作

use net\daringfireball\markdown\Markdown;

$engine= new Markdown();
$transformed= $engine->transform(
  'This is [Markdown](http://daringfireball.net/projects/markdown/) for **XP**'
);

实现基于解析树。要处理树,可以使用 parse() 方法,它返回一个 net.daringfireball.markdown.ParseTree 实例。

use net\daringfireball\markdown\{Markdown, ToHtml};
use io\streams\TextReader;
use io\File;

$engine= new Markdown();

$tree= $engine->parse($markdown);
$tree= $engine->parse(new TextReader(new File('file.md')));

// ...work with tree...

$transformed= $tree->emit(new ToHtml());

您可以通过使用 URL 重写 API 来控制链接和图像的 hrefsrc 属性中使用的 URL。

use net\daringfireball\markdown\{ToHtml, URLs, Rewriting};

$emitter= new ToHtml(new URLs(Rewriting::absolute()
  ->links('/deref?url=%s')
  ->images('/proxy?url=&s')
  ->excluding(['localhost'])
));

$transformed= $engine->transform($markdown, [], $emitter);
$transformed= $engine->parse($markdown)->emit($emitter);