1
0
mirror of https://github.com/lise-henry/crowbook synced 2024-09-24 19:30:40 +02:00
crowbook/README.md

125 lines
3.5 KiB
Markdown
Raw Normal View History

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).