1[/ 2 Copyright 2002,2004,2006 Joel de Guzman, Eric Niebler 3 Copyright 2010-2011 Daniel James 4 5 Distributed under the Boost Software License, Version 1.0. 6 (See accompanying file LICENSE_1_0.txt or copy at 7 http://www.boost.org/LICENSE_1_0.txt) 8] 9 10[chapter Change Log 11 [quickbook 1.7] 12 [compatibility-mode 1.5] 13 [id quickbook.change_log] 14 [source-mode teletype] 15] 16 17[heading:version_1_1 Version 1.1 - Boost 1.33.0] 18 19* First version to be included in boost. 20 21[heading:version_1_3 Version 1.3 - Boost 1.34.0 to 1.34.1] 22 23* Quickbook file inclusion \[include\]. 24* Better xml output (pretty layout). Check out the generated XML. 25* Regression testing facility: to make sure your document will always be 26 compatible (full backward compatibility) regardless of changes to 27 QuickBook. 28* Code cleanup and refactoring. 29* Allow phrase markup in the doc-info. 30* Preformatted code blocks via \`\`code\`\` (double ticks) allows code in tables 31 and lists, for example. 32* Quickbook versioning; allows full backward compatibility. You have to add 33 \[quickbook 1.3\] to the doc-info header to enable the new features. Without 34 this, QuickBook will assume that the document is a pre-1.3 document. 35* Better (intuitive) paragraph termination. Some markups may terminate a paragraph. 36 Example:`` 37 [section x] 38 blah... 39 [endsect]`` 40* Fully qualified section and headers. Subsection names are concatenated to the 41 ID to avoid clashing. Example: `doc_name.sect_name.sub_sect_name.sub_sub_sect_name` 42* Better and whitespace handling in code snippets. 43* \[xinclude\] fixes up the relative path to the target XML file when 44 input_directory is not the same as the output_directory. 45* Allow untitled tables. 46* Allow phrase markups in section titles. 47* Allow escaping back to QuickBook from code, code blocks and inline code. 48* Footnotes, with the \[footnote This is the footnote\] syntax. 49* Post-processor bug fix for escaped XML code that it does not recognize. 50* Replaceable, with the \[~replacement\] syntax. 51 52[heading:version_1_4 Version 1.4 - Boost 1.35.0 to 1.40.0] 53 54* Generic Headers 55* Code changes to allow full recursion (i.e. Collectors and push/pop functions) 56* Various code cleanup/maintenance 57* Templates! 58* \[conceptref\] for referencing BoostBook <concept> entities. 59* Allow escape of spaces. The escaped space is removed from the output. Syntax: 60 `\ `. 61* Nested comments are now allowed. 62* Quickbook blocks can nest inside comments. 63* __import__ facility. 64* Callouts on imported code 65* Simple markups can now span a whole block. 66* __blurbs__, __admonitions__ and table cells (see __tables__) may now 67 contain paragraphs. 68* `\n` and `[br]` are now deprecated. 69* __cond__. Ala C++ #ifdef. 70* Searching of included and imported files in an extensible search path with 71 `--include-path` (`-I`) option. 72 73[heading:version_1_5 Version 1.5 - Boost 1.41.0 to 1.42.0] 74 75* Support multiple copyright entrys in document info. 76* Improved SVG support. 77* \[globalref\] for referencing BoostBook <global> entities. 78* Fail on error. 79* Fix crash for templates with too many arguments or trailing space. 80* Improved handling of unexpected characters in code blocks. 81* Improved handling of unmatched escape in code blocks. 82* Support for python snippets. 83* `teletype` source mode. 84* Use static scoping in templates, should be a lot more intuitive. 85* Accept a space between `section:` and the section id. 86* Support table ids. 87 88[heading Version 1.5.1 - Boost 1.43.0] 89 90* Improve the post processor's list of block elements. `table`, `entry` and 91 `varlistentry` are treated as blocks. `replaceable` is treated as an inline 92 element. 93* Check that `[section]` and `[endsect]` tags are balanced in templates. 94* Add unicode escape characters, eg. `\u03B1` for \u03B1. 95* Support UTF-8 files with a unicode byte order mark. 96* Disallow `[` in simple markup. Fixes some errors with mismatched punctuation. 97* Add command line flag to define macros at the command line, 98 e.g. `quickbook "-D__italic_foo__=/foo/"`. 99 100[heading Version 1.5.2 - Boost 1.44.0] 101 102* Use the cygwin 1.7 API for better path handling. 103* Improved boostbook generation: 104 * XML encode the documentation info correctly. 105 * Avoid generating empty paragraphs. 106 * No longer wraps block templates in paragraphs. 107 * Warns if you use invalid doc_info members for docbook document types. 108 * Fixes some other causes of invalid boostbook, although it still 109 generates invalid boostbook in places. 110* Improved grammar: 111 * Supports multiple categories in library doc_info. 112 * No longer requires commas between authors in docinfo. 113 * Allows empty document bodies. 114 * A line containing only a comment is no longer interpreted as a 115 paragraph break. 116 * If a line starts with a comment, interpret it as a paragraph even if it's 117 followed by whitespace or a list character. 118 * Doesn't treat several consecutive blank lines as multiple paragraph breaks. 119* Fixes duplicate image attribute detection. 120* Fixes using code snippets more than once. 121* Early work on quickbook 1.6, available using the `[quickbook 1.6]` version switch, 122 but liable to change in future versions. 123 * When automatically generating ids for headers, use the quickbook 124 source, rather than the generated docbook. 125 * Fix id generation in included files. It wasn't correctly using the 126 main document's documentation id. 127 * Correctly restore the quickbook version switch after including a file 128 with a different version. 129 130[heading Version 1.5.3 - Boost 1.45.0] 131 132* Fix command line flag for defining macros. 133* Fix a couple of issues with the code block parser: 134 * A comment with no indentation will now end a code block. 135 * Code blocks no longer have to be followed by a blank line. 136* Improved tracking of file position in templates and imported code blocks. 137* Better generated markup for callout lists. 138* In docbook, variable list entries can only have one `listitem`, so if an 139 entry has multiple values, merge them into one `listitem`. 140* Support nested code snippets. 141* Support nested blocks in document info comments. 142* Revert xml escaping document info, it broke some documentation files 143 (now a 1.6 feature). 144* Further work on quickbook 1.6, still not stable. 145 * Allow heading to have ids, using the syntax: `[heading:id title]`. 146 * XML escape documentation fields, with escapes to allow encoding unicode 147 in ASCII. 148 149[heading Version 1.5.4 - Boost 1.46.1] 150 151Boost 1.46.0: 152 153* Add support for `lang` attribute in documentation info. 154* Improved anchor implementation. Especially for using an anchor 155 before a section or heading. 156* Fixed some more issues where lines containing comments were treated 157 as blank lines. 158* Allow import, include and xinclude in conditional phrases. Will 159 allow more block elements in a future version. 160* Rearrange the structure of the grammar. 161* Use filesystem 3. Remove cygwin 1.5 support. 162 163Boost 1.46.1: 164 165* Work around optimization bug in g++ 4.4 on 64 bit linux. 166 167[heading Version 1.5.5 - Boost 1.47] 168 169* Tweak anchor placement for titles. 170* Hard code the quickbook path into the quickbook testing tools. This 171 means that they can be used from multiple locations. 172* Generate an id for boostbook `bridgehead` elements. This results in 173 more consistent html, since docbook generates a random id if they 174 don't have one. 175* Improved unicode support on windows. Unicode can now be used from the 176 command line, and unicode filenames are supported. Unicode output is 177 a bit weak. 178* Check for windows paths, and warn about them. 179* Fix relative path detection on windows. 180* Reverse deprecation of `[br]`, printing a single warning about 181 generating invalid boostbook. 182* Fix handling empty category attributes. 183* Store data from the parser in a dynamic data structure. 184 This simplifies the implementation and makes it easier to parse 185 more complicated data structures. 186* Improved error messages for unknown doc info attributes. 187* Richer copyright syntax. Now understands: 188 `[copyright 2001-2006, 2010 One person, 2008 Another person]`. 189* Fix delimeter checking for simple markup. 190* Allow more block elements to be nested. 191* Go back to using invalid markup for lists. It generates better html. 192* Better anchor placement for lists. 193* Pass-thru comments in code snippets. 194* Use relative paths for '''<code>__FILENAME__</code>''' macro. 195* Rewrite xinclude path generator so that it doesn't use deprecated 196 filesystem functions. 197* Allow quickbook escapes inside comments in syntax highlighted code. 198* Quickbook 1.6: 199 * Scope source mode changes to the file they're made in. 200 * Explicit markup for lists. e.g. 201 `[ordered_list [item1][item2]]` or 202 `[itemized_list [item1][item2]]`. 203 204[heading Version 1.5.6 - Boost 1.48] 205 206* Xml encode escaped punctuation (eg. `\<` is correctly encodes to \<). 207* Rename duplicate generated ids. 208* Close open sections at end of document (still warns about them). 209* New anchor markup for headers, will hopefully generate better pdfs. 210* Remove some whitespace around code from post processed output. 211 212[heading Version 1.5.7 - Boost 1.49] 213 214* Several internal changes. 215* Some improved error messages. 216* Better handling of block templates expanded in a phrase context. 217* Avoids empty simple markup (i.e. \/\/ is not treated as an italic empty 218 space. 219* Better anchor markup for headers, which should be better for printing 220 - suggested by John Maddock. 221* Further improvements to the id generator. 222* If sections are left unopened at the end of a document, then close them 223 in the generated markup. 224* Try to handle whitespace better at the beginning and end of code blocks. 225* Handle lists that come immediately after an anchor. 226* Make horizontal rules followed by multi-line comments a little more 227 sensible. 228* Better support for empty ids and titles in docinfo. 229* Fix some minor regressions in SVG handling. 230* Better handling of invalid command line macros. 231* When auto-building quickbook, build the release version. 232* Lots of changes for 1.6: 233 * Scope templates in included files. 234 * Support import of templates and macros. 235 * Including top level quickbook blocks from source files. 236 * Use doc info blocks in included quickbook files. 237 * Better handling of macros with the same name. 238 * `block` element. 239 * Better handling of significant punctuation (e.g. escapes, square brackets). 240 * Support escapes in links, anchors, images, includes etc. 241 * Improved table title syntax. 242 * Paragraphs nested in lists. 243 * New docinfo attributes: 244 * `compatibility-mode` to make it possible to upgrade documents without 245 breaking ids. 246 * `xmlbase` for escaped `xi:include`s. 247 * Allow some docinfo attributes to be used before, or without, a doc info 248 block (`quickbook`, `compatibility-mode`, `source-mode`). 249 * Only add explicit alt text to images. 250 * Don't put 'inline' code blocks inside paragraphs. 251 252[heading Version 1.5.8 - Boost 1.50] 253 254* Write dependencies to a file, using `--output-deps` 255 ([@https://svn.boost.org/trac/boost/ticket/6691 #6691]). 256* Fix handling of section tags in lists. 257* Fix indented code blocks in lists. 258* Fix handling UTF-8 code points in the syntax highlighter. 259 Was treating each individual byte as a character. 260 Still doesn't deal with combining code points. 261* Internal changes: 262 * A lot of restructuring. 263 * Stop using 'v3' filesystem paths and namespaces, it's now 264 the default version. 265 * Remove awkward intrusive reference counting implementation, 266 avoids a gcc internal compiler error 267 ([@http://svn.boost.org/trac/boost/ticket/6794 #6794]), 268 but is also a cleaner implementation. 269* 1.6 changes: 270 * Better handling of brackets in link values. 271 * Improved handling of escaped characters in include paths. 272* Starting to develop 1.7: 273 * Source mode for single entities. 274 * Callouts in code blocks. 275 * Escaped docbook in docinfo blocks. 276 * Starting to implement calling templates from link values. 277 278[heading Version 1.5.9 - Boost 1.54] 279 280* When code blocks are indented using a mixture of tabs and spaces, 281 convert indentation to spaces. 282* In the C++ systax highlighter, fix syntax highlighting for `#`, so that it's 283 used for preprocessor statements at the start of a line, and as a 'special' 284 character elsewhere 285 ([@https://svn.boost.org/trac/boost/ticket/8510 #8510], 286 [@https://svn.boost.org/trac/boost/ticket/8511 #8511]). 287* Add C++11 keywords to syntax highlighter 288 ([@https://svn.boost.org/trac/boost/ticket/8541 #8541]). 289* Hidden options for formatting of `--output-deps`. Not really for public use 290* yet. 291* 1.6 changes: 292 * Better template argument parsing, so that it understands things 293 like escaped markup. 294 * Support for using macros in the doc info block. 295* Internal changes: 296 * Convert to use `boost::string_ref`. 297 * Clean up the source map implementation (used to get the correct 298 location for error messages in things like templates and snippets). 299 300[heading Version 1.6.0 - Boost 1.55] 301 302* Remove nested blocks in lists from 1.6, move to 1.7. 303 (Can still nest block elements in lists though). 304* Don't break out of lists after a nested block element. 305* Check for errors when writing dependency files. 306* Improved markup for lists. 307* Make escaping templates with a punctuation identifier illegal. 308 Escaping templates with an alphanumeric identifier is still fine. 309* Fix detection of code blocks at the start of a file. 310* XML encode the contents of the `__FILENAME__` macro. 311* 1.7 changes: 312 * Make it an error to use an element in the wrong context. 313 * Error if the body of a phrase element doesn't parse. 314 * List markup in nested blocks. 315 * Allow block elements in phrase templates. 316 * Make it an error to put a paragraph break (i.e. a blank line) 317 in a phrase template. 318* Internal changes: 319 * Clean up the id manager implementation. 320 321[heading Version 1.6.1] 322 323* Better URI encoding of links. 324* Extra validation of attribute values. 325* 1.7 changes: 326 * Improved source mode tagging: 327 * Works for lists and paragraphs. 328 * If the source mode is changed inside a tagged element, that change 329 will now persist after the element. 330 * Tagged sections will now use the source mode for the whole section. 331 * Template calls from anchor, role and include elements. 332 * Stricter handling of templates called in attribute values. 333 * Glob support. 334 335[heading Version 1.6.2 - Boost 1.61] 336 337* Better file URL generation for `xinclude`. 338 339[heading Version 1.6.3 - Boost 1.64] 340 341* Improved some error messages. 342* Fix `--no-self-linked-headers` options. 343* Hide 'debug' command line option in help text. 344* Changes to test and build setup to support continuous integration. 345* Fix a crash when templates are called with no arguments. 346 Only affected files with quickbook version less than 1.5. 347 348[heading Version 1.6.4 - Boost 1.65] 349 350* Changes to all language versions: 351 * `endsect` can now have an id, if it doesn't match the current section 352 it's an error. 353* 1.7 changes: 354 * Can now write out conditional content if a macro isn't defined, 355 using `[?!macro_name content]`. 356* Support for strict parsing using the `--strict` paramters. This is still 357 under development so new errors could be added. 358* `--no-output` command line parameter to process the quickbook documents 359 but not actually generate any files. 360 361[heading Version 1.7.0 - Boost 1.66] 362 363* Last version to compile with C++03. 364* Minor improvements to some warning and error messages. 365* Stopped normalizing paths in dependency lists. 366* Fix xmlbase when it's the same directory as the existing xinclude base. 367 368[heading Version 1.7.1 - Boost 1.67] 369 370* Now uses C++11, no longer tested with C++03 compilers. 371* Fix parsing escaped docbook with the new version of Spirit. 372* Reformatted code with clang-format. 373 374[heading Version 1.7.2 - Boost 1.68] 375 376* More use of C++11 features. 377* Some basic direct generation of HTML (i.e. without using BoostBook). 378 At the command line use `--output-format html` to generate chunked HTML, 379 `--output-format onehtml` to generate a single HTML page. 380 381 It's also useful to pass the path to the root of the boost distribution 382 using the `--boost-root path` option. Or to use outside of boost, 383 the `--css-path` and `--graphics-path` options. 384 385 While this isn't ready for production, it might be useful to quickly preview 386 changes to quickbook documentation, especially if you don't have boostbook 387 set up. 388