Crowbook ======== Creates a book in HTML, Epub or PDF format from markdown files. [![Build Status](https://travis-ci.org/lise-henry/crowbook.svg?branch=master)](https://travis-ci.org/lise-henry/crowbook) Usage ----- The simplest command is: ```bash $ crowbook $ # or runninng from cargo: $ cargo run ``` Where `BOOK` is a configuration file. Crowbook will then parse the config file and generate book in HTML, Epub, LaTeX, and/or PDF, according to the setting in the configuration file. This configuration file contains some metadata, options, and list the Markdown files. Here is a basic example: ``` author: Joan Doe title: Some book lang: en output_html: some_book.html + chapter_1.md + chapter_2.md + chapter_3.md + ... ``` For more information see [the configuration file](book_example/config.md), or the whole [book_example](book_example) directory. It is also possible to give additional paramaters to `crowbook`; arguments set from the command line will override the ones set in the `BOOK` configuration file. ``` USAGE: crowbook [FLAGS] [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information -v, --verbose Activate verbose mode OPTIONS: --autoclean Try to clean input markdown [values: true, false] --numbering Number chapters or not [values: true, false] -o, --output Specify output file -t, --to Generate specific format [values: epub, epub, pdf, html, tex] ARGS: A file containing the book configuration Command line options allow to override options defined in configuration file. E.g., even if this file specifies 'verbose: false', calling 'crowbook --verbose ' will activate verbose mode. Note that Crowbook generates output files relatively to the directory where is: $ crowbook foo/bar.book --to pdf --output baz.pdf will thus generate baz.pdf in directory foo and not in current directory. ``` Features -------- ### Done ### * Support for some simple formatconfiguration files to list chapters and metadatas, so you just run `crowbook some_file` and you don't have to pass more options, it generates the rest. * Support for Epub2 and Epub3 format as output. * Support for LaTeX format as output, and PDF through it. * Support for HTML format as output. * Support for basic french typography (i.e. non-breaking spaces) in HTML/Epub format. * Some configuration for HTML/Epub templates and CSS. ### ToDo ### * Allow more customization. * Support for easily embedding custom fonts (and other files) in Epub/HTML. * Correct support for technical books. * Support for ODT as output format? See also [Bugs](Bugs.md). ChangeLog --------- See [ChangeLog](ChangeLog.md). License ------- Crowbook is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL), version 2.1 or (at your option) any ulterior version. See [LICENSE](LICENSE.md) file for more information. Acknowledgements ---------------- Besides the Rust compiler and standard library, Crowbook uses the following libraries: * [pulldown-cmark](https://crates.io/crates/pulldown-cmark) (for parsing markdown) * [mustache](https://crates.io/crates/mustache) (for templating) * [clap](https://github.com/kbknapp/clap-rs) (for parsing command line arguments) * [chrono](https://crates.io/crates/chrono) (date and time library) * [uuid](https://crates.io/crates/uuid) (to generate uuid) While Crowbook directly doesn't use them, there was also inspiration from [Pandoc](http://pandoc.org/) and [mdBook](https://github.com/azerupi/mdBook).