quickbook/doc/change_log.qbk
2018-04-15 22:10:03 +01:00

388 lines
16 KiB
Plaintext

[/
Copyright 2002,2004,2006 Joel de Guzman, Eric Niebler
Copyright 2010-2011 Daniel James
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
]
[chapter Change Log
[quickbook 1.7]
[compatibility-mode 1.5]
[id quickbook.change_log]
[source-mode teletype]
]
[heading:version_1_1 Version 1.1 - Boost 1.33.0]
* First version to be included in boost.
[heading:version_1_3 Version 1.3 - Boost 1.34.0 to 1.34.1]
* Quickbook file inclusion \[include\].
* Better xml output (pretty layout). Check out the generated XML.
* Regression testing facility: to make sure your document will always be
compatible (full backward compatibility) regardless of changes to
QuickBook.
* Code cleanup and refactoring.
* Allow phrase markup in the doc-info.
* Preformatted code blocks via \`\`code\`\` (double ticks) allows code in tables
and lists, for example.
* Quickbook versioning; allows full backward compatibility. You have to add
\[quickbook 1.3\] to the doc-info header to enable the new features. Without
this, QuickBook will assume that the document is a pre-1.3 document.
* Better (intuitive) paragraph termination. Some markups may terminate a paragraph.
Example:``
[section x]
blah...
[endsect]``
* Fully qualified section and headers. Subsection names are concatenated to the
ID to avoid clashing. Example: `doc_name.sect_name.sub_sect_name.sub_sub_sect_name`
* Better   and whitespace handling in code snippets.
* \[xinclude\] fixes up the relative path to the target XML file when
input_directory is not the same as the output_directory.
* Allow untitled tables.
* Allow phrase markups in section titles.
* Allow escaping back to QuickBook from code, code blocks and inline code.
* Footnotes, with the \[footnote This is the footnote\] syntax.
* Post-processor bug fix for escaped XML code that it does not recognize.
* Replaceable, with the \[~replacement\] syntax.
[heading:version_1_4 Version 1.4 - Boost 1.35.0 to 1.40.0]
* Generic Headers
* Code changes to allow full recursion (i.e. Collectors and push/pop functions)
* Various code cleanup/maintenance
* Templates!
* \[conceptref\] for referencing BoostBook <concept> entities.
* Allow escape of spaces. The escaped space is removed from the output. Syntax:
`\ `.
* Nested comments are now allowed.
* Quickbook blocks can nest inside comments.
* __import__ facility.
* Callouts on imported code
* Simple markups can now span a whole block.
* __blurbs__, __admonitions__ and table cells (see __tables__) may now
contain paragraphs.
* `\n` and `[br]` are now deprecated.
* __cond__. Ala C++ #ifdef.
* Searching of included and imported files in an extensible search path with
`--include-path` (`-I`) option.
[heading:version_1_5 Version 1.5 - Boost 1.41.0 to 1.42.0]
* Support multiple copyright entrys in document info.
* Improved SVG support.
* \[globalref\] for referencing BoostBook <global> entities.
* Fail on error.
* Fix crash for templates with too many arguments or trailing space.
* Improved handling of unexpected characters in code blocks.
* Improved handling of unmatched escape in code blocks.
* Support for python snippets.
* `teletype` source mode.
* Use static scoping in templates, should be a lot more intuitive.
* Accept a space between `section:` and the section id.
* Support table ids.
[heading Version 1.5.1 - Boost 1.43.0]
* Improve the post processor's list of block elements. `table`, `entry` and
`varlistentry` are treated as blocks. `replaceable` is treated as an inline
element.
* Check that `[section]` and `[endsect]` tags are balanced in templates.
* Add unicode escape characters, eg. `\u03B1` for \u03B1.
* Support UTF-8 files with a unicode byte order mark.
* Disallow `[` in simple markup. Fixes some errors with mismatched punctuation.
* Add command line flag to define macros at the command line,
e.g. `quickbook "-D__italic_foo__=/foo/"`.
[heading Version 1.5.2 - Boost 1.44.0]
* Use the cygwin 1.7 API for better path handling.
* Improved boostbook generation:
* XML encode the documentation info correctly.
* Avoid generating empty paragraphs.
* No longer wraps block templates in paragraphs.
* Warns if you use invalid doc_info members for docbook document types.
* Fixes some other causes of invalid boostbook, although it still
generates invalid boostbook in places.
* Improved grammar:
* Supports multiple categories in library doc_info.
* No longer requires commas between authors in docinfo.
* Allows empty document bodies.
* A line containing only a comment is no longer interpreted as a
paragraph break.
* If a line starts with a comment, interpret it as a paragraph even if it's
followed by whitespace or a list character.
* Doesn't treat several consecutive blank lines as multiple paragraph breaks.
* Fixes duplicate image attribute detection.
* Fixes using code snippets more than once.
* Early work on quickbook 1.6, available using the `[quickbook 1.6]` version switch,
but liable to change in future versions.
* When automatically generating ids for headers, use the quickbook
source, rather than the generated docbook.
* Fix id generation in included files. It wasn't correctly using the
main document's documentation id.
* Correctly restore the quickbook version switch after including a file
with a different version.
[heading Version 1.5.3 - Boost 1.45.0]
* Fix command line flag for defining macros.
* Fix a couple of issues with the code block parser:
* A comment with no indentation will now end a code block.
* Code blocks no longer have to be followed by a blank line.
* Improved tracking of file position in templates and imported code blocks.
* Better generated markup for callout lists.
* In docbook, variable list entries can only have one `listitem`, so if an
entry has multiple values, merge them into one `listitem`.
* Support nested code snippets.
* Support nested blocks in document info comments.
* Revert xml escaping document info, it broke some documentation files
(now a 1.6 feature).
* Further work on quickbook 1.6, still not stable.
* Allow heading to have ids, using the syntax: `[heading:id title]`.
* XML escape documentation fields, with escapes to allow encoding unicode
in ASCII.
[heading Version 1.5.4 - Boost 1.46.1]
Boost 1.46.0:
* Add support for `lang` attribute in documentation info.
* Improved anchor implementation. Especially for using an anchor
before a section or heading.
* Fixed some more issues where lines containing comments were treated
as blank lines.
* Allow import, include and xinclude in conditional phrases. Will
allow more block elements in a future version.
* Rearrange the structure of the grammar.
* Use filesystem 3. Remove cygwin 1.5 support.
Boost 1.46.1:
* Work around optimization bug in g++ 4.4 on 64 bit linux.
[heading Version 1.5.5 - Boost 1.47]
* Tweak anchor placement for titles.
* Hard code the quickbook path into the quickbook testing tools. This
means that they can be used from multiple locations.
* Generate an id for boostbook `bridgehead` elements. This results in
more consistent html, since docbook generates a random id if they
don't have one.
* Improved unicode support on windows. Unicode can now be used from the
command line, and unicode filenames are supported. Unicode output is
a bit weak.
* Check for windows paths, and warn about them.
* Fix relative path detection on windows.
* Reverse deprecation of `[br]`, printing a single warning about
generating invalid boostbook.
* Fix handling empty category attributes.
* Store data from the parser in a dynamic data structure.
This simplifies the implementation and makes it easier to parse
more complicated data structures.
* Improved error messages for unknown doc info attributes.
* Richer copyright syntax. Now understands:
`[copyright 2001-2006, 2010 One person, 2008 Another person]`.
* Fix delimeter checking for simple markup.
* Allow more block elements to be nested.
* Go back to using invalid markup for lists. It generates better html.
* Better anchor placement for lists.
* Pass-thru comments in code snippets.
* Use relative paths for '''<code>__FILENAME__</code>''' macro.
* Rewrite xinclude path generator so that it doesn't use deprecated
filesystem functions.
* Allow quickbook escapes inside comments in syntax highlighted code.
* Quickbook 1.6:
* Scope source mode changes to the file they're made in.
* Explicit markup for lists. e.g.
`[ordered_list [item1][item2]]` or
`[itemized_list [item1][item2]]`.
[heading Version 1.5.6 - Boost 1.48]
* Xml encode escaped punctuation (eg. `\<` is correctly encodes to \<).
* Rename duplicate generated ids.
* Close open sections at end of document (still warns about them).
* New anchor markup for headers, will hopefully generate better pdfs.
* Remove some whitespace around code from post processed output.
[heading Version 1.5.7 - Boost 1.49]
* Several internal changes.
* Some improved error messages.
* Better handling of block templates expanded in a phrase context.
* Avoids empty simple markup (i.e. \/\/ is not treated as an italic empty
space.
* Better anchor markup for headers, which should be better for printing
- suggested by John Maddock.
* Further improvements to the id generator.
* If sections are left unopened at the end of a document, then close them
in the generated markup.
* Try to handle whitespace better at the beginning and end of code blocks.
* Handle lists that come immediately after an anchor.
* Make horizontal rules followed by multi-line comments a little more
sensible.
* Better support for empty ids and titles in docinfo.
* Fix some minor regressions in SVG handling.
* Better handling of invalid command line macros.
* When auto-building quickbook, build the release version.
* Lots of changes for 1.6:
* Scope templates in included files.
* Support import of templates and macros.
* Including top level quickbook blocks from source files.
* Use doc info blocks in included quickbook files.
* Better handling of macros with the same name.
* `block` element.
* Better handling of significant punctuation (e.g. escapes, square brackets).
* Support escapes in links, anchors, images, includes etc.
* Improved table title syntax.
* Paragraphs nested in lists.
* New docinfo attributes:
* `compatibility-mode` to make it possible to upgrade documents without
breaking ids.
* `xmlbase` for escaped `xi:include`s.
* Allow some docinfo attributes to be used before, or without, a doc info
block (`quickbook`, `compatibility-mode`, `source-mode`).
* Only add explicit alt text to images.
* Don't put 'inline' code blocks inside paragraphs.
[heading Version 1.5.8 - Boost 1.50]
* Write dependencies to a file, using `--output-deps`
([@https://svn.boost.org/trac/boost/ticket/6691 #6691]).
* Fix handling of section tags in lists.
* Fix indented code blocks in lists.
* Fix handling UTF-8 code points in the syntax highlighter.
Was treating each individual byte as a character.
Still doesn't deal with combining code points.
* Internal changes:
* A lot of restructuring.
* Stop using 'v3' filesystem paths and namespaces, it's now
the default version.
* Remove awkward intrusive reference counting implementation,
avoids a gcc internal compiler error
([@http://svn.boost.org/trac/boost/ticket/6794 #6794]),
but is also a cleaner implementation.
* 1.6 changes:
* Better handling of brackets in link values.
* Improved handling of escaped characters in include paths.
* Starting to develop 1.7:
* Source mode for single entities.
* Callouts in code blocks.
* Escaped docbook in docinfo blocks.
* Starting to implement calling templates from link values.
[heading Version 1.5.9 - Boost 1.54]
* When code blocks are indented using a mixture of tabs and spaces,
convert indentation to spaces.
* In the C++ systax highlighter, fix syntax highlighting for `#`, so that it's
used for preprocessor statements at the start of a line, and as a 'special'
character elsewhere
([@https://svn.boost.org/trac/boost/ticket/8510 #8510],
[@https://svn.boost.org/trac/boost/ticket/8511 #8511]).
* Add C++11 keywords to syntax highlighter
([@https://svn.boost.org/trac/boost/ticket/8541 #8541]).
* Hidden options for formatting of `--output-deps`. Not really for public use
* yet.
* 1.6 changes:
* Better template argument parsing, so that it understands things
like escaped markup.
* Support for using macros in the doc info block.
* Internal changes:
* Convert to use `boost::string_ref`.
* Clean up the source map implementation (used to get the correct
location for error messages in things like templates and snippets).
[heading Version 1.6.0 - Boost 1.55]
* Remove nested blocks in lists from 1.6, move to 1.7.
(Can still nest block elements in lists though).
* Don't break out of lists after a nested block element.
* Check for errors when writing dependency files.
* Improved markup for lists.
* Make escaping templates with a punctuation identifier illegal.
Escaping templates with an alphanumeric identifier is still fine.
* Fix detection of code blocks at the start of a file.
* XML encode the contents of the `__FILENAME__` macro.
* 1.7 changes:
* Make it an error to use an element in the wrong context.
* Error if the body of a phrase element doesn't parse.
* List markup in nested blocks.
* Allow block elements in phrase templates.
* Make it an error to put a paragraph break (i.e. a blank line)
in a phrase template.
* Internal changes:
* Clean up the id manager implementation.
[heading Version 1.6.1]
* Better URI encoding of links.
* Extra validation of attribute values.
* 1.7 changes:
* Improved source mode tagging:
* Works for lists and paragraphs.
* If the source mode is changed inside a tagged element, that change
will now persist after the element.
* Tagged sections will now use the source mode for the whole section.
* Template calls from anchor, role and include elements.
* Stricter handling of templates called in attribute values.
* Glob support.
[heading Version 1.6.2 - Boost 1.61]
* Better file URL generation for `xinclude`.
[heading Version 1.6.3 - Boost 1.64]
* Improved some error messages.
* Fix `--no-self-linked-headers` options.
* Hide 'debug' command line option in help text.
* Changes to test and build setup to support continuous integration.
* Fix a crash when templates are called with no arguments.
Only affected files with quickbook version less than 1.5.
[heading Version 1.6.4 - Boost 1.65]
* Changes to all language versions:
* `endsect` can now have an id, if it doesn't match the current section
it's an error.
* 1.7 changes:
* Can now write out conditional content if a macro isn't defined,
using `[?!macro_name content]`.
* Support for strict parsing using the `--strict` paramters. This is still
under development so new errors could be added.
* `--no-output` command line parameter to process the quickbook documents
but not actually generate any files.
[heading Version 1.7.0 - Boost 1.66]
* Last version to compile with C++03.
* Minor improvements to some warning and error messages.
* Stopped normalizing paths in dependency lists.
* Fix xmlbase when it's the same directory as the existing xinclude base.
[heading Version 1.7.1 - Boost 1.67]
* Now uses C++11, no longer tested with C++03 compilers.
* Fix parsing escaped docbook with the new version of Spirit.
* Reformatted code with clang-format.
[heading Version 1.7.2 - Boost 1.68]
* More use of C++11 features.
* Some basic direct generation of HTML (i.e. without using BoostBook).
At the command line use `--output-format html` to generate chunked HTML,
`--output-format onehtml` to generate a single HTML page.
It's also useful to pass the path to the root of the boost distribution
using the `--boost-root path` option. Or to use outside of boost,
the `--css-path` and `--graphics-path` options.
While this isn't ready for production, it might be useful to quickly preview
changes to quickbook documentation, especially if you don't have boostbook
set up.