armin / md2pdf
将多个markdown文件转换为HTML和PDF。
0.2.1
2023-05-24 12:12 UTC
Requires
- php: ^8.1
- ext-iconv: *
- ext-json: *
- league/commonmark: ^2.0
- mpdf/mpdf: ^8.1
- scrivo/highlight.php: ^9.18
- symfony/console: ^5.4 || ^6.2
- symfony/finder: ^5.4 || ^6.2
- symfony/options-resolver: ^5.4 || ^6.2
- symfony/yaml: ^5.4 || ^6.2
Requires (Dev)
- armin/editorconfig-cli: ^1.5
- friendsofphp/php-cs-fixer: ^3.16
- jangregor/phpstan-prophecy: ^1.0
- phpstan/phpstan: ^1.10.15
- phpunit/phpunit: ^9.5
- seld/phar-utils: ^1.1
This package is auto-updated.
Last update: 2024-08-24 14:54:21 UTC
README
PHP应用程序,用于将多个markdown文件转换为HTML和PDF。
这是pandoc等工具的更简单替代方案。
这是一个非常早期的原型! 尚未发布任何版本。
文档
请在此存储库中查看完整文档或查看生成的PDF版本(待办事项)。
第一步
下载最新的phar二进制文件或将此包(armin/md2pdf
)添加到您的composer.json中。
当使用Composer要求包时,您可以在CLI上使用
vendor/bin/md2pdf
现在,您需要在项目的根目录中创建md2pdf.yaml
文件。
最小示例
title: Test Document author: Armin Vieweg baseUrl: https://github.com/a-r-m-i-n/md2pdf/blob/master rootPath: . structure: - section: Documentation level: 1 - docs/index.md - docs/configuration.md - section: README Contents level: 1 - README.md output: md2pdf-documentation.pdf
在此文件中,我们定义了HTML/PDF输出的结构。我们还可以使用部分来分离内容。
现在,您可以简单地运行
vendor/bin/md2pdf build
早期版本
如前所述,这是一个非常早期的原型。代码需要大量重构,一些功能尚未正常工作或仍然缺失。
计划实现四种模式供您选择
- init - 用于启动初始md2pdf.yaml文件
- check - 检查结构和新的缺失文件
- update - 更新md2pdf.yaml结构(应用检查结果)
- build - 创建实际输出
目前,仅实现了build模式。
功能
- 合并配置的markdown结构(文件)并转换为HTML(使用league/commonmark)
- 提供扩展锚点(包括清理的文件名)
- 将文档中的相对链接替换为扩展锚点(尚未正常工作)
- 将配置的baseUrl添加到存储库中文件的相对链接之前(不是配置的markdown结构的一部分)
- 为每个标题提供目录(带有页码,适合打印)
- 为每个标题提供书签(适合PDF阅读器)
- 向结构添加自定义部分以分离内容
- 级别可定制(从1开始)
- 您还可以使用
contents
子键传递其他格式化文本,它接受格式化的markdown输入
- 嵌入式代码的语法高亮(可配置,使用scrivo/highlight.php)
- 可配置样式
- 手动页面断裂和方向更改(
<!-- PAGEBREAK --> <!-- PAGEBREAK:L --> <!-- PAGEBREAK:P -->
) - 将转换后的markdown内容(通过HTML)输出到PDF(使用mpdf/mpdf)
- Phar编译器
- 由于文件大小原因,仅将TTF字体"DejaVuSerif"和"DejaVuSans"包含在phar二进制文件中
缺失
- 模式:init,check和update
- 重构了markdown内容中相对链接的分析
- PDF设置
- 大小、边框等
- 自定义字体的路径
- 保存HTML文件的能力
- 禁用书签的配置
- 清理(删除tmp目录)
- 完整的文档