Skip to content

Pandoc PHP - Advanced Document Converter

License

Notifications You must be signed in to change notification settings

smnandre/pandoc

Repository files navigation

Pandoc PHP - Advanced Document Converter

Markdown - HTML - PDF - DOCX - RST - LaTeX - Reveal Slides

PHP Version CI Release License Codecov

This PHP library offers a modern PHP wrapper for the Pandoc document converter.

Installation

composer require smnandre/pandoc

Basic Usage

Convert single file

use Pandoc\Options;
use Pandoc\Pandoc;
use Symfony\Component\Finder\Finder;

// 1. Convert a single file with options:
$options = Options::create()
    ->setInput(['input.md'])
    ->setOutput('output.pdf')
    ->setFormat('pdf')
    ->tableOfContent();

Pandoc::create()->convert($options);

Convert multiple files using Finder

$finder = Finder::create()->files()->in('docs')->name('*.md');
$options = Options::create()
    ->setInput($finder)
    ->setOutputDir('output')
    ->setFormat('html');

Pandoc::create()->convert($options);

## Options

### Default Options

```php
$defaultOptions = Options::create()
    ->setFormat('html')
    ->tableOfContent();

$pandoc = Pandoc::create(defaultOptions: $defaultOptions);

Override default options

Use default options, override output for this specific file:

$options = Options::create()->setInput(['chapter1.md'])->setOutput('chapter1.html');
$pandoc->convert($options);

Advanced Options

$defaultOptions = Options::create()
    ->setInput(Finder::create()->files()->in('docs')->name('*.md'))
    ->setOutputDir('output')
    ->setFormat('html');
    
$pandoc = Pandoc::create(null, $defaultOptions);
$pandoc->convert(Options::create()); // Will use default options

Input / Output

Default Output

$options = Options::create()
    ->setInput(['input.md'])
    ->setFormat('html')
    ->tableOfContent();
Pandoc::create()->convert($options);

Technical Details

Formats

  • list input formats
  • list output formats

Resources

Pandoc

Pandoc Docker

GitHub Actions

Any contribution is welcome!

Suggestions

You can suggest new features or improvements by opening an RFC or a Pull Request on the GitHub repository of Pandoc PHP.

Issues

If you encounter any issues, please open an issue on the GitHub repository of Pandoc PHP.

Testing

Before submitting a Pull Request, make sure to run the following commands, and that they all pass.

If you have any questions, feel free to ask on the GitHub repository of Pandoc PHP.

php vendor/bin/php-cs-fixer check
php vendor/bin/phpstan analyse
php vendor/bin/phpunit

Pandoc PHP is maintained by Simon André

Pandoc is a project by John MacFarlane and contributors.## Contributing

Credits

License

This project is licensed under the MIT License - see the LICENSE file for details.