2016-02-18 04:36:33 +01:00
|
|
|
Crowbook
|
|
|
|
========
|
|
|
|
|
2016-02-20 17:13:14 +01:00
|
|
|
Creates a book in HTML, Epub or PDF format from markdown files.
|
2016-02-18 04:36:33 +01:00
|
|
|
|
|
|
|
[![Build Status](https://travis-ci.org/lise-henry/crowbook.svg?branch=master)](https://travis-ci.org/lise-henry/crowbook)
|
|
|
|
|
2016-02-19 23:01:34 +01:00
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
2016-02-20 17:13:14 +01:00
|
|
|
The simplest command is:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ crowbook <BOOK>
|
|
|
|
$ # or runninng from cargo:
|
|
|
|
$ cargo run <BOOK>
|
|
|
|
```
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
2016-02-19 23:01:34 +01:00
|
|
|
```
|
2016-02-20 17:13:14 +01:00
|
|
|
author: Joan Doe
|
|
|
|
title: Some book
|
|
|
|
lang: en
|
|
|
|
|
|
|
|
output_html: some_book.html
|
|
|
|
|
|
|
|
+ chapter_1.md
|
|
|
|
+ chapter_2.md
|
|
|
|
+ chapter_3.md
|
|
|
|
+ ...
|
2016-02-19 23:01:34 +01:00
|
|
|
```
|
|
|
|
|
2016-02-20 17:13:14 +01:00
|
|
|
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.
|
2016-02-19 23:01:34 +01:00
|
|
|
|
2016-02-20 17:13:14 +01:00
|
|
|
```
|
|
|
|
USAGE:
|
|
|
|
crowbook [FLAGS] [OPTIONS] <BOOK>
|
|
|
|
|
|
|
|
FLAGS:
|
|
|
|
-h, --help Prints help information
|
|
|
|
-V, --version Prints version information
|
|
|
|
-v, --verbose Activate verbose mode
|
|
|
|
|
|
|
|
OPTIONS:
|
|
|
|
--autoclean <BOOL> Try to clean input markdown [values: true, false]
|
|
|
|
--numbering <BOOL> Number chapters or not [values: true, false]
|
|
|
|
-o, --output <FILE> Specify output file
|
|
|
|
-t, --to <FORMAT> Generate specific format [values: epub, epub, pdf, html, tex]
|
|
|
|
|
|
|
|
ARGS:
|
|
|
|
<BOOK> A file containing the book configuration
|
|
|
|
|
|
|
|
Command line options allow to override options defined in <BOOK> configuration file.
|
|
|
|
E.g., even if this file specifies 'verbose: false', calling 'crowbook --verbose <BOOK>'
|
|
|
|
will activate verbose mode.
|
|
|
|
|
|
|
|
Note that Crowbook generates output files relatively to the directory where <BOOK> is:
|
|
|
|
$ crowbook foo/bar.book --to pdf --output baz.pdf
|
|
|
|
will thus generate baz.pdf in directory foo and not in current
|
|
|
|
directory.
|
|
|
|
```
|
2016-02-19 23:01:34 +01:00
|
|
|
|
|
|
|
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 basic Markdown features useful in writing novels.
|
2016-02-20 04:49:20 +01:00
|
|
|
* Support for Epub2 and Epub3 format as output.
|
|
|
|
* Very basic support for LaTeX format as output, and PDF through it.
|
2016-02-19 23:01:34 +01:00
|
|
|
* Support for HTML format as output.
|
|
|
|
* Support for basic french typography in HTML/Epub format, and by
|
|
|
|
that I mostly mean non-breaking spaces.
|
|
|
|
* Decent default templates and CSS.
|
|
|
|
* Some configuration for HTML/Epub templates and CSS.
|
|
|
|
|
|
|
|
### ToDo ###
|
2016-02-20 04:49:20 +01:00
|
|
|
* Real support for LaTeX.
|
2016-02-19 23:01:34 +01:00
|
|
|
* Allow more customization.
|
|
|
|
* Provide a binary which accepts some option and not just an input
|
|
|
|
file.
|
2016-02-20 04:49:20 +01:00
|
|
|
* Support for easily embedding custom fonts (and other files) in
|
|
|
|
Epub/HTML.
|
2016-02-19 23:01:34 +01:00
|
|
|
* Correct support for technical books.
|
2016-02-20 04:49:20 +01:00
|
|
|
* Support for ODT as output format?
|
2016-02-19 23:01:34 +01:00
|
|
|
|
|
|
|
See also [Bugs](Bugs.md).
|
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
Currently, MIT but this might change.
|
|
|
|
|
|
|
|
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/pulldown-cmark) (for templating)
|
|
|
|
* [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 some
|
|
|
|
inspiration from [Pandoc](http://pandoc.org/) and [mdBook](https://github.com/azerupi/mdBook).
|
|
|
|
|
|
|
|
|