davidbadura / markdown-builder
Markdown Builder
1.1.1
2021-10-23 09:22 UTC
Requires
- php: >=7.4
- ext-mbstring: *
Requires (Dev)
- infection/infection: ^0.22.1
- patchlevel/coding-standard: ^1.0.0
- phpstan/phpstan: ^0.12.85
- phpunit/phpunit: ^9.5.4
- symfony/var-dumper: ^5.2.3
- vimeo/psalm: ^4.7.2
This package is auto-updated.
Last update: 2024-09-19 09:51:20 UTC
README
Markdown 创建的简单辅助类。
安装
composer require 'davidbadura/markdown-builder'
使用
$builder = new MarkdownBuilder(); $builder ->h1('Markdown Builder') ->p('A simple helper class to create markdown.') ->h2('Install ' . $builder->inlineBold('this') . ' powerfull library') ->code("composer require 'davidbadura/markdown-builder@dev'", 'bash') ->h2('Todos') ->bulletedList([ 'write tests', (string)$builder ->block() ->numberedList(['A', 'B', 'C']) , 'add more markdown features' ]); echo $builder->getMarkdown();
Markdown Builder
================
A simple helper class to create markdown.
Install **this** powerfull library
----------------------------------
```bash
composer require 'davidbadura/markdown-builder@dev'
```
Todos
-----
* write tests
* 1. A
2. B
3. C
* add more markdown features
API
Markdown Builder 有两种元素,分别是块元素和行内元素。块元素将被缓冲,如果你调用 getMarkdown()
方法,你可以获取到 Markdown。所有行内元素都以前缀 inline*
开头,你将立即得到 Markdown 输出。
块元素
h1
PHP-代码
echo (new MarkdownBuilder())->h1('Hello World')->getMarkdown();
Markdown
Hello World
===========
h2
PHP-代码
echo (new MarkdownBuilder())->h2('Hello second world')->getMarkdown();
Markdown
Hello second world
------------------
h3
PHP-代码
echo (new MarkdownBuilder())->h3('My name is...')->getMarkdown();
Markdown
### My name is...
p
PHP-代码
echo (new MarkdownBuilder())->p('paragraph')->getMarkdown();
Markdown
paragraph
引用
PHP-代码
echo (new MarkdownBuilder())->blockquote("Foo\nBar\nBaz")->getMarkdown();
Markdown
> Foo > Bar > Baz
项目符号列表
PHP-代码
echo (new MarkdownBuilder())->bulletedList(['Foo', 'Bar', 'Baz'])->getMarkdown();
Markdown
* Foo * Bar * Baz
编号列表
PHP-代码
echo (new MarkdownBuilder())->numberedList(['Foo', 'Bar', 'Baz'])->getMarkdown();
Markdown
1. Foo 2. Bar 3. Baz
水平线
PHP-代码
echo (new MarkdownBuilder())->hr()->getMarkdown();
Markdown
------------------------
代码
PHP-代码
echo (new MarkdownBuilder())->code('$var = "test";', 'php')->getMarkdown();
Markdown
```php
$var = "test";
```
表格
PHP-代码
echo (new MarkdownBuilder())->table( ['col0', 'col1'], [ ['row01', 'row01'], ['row10', 'row11'], ], [Alignment::CENTER, Alignment::RIGHT] )->getMarkdown();
Markdown
|col0|col1| |:-:|-:| |row01|row01|
行内块
粗体
PHP-代码
echo (new MarkdownBuilder())->inlineBold('Hey!');
Markdown
**Hey!**
斜体
PHP-代码
echo (new MarkdownBuilder())->inlineItalic('huhu');
Markdown
*huhu*
代码
PHP-代码
echo (new MarkdownBuilder())->inlineCode('$var = "test";');
Markdown
`$var = "test";`
链接
PHP-代码
echo (new MarkdownBuilder())->inlineLink('http://google.de', 'Google', 'Title');
Markdown
[Google](http://google.de "Title")
图片
PHP-代码
echo (new MarkdownBuilder())->inlineImg('cat.jpg', 'Cat', 'Title');
Markdown

高级特性
如果你需要可折叠的块,你可以通过调用 block()
创建一个新的具有自己干净缓冲区的构建器实例。
PHP-代码
$builder = new MarkdownBuilder(); $builder->blockqoute( (string)$builder ->block() ->h1('Lists') ->bulletedList([ 'Foo', $builder->block()->numberedList(['A', 'B', 'C']), 'Bar' ]) );
Markdown
> Lists > ===== > > * Foo > * 1. A > 2. B > 3. C > * Bar