enlight / scratch
Markdown 转 PDF 书籍构建器
Requires
- illuminate/filesystem: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
- mpdf/mpdf: ^8.0
- spatie/commonmark-highlighter: ^2.1
- symfony/console: ^4.2|^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.18
- symfony/var-dumper: ^5.0
README
这是一个THEMSAID/IBIS项目的良好维护分支。
这个PHP工具可以帮助你使用Markdown编写电子书。运行scratch build,将生成带有
- 封面照片的电子书。
- 可点击的自动生成目录。
- 代码语法高亮。
- 提供2种主题。亮色和暗色。
安装
确保你的系统已安装PHP7.3或更高版本,并在php.ini文件中启用了gd扩展。
首先,全局安装composer包
composer global require enlight/scratch
然后,在空目录中运行此命令
scratch init
这将创建以下文件和目录
- /assets
- /assets/fonts
- /assets/cover.jpg
- /assets/theme-light.html
- /assets/theme-dark.html
- /content
- /scratch.php
你可以通过编辑/scratch.php配置文件来配置你的书籍。
编写你的电子书
init命令将在内容文件夹内创建示例.md文件。你可以探索这些文件以了解如何编写你的书籍。此示例内容取自Laravel Queues in Action。
在内容目录内,你可以编写多个.md文件。Scratch使用标题将书籍分为部分和章节
# Part 1
<h1> tags define the start of a part. A separate PDF page will be generated to print the part title and any content below.
## Chapter 1
<h2> tags define the start of a chapter. A chapter starts on a new page always.
### Starting with Scratch
<h3> tags define different titles inside a chapter.
使用图片
图片可以存储在内容文件夹中,然后像这样引入

添加封面图片
要使用封面图片,在assets/目录中添加一个cover.jpg(如果你更喜欢基于HTML的封面页,则添加一个cover.html文件)。如果你不想使用封面图片,请删除这些文件。
使用字体
编辑你的/scratch.php配置文件以定义要从/assets/fonts目录中加载的字体文件。之后,你可以在主题中(/assets/theme-light.html & /assets/theme-dark.html)使用定义的字体。
生成PDF电子书
scratch build
Scratch将按字母顺序解析文件,并将PDF文件存储在/export。
默认情况下,使用亮色主题生成PDF,要使用暗色主题生成PDF
scratch build dark
生成示例
scratch sample
scratch sample dark
此命令将使用scratch build命令生成的文件生成PDF电子书的示例。你可以通过更新/scratch.php文件来配置要包含在示例中的页面。
开发
该项目使用PHP CS Fixer,并在.php-cs-fixer.php中定义了代码标准。
要检查不符合标准的代码,可以运行dry run的fix命令。像这样运行composer脚本
composer run csfix-review
要修复源代码,运行以下composer脚本
composer run csfix
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。