ueberdosis/pandoc

Pandoc PHP 包

资助包维护!
ueberdosis/

0.9.0 2023-02-28 08:00 UTC

README

Integrate Sponsor

如果您需要将文本文件从一种格式转换为另一种格式,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

更多示例可在 pandoc 文档中找到

用法

以字符串形式返回转换后的文本

$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)。请参阅 许可证文件 了解更多信息。