ueberdosis / pandoc
Pandoc PHP 包
0.9.0
2023-02-28 08:00 UTC
Requires
- php: ^7.1|^8.0
- symfony/process: >4.0
Requires (Dev)
- phpunit/phpunit: ^8.0 || ^9.0
README
如果您需要将文本文件从一种格式转换为另一种格式,pandoc 就是您的瑞士军刀。此包是 pandoc 的 PHP 封装。
安装
您可以通过 composer 安装此包
composer require ueberdosis/pandoc
此包是对命令行工具 pandoc 的封装。别忘了安装 pandoc。以下是在 Ubuntu 上的一个示例
sudo apt-get update
sudo apt-get install -y wget
sudo mkdir -p /usr/src/pandoc
cd /usr/src/pandoc
sudo wget https://github.com/jgm/pandoc/releases/download/2.15/pandoc-2.15-1-amd64.deb
sudo dpkg -i pandoc-2.15-1-amd64.deb
用法
以字符串形式返回转换后的文本
$output = (new \Pandoc\Pandoc) ->from('markdown') ->input('# Test') ->to('html') ->run();
使用文件作为输入并写入文件作为输出
(new \Pandoc\Pandoc) ->from('markdown') ->inputFile('tests/data/example.md') ->to('plain') ->output('tests/temp/example.txt') ->run();
更改 Pandoc 路径
new \Pandoc\Pandoc([ 'command' => '/usr/local/bin/pandoc', ]);
更改工作目录
(new \Pandoc\Pandoc)->cwd('/tmp/pandoc/');
列出可用的输入格式
(new \Pandoc\Pandoc)->listInputFormats();
列出可用的输出格式
(new \Pandoc\Pandoc)->listOutputFormats();
写入日志文件
echo (new \Pandoc\Pandoc) ->from('markdown') ->input('# Markdown') ->to('html') ->log('log.txt') ->run();
检索 Pandoc 版本
echo (new \Pandoc\Pandoc)->version();
使用魔法方法使调用更短
$output = (new \Pandoc\Pandoc) ->fromMarkdown('# Test') ->toHtml('tests/temp/example.txt') ->run();
传递选项给 Pandoc
echo (new \Pandoc\Pandoc) ->fromMarkdown('# Test') ->toHtml('tests/temp/example.txt') ->option('fail-if-warnings') ->option('data-dir', './tmp') ->run();
有关可用选项的完整列表,请参阅 https://pandoc.org/MANUAL.html
Laravel Facade
此包包括一个 Laravel facade,供喜欢这种语法糖的用户使用。
echo \Pandoc\Facades\Pandoc::version();
异常
如果出现问题,该包会抛出通用的 \Symfony\Component\Process\Exception\ProcessFailedException
。还有一些具体的异常。
- \Pandoc\Exceptions\PandocNotFound
- \Pandoc\Exceptions\InputFileNotFound
- \Pandoc\Exceptions\UnknownInputFormat
- \Pandoc\Exceptions\UnknownOutputFormat
- \Pandoc\Exceptions\LogFileNotWriteable
- \Pandoc\Exceptions\BadMethodCall
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
鸣谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。