mozex/commonmark-routes

Markdown 中的 Laravel 路由:一个 CommonMark 扩展,允许您在 Markdown 内容中无缝使用 Laravel 路由功能。

资助包维护!
mozex

1.1.0 2024-06-28 16:22 UTC

This package is auto-updated.

Last update: 2024-08-28 16:37:33 UTC


README

Latest Version on Packagist GitHub Tests Workflow Status License

league/commonmark 的一个扩展,允许您在 markdown 中使用 Laravel 路由,就像在 PHP 代码中一样。

警告:本扩展旨在用于受控环境中,其中 markdown 被信任。由于潜在的安全风险,请不要用于处理用户输入的 markdown。

目录

支持我们

创建和维护开源项目需要大量的时间和精力。您的支持将有助于增强项目,并使进一步贡献 PHP 社区成为可能。

可以通过 GitHub Sponsors 计划进行赞助。只需点击此存储库顶部的 "Sponsor" 按钮。任何金额都备受感激,即使是一笔1美元的小额捐款也能产生重大影响,并将直接用于开发和改进此包。

感谢您考虑赞助。您的支持真的有所作为!

安装

需要 PHP 8.1+

您可以通过 composer 安装此包

composer require mozex/commonmark-routes

使用方法

将 RoutesExtension 注册为 CommonMark 扩展,并在 markdown 中使用路由函数而不是 URL,就像在 PHP 代码中一样。

use League\CommonMark\Environment\Environment;
use League\CommonMark\CommonMarkConverter;
use Mozex\CommonMarkRoutes\RoutesExtension;

$converter = new CommonMarkConverter($environment);
$converter->getEnvironment()->addExtension(new RoutesExtension());

echo $converter->convert("[Home](route('home'))");
// Output: <p><a href="https://domain.com">Home</a></p>

echo $converter->convert("[Home](<route('home')>)");
// Output: <p><a href="https://domain.com">Home</a></p>

echo $converter->convert("[Home](route('home', absolute: false))");
// Output: <p><a href="/">Home</a></p>

echo $converter->convert("[Product](route('product', 3))");
// Output: <p><a href="https://domain.com/product/3">Product</a></p>

echo $converter->convert("[Features](route('home', ['id' => 'features']))");
// Output: <p><a href="https://domain.com?id=features">Features</a></p>

echo $converter->convert("[Features](route('home', ['id' => 'features'], false))");
// Output: <p><a href="/?id=features">Features</a></p>

有关 CommonMark 扩展和环境的更多信息,请参阅 CommonMark 文档

Spatie Laravel Markdown

当使用 Laravel Markdown 包时,您可以在 config/markdown.php 中注册此扩展。

/*
 * These extensions should be added to the markdown environment. A valid
 * extension implements League\CommonMark\Extension\ExtensionInterface
 *
 * More info: https://commonmark.thephpleague.com/2.4/extensions/overview/
 */
'extensions' => [
    Mozex\CommonMarkRoutes\RoutesExtension::class,
],

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 变更日志

贡献

有关详细信息,请参阅 贡献

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略

致谢

许可证

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