cassarco/league-commonmark-wikilinks

league/commonmark中的wikilinks解析扩展。

v1.0.2 2024-03-24 23:42 UTC

This package is auto-updated.

Last update: 2024-09-25 00:42:00 UTC


README

Latest Version on Packagist Tests Total Downloads

league-commonmark的扩展,允许您在Markdown文件中使用wikilinks。这些链接将被转换为HTML,正如您在其他支持wikilinks的应用程序(如维基百科和Obsidian)中所期望的那样。

安装

您可以通过composer安装此包

composer require cassarco/league-commonmark-wikilinks

用法

use League\CommonMark\MarkdownConverter;
use Cassarco\LeagueCommonmarkWikilinks\WikilinksExtension;

$environment = new Environment();

$environment->addExtension(new CommonMarkCoreExtension());
$environment->addExtension(new WikiLinksExtension());

$markdown = "[[Hello World]]";

(new MarkdownConverter($environment))->convert($markdown);

// <p><a href="hello-world" title="Hello World">Hello World</a></p>

功能

将wikilinks转换为HTML链接

使用双花括号包围文本,此扩展将自动将wikilink转换为带有合适标题和文本的HTML链接。

$markdown = '[[Hello World]]';

// <p><a href="hello-world" title="Hello World">Hello World</a></p>

支持看起来像文本

看起来像文本可以用来修改生成的a标签的标题和文本。

$markdown = '[[Hello World|Welcome]]';

// <p><a href="hello-world" title="Welcome">Welcome</a></p>

支持哈希链接

您可以选择通过在wikilink末尾添加一个#后跟哈希链接文本来包含哈希链接。

$markdown = '[[Hello World#Top]]';

// <p><a href="hello-world#top" title="Hello World &gt; Top">Hello World &gt; Top</a></p>

支持哈希链接与看起来像文本的组合

当然,您可以将看起来像文本和哈希链接结合起来使用。

$markdown = '[[Hello World#Top|Welcome]]';

// <p><a href="hello-world#top" title="Welcome">Welcome</a></p>

支持链接前缀

可以使用prefix配置选项在href url的开始处添加字符串。

$markdown = '[[Hello World#Top|Welcome]]';

(new MarkdownConverter($environment))->convert($markdown, [
    'prefix' => 'articles/',
]

// <p><a href="articles/hello-world#top" title="Welcome">Welcome</a></p>

优雅地处理边缘情况

我已经尽力想到了所有边缘情况,但无疑还有更多。如果您遇到任何问题,请提交错误报告,我会尽力解决。

    $markdown = '[[]]'; //<p>[[]]</p>
    $markdown = '[Hello World]'; // <p>[Hello World]</p>
    $markdown = '[[Hello World'; // <p>[[Hello World</p>
    $markdown = 'Hello World]]'; // <p>Hello World]]</p>
    $markdown = '[[Hello World]]]]'; // <p>[[Hello World]]]]</p>
    $markdown = '[[      Hello World]]'; // <p><a href="hello-world" title="      Hello World">      Hello World</a></p>
    $markdown = '[[Hello World|||Welcome]]'; // <p>[[Hello World|||Welcome]]</p>

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

如果您发现影响此包安全性的错误,请通过电子邮件发送到security@cassar.co,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件