mariohuq / md-html-converter
PHP 内联 Markdown ↔ HTML 转换器
dev-main
2021-06-14 04:51 UTC
Requires
- wouterj/peg: dev-master
This package is auto-updated.
Last update: 2024-09-08 13:13:38 UTC
README
此转换器基于wouterj的PHP PEG 解析器。
安装
使用Composer安装 md-html-converter
$ composer require mariohuq/md-html-converter:dev-main
使用方法
使用 MarkdownGrammar#parse()
解析输入字符串。返回值是字符串匹配的部分或无匹配时返回 null
use Mariohuq\MarkdownGrammar; $grammar = new MarkdownGrammar(); echo $grammar->parse('text1 **bold1 __italic1__** ~~`code1`~~'); // text1 <strong>bold1 <em>italic1</em></strong> <s><code>code1</code></s>
尝试转换器
您可以在位于/web/index.php
的测试页面上尝试此转换器。
以8080(或任何其他端口号)为本目录启动本地Web服务器并打开localhost:8080。
支持的Markdown语法
此转换器支持Telegram的Markdown语法
**bold**
__italics__
~~strike~~
`code`
[link title](https://www.example.com)
粗体、斜体和删除线可以以各种方式嵌套,链接标题可以是粗体、斜体、删除线或代码。所有反引号内的语法都将被忽略。尚未支持字符转义。
PEG 语法
BLOCK_OR_LINK_S <- (BLOCK / LINK)+
BLOCK <- BOLD / ITALICS / STRIKE / CODE / ANY
BOLD <- ASTERISK BLOCK_OR_LINK_S ASTERISK
ITALICS <- UNDERLINE BLOCK_OR_LINK_S UNDERLINE
STRIKE <- TILDA BLOCK_OR_LINK_S TILDA
CODE <- BACKTICK ANY BACKTICK
LINK <- LBRACK BLOCK+ LINK_SEP ANY RPAREN
ASTERISK <- '**'
UNDERLINE <- '__'
TILDA <- '~~'
BACKTICK <- [`]
LBRACK <- '['
LINK_SEP <- ']['
RPAREN <- ')'
ANY <- [^)*[\]_`~]+
ANY_CODE <- [^`]+