[/
    Copyright 2002,2004,2006 Joel de Guzman, Eric Niebler
    Copyright 2010-2013 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 Language Versions
    [quickbook 1.7]
    [compatibility-mode 1.5]
    [id quickbook.versions]
    [source-mode teletype]
]

[section:upgrading Upgrading to a new version]

To upgrade an existing document to a new version of quickbook, you will
need to update the version in the docinfo block.
For example, the existing docinfo block might look like:

    [library Boost.Example
        [quickbook 1.3]
        ...
    ]

Change this to:

    [library Boost.Example
        [quickbook 1.7]
        [compatibility-mode 1.3]
        ...
    ]

The =compatibility-mode= tag ensures that it will generate similar output
to the older version - most importantly is will generate the same ids,
ensuring that links to the generated html won't break.

Then try building it. Later versions have a stricter parser, so there might
be errors. It's quite likely that you might need to fix some stray square brackets.
They might need to be escaped. For example,
to write out the half-open range \[a,b), use: `\[a,b)`.

When upgrading to 1.6 or later, you might need to reconsider how templates
and macros are defined.
If you `include` a file to use its templates, you'll now need to `import` it
instead as templates are now scoped by included files. Also, if you define
templates and macros in your main quickbook file, you might want to put them
into a separate file and `import` that, which allows the main documentation
files to concentrate on the structure and contents of the document, making them
easier to read.

Now that headings can have ids, it can be a good idea to add ids to existing
headings. This means that the headings will have more predictable ids which
don't change when the text of the heading changes. In order to preserve
links you can use the existing generated id as the heading.

[endsect]

[section:stable Stable Versions]

Since quickbook 1.3 the `quickbook` attribute in the document block selects
which version of the language to use. Not all changes to quickbook are
implemented using a version switch, it's mainly just the changes that change
the way a document is interpreted or would break existing documentation.

[heading Quickbook 1.3 and later]

* Introduced quickbook language versioning.
* In the documentation info, allow phrase markup in license and purpose
  attributes.
* 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`.

[heading Quickbook 1.5 and later]

* Ignore template argument separators inside square brackets.
* Don't separate the final template argument if the `..` separator was
  used. i.e. never mix `..` and whitespace separators.
* Statically scope templates and their arguments rather than dynamically
  scope them.
* Give table ids, and let you set them.
* Allow spaces between the `:` character and ids in elements which can
  have ids.

[endsect:stable]

[include 1_6.qbk]
[include 1_7.qbk]
