ueberdosis/pandoc

Pandoc PHP Package

Package info

github.com/ueberdosis/pandoc

pkg:composer/ueberdosis/pandoc

Fund package maintenance!

ueberdosis/

Statistics

Installs: 173 475

Dependents: 4

Suggesters: 1

Stars: 83

Open Issues: 4

0.9.0 2023-02-28 08:00 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT c5f16d52170e0622d6d3ef8350e08d0799809049

  • Hans Pagel <hans.pagel.woop@ueber.io>

pandocueberdosis


README

πŸ‘ Image
πŸ‘ Integrate
πŸ‘ Image
πŸ‘ Sponsor

If you need to convert text files from one format to another, pandoc is your swiss-army knife. This package is a PHP wrapper for pandoc.

Installation

You can install the package via composer:

composer require ueberdosis/pandoc

This package is a wrapper for the command-line tool pandoc. Don’t forget to install pandoc. Here is an example for 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

More examples are available in the pandoc documentation

Usage

Return the converted text as string

$output = (new \Pandoc\Pandoc)
 ->from('markdown')
 ->input('# Test')
 ->to('html')
 ->run();

Use a file as input and write a file as output

(new \Pandoc\Pandoc)
 ->from('markdown')
 ->inputFile('tests/data/example.md')
 ->to('plain')
 ->output('tests/temp/example.txt')
 ->run();

Change path to Pandoc

new \Pandoc\Pandoc([
 'command' => '/usr/local/bin/pandoc',
]);

Change working directory

(new \Pandoc\Pandoc)->cwd('/tmp/pandoc/');

List available input formats

(new \Pandoc\Pandoc)->listInputFormats();

List available output formats

(new \Pandoc\Pandoc)->listOutputFormats();

Write a log file

echo (new \Pandoc\Pandoc)
 ->from('markdown')
 ->input('# Markdown')
 ->to('html')
 ->log('log.txt')
 ->run();

Retrieve Pandoc version

echo (new \Pandoc\Pandoc)->version();

Use magic methods to make calls shorter

$output = (new \Pandoc\Pandoc)
 ->fromMarkdown('# Test')
 ->toHtml('tests/temp/example.txt')
 ->run();

Pass options to Pandoc

echo (new \Pandoc\Pandoc)
 ->fromMarkdown('# Test')
 ->toHtml('tests/temp/example.txt')
 ->option('fail-if-warnings')
 ->option('data-dir', './tmp')
 ->run();

See https://pandoc.org/MANUAL.html for a full list of available options

Laravel Facade

This package includes a Laravel facade for people that like that little bit of syntactic sugar.

echo \Pandoc\Facades\Pandoc::version();

Exceptions

If something went wrong, the package throws a generic \Symfony\Component\Process\Exception\ProcessFailedException. There are even a few specific exceptions.

  • \Pandoc\Exceptions\PandocNotFound
  • \Pandoc\Exceptions\InputFileNotFound
  • \Pandoc\Exceptions\UnknownInputFormat
  • \Pandoc\Exceptions\UnknownOutputFormat
  • \Pandoc\Exceptions\LogFileNotWriteable
  • \Pandoc\Exceptions\BadMethodCall

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.