Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/themsaid/ibis
A PHP tool that helps you write eBooks in markdown and convert to PDF.
https://github.com/themsaid/ibis
Last synced: 25 days ago
JSON representation
A PHP tool that helps you write eBooks in markdown and convert to PDF.
- Host: GitHub
- URL: https://github.com/themsaid/ibis
- Owner: themsaid
- License: mit
- Created: 2020-06-11T13:18:25.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-12-04T22:00:59.000Z (11 months ago)
- Last Synced: 2024-05-07T11:59:45.969Z (6 months ago)
- Language: PHP
- Homepage:
- Size: 577 KB
- Stars: 1,898
- Watchers: 27
- Forks: 139
- Open Issues: 24
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.md
Awesome Lists containing this project
- php-awesome - ibis - 通过 Markdown 文档生成电子书和 PDF (类库 / PDF/条形码)
README
Artwork by Eric L. Barnes and Caneco from Laravel News ❤️.---
This PHP tool helps you write eBooks in markdown. Run `ibis build` and an eBook will be generated with:
1. A cover photo.
2. Clickable auto-generated table of contents.
3. Code syntax highlighting.
4. Available in 2 themes. Light and dark.Ibis was used to create [Laravel Queues in Action](https://learn-laravel-queues.com), an eBook I published in August 2020. [Click here](https://learn-laravel-queues.com/laravel-queues-in-action.zip) for the sample.
## Installation
Make sure you have PHP7.3 or above installed on your system and that your gd extension is enabled in your php.ini file.
First, install the composer package globally:
```
composer global require themsaid/ibis
```Then, run this command inside an empty directory:
```
ibis init
```This will create the following files and directories:
- /assets
- /assets/fonts
- /assets/cover.jpg
- /assets/theme-light.html
- /assets/theme-dark.html
- /content
- /ibis.phpYou may configure your book by editing the `/ibis.php` configuration file.
## Writing Your eBook
The `init` command will create sample .md files inside the content folder. You can explore those files to see how you can write your book. This sample content is taken from [Laravel Queues in Action](https://learn-laravel-queues.com).
Inside the content directory, you can write multiple `.md` files. Ibis uses the headings to divide the book into parts and chapters:
```
# Part 1tags define the start of a part. A separate PDF page will be generated to print the part title and any content below.
## Chapter 1
tags define the start of a chapter. A chapter starts on a new page always.
### Starting with Ibis
tags define different titles inside a chapter.
```### Adding different quotes
Three different types of quotes can be added: `quote`, `warning`, and `notice`.
```md
>{quote} This is a quote.>{warning} This is a warning.
>{notice} This is a notice.
```### Using images
Images can be stored in the content folder and then brought in like this:
```
![Screenshot 1](content/screenshot-1.png)
```### Adding a cover image
To use a cover image, add a `cover.jpg` in the `assets/` directory (or a `cover.html` file if you'd prefer a HTML-based cover page). If you don't want a cover image, delete these files.## Using Fonts
Edit your `/ibis.php` configuration files to define the font files to be loaded from the `/assets/fonts` directory. After that you may use the defined fonts in your themes (`/assets/theme-light.html` & `/assets/theme-dark.html`).
## Generating PDF eBook
```
ibis build
```Ibis will parse the files in alphabetical order and store the PDF file in `/export`.
The default is to generate the PDF using the light theme, to generate a PDF using the dark theme:
```
ibis build dark
```## Generating A Sample
```
ibis sampleibis sample dark
```This command will use the generated files from the `ibis build` command to generate samples from your PDF eBook. You can configure which pages to include in the sample by updating the `/ibis.php` file.
## Development
This project uses PHP CS Fixer with a code standard defined in `.php_cs`.
To review code out of style, you can run the fix command as a dry run. Run the composer script like this:
`composer run csfix-review`
To fix the source code, run the following composer script:
`composer run csfix`
## Credits
- [Mohamed Said](https://github.com/themsaid)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.