cassarco / league-commonmark-wikilinks
league/commonmark中的wikilinks解析扩展。
v1.0.2
2024-03-24 23:42 UTC
Requires
- php: ^8.3
- league/commonmark: ^2.4.2
Requires (Dev)
- laravel/pint: ^v1.13.1
- pestphp/pest: ^2.0
- spatie/ray: ^1.28
README
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 > Top">Hello World > 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)。有关更多信息,请参阅许可文件。