1
0
Fork 0
mirror of https://github.com/lise-henry/crowbook synced 2024-06-23 00:59:09 +02:00
crowbook/ChangeLog.md

363 lines
16 KiB
Markdown
Raw Normal View History

2016-02-20 17:24:07 +01:00
ChangeLog
=========
2016-09-20 02:22:51 +02:00
unreleased
----------
2016-09-22 03:42:11 +02:00
* **Breaking change for users**: removed `tex.short` option, replaced
by a more generic `tex.class` (default being `book`).
2016-09-22 03:26:08 +02:00
* Renamed options. Using the old name will print a deprecation warning
but will still work for a while.
* `temp_dir` -> `crowbook.temp_dir`
* `zip.command` -> `crowbook.zip.command`
* `verbose` -> `crowbook.verbose`
* `html.display_chapter` -> `html_single.one_chapter`
* `numbering` -> `rendering.num_depth`
* `numbering_template` -> `rendering.chapter_template`
* `display_toc` -> `rendering.inline_toc`
* `toc_name` -> `rendering.inline_toc.name`
* `enable_yaml_blocks` -> `input.yaml_blocks`
* `use_initials` -> `rendering.initials`
* `autoclean` -> `input.autoclean`
2016-09-20 04:58:31 +02:00
* New options:
* More metadata: `license`, `version` and `date`. These metadata are
not treated by the renderers, but they are exported to the
templates: `{{{metadata}}}` allows to access the content. If they
are present, a `has_metadata` is also set to true, allowing to do
something like `{{{title}}} {{#has_version}}version {{{version}}}
{{/has_version}}`.
* Yet more metadata: it is possible to add custom metadata by
prefixing it with `metadata.`. They will then be accessible in the
templates, with dots ('.') replaced by underscores ('_'). E.g.,
with `metadata.foo: bar` you can access it in your templates with
`{{{metadata_foo}}}`.
2016-09-20 05:15:25 +02:00
* Rendering:
2016-09-21 13:05:01 +02:00
* Metadata can now contain Markdown and will be rendered by the
renderers. This might not be a good idea for common fields
(e.g. "title"), though. Use with caution.
2016-09-20 15:04:59 +02:00
* HTML:
* `html.top` and `hstml.footer` are now considered as templates, so
you can use some `{{{metadata}}}` in it.
* LaTeX:
2016-09-22 03:42:11 +02:00
* If `tex.class` is set to `article`, chapters will be displayed as
2016-09-20 15:04:59 +02:00
`\sections` since `article` class doesn't handle chapters.
2016-09-22 03:42:11 +02:00
* Except if `tex.class` is set to `book`, margins are now
symmetrical.
2016-09-20 16:19:00 +02:00
* Bugfixes:
* `import_config` only import options from another book file that
are not equal to the default ones and that haven't already been
set by the caller. E.g., `author: foo` then `import_config:
bar.book` won't erase the author previously set.
2016-09-20 02:22:51 +02:00
* Crowbook program:
* Still working to improve error messages.
2016-09-21 03:22:32 +02:00
* Display an error message when mustache can't compile a template,
instead of panicking.
2016-09-20 04:58:31 +02:00
* Internal/API:
* Added static methods to `Logger` to allows displaying messages
2016-09-21 14:06:51 +02:00
more easily/prettily.
* Reduce pubic API's surface so less changes will need to be
considered breaking in the future.
2016-09-20 02:22:51 +02:00
2016-09-19 23:06:25 +02:00
0.8.0 (2016-09-19)
------------------
This release adds support for syntax higlighting in code blocks,
customized top and footer blocks for HTML rendering, and the special
`import_config` option that allows to import options from another book
file. It also provides (hopefully) better error messages.
2016-09-13 23:00:03 +02:00
* New options:
2016-09-18 22:51:23 +02:00
* `import_config`is not really an option, but allows to import
another configuration file, useful if you share a same set of
options between multiple books.
* `use_initials` (set to false by default) makes Crowbook use
2016-09-15 21:23:41 +02:00
initials ("lettrines") at start of each chapter. Support is still
experimental.
* `html.highlight_code` (set to true by default) allows syntax
highlighting for code blocks, using highlight.js.
2016-09-16 21:53:20 +02:00
* `html.higlight.css` and `html.highlight.js` can be used to provide
other themes (default is default.css) and an highlight.js build
that support other languages.
2016-09-17 00:15:48 +02:00
* `html.footer` allows to specify custom footer. If not set,
`html.crowbook_link` allows to disable "Generated by Crowbook"
2016-09-17 22:48:00 +02:00
message.
* `html.top` allows to specify a custom header that will be
displayed at the top of HTML file(s).
2016-09-13 04:33:14 +02:00
* Deprecated options:
* `side_notes` has been renamed `html.side_notes`.
2016-09-14 01:33:28 +02:00
* Crowbook program:
* All output formats are now rendered concurrently.
* Better error messages. Crowbook now tries to give more information
2016-09-11 14:04:21 +02:00
when displaying an error, with the file name where a problem was
found, and, in some cases, the line. It also tries to detect errors
(such as files not found) sooner.
2016-09-14 01:33:28 +02:00
* Some "warning" messages have also been "moved" to error messages, to
2016-09-13 00:16:52 +02:00
make sure they are displayed even when crowbook isn't runned with
2016-09-14 01:33:28 +02:00
`--verbose`.
* Rendering:
* Hidden chapter now produce empty `\chapter*{}` and `<h1>` in LaTeX
and HTML. This allow to delimit a chapter break even if nothing is
displayed.
2016-09-13 00:16:52 +02:00
* Bugfixes:
2016-09-18 04:15:45 +02:00
* Navigation menu of standalone HTML didn't include a call to
javascript when `html.display_chapter` was set to true, meaning it
didn't display the chapter correctly.
2016-09-13 00:16:52 +02:00
* Implementations of `Image` and `StandaloneImage` were reversed in
LaTeX.
2016-09-16 21:53:20 +02:00
* `StandaloneImage` urls were not adjusted (meanning that running
`crowbook` from another directory failed).
2016-09-19 15:42:18 +02:00
* Image paths are now found correctly in HtmlDir rendering
even if `crowbook` is called from another directory (same fix
as 0.6's for Epub and LaTeX, which was forgotten for HtmlDir).
2016-09-11 06:50:41 +02:00
* Internal/API:
* In order to have better error messages, there was a need to
refactor the `Error` type, and make more methods return
2016-09-13 23:00:03 +02:00
`Result<X>` instead of `X`. The API is, therefore, quite modified.
2016-09-13 02:01:50 +02:00
* Added a `Renderer` trait used by the various renderers.
2016-09-19 23:06:25 +02:00
* Removed some methods from public API.
2016-09-11 06:50:41 +02:00
2016-09-11 02:54:41 +02:00
0.7.0 (2016-09-11)
------------------
This releases renders images differently when they are on a standalone
paragraph or inside a paragraph.
2016-09-11 02:54:41 +02:00
* Internal/API:
2016-09-11 02:31:17 +02:00
* `Token` has a new variant, `StandaloneImage`. This is used to
distinguish an image that is alone in a paragraph of an image that
is inlined alongside text.
* `Parser.parse` method now distingues between `Image` and
`StandaloneImage`. Currently, an image is considered "standalone"
if it is the sole element of a paragraph, even if it is among a
link.
2016-09-11 02:52:05 +02:00
* `Token` has a new `is_image` method.
2016-09-11 02:31:17 +02:00
* Rendering:
* Standalone images are now rendered differently than inline images
(80% of width VS original size) in HTML/EPUB and LaTeX.
2016-09-09 22:59:49 +02:00
0.6.0 (2016-09-09)
------------------
2016-04-15 14:48:36 +02:00
* Deprecated options:
* `nb_char`: since it was only used for french cleaner and for
typography reasons it's better to use different non breaking
spaces according to context, this option was not really useful
2016-05-04 19:15:46 +02:00
anymore.
2016-05-29 18:15:42 +02:00
* Rendering:
* Images are now displayed at 80% width of the page.
* Bugfixes:
2016-05-29 17:54:32 +02:00
* Image paths are now found correctly in LaTeX and EPUB rendering
2016-05-29 18:15:42 +02:00
even if `crowbook` is called from another directory.
* Fixed a bug in `French` cleaner when a string to clean ended by a
non-breaking space (space was doubled with a breaking one).
2016-05-04 19:15:46 +02:00
* LaTeX/PDF:
* "Autocleaning" is now also activated (for french at least) for
LaTeX rendering, since it doesn't correctly insert non-breaking
spaces for e.g. '«' or '»'.
2016-09-09 14:20:33 +02:00
* Fixed escaping of `--` to `-{}-` to avoid tex ligatures.
2016-05-14 00:24:33 +02:00
* HTML/EPUB:
* `html.display_chapter` now defaults to `false` (e.g., by default
the HTML displays the entirety of a book).
2016-09-09 14:20:33 +02:00
* Fixed rendering of lists when `lang` is set to `fr`.
2016-05-14 00:24:33 +02:00
* Links are now HTML-escaped, fixing errors in XHTML (for EPUB
rendering) when links contained '&' character.
2016-05-04 19:15:46 +02:00
2016-04-15 14:32:47 +02:00
2016-04-14 15:26:50 +02:00
0.5.1 (2016-04-14)
------------------
Mostly rendering fixes:
2016-04-14 15:08:18 +02:00
* Epub:
* Fix a validation problem when book contained hidden chapters.
* French cleaner:
* Use semi-cadratine space instead of cadratine
space for dialogs.
* Use non-narrow non-breaking spapce instead of
narrow one for ':', '«' and '»' (following
https://fr.wikipedia.org/wiki/Espace_ins%C3%A9cable#En_France).
* HTML:
2016-04-14 15:15:07 +02:00
* Add viewport meta tags.
2016-04-14 15:08:18 +02:00
* Standalone HTML:
* Don't display the button to display chapter and
2016-04-11 22:15:58 +02:00
the previous/next chapter link if `html.display_chapter` is set to
2016-04-11 22:07:06 +02:00
`false`.
2016-04-14 15:08:18 +02:00
* Fix chapter displaying when some chapters are not
2016-04-11 22:15:58 +02:00
numbered.
2016-04-14 15:15:07 +02:00
* Multi-files HTML:
* Fix previous/next chapter display to make it consistent with
standalone HTML.
2016-04-11 22:15:58 +02:00
2016-04-02 18:48:08 +02:00
2016-04-02 16:58:23 +02:00
0.5.0 (2016-04-02)
2016-03-02 04:10:59 +01:00
------------------
2016-03-05 18:36:08 +01:00
* Crowbook now requires Rustc 1.7.0.
2016-03-06 02:48:53 +01:00
* It is now possible to render HTML in multiple files:
2016-03-05 23:15:59 +01:00
* `output.html_dir` will activate this renderer, and specify in
which directory to render these files;
* `html_dir.css` allows to override the CSS for this rendering;
* `html_dir.index.html` allows to specify a template for the
`index.html` page;
* `html_dir.chapter.html` allows to specify a template for the
chapters pages.
2016-03-02 04:10:59 +01:00
* New book options:
* `tex.short`: if set to true, the LaTeX renderer will use
`article` instead of `book` as document class, and will use the
default `\maketitle` command for article. This option is by
default set to false, except when Crowbook is called with
`--single`.
* `enable_yaml_blocks`: parsing YAML blocks is no longer activated
by default, except when using `--single`. This is because you
might want to have e.g. multiple short stories using YAML blocks
2016-03-03 18:23:28 +01:00
to set their titles and so on, *and* a separate `.book` file to
render a book as a collection of short stories. In this case,
you wouldn't want the displayed title or the
output.pdf/html/epub files be redefined by the short stories .md
files.
2016-04-02 16:53:13 +02:00
* `html.print_css`: allows to specify a stylesheet for media print
* `html.display_chapter`: displays one chapter at a time in
standalone HTML
* `html.script`: allows to specify a custom javascript file for
standalone HTML
* `html_dir.script`: same thing for multipage HTML
2016-03-05 18:36:08 +01:00
* `resources.base_path`: by default, Crowbook resolves local links in
markdown files relatively to the markdown file. This option
allows to resolve them relatively to a base path. This option
comes with two variants, `resources.base_path.images` and
`resources.base_path.links`, which only activate it for respectively
images tags and links tags. These two options are ignored when
`base_path` is set. There is also `resources.base_path.files`
which specify where additional files (see below) should be read,
but this is one is set to `.` (i.e., the directory where the
`.book` file is) by default.
* `resources.files`: indicate a (whitespace-separated) list of
files that should be embedded. Currently only used with the EPUB
renderer.
2016-03-05 18:05:33 +01:00
* `resources.out_path`: indicate where `resources.files` should be
copied in the final document. Default to `data`, meaning that
files will be placed in a `data` directory in the EPUB.
* Rendering:
2016-04-02 14:28:08 +02:00
* Templates can now use localized strings according to the `lang`
option
2016-03-09 01:54:23 +01:00
* Standalone HTML now includes locale files using base64.
2016-03-22 17:49:38 +01:00
* Standalone HTML displays one chapter at a time, thouht it can be
changed via a button in the menu.
2016-03-03 18:23:28 +01:00
* HTML/EPUB: default CSS now uses the `lang` value do determine
how to display lists (currently the only difference is it uses
"–" when `lang` is set to "fr" and standard bullets for other
languages).
2016-03-02 04:10:59 +01:00
* Bugfixes:
* Fixed a bug of filename "resolution" when Crowbook was called
with `--single` (e.g., `crowbook -s tests/test.md` would
previously try to load `tests/tests/test.md).
* Epub renderer now uses the `mime_guess` library to guess the
mime type based on extension, which should fix the mime type
guessed for a wide range of extensions (e.g., svg).
* Internal/API:
* The `Book::new`, `new_from_file`, and `new_from_markdown_file`
take an additional `options` parameter. To create a book with
default options, set it to `&[]`.
2016-03-02 04:10:59 +01:00
2016-03-01 21:51:14 +01:00
0.4.0 (2016-03-01)
2016-02-29 00:47:05 +01:00
------------------
2016-03-01 21:41:23 +01:00
* Crowbook now internally uses a true YAML parser, `yaml_rust`, for its
options. Since the "old" Crowbooks's config format was similar, but
had some subtle differences, this is somewhat of a breaking change:
2016-03-01 18:08:06 +01:00
* strings should now be escaped with "" in some cases (e.g. if it
contains special characters). On the other hand, it *allows* to
2016-03-01 21:41:23 +01:00
optionally escape a string with these quotes, which wasn't
2016-03-01 18:08:06 +01:00
possible until then and might be useful in some cases.
* multiline strings now follow the YAML format, instead of the
previous "YAML-ish" format. This can impact the way newlines are
added at the end of a multiline string. See
e.g. [this link](http://stackoverflow.com/questions/3790454/in-yaml-how-do-i-break-a-string-over-multiple-lines)
for the various ways to include mulitiline strings in Yaml.
* Crowbook now parses YAML blocks (delimited by two lines with "---")
in Markdown files, ignoring keys that it doesn't recognize. This
allows crowbook to be compatible(-ish) with Markdown that contains
YAML blocks for Jekyll or Pandoc.
* New option `--single` allows to give Crowbook a single Markdown file
(which can contain options within an inline YAML block) instead of a
book configuration file. This is useful for e.g. short stories.
2016-02-29 00:47:05 +01:00
* Enhanced the way debugging/warning/info messages are handled and
displayed:
* Added a `--debug` option to the binary.
* Internal: added a `Logger` struct.
* Different levels of information (debug/warning/info/error) get
different colours.
2016-02-29 01:41:56 +01:00
* Bugfixes:
* Crowbook no longer crashes when called with the `--to` argument
2016-02-29 14:12:47 +01:00
if it can't create a file.
2016-02-29 00:47:05 +01:00
0.3.0 (2016-02-27)
------------------
2016-02-26 23:37:40 +01:00
* Crowbook now tries to convert local links. That is, if you link to a
2016-02-29 00:47:05 +01:00
Markdown file that is used in the book.
2016-02-27 00:07:22 +01:00
(e.g. [README.md](README.md)), it *should* link to an appropriate
2016-02-27 04:50:04 +01:00
inner reference inside the book.
* Latex renderer now supports (local) images.
* Epub renderer now embed (local) images in the EPUB file.
* Some changes to the HTML/Epub stylesheets.
2016-02-26 02:08:59 +01:00
* Internal (or usage as a library):
2016-02-26 17:46:57 +01:00
* Crowbook no longer changes current directory, which worked in
the binary but could cause problem if library was used in
multithreaded environment (e.g. in `cargo test`).
* More modules and methods are now private.
2016-02-26 00:51:35 +01:00
* Improved documentation.
* Added more unit tests.
2016-02-26 23:37:40 +01:00
* Bugfixes:
* Epub renderer now correctly renders unnumbered chapter without a
number in its toc.ncx file
2016-02-25 22:15:06 +01:00
0.2.2 (2016-02-25)
------------------
* Bugfixes:
* French cleaner now correctly replaces space after — (in
e.g. dialogs) with "em space".
2016-02-25 20:13:12 +01:00
0.2.1 (2016-02-25)
------------------
* Bugfixes:
* HTML/Epub rendering no longer incorrectly increment chapter
count for unnumbered chapters.
2016-02-25 19:58:19 +01:00
* Latex: makes what is possible to avoid orverflowing the page.
2016-02-25 19:26:29 +01:00
* Minor changes:
* Latex: improvement of the default way URLs are displayed.
2016-02-25 19:26:29 +01:00
2016-02-25 16:37:23 +01:00
0.2.0 (2016-02-25)
2016-02-22 18:54:49 +01:00
------------------
2016-02-25 16:02:08 +01:00
* Command line arguments:
2016-02-25 16:06:12 +01:00
* New argument `--print-template` now allows to print a built-in
template to stdout.
2016-02-25 16:02:08 +01:00
* New argument `--list-options` prints out all valid
options in a config file (or in `set`), their type and default
value.
* New argument `--set` allows to define or override whatever
option set in a book configuration.
* `--create` can now be used without specifying a `BOOK`, printing
its result on `stdout`.
* Configuration file:
* Added support for multiline strings in `.book` files, with
either '|' (preserving line returns) or '>' (transforming line
returns in spaces)
* New option `display_toc` allows to display the table of contents
(whose name, at least for HTML, is specified by `toc_name`) in
HTML and PDF documents.
* Option `numbering` now takes an int instead of a boolean,
allowing to specify the maximum level to number (e.g. `1`:
chapters only, `2`: chapters and sectino, ..., `6`: everything).
* Rendering:
* Added support for numbering all headers, not just level-1 (e.g.,
having a subsection numbered `2.3.1`).
* Tables and Footnotes are now implemented for HTML/Epub and LaTeX
2016-02-25 16:37:23 +01:00
output.
* Internal:
* Refactored `Book` to use an HashMap of `BookOption`s instead of
having like 42 fields.
2016-02-25 16:02:08 +01:00
2016-02-22 18:54:49 +01:00
2016-02-21 21:25:01 +01:00
0.1.0 (2016-02-21)
2016-02-20 17:24:07 +01:00
------------------
* initial release