Release history
===============

[[Parent]]: remark.txt

This section summarizes the release history of Remark. Previous versions 
can be obtained through the given links.
The versioning of Remark is given in the form x.y.z, where x, y, and z 
are integers. The x increments only for major changes, the y increments 
for feature changes, and the z increments for bug fixes or documentation 
updates. Whenever y is incremented, z is zeroed, and whenever x is 
incremented, both y and z are zeroed. The x, y, and z need not consist 
of a single digit, and, for example, 1.12.0 is a much later version 
than 1.1.3.

Remark 1.6.0
------------

Release date 28.05.2013.

[Original webpage][Remark-1.6.0]

[Remark-1.6.0]: http://kaba.hilvi.org/remark-1.6.0

### Breaking changes

* Changed the command-line file inclusion to work by 
relative-paths of files, rather than by filenames.
This breaks the inclusion of multiple files with the
same filename, but in different directories; the old behavior
can be recovered by changing `"filename.txt"` to `"*filename.txt"`.
* Changed the location of the Remark command-line
script from the `Remark` directory to the Remark root directory.
This had to be done so that `pip` packaging works correctly.
However, this is also a more natural location for the command-line
script.

### Interface

* Added the option `-x` to exclude files by their
relative-paths. This helps in skipping build-files
and other inessential files in a typical build-environment.
* Added the option `-i` to include files by their
relative-paths. This is the same as simply listing
them; this option is for symmetry with the option `-x`.
* Added the option `-o` to read command-line options
from an option-file (if the file exists). The 
`remark_options` is implicitly included as an option-file.
* Added the option `-u` to list all those files in
the input directory which are neither included or
excluded (called unknown files). This helps to check
whether one has remembered to include all essential 
files into the documentation.
* Increased the default maximum number of lines for the 
tag-parsers from 100 to 200. In Matlab, the tags must be 
placed at the end of this function documentation to not 
interfere with the built-in help system. My own Matlab 
function documentation exceeded 100 lines, one being 
135 lines.

### Variables

* Added the `remark_version` as a predefined variable,
to aid in the documentation of Remark itself.

### Macros

* Added the ReadFile macro, to read plain-text files. This
generalizes the Body macro.
* Added the `type` variable in the Code macro so that the
type of the code can be specified explicitly.

### Style

* Restyled the default CSS file.

### Packaging

* Added a repository for Remark on BitBucket.
* Added an issue tracker for Remark on BitBucket.
* Made Remark installable from PyPI using `pip` and `easy_install`.
* Changed to use Pillow instead of PIL.

Remark 1.5.1
------------

Release date 31.10.2012

[Original webpage][Remark-1.5.1]

[Remark-1.5.1]: http://kaba.hilvi.org/remark-1.5.1

### Core

* Added a check for Python Markdown version 2.0, to prevent using Remark 
  with versions of Python Markdown (e.g. 2.2) that do not support Markdown 
  in html blocks.
* Fixed a regex-formation bug in `Dictionary_TagParser`, which caused the 
`Author` and `DocumentationOf` tags to not being parsed.

### Macros

* Gallery: Made the PIL import work also in the case where PIL is 
  installed in a directory named something else than PIL, as is the 
  case when installing PIL via `easy_install` 
  (bug credit: Germán Gómez-Herrero).

### Others

* Set the correct release date for Remark 1.5.0 in release history.
* Rewrote the installation documentation.

Remark 1.5.0
------------

Release date 30.09.2012

[Original webpage][Remark-1.5.0]

[Remark-1.5.0]: http://kaba.hilvi.org/remark-1.5.0

### Acknowledgements

* Germán Gómez-Herrero did extensive testing on Remark 1.5.0, and
came up with ideas for the ParentList and DocumentTree macros,
and support for long-UNC paths under Windows.

### Core

* Added support for long-UNC-paths under Windows.
* Added document-tags.
* Added a reporting system for more accurate error messages
and the ability to disable specific messages.
* Generalized indentation as a specific way to invoke a macro,
and made this macro selectable at runtime by the `indent` variable.
* Made Remark to copy a file only when the target file does not
exist _or_ the source file has been modified after the target file.
* Made Remark name links to code-files with their filenames, rather
than with their descriptions.
* Escaped Markdown meta-characters in path-based link-descriptions
(e.g. \_\_init\_\_.py instead of __init__.py).
* Fixed a crash in the handling of invalid utf-8 files by replacing 
invalid parts with the U+FFFD REPLACEMENT CHARACTER symbol.
* Removed predefined variables, and replaced them with document tags.
* Removed get-command.

### Interface

* Changed it so that all converted files need to be listed, rather
than just those which are to be copied.
* Added an option for listing all the file-extensions in the input
directory along with example files. This makes it easier to check
that one has remembered to include all necessary files.
* Added an option for generating only the modified files and their
parents for quick previews.
* Added an option for verbose mode, and moved successful output
from the normal mode to the verbose mode. This makes it easier
to spot warnings.
* Added an option for disabling specific warnings.
* Added an option for treating warnings as errors.
* Added the generation of a non-zero error-code when errors are present.
* Added an option for setting the maximum file-size to load.
* Added timing for the generation process.
* Added a warning about a description missing for a document-group.
* Added a warning about using a long relative-path where a shorter
suffix-path would have sufficed.
* Removed the option for a prologue file.

### Document types

* Generalized the concept of a document type not only to describe
the conversion by Remark syntax, but to completely abstract the
conversion process.
* Every document in the document tree now has a document type.
* Added the Copy document type, which simply copies the input file
to the output file. This is the default document type.

### Macros

* Added the ParentList macro to generate a list of parent documents.
* Added the DocumentTree macro to generate parts or all of the document tree.
* Added the Example macro to easily generate examples in Remark.
* Added the Equation macro to generate equations.
* Added the EquationSet macro to generate multiple equations.
* Gallery: Increased the default number of pixels in thumbnails.
* Gallery: Made the macro work also with vector-based images, such
as .svg.
* Gallery: Added support for multiple image formats, so as to
generate thumbnails for .svg from a pixel-based alternative image.
* Gallery: Made the thumbnail-names practically unique by appending a
suffix of the md5-hash of the relative-name.
* DocChildren and Index: Changed the listings to lists rather than 
tables for better CSS-styling. Added `class_name` variables.
* Renamed GenericCode macro to Code macro, and made GenericCode an 
alias of Code.

### Tag parsers

* Added the Dictionary_TagParser which uses a much more efficient
search algorithm than the previous Regex_TagParser (one regex for 
all tags, instead of one regex per each tag).
* Removed Empty_TagParser.
* Removed Regex_TagParser.

### Documentation

* Updated for better structure.
* Added installation instructions for 64-bit Windows's.
* Added the version number in the footer.

### Html and CSS

* Updated the CSS-style files.
* Made the generated html-boilerplate more standards-conforming.

### AsciiMathML

* Added support for online mimetex-rendering as a fallback when 
the browser does not support MathML.

### Highslide JS

* Upgraded to use Highslide JS 4.1.13.

### Others

* Changed to use the MIT license.

Remark 1.4.0
------------

Release date 01.06.2011.

[Original webpage][Remark-1.4.0]

[Remark-1.4.0]: http://kaba.hilvi.org/remark-1.4.0

### Core

* Fixed the handling of different kinds of newlines.
* Fixed a buggy library import.

### Interface

* Added the ability to invoke Remark from other directories.
* Added proper error messages for missing dependency libraries.

Remark 1.3.0
------------

Release date 17.03.2011.

[Original webpage][Remark-1.3.0]

[Remark-1.3.0]: http://kaba.hilvi.org/remark-1.3.0

### Core

* Added reference links, i.e. the `DocumentationOf` tag
which uses as documentation the documentation of another
file.
* Made document search to look for a file in all directories,
in case a hierarchical search upwards does not find the file.
* Updated the layout of link tables.

### Other

* Updated the default css file.

Remark 1.2.0
------------

Release date 11.03.2010.

[Original webpage][Remark-1.2.0]

[Remark-1.2.0]: http://kaba.hilvi.org/remark-1.2.0

### Acknowledgements

* Remark 1.2.0 was programmed under funding from 
the [Finnish Foundation for Technology Promotion][TES].

[TES]: http://www.kolumbus.fi/tes/ 

### Core

 * Allowed free positioning of Remark macros. 
 * Added the ability to invoke macros via inline parameters.
 * Added explicit control over parameter and output
 expansion behavior in macro invocation.
 * Allowed local variables for macros.
 * Added `set_outer`, `add_outer`, and `outer` commands to 
 set, append, and retrieve variables at outer scopes, respectively.
 * Allowed parameter passing for variables to turn
 them into user-defined text transformations. 
 * Variables can now be retrieved simply by their name,
 rather than having to use `get`. 
 * Added `set_many` command to set variables easily.
 * Fixed a bug in `filesToCopy` pattern matching:
 a file was copied only if it matched all patterns.
  
### Macros

 * Added FileLink macro to generate links with the link 
 description set to the filename of the target.
 * Added the implicit file searching algorithm for pure 
 filenames into various macros. 
 * DocChildren and Index macros now use 2 or 3 columns to 
 list the items if there are more than 7 of them.
 * Added Html macro to embed html directly.
 * Added Gallery macro to generate image galleries.
 * Added Verbatim macro to reinterpret text as
 verbatim content.
 * Added DirectoryLink macro to generate links to
 the containing directories of files.
 * Added Copy macro to copy the input without changes.
 * Added Ref macro to return the relative filenames of 
 the output documents.
 * Removed SkipExpansion macro. Its effect can
 be obtained with the Copy macro.

### Interface

 * Added the option to merge a prologue file to the
 beginning of each document template.

### Additional dependencies

 * Dependence to _Python Imaging Library_ via Gallery macro.
 * Optional dependence to _Highslide_ javascript library
 via Gallery macro.

Remark 1.1.0
------------

Release date 23.01.2010.

[Original webpage][Remark-1.1.0]

[Remark-1.1.0]: http://kaba.hilvi.org/remark-1.1.0

### Acknowledgements

* Remark 1.1.0 was programmed under funding from 
the [Finnish Foundation for Technology Promotion][TES].

### Core

 * Non-converted files are now copied only if they match
 a filename-pattern specified at the command line (filesToCopy arguments).
 * Tag-parsers now only read at most 100 lines from a file
 (configurable via the option -l). This speeds up the parsing of
 tags.

### Interface

 * Added option-parsing to console interface.

Remark 1.0.1
------------

Release date 13.01.2010.

[Original webpage][Remark-1.0.1]

[Remark-1.0.1]: http://kaba.hilvi.org/remark-1.0.1

### Acknowledgements

* Remark 1.0.1 was programmed under funding from 
the [Finnish Foundation for Technology Promotion][TES].

### Core

 * Bug-fix: some directories were written in Windows-style 
 backslashes into the html files depending on which OS was
 used to run Remark.

Remark 1.0.0
------------

Release date 13.01.2010. 

### Acknowledgements

* Remark 1.0.0 was preceded by a similar implementation called _LightMark_ 
programmed by [Juho Hämäläinen][Juho]. The ideas gathered and tested 
in that implementation was the basis on which Remark was built. He 
should be attributed the idea of using Markdown for writing the 
documentation.

* Remark 1.0.0 was programmed under funding from 
the [Finnish Foundation for Technology Promotion][TES].

[Juho]: http://jusa.hilvi.org
