Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ueberdosis/pandoc
A PHP wrapper for Pandoc to convert any text format in any other text format
https://github.com/ueberdosis/pandoc
laravel pandoc php
Last synced: about 12 hours ago
JSON representation
A PHP wrapper for Pandoc to convert any text format in any other text format
- Host: GitHub
- URL: https://github.com/ueberdosis/pandoc
- Owner: ueberdosis
- License: mit
- Created: 2020-03-17T17:40:01.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-03-13T23:56:42.000Z (almost 2 years ago)
- Last Synced: 2024-04-14T02:44:27.281Z (9 months ago)
- Topics: laravel, pandoc, php
- Language: PHP
- Homepage:
- Size: 80.1 KB
- Stars: 72
- Watchers: 3
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Pandoc PHP Package
[![](https://img.shields.io/packagist/v/ueberdosis/pandoc.svg)](https://packagist.org/packages/ueberdosis/pandoc)
[![Integrate](https://github.com/ueberdosis/pandoc/workflows/run-tests/badge.svg?branch=main)](https://github.com/ueberdosis/pandoc/actions)
[![](https://img.shields.io/packagist/dt/ueberdosis/pandoc.svg)](https://packagist.org/packages/ueberdosis/pandoc)
[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/ueberdosis)If you need to convert text files from one format to another, [pandoc](https://pandoc.org/) is your swiss-army knife. This package is a PHP wrapper for pandoc.
## Installation
You can install the package via composer:```bash
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:
```bash
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](https://pandoc.org/installing.html)
## Usage
### Return the converted text as string
```php
$output = (new \Pandoc\Pandoc)
->from('markdown')
->input('# Test')
->to('html')
->run();
```### Use a file as input and write a file as output
```php
(new \Pandoc\Pandoc)
->from('markdown')
->inputFile('tests/data/example.md')
->to('plain')
->output('tests/temp/example.txt')
->run();
```### Change path to Pandoc
```php
new \Pandoc\Pandoc([
'command' => '/usr/local/bin/pandoc',
]);
```### Change working directory
```php
(new \Pandoc\Pandoc)->cwd('/tmp/pandoc/');
```### List available input formats
```php
(new \Pandoc\Pandoc)->listInputFormats();
```### List available output formats
```php
(new \Pandoc\Pandoc)->listOutputFormats();
```### Write a log file
```php
echo (new \Pandoc\Pandoc)
->from('markdown')
->input('# Markdown')
->to('html')
->log('log.txt')
->run();
```### Retrieve Pandoc version
```php
echo (new \Pandoc\Pandoc)->version();
```### Use magic methods to make calls shorter
```php
$output = (new \Pandoc\Pandoc)
->fromMarkdown('# Test')
->toHtml('tests/temp/example.txt')
->run();
```### Pass options to Pandoc
```php
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.```php
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
``` bash
composer test
```### Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Credits
- [Hans Pagel](https://github.com/hanspagel)
- [Miguel Piedrafita](https://github.com/m1guelpf)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.