| Home | Libraries | People | FAQ | More

## Change Log

#### Version 1.3

- 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 &nbsp; 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.

#### Version 1.4

- 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.
- Conditional Generation. Ala C++ #ifdef.
- Searching of included and imported files in an extensible search path with `--include-path` (`-I`) option.

#### Version 1.5

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

#### 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 α.
- 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/"`.

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

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

#### 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 support.

Boost 1.46.1:

- Work around optimization bug in g++ 4.4 on 64 bit linux.

#### 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 `__FILENAME__` 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]]`.