bueltge/marksimple

PHP 的简单 Markdown 解析器。

2.2.0 2022-05-17 11:22 UTC

This package is auto-updated.

Last update: 2024-09-12 08:07:43 UTC


README

CI Maintainability Code Coverage Scrutinizer Code Quality

这是一个简单的 Markdown 解析器,简洁且仅包含我目前需要的规则。功能基于正则表达式,并且可以增强您的自定义规则。

是的,我知道,有很多开源项目可以解决这个问题。但是,编写自己的解析器很有趣,只需要我需要的规则,没有太多冗余。是的,我的意思是,其他包更稳固,使用更广泛,但不足以学习正则表达式和 Markdown。此外,我知道正则表达式解析器不是最好的,也不是最快的方式,但在这里,我想在这个环境中学习

演示,测试

该解决方案仍在测试中,您可以在这里找到它。这个类测试也被构建为PWA,即渐进式网络应用。这只是我的一个有趣项目,为了真正简单地在网站上理解它的工作方式。但是,如果您看到这个存储库中的目录 test 并对其中的许多文件感到疑惑,因为它们不是在 Markdown 解析器的上下文中。如果您检查 PWA,请在手机上使用它或在 Chrome/WebInspector 中进行操作。

活跃使用

该类很简单,我使用它来编写自己的文档,我在那里用 Markdown 写作。这里和那里有一个单页面,每天都可以帮助找到正确的语法、提示、背景和其他内容。您可以在这些示例中看到它。

支持

我的类目前支持以下语法。但欢迎提交 Pull Request,该解决方案允许您添加自己的规则。

  • 标题,h1 - h6 - ####### 在字符串之前
  • 图片,![](path/to/image.png "Alt text")
  • 加粗文本,strong - **__ 在字符串前后
  • 斜体文本,em - 一个 *_ 在字符串前后
  • 无序列表,ul - 每行一个 *
  • 内联代码,code - 代码字符串前后各有一个 ``` 反引号
  • 代码块,pre - 每行有 4 个空格或制表符,或者使用三重反引号创建带有可选语言标识符的代码块
  • 链接,a - [链接文本](链接 URL)
  • 水平线,---
  • 换行,<br>

用法

需求

  • PHP 7.4

通过下载、克隆存储库或使用 Composer 的依赖管理器安装静态版本

composer require bueltge/marksimple

您可以在GitHub 上的存储库中找到解决方案和测试。

查看测试目录中的示例,其中包含两种不同的用法。测试目录作为 PWA 运行,请只查看文件 index.php

代码示例

// Example with four spaces.
require_once '../vendor/autoload.php';
use Bueltge\Marksimple\Marksimple;
$ms = new Marksimple();
print $ms->parseFile('../README.md');
// Example Github Code Block ```php.
require_once '../vendor/autoload.php';
use Bueltge\Marksimple\Marksimple;
$ms = new Marksimple();
print $ms->parseFile('../README.md');

添加Logger示例

MarkSimple类实例使用了psr/log特性。

默认的LoggerNullLogger,当声明MarkSimple类实例时会创建它。关于psr/log的更多详细信息,请访问这个链接

$testee = new Marksimple();
echo get_class($testee->logger()); //output: Psr\Log\NullLogger

赞赏

在实现我的简单解析器目标的过程中,我使用了大量的测试和在线正则表达式测试器的尝试。非常感谢这两个网站的作者,太棒了!

许可

版权所有(c)2017年至今,Frank Bültge

好消息,这个插件对每个人都是免费的!因为它是在MIT许可下发布的,你可以在个人或商业网站上免费使用它。

贡献

欢迎所有反馈/错误报告/拉取请求。