GitDown 在 PHP 中解析 Markdown

发布日期:作者:

GitDown Parsing Markdown in PHP image

GitDown 是 Caleb Porzio 为在 PHP 中解析(GitHub 风格的)Markdown 而创建的一个简单软件包。它的工作原理是将提供的 Markdown 发送到一个公开的 GitHub API,该 API 将其解析为 HTML。

如果您没有使用 Laravel,您仍然可以使用这个软件包。以下是 Laravel 项目中的基本用法:

GitDown::parse($markdown);
 
// Will be cached forever. (suggested)
GitDown::parseAndCache($markdown);
 
// Will be cached for 24 hours. (minutes in Laravel < 5.8, seconds otherwise)
GitDown::parseAndCache($markdown, $seconds = 86400);
 
// Pass in your own custom caching strategy.
GitDown::parseAndCache($markdown, function ($parse) {
return Cache::rememberForever(sha1($markdown), function () use ($parse) {
return $parse();
});
});

您不需要使用 Laravel 才能使用 GitDown - 您可以创建一个 GitDown\GitDown 实例并使用您自己的缓存策略。

$gitDown = new GitDown\GitDown(
$token = 'foo',
$context = 'your/repo',
$allowIframes = false
);
 
$gitDown->parse($markdown);
 
// Pass in your own custom caching strategy.
$gitDown->parseAndCache($markdown, function ($parse) {
return Cache::rememberForever(sha1($markdown), function () use ($parse) {
return $parse();
});
});

重要的是要记住,如果没有缓存结果,您将很快遇到 GitHub 速率限制,并且您的页面加载速度会非常慢。

在前端,您可以在 Laravel 项目中使用 @gitdown 指令,将其添加到您的布局的 <head> 中,并将 Markdown 内容包装在 .markdown-body 类中。

<head>
[...]
@gitdown
</head>
<body>
<div class="markdown-body">
{!! GitDown::parseAndCache($content) !!}
</div>
</body>

如果您没有使用 Laravel,可以使用以下代码:

<style><?php echo GitDown\GitDown::styles(); ?></style>

查看该项目的 README 以获取有关渲染样式的详细说明。

要详细了解 GitDown 以及为什么要使用它的原因,请阅读 Caleb 的文章 解析 Markdown:轻松实现代码高亮

您可以在 GitHub 上了解更多关于该软件包的信息,获取完整的安装说明,并查看源代码:calebporzio/gitdown

Paul Redmond photo

Laravel 新闻的撰稿人。全栈 Web 开发人员和作者。

分类:
Cube

Laravel 新闻通讯

加入 40,000 多位其他开发者,不错过任何新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动补全和本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron 是来自 No Compromises 播客的两名经验丰富的开发者,现在他们可以为您的 Laravel 项目提供服务。 ⬧ 固定费率为每月 7500 美元。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

正在运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

使用经验丰富的 Laravel 开发人员(4-6 年经验)为您的项目增效,每月只需 2500 美元。获得 160 小时的专业知识和 15 天的无风险试用期。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得 Lucky - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动套件

SaaSykit 是一个 Laravel SaaS 启动套件,它包含运行现代 SaaS 所需的所有功能。支付、漂亮的结账、管理面板、用户仪表板、身份验证、预制组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 启动套件
Rector logo

Rector

您无缝升级 Laravel、降低成本和加速创新以获得成功企业的合作伙伴

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包为您的 Laravel 应用程序添加评论

阅读文章