$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r71012 - in branches/quickbook-dev/tools: doc-guide quickbook quickbook/doc
From: dnljms_at_[hidden]
Date: 2011-04-05 15:49:51
Author: danieljames
Date: 2011-04-05 15:49:50 EDT (Tue, 05 Apr 2011)
New Revision: 71012
URL: http://svn.boost.org/trac/boost/changeset/71012
Log:
Documentation: Merge documentation into quickbook branch.
Added:
   branches/quickbook-dev/tools/doc-guide/   (props changed)
      - copied from r71011, /branches/doc-tools-docs/tools/doc-guide/
   branches/quickbook-dev/tools/quickbook/doc/block.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/block.qbk
   branches/quickbook-dev/tools/quickbook/doc/change_log.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/change_log.qbk
   branches/quickbook-dev/tools/quickbook/doc/editors.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/editors.qbk
   branches/quickbook-dev/tools/quickbook/doc/faq.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/faq.qbk
   branches/quickbook-dev/tools/quickbook/doc/install.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/install.qbk
   branches/quickbook-dev/tools/quickbook/doc/intro.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/intro.qbk
   branches/quickbook-dev/tools/quickbook/doc/phrase.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/phrase.qbk
   branches/quickbook-dev/tools/quickbook/doc/ref.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/ref.qbk
   branches/quickbook-dev/tools/quickbook/doc/syntax.qbk
      - copied unchanged from r71010, /branches/doc-tools-docs/tools/quickbook/doc/syntax.qbk
Properties modified: 
   branches/quickbook-dev/tools/quickbook/   (props changed)
Text files modified: 
   branches/quickbook-dev/tools/quickbook/doc/Jamfile.v2    |     2                                         
   branches/quickbook-dev/tools/quickbook/doc/quickbook.qbk |  2517 --------------------------------------- 
   2 files changed, 55 insertions(+), 2464 deletions(-)
Modified: branches/quickbook-dev/tools/quickbook/doc/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/tools/quickbook/doc/Jamfile.v2	(original)
+++ branches/quickbook-dev/tools/quickbook/doc/Jamfile.v2	2011-04-05 15:49:50 EDT (Tue, 05 Apr 2011)
@@ -10,7 +10,7 @@
 
 project boost/quickbook/doc ;
 
-import boostbook : boostbook ;
+using boostbook ;
 using quickbook ;
 
 xml quickbook : quickbook.qbk ;
Modified: branches/quickbook-dev/tools/quickbook/doc/quickbook.qbk
==============================================================================
--- branches/quickbook-dev/tools/quickbook/doc/quickbook.qbk	(original)
+++ branches/quickbook-dev/tools/quickbook/doc/quickbook.qbk	2011-04-05 15:49:50 EDT (Tue, 05 Apr 2011)
@@ -1,8 +1,10 @@
 [article Quickbook
     [quickbook 1.5]
     [version 1.5]
-    [authors [de Guzman, Joel], [Niebler, Eric]]
+    [authors [de Guzman, Joel], [Niebler, Eric], [James, Daniel]]
     [copyright 2002 2004 2006 Joel de Guzman, Eric Niebler]
+    [copyright 2010 2011 Daniel James]
+    [source-mode teletype]
     [purpose /WikiWiki/ style documentation tool]
     [license
         Distributed under the Boost Software License, Version 1.0.
@@ -27,2465 +29,54 @@
 
 [def __comments__           [link quickbook.syntax.comments Comments]]
 
-[def __font_styles__        [link quickbook.syntax.phrase.font_styles Font Styles]]
-[def __quotations__         [link quickbook.syntax.phrase.quotations Quotations]]
-[def __replaceable__        [link quickbook.syntax.phrase.replaceable Replaceble]]
-[def __simple_formatting__  [link quickbook.syntax.phrase.simple_formatting Simple formatting]]
-[def __inline_code__        [link quickbook.syntax.phrase.inline_code Inline code]]
-[def __code_blocks__        [link quickbook.syntax.phrase.code_blocks Code blocks]]
-[def __source_mode__        [link quickbook.syntax.phrase.source_mode Source Mode]]
-[def __line_break__         [link quickbook.syntax.phrase.line_break line-break]]
-[def __anchors__            [link quickbook.syntax.phrase.anchors Anchors]]
-[def __links__              [link quickbook.syntax.phrase.links Links]]
-[def __anchor_links__       [link quickbook.syntax.phrase.anchor_links Anchor links]]
-[def __refentry_links__     [link quickbook.syntax.phrase.refentry_links refentry links]]
-[def __code_links__         [link quickbook.syntax.phrase.code_links function, class, member, enum, macro, concept or header links]]
-[def __escape__             [link quickbook.syntax.phrase.escape Escape]]
-[def __single_char_escape__ [link quickbook.syntax.phrase.single_char_escape Single char escape]]
-[def __images__             [link quickbook.syntax.phrase.images Images]]
-[def __cond__               [link quickbook.syntax.phrase.cond Conditional Generation]]
-
-[def __document__           [link quickbook.syntax.block.document Document]]
-[def __section__            [link quickbook.syntax.block.section Section]]
-[def __xinclude__           [link quickbook.syntax.block.xinclude  xinclude]]
-[def __paragraphs__         [link quickbook.syntax.block.paragraphs Paragraphs]]
-[def __ordered_lists__      [link quickbook.syntax.block.lists.ordered_lists Ordered lists]]
-[def __list_hierarchies__   [link quickbook.syntax.block.lists.list_hierarchies List Hierarchies]]
-[def __long_list_lines__    [link quickbook.syntax.block.lists.long_list_lines Long List Lines]]
-[def __unordered_lists__    [link quickbook.syntax.block.lists.unordered_lists Unordered lists]]
-[def __mixed_lists__        [link quickbook.syntax.block.lists.mixed_lists Mixed lists]]
-[def __code__               [link quickbook.syntax.block.code Code]]
-[def __escape_back__        [link quickbook.syntax.block.escape_back Escaping Back To QuickBook]]
-[def __preformatted__       [link quickbook.syntax.block.preformatted Preformatted]]
-[def __blockquote__         [link quickbook.syntax.block.blockquote Blockquote]]
-[def __heading__            [link quickbook.syntax.block.headings Heading]]
-[def __macros__             [link quickbook.syntax.block.macros Macros]]
-[def __templates__          [link quickbook.syntax.block.templates Templates]]
-[def __predefined_macros__  [link quickbook.syntax.block.predefined_macros Predefined Macros]]
-[def __blurbs__             [link quickbook.syntax.block.blurbs Blurbs]]
-[def __admonitions__        [link quickbook.syntax.block.admonitions Admonitions]]
-[def __tables__             [link quickbook.syntax.block.tables Tables]]
-[def __variable_lists__     [link quickbook.syntax.block.variable_lists Variable Lists]]
-[def __include__            [link quickbook.syntax.block.include Include]]
-[def __import__             [link quickbook.syntax.block.import Import]]
-
-[section:intro Introduction]
-
-[:[*['["Why program by hand in five days what you can spend five years of your
-life automating?]]]
-
--- Terrence Parr, author ANTLR/PCCTS
-]
-
-Well, QuickBook started as a weekend hack. It was originally intended to be a
-sample application using __spirit__. What is it? What you are viewing now, this
-documentation, is autogenerated by QuickBook. These files were generated from
-one master:
-
-[:[@boost:/tools/quickbook/doc/quickbook.qbk quickbook.qbk]]
-
-Originally named QuickDoc, this funky tool that never dies, evolved into a
-funkier tool thanks to Eric Niebler who resurrected the project making it
-generate __boostbook__ instead of HTML. The __boostbook__ documentation format
-is an extension of __docbook__, an SGML or XML based format for describing
-documentation.
-
-QuickBook is a WikiWiki style documentation tool geared towards C++
-documentation using simple rules and markup for simple formatting tasks.
-QuickBook extends the WikiWiki concept. Like the WikiWiki, QuickBook documents are
-simple text files. A single QuickBook document can generate a fully linked set
-of nice HTML and PostScript/PDF documents complete with images and syntax-
-colorized source code.
-
-Features include:
-
-* generate __boostbook__ xml, to generate HTML, PostScript and PDF
-* simple markup to link to Doxygen-generated entities
-* macro system for simple text substitution
-* simple markup for italics, bold, preformatted, blurbs, code samples,
-  tables, URLs, anchors, images, etc.
-* automatic syntax coloring of code samples
-* CSS support
-
-[endsect] [/Introduction]
-
-[section:change_log Change Log]
-
-[h3 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   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.
-
-[h3 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.
-* __cond__. Ala C++ #ifdef.
-* Searching of included and imported files in an extensible search path with
-  `--include-path` (`-I`) option.
-  
-[h3 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.
-
-[h3 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/"`.
-
-[h3 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.
-
-[h3 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 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 `__FILENAME__` macro.
-* Rewrite xinclude path generator so that it doesn't use deprecated
-  filesystem functions.
-* 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]]`.
-
-[endsect] [/Change log]
-
-[section:syntax Syntax Summary]
-
-A QuickBook document is composed of one or more blocks. An example of
-a block is the paragraph or a C++ code snippet. Some blocks have
-special mark-ups. Blocks, except code snippets which have their own
-grammar (C++ or Python), are composed of one or more phrases. A phrase
-can be a simple contiguous run of characters. Phrases can have special
-mark-ups. Marked up phrases can recursively contain other phrases, but
-cannot contain blocks. A terminal is a self contained block-level or
-phrase-level element that does not nest anything.
-
-Blocks, in general, are delimited by two end-of-lines (the block terminator).
-Phrases in each block cannot contain a block terminator. This way, syntax errors
-such as un-matched closing brackets do not go haywire and corrupt anything past
-a single block.
-
-[section Comments]
-
-Can be placed anywhere.
-
-[pre
-'''[/ comment (no output generated) ]'''
-]
-
-[/ for testing only... ]
-
-[pre
-'''[/ comments can be nested [/ some more here] ]'''
-]
-
-[/ for testing [/ only ] ]
-
-[pre
-'''[/ Quickbook blocks can nest inside comments. [*Comment this out too!] ]'''
-]
-
-[/ for testing [*only ] ]
-
-[endsect] [/Comments]
-
-[section:phrase Phrase Level Elements]
-
-[section Font Styles]
-
-[pre'''
-['italic], [*bold], [_underline], [^teletype], [-strikethrough]
-''']
-
-will generate:
-
-['italic], [*bold], [_underline], [^teletype], [-strikethrough]
-
-Like all non-terminal phrase level elements, this can of course be nested:
-
-[pre'''
-[*['bold-italic]]
-''']
-
-will generate:
-
-[*['bold-italic]]
-
-[endsect] [/Font Styles]
-
-[section Replaceable]
-
-When you want content that may or must be replaced by the user, use the syntax:
-
-[pre'''
-[~replacement]
-''']
-
-This will generate:
-
-[~replacement]
-
-[endsect] [/Replaceable]
-
-[section Quotations]
-
-[pre'''
-["A question that sometimes drives me hazy: am I or are the others crazy?]--Einstein
-''']
-
-will generate:
-
-["A question that sometimes drives me hazy: am I or are the others crazy?]--Einstein
-
-Note the proper left and right quote marks. Also, while you can simply use
-ordinary quote marks like "quoted", our quotation, above, will generate correct
-DocBook quotations (e.g. <quote>quoted</quote>).
-
-Like all phrase elements, quotations may be nested. Example:
-
-[pre'''
-["Here's the rule for bargains: ["Do other men, for they would do you.] That's
-the true business precept.]
-''']
-
-will generate:
-
-["Here's the rule for bargains: ["Do other men, for they would do you.]
-That's the true business precept.]
-
-[endsect] [/Quotations]
-
-[section Simple formatting]
-
-Simple markup for formatting text, common in many applications, is now supported:
-
-[pre'''
-/italic/, *bold*, _underline_, =teletype=
-''']
-
-will generate:
-
-/italic/, *bold*, _underline_, =teletype=
-
-Unlike QuickBook's standard formatting scheme, the rules for simpler
-alternatives are much stricter[footnote Thanks to David Barrett, author of
-[@http://quinthar.com/qwikiwiki/index.php?page=Home Qwiki], for sharing
-these samples and teaching me these obscure formatting rules. I wasn't sure
-at all if __spirit__, being more or less a formal EBNF parser, can handle
-the context sensitivity and ambiguity.].
-
-* Simple markups cannot nest. You can combine a simple markup with a nestable markup.
-* Simple markups cannot contain any other form of quickbook markup.
-* A non-space character must follow the leading markup
-* A non-space character must precede the trailing markup
-* A space or a punctuation must follow the trailing markup
-* If the matching markup cannot be found within a block, the formatting
-  will not be applied. This is to ensure that un-matched formatting markups,
-  which can be a common mistake, does not corrupt anything past a single block.
-  We do not want the rest of the document to be rendered bold just because we
-  forgot a trailing '*'. A single block is terminated by two end of lines or
-  the close bracket: ']'.
-* A line starting with the star will be interpreted as an unordered list.
-  See __unordered_lists__.
-
-[table More Formatting Samples
-    [[Markup]                                           [Result]]
-    [[[^'''*Bold*''']]                                  [*Bold*]]
-    [[[^'''*Is bold*''']]                               [*Is bold*]]
-    [[[^'''* Not bold* *Not bold * * Not bold *''']]    [* Not bold* *Not bold * * Not bold *]]
-    [[[^'''This*Isn't*Bold (no bold)''']]               [This*Isn't*Bold (no bold)]]
-    [[[^'''(*Bold Inside*) (parenthesis not bold)''']]  [(*Bold Inside*) (parenthesis not bold)]]
-    [[[^'''*(Bold Outside)* (parenthesis bold)''']]     [*(Bold Outside)* (parenthesis bold)]]
-    [[[^'''3*4*5 = 60 (no bold)''']]                    [3*4*5 = 60 (no bold)]]
-    [[[^'''3 * 4 * 5 = 60 (no bold)''']]                [3 * 4 * 5 = 60 (no bold)]]
-    [[[^'''3 *4* 5 = 60 (4 is bold)''']]                [3 *4* 5 = 60 (4 is bold)]]
-    [[[^'''*This is bold* this is not *but this is*''']][*This is bold* this is not *but this is*]]
-    [[[^'''*This is bold*.''']]                         [*This is bold*.]]
-    [[[^'''*B*. (bold B)''']]                           [*B*. (bold B)]]
-    [[[^'''['*Bold-Italic*]''']]                        [['*Bold-Italic*]]]
-    [[[^'''*side-by*/-side/''']]                        [*side-by*/-side/]]
-]
-
-As mentioned, simple markups cannot go past a single block. The text
-from "have" to "full" in the following paragraph will be rendered as
-bold:
-
-[pre'''
-Baa baa black sheep, *have you any wool?
-Yes sir, yes sir, three bags full!*
-One for the master, one for the dame,
-And one for the little boy who lives down the lane.
-''']
-
-Baa baa black sheep, *have you any wool?
-Yes sir, yes sir, three bags full!*
-One for the master, one for the dame,
-And one for the little boy who lives down the lane.
-
-But in the following paragraph, bold is not applied:
-
-[pre'''
-Baa baa black sheep, *have you any wool?
-Yes sir, yes sir, three bags full!
-One for the master, one for the dame,
-And one for the little boy who lives down the lane.
-''']
-
-Baa baa black sheep, *have you any wool?
-Yes sir, yes sir, three bags full!
-One for the master, one for the dame,
-And one for the little boy who lives down the lane.
-
-[endsect] [/Simple Formatting]
-
-[section Inline code]
-
-Inlining code in paragraphs is quite common when writing C++ documentation. We
-provide a very simple markup for this. For example, this:
-
-[pre'''
-This text has inlined code `int main() { return 0; }` in it.
-''']
-
-will generate:
-
-This text has inlined code `int main() { return 0; }` in it. The code will be
-syntax highlighted.
-
-[note We simply enclose the code with the tick: [^'''"`"'''], not the
-single quote: `"'"`. Note too that [^'''`some code`'''] is preferred over
-[^'''[^some code]''']. ]
-
-[endsect] [/Inline Code]
-
-[section Code blocks]
-
-Preformatted code simply starts with a space or a tab (See __code__).
-However, such a simple syntax cannot be used as phrase elements in lists
-(See __ordered_lists__ and __unordered_lists__), tables (See __tables__),
-etc. Inline code (see above) can. The problem is, inline code does not
-allow formatting with newlines, spaces, and tabs. These are lost.
-
-We provide a phrase level markup that is a mix between the two. By using the
-double-tick, instead of the single-tick, we are telling QuickBook to use
-preformatted blocks of code. Example:
-
-[pre
-\`\`
-    #include <iostream>
-
-    int main()
-    {
-        std::cout << "Hello, World!" << std::endl;
-        return 0;
-    }
-\`\`
-]
-
-will generate:
-
-``
-    #include <iostream>
-
-    int main()
-    {
-        std::cout << "Hello, World!" << std::endl;
-        return 0;
-    }
-``
-
-[endsect] [/Code blocks]
-
-[section Source Mode]
-
-If a document contains more than one type of source code then the source
-mode may be changed dynamically as the document is processed. All QuickBook
-documents are initially in C++ mode by default, though an alternative
-initial value may be set in the __document__ section.
-
-To change the source mode, use the [^\[source-mode\]] markup, where
-=source-mode= is one of the supported modes. For example, this:
-
-[pre'''
-Python's [python] `import` is rather like C++'s [c++] `#include`. A
-C++ comment `// looks like this` whereas a Python comment [python]
-`# looks like this`.
-''']
-
-will generate:
-
-Python's [python] `import` is rather like C++'s [c++] `#include`. A
-C++ comment `// looks like this` whereas a Python comment [python]
-`#looks like this`.
-
-[teletype]
-
-[table Supported Source Modes
-    [[Mode]                 [Source Mode Markup]]
-    [[C++]                  [[^\[c++\]]]]
-    [[Python]               [[^\[python\]]]]
-    [[Plain Text]           [[^\[teletype\]]]]
-]
-
-[note The source mode strings are lowercase.]
-
-[endsect] [/Source Mode]
-
-[section line-break]
-
-[pre'''
-[br]
-''']
-
-[warning `[br]` is now deprecated. __blurbs__, __admonitions__ and
-table cells (see __tables__) may now contain paragraphs.]
-
-[endsect]
-[section Anchors]
-
-[pre'''
-[#named_anchor]
-''']
-
-A named anchor is a hook that can be referenced by a link elsewhere in the
-document. You can then reference an anchor with [^'''[link named_anchor
-Some link text]''']. See __anchor_links__, __section__ and __heading__.
-
-These anchors are global and can be accessed from anywhere in the
-quickbook documentation. Be careful to avoid clashes with anchors in
-other sections.
-
-[endsect] [/Line break]
-
-[section Links]
-
-[pre'''
-[@http://www.boost.org this is [*boost's] website....]
-''']
-
-will generate:
-
-[@http://www.boost.org this is [*boost's] website....]
-
-URL links where the link text is the link itself is common. Example:
-
-[pre'''
-see http://spirit.sourceforge.net/
-''']
-
-so, when the text is absent in a link markup, the URL is assumed. Example:
-
-[pre
-see '''[@http://spirit.sourceforge.net/]'''
-]
-
-will generate:
-
-see [@http://spirit.sourceforge.net/]
-
-Boostbook also support a custom url schema for linking to files within
-the boost distribution:
-
-[pre
-'''[@boost:/libs/spirit/index.html the Boost.Spirit documentation]'''
-]
-
-will generate: [@boost:/libs/spirit/index.html the Boost.Spirit documentation]
-
-Note that this is only available when using BoostBook, and only for links
-- it can't be used for images.
-
-[endsect] [/Links]
-
-[section Anchor links]
-
-You can link within a document using:
-
-[pre'''
-[link document_id.section_id.normalized_header_text The link text]
-''']
-
-See sections __section__ and __heading__ for more info.
-
-[endsect] [/Anchor links]
-
-[section refentry links]
-
-In addition, you can link internally to an XML refentry like:
-
-[pre'''
-[link xml.refentry The link text]
-''']
-
-This gets converted into [^<link linkend="xml.refentry">The link text</link>].
-
-Like URLs, the link text is optional. If this is not present, the link text will
-automatically be the refentry. Example:
-
-[pre'''
-[link xml.refentry]
-''']
-
-This gets converted into [^<link linkend="xml.refentry">xml.refentry</link>].
-
-[endsect] [/refentry links]
-
-[section:code_links Code Links]
-
-If you want to link to a function, class, member, enum, concept, global, or header in
-the reference section, you can use:
-
-[pre'''
-[funcref fully::qualified::function_name The link text]
-[classref fully::qualified::class_name The link text]
-[memberref fully::qualified::member_name The link text]
-[enumref fully::qualified::enum_name The link text]
-[macroref MACRO_NAME The link text]
-[conceptref ConceptName The link text]
-[headerref path/to/header.hpp The link text]
-[globalref fully::qualified::global The link text]
-''']
-
-Again, the link text is optional. If this is not present, the link text will
-automatically be the function, class, member, enum, macro, concept, global, or header name.
-Example:
-
-[pre'''
-[classref boost::bar::baz]
-''']
-
-would have "boost::bar::baz" as the link text.
-
-[endsect] [/Code Links]
-
-[section Escape]
-
-The escape mark-up is used when we don't want to do any processing.
-
-[pre
-\'\'\'
-escape (no processing/formatting)
-\'\'\'
-]
-
-Escaping allows us to pass XML markup to __boostbook__ or __docbook__. For example:
-
-[pre
-\'\'\'
-<emphasis role="bold">This is direct XML markup</emphasis>
-\'\'\'
-]
-
-'''
-<emphasis role="bold">This is direct XML markup</emphasis>
-'''
-
-[important Be careful when using the escape. The text must conform to
-__boostbook__/__docbook__ syntax.]
-
-[endsect] [/Escape]
-
-[section Single char escape]
-
-The backslash may be used to escape a single punctuation character. The
-punctuation immediately after the backslash is passed without any processing.
-This is useful when we need to escape QuickBook punctuations such as `[` and `]`.
-For example, how do you escape the triple quote? Simple: [^\\'\\'\\']
-
-
-`\n` has a special meaning. It is used to generate line breaks.
-
-[warning `\n` and `[br]` are now deprecated. __blurbs__, __admonitions__
-and table cells (see __tables__) may now contain paragraphs.]
-
-The escaped space: `\ ` also has a special meaning. The escaped space is removed
-from the output.
-
-[endsect] [/Single char escape]
-
-[section Unicode escape]
-
-You can enter any 16-bit unicode character by using `\u` followed by its 4 digit
-hexadecimal code, or a 32-bit character by using `\U` followed by an 8 digit
-hexadecimal code. eg.
-
-[pre'''
-\u03B1 + \u03B2
-''']
-
-will generate:
-
-[:
-\u03B1 + \u03B2
-]
-
-[endsect] [/Unicode escape]
-
-[section Images]
-
-[pre'''
-[$image.jpg]
-''']
-
-From version 1.5, you can also use
-[@http://www.docbook.org/tdg/en/html/imagedata.html
-DocBook imagedata attributes]:
-
-[pre'''
-[$image.jpg [width 200in] [height 200in]]
-''']
-
-[endsect] [/Images]
-
-[section Footnotes]
-
-As of version 1.3, QuickBook supports footnotes. Just put the text of the
-footnote in a `[footnote]` block, and the text will be put at the bottom
-of the current page. For example, this:
-
-[pre'''
-[footnote A sample footnote]
-''']
-
-will generate this[footnote A sample footnote].
-
-[endsect] [/Footnotes]
-
-[section Macro Expansion]
-
-[pre'''
-__a_macro_identifier__
-''']
-
-See __macros__ for details.
-
-[endsect] [/Macro Expansion]
-
-[section Template Expansion]
-
-[pre'''
-[a_template_identifier]
-''']
-
-See __templates__ for details.
-
-[endsect] [/Template Expansion]
-
-[section:cond Conditional Generation]
-
-Like C++ `#ifdef`, you can generate phrases depending on the presence of
-a macro. Example:
-
-[pre'''
-[? __to_be__ To be or not to be]
-''']
-
-[? __to_be__ To be or not to be]
-
-Here, the phrase "To be or not to be" will only be generated if the
-macro symbol '''__to_be__''' has been previously defined. The phrase
-above will not do anything since we haven't defined '''__to_be__'''.
-Now, let's define the symbol:
-
-[pre'''
-[def __to_be__]
-''']
-
-[def __to_be__]
-
-And try again:
-
-[? __to_be__ To be or not to be]
-
-Yes![footnote Conditional Generation makes quickbook turing complete.]
-
-[endsect] [/Condition Generation]
-
-[endsect] [/Phrase Level Elements]
-
-[section:block Block Level Elements]
-
-[section Document]
-
-Every document must begin with a Document Info section, which should look
-like this:
-
-[pre'''
-[document-type The Document Title
-    [quickbook 1.5]
-    [version 1.0]
-    [id the_document_name]
-    [dirname the_document_dir]
-    [copyright 2000 2002 2003 Joe Blow, Jane Doe]
-    [purpose The document's reason for being]
-    [category The document's category]
-    [authors [Blow, Joe] [Doe, Jane]]
-    [license The document's license]
-    [source-mode source-type]
-]
-''']
-
-Where document-type is one of:
-
-* book
-* article
-* library
-* chapter
-* part
-* appendix
-* preface
-* qandadiv
-* qandaset
-* reference
-* set
-
-quickbook 1.5 declares the version of quickbook the document is written for.
-In its absence, version 1.1 is assumed.
-
-=version=, =id=, =dirname=, =copyright=, =purpose=, =category=, =authors=,
-=license=, =last-revision= and =source-mode= are optional information.
-
-=dirname=, =purpose= and =category= are boostbook attributes which are only
-valid for =library= documents. If you use them for other document types,
-quickbook will warn about them, but still use them, generating invalid markup,
-that's just ignored by the style sheets.
-
-=source-type= is a lowercase string setting the initial __source_mode__. If
-the =source-mode= field is omitted, a default value of =c++= will be used.
-
-[endsect] [/Document]
-
-[section Section]
-
-Starting a new section is accomplished with:
-
-[pre'''
-[section:id The Section Title]
-''']
-
-where /id/ is optional. id will be the filename of the generated section.
-If it is not present, "The Section Title" will be normalized and become the id.
-Valid characters are =a-Z=, =A-Z=, =0-9= and =_=. All non-valid characters are
-converted to underscore and all upper-case are converted to lower case.
-Thus: "The Section Title" will be normalized to "the_section_title".
-
-End a section with:
-
-[pre'''
-[endsect]
-''']
-
-Sections can nest, and that results in a hierarchy in the table of contents.
-
-[endsect] [/Section]
-
-[section xinclude]
-
-You can include another XML file with:
-
-[pre'''
-[xinclude file.xml]
-''']
-
-This is useful when file.xml has been generated by Doxygen and contains your
-reference section.
-
-[endsect] [/xinclude]
-
-[section Paragraphs]
-
-Paragraphs start left-flushed and are terminated by two or more newlines. No
-markup is needed for paragraphs. QuickBook automatically detects paragraphs from
-the context. Block markups \[section, endsect, h1, h2, h3, h4, h5, h6, blurb,
-(block-quote) ':', pre, def, table and include \] may also terminate a paragraph.
- [/ <-- There's a space here. Don't remove. this is intentianal, for testing]
-This is a new paragraph...
-
-[endsect] [/Paragraphs]
-
-[section Lists]
-[section Ordered lists]
-
-[pre
-# One
-# Two
-# Three
-]
-
-will generate:
-
-# One
-# Two
-# Three
-
-[endsect] [/Ordered lists]
-[section List Hierarchies]
-
-List hierarchies are supported. Example:
-
-[pre
-# One
-# Two
-# Three
-    # Three.a
-    # Three.b
-    # Three.c
-# Four
-    # Four.a
-        # Four.a.i
-        # Four.a.ii
-# Five
-]
-
-will generate:
-
-# One
-# Two
-# Three
-    # Three.a
-    # Three.b
-    # Three.c
-# Fourth
-    # Four.a
-        # Four.a.i
-        # Four.a.ii
-# Five
-
-[endsect] [/List Hierarchies]
-[section Long List Lines]
-
-Long lines will be wrapped appropriately. Example:
-
-[pre
-# A short item.
-# A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-# A short item.
-]
-
-# A short item.
-# A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-  A very long item. A very long item. A very long item.
-# A short item.
-
-[endsect] [/Long list lines]
-[section Unordered lists]
-
-[pre'''
-* First
-* Second
-* Third
-''']
-
-will generate:
-
-* First
-* Second
-* Third
-
-[endsect] [/Unordered lists]
-[section Mixed lists]
-
-Mixed lists (ordered and unordered) are supported. Example:
-
-[pre'''
-# One
-# Two
-# Three
-    * Three.a
-    * Three.b
-    * Three.c
-# Four
-''']
-
-will generate:
-
-# One
-# Two
-# Three
-    * Three.a
-    * Three.b
-    * Three.c
-# Four
-
-And...
-
-[pre'''
-# 1
-    * 1.a
-        # 1.a.1
-        # 1.a.2
-    * 1.b
-# 2
-    * 2.a
-    * 2.b
-        # 2.b.1
-        # 2.b.2
-            * 2.b.2.a
-            * 2.b.2.b
-''']
-
-will generate:
-
-# 1
-    * 1.a
-        # 1.a.1
-        # 1.a.2
-    * 1.b
-# 2
-    * 2.a
-    * 2.b
-        # 2.b.1
-        # 2.b.2
-            * 2.b.2.a
-            * 2.b.2.b
-
-[endsect] [/Mixed lists]
-[endsect] [/Lists]
-
-[section Code]
-
-Preformatted code starts with a space or a tab. The code will be
-syntax highlighted according to the current __source_mode__:
-
-[c++]
-
-    #include <iostream>
-
-    int main()
-    {
-        // Sample code
-        std::cout << "Hello, World\n";
-        return 0;
-    }
-
-[python]
-
-    import cgi
-
-    def cookForHtml(text):
-        '''"Cooks" the input text for HTML.'''
-
-        return cgi.escape(text)
-
-[teletype]
-
-Macros that are already defined are expanded in source code. Example:
-
-[pre'''
-[def __array__ [@http://www.boost.org/doc/html/array/reference.html array]]
-[def __boost__ [@http://www.boost.org/libs/libraries.htm boost]]
-
-    using __boost__::__array__;
-''']
-
-Generates:
-
-[def __array__ [@http://www.boost.org/doc/html/array/reference.html array]]
-[def __boost__ [@http://www.boost.org/libs/libraries.htm boost]]
-
-    using __boost__::__array__;
-
-[endsect] [/Code]
-
-[section:escape_back Escaping Back To QuickBook]
-
-Inside code, code blocks and inline code, QuickBook does not allow any
-markup to avoid conflicts with the target syntax (e.g. c++). In case you
-need to switch back to QuickBook markup inside code, you can do so using a
-language specific /escape-back/ delimiter. In C++ and Python, the delimiter
-is the double tick (back-quote): "\`\`" and "\`\`". Example:
-
-[pre'''
-void ``[@http://en.wikipedia.org/wiki/Foo#Foo.2C_Bar_and_Baz foo]``()
-{
-}
-''']
-
-Will generate:
-
-    void ``[@http://en.wikipedia.org/wiki/Foo#Foo.2C_Bar_and_Baz foo]``()
-    {
-    }
-
-When escaping from code to QuickBook, only phrase level markups are
-allowed. Block level markups like lists, tables etc. are not allowed.
-
-[endsect] [/Escaping back to quickbook]
-
-[section Preformatted]
-
-Sometimes, you don't want some preformatted text to be parsed as C++. In such
-cases, use the [^[pre ... \]] markup block.
-
-[pre'''
-[pre
-
-    Some *preformatted* text                    Some *preformatted* text
-
-        Some *preformatted* text            Some *preformatted* text
-
-            Some *preformatted* text    Some *preformatted* text
-
-]
-''']
-
-Spaces, tabs and newlines are rendered as-is. Unlike all quickbook block level
-markup, pre (and Code) are the only ones that allow multiple newlines. The
-markup above will generate:
-
-[pre
-
-Some *preformatted* text                    Some *preformatted* text
-
-    Some *preformatted* text            Some *preformatted* text
-
-        Some *preformatted* text    Some *preformatted* text
-
-]
-
-Notice that unlike Code, phrase markup such as font style is still permitted
-inside =pre= blocks.
-
-[endsect] [/Preformatted]
-
-[section Blockquote]
-
-[pre
-'''[:sometext...]'''
-]
-
-[:Indents the paragraph. This applies to one paragraph only.]
-
-[endsect] [/Blockquote]
-
-[section Admonitions]
-
-[pre'''
-[note This is a note]
-[tip This is a tip]
-[important This is important]
-[caution This is a caution]
-[warning This is a warning]
-''']
-
-generates __docbook__ admonitions:
-
-[note This is a note]
-[tip This is a tip]
-[important This is important]
-[caution This is a caution]
-[warning This is a warning]
-
-These are the only admonitions supported by __docbook__. So,
-for example [^\[information This is some information\]] is unlikely
-to produce the desired effect.
-
-[endsect] [/Admonitions]
-
-[section Headings]
-
-[pre'''
-[h1 Heading 1]
-[h2 Heading 2]
-[h3 Heading 3]
-[h4 Heading 4]
-[h5 Heading 5]
-[h6 Heading 6]
-''']
-
-[h1 Heading 1]
-[h2 Heading 2]
-[h3 Heading 3]
-[h4 Heading 4]
-[h5 Heading 5]
-[h6 Heading 6]
-
-Headings 1-3 \[h1 h2 and h3\] will automatically have anchors with
-normalized names with
-[^name="document_id.section_id.normalized_header_text"] (i.e. valid
-characters are =a-z=, =A-Z=, =0-9= and =_=. All non-valid characters are
-converted to underscore and all upper-case are converted to lower-case.
-For example: Heading 1 in section Section 2 will be normalized to
-[^section_2.heading_1]). You can use:
-
-[pre'''
-[link document_id.section_id.normalized_header_text The link text]
-''']
-
-to link to them. See __anchor_links__ and __section__ for more info.
-
-[endsect] [/Headings]
-
-[section Generic Heading]
-
-In cases when you don't want to care about the heading level (1 to 6), you
-can use the /Generic Heading/:
-
-[pre'''
-[heading Heading]
-''']
-
-The /Generic Heading/ assumes the level, plus one, of the innermost section
-where it is placed. For example, if it is placed in the outermost section,
-then, it assumes /h2/.
-
-Headings are often used as an alternative to sections. It is used
-particularly if you do not want to start a new section. In many cases,
-however, headings in a particular section is just flat. Example:
-
-[pre'''
-[section A]
-[h2 X]
-[h2 Y]
-[h2 Z]
-[endsect]
-''']
-
-Here we use h2 assuming that section A is the outermost level. If it is
-placed in an inner level, you'll have to use h3, h4, etc. depending on
-where the section is. In general, it is the section level plus one. It is
-rather tedious, however, to scan the section level everytime. If you
-rewrite the example above as shown below, this will be automatic:
-
-[pre'''
-[section A]
-[heading X]
-[heading Y]
-[heading Z]
-[endsect]
-''']
-
-They work well regardless where you place them. You can rearrange sections
-at will without any extra work to ensure correct heading levels. In fact,
-with /section/ and /heading/, you have all you need. /h1/../h6/ becomes
-redundant. /h1/../h6/ might be deprecated in the future.
-
-[endsect] [/Generic Heading]
-
-[section Macros]
-
-[pre'''
-[def macro_identifier some text]
-''']
-
-When a macro is defined, the identifier replaces the text anywhere in the
-file, in paragraphs, in markups, etc. macro_identifier is a string of non-
-white space characters except '\]'. A macro may not follow an alphabetic
-character or the underscore. The replacement text can be any phrase (even
-marked up). Example:
-
-[pre'''
-[def sf_logo [$http://sourceforge.net/sflogo.php?group_id=28447&type=1]]
-sf_logo
-''']
-
-Now everywhere the sf_logo is placed, the picture will be inlined.
-
-[def sf_logo [$http://sourceforge.net/sflogo.php?group_id=28447&type=1]]
-sf_logo
-
-[tip It's a good idea to use macro identifiers that are distinguishable.
-For instance, in this document, macro identifiers have two leading and
-trailing underscores (e.g. [^'''__spirit__''']). The reason is to avoid
-unwanted macro replacement.]
-
-Links (URLS) and images are good candidates for macros. *1*) They tend to
-change a lot. It is a good idea to place all links and images in one place near the top
-to make it easy to make changes. *2*) The syntax is not pretty. It's easier to read and
-write, e.g. [^'''__spirit__'''] than [^'''[@http://spirit.sourceforge.net Spirit]'''].
-
-Some more examples:
-
-[pre'''
-[def :-)            [$theme/smiley.png]]
-[def __spirit__     [@http://spirit.sourceforge.net Spirit]]
-''']
-
-(See __images__ and __links__)
-
-Invoking these macros:
-
-[pre'''
-Hi __spirit__  :-)
-''']
-
-will generate this:
-
-Hi __spirit__ :-)
-
-[endsect] [/Macros]
-
-[section Predefined Macros]
-
-Quickbook has some predefined macros that you can already use.
-
-[table Predefined Macros
-    [[Macro]                [Meaning]                       [Example]]
-    [['''__DATE__''']       [Today's date]                  [__DATE__]]
-    [['''__TIME__''']       [The current time]              [__TIME__]]
-    [['''__FILENAME__''']   [Quickbook source filename]     [__FILENAME__]]
-]
-
-[endsect] [/Predefined Macros]
-
-[section Templates]
-
-Templates provide a more versatile text substitution mechanism. Templates
-come in handy when you need to create parameterizable, multi-line,
-boilerplate text that you specify once and expand many times. Templates
-accept one or more arguments. These arguments act like place-holders for
-text replacement. Unlike simple macros, which are limited to phrase level
-markup, templates can contain block level markup (e.g. paragraphs, code
-blocks and tables).
-
-Example template:
-
-[pre'''
-[template person[name age what]
-
-Hi, my name is [name]. I am [age] years old. I am a [what].
-
-]
-''']
-
-[template person[name age what]
-
-Hi, my name is [name]. I am [age] years old. I am a [what].
-
-]
-
-[heading Template Identifier]
-
-Template identifiers can either consist of:
-
-* An initial alphabetic character or the underscore, followed by
-  zero or more alphanumeric characters or the underscore. This is
-  similar to your typical C/C++ identifier.
-* A single character punctuation (a non-alphanumeric printable character)
-
-[heading Formal Template Arguments]
-
-Template formal arguments are identifiers consisting of an initial
-alphabetic character or the underscore, followed by zero or more
-alphanumeric characters or the underscore. This is similar to your typical
-C/C++ identifier.
-
-A template formal argument temporarily hides a template of the same name at
-the point where the [link quickbook.syntax.block.templates.template_expansion
-template is expanded]. Note that the body of the [^person] template above
-refers to [^name] [^age] and [^what] as [^\[name\]] [^\[age\]] and
-[^\[what\]]. [^name] [^age] and [^what] are actually templates that exist
-in the duration of the template call.
-
-[heading Template Body]
-
-The template body can be just about any QuickBook block or phrase. There
-are actually two forms. Templates may be phrase or block level. Phrase
-templates are of the form:
-
-[pre'''
-[template sample[arg1 arg2...argN] replacement text... ]
-''']
-
-Block templates are of the form:
-
-[pre'''
-[template sample[arg1 arg2...argN]
-replacement text...
-]
-''']
-
-The basic rule is as follows: if a newline immediately follows the argument
-list, then it is a block template, otherwise, it is a phrase template.
-Phrase templates are typically expanded as part of phrases. Like macros,
-block level elements are not allowed in phrase templates.
-
-[heading Template Expansion]
-
-You expand a template this way:
-
-[pre'''
-[template_identifier arg1..arg2..arg3]
-''']
-
-At template expansion, you supply the actual arguments. The template will
-be expanded with your supplied arguments. Example:
-
-[pre'''
-[person James Bond..39..Spy]
-[person Santa Clause..87..Big Red Fatso]
-''']
-
-Which will expand to:
-
-[person James Bond..39..Spy]
-[person Santa Clause..87..Big Red Fatso]
-
-[caution A word of caution: Templates are recursive. A template can call
-another template or even itself, directly or indirectly. There are no
-control structures in QuickBook (yet) so this will always mean infinite
-recursion. QuickBook can detect this situation and report an error if
-recursion exceeds a certain limit.]
-
-Each actual argument can be a word, a text fragment or just about any [link
-quickbook.syntax.phrase QuickBook phrase]. Arguments are separated by the
-double dot [^".."] and terminated by the close parenthesis.
-
-[heading Nullary Templates]
-
-Nullary templates look and act like simple macros. Example:
-
-[pre'''
-[template alpha[]'''&#945;''']
-[template beta[]'''&#946;''']
-''']
-
-[template alpha[]'''α''']
-[template beta[]'''β''']
-
-Expanding:
-
-[pre'''Some squigles...[*[alpha][beta]]''']
-
-We have:
-
-Some squiggles...[*[alpha][beta]]
-
-The difference with macros are
-
-* The explicit [link quickbook.syntax.block.templates.template_expansion
-  template expansion syntax]. This is an advantage because, now, we don't
-  have to use obscure naming conventions like double underscores (e.g.
-  \_\_alpha\_\_) to avoid unwanted
-  macro replacement.
-* The template is expanded at the point where it is invoked. A macro is
-  expanded immediately at its point of declaration. This is subtle and
-  can cause a slight difference in behavior especially if you refer to
-  other macros and templates in the body.
-
-The empty brackets after the template identifier ([^alpha\[\]]) indicates no
-arguments. If the template body does not look like a template argument list, we
-can elide the empty brackets. Example:
-
-[pre'''
-[template aristotle_quote Aristotle: [*['Education is the best provision
-for the journey to old age.]]]
-''']
-
-[template aristotle_quote\ Aristotle: [*['Education is the best provision
-for the journey to old age.]]]
-
-Expanding:
-
-[pre'''
-Here's a quote from [aristotle_quote].
-''']
-
-We have:
-
-Here's a quote from [aristotle_quote].
-
-The disadvantage is that you can't avoid the space between the template
-identifier, `aristotle_quote`, and the template body "Aristotle...". This space
-will be part of the template body. If that space is unwanted, use empty
-brackets or use the space escape: "`\ `". Example:
-
-[pre'''
-[template tag\ _tag]
-''']
-
-[template tag\ _tag]
-
-Then expanding:
-
-[pre'''
-`struct` x[tag];
-''']
-
-We have:
-
-`struct` x[tag];
-
-You have a couple of ways to do it. I personally prefer the explicit empty
-brackets, though.
-
-[heading Simple Arguments]
-
-As mentioned, arguments are separated by the double dot [^".."]. Alternatively,
-if the double dot isn't used and more than one argument is expected, QuickBook
-uses whitespace to separate the arguments, following this logic:
-
-* Break the last argument into two, at the first space found ([^'', '\\n',
-  \\t' or '\\r']).
-* Repeat until there are enough arguments or if there are no more spaces
-  found (in which case, an error is reported).
-
-For example:
-
-[pre'''
-[template simple[a b c d] [a][b][c][d]]
-[simple w x y z]
-''']
-
-will produce:
-
-[template simple[a b c d] [a][b][c][d]]
-[simple w x y z]
-
-"w x y z" is initially treated as a single argument because we didn't
-supply any [^".."] separators. However, since [^simple] expects 4
-arguments, "w x y z" is broken down iteratively (applying the logic above)
-until we have "w", "x", "y" and "z".
-
-QuickBook only tries to get the arguments it needs. For example:
-
-[pre'''
-[simple w x y z trail]
-''']
-
-will produce:
-
-[simple w x y z trail]
-
-The arguments being: "w", "x", "y" and "z trail".
-
-[caution The behavior described here is for QuickBook 1.5. In older versions you
-could use both the double dot and whitespace as separators in the same template
-call. If your document is marked up as an older version, it will use the old
-behavior, which is described in the
-[@http://www.boost.org/doc/libs/1_40_0/doc/html/quickbook/syntax.html#quickbook.syntax.block.templates.simple_arguments
-QuickBook 1.4 documentation].]
-
-[heading Punctuation Templates]
-
-With templates, one of our objectives is to allow us to rewrite QuickBook
-in QuickBook (as a qbk library). For that to happen, we need to accommodate
-single character punctuation templates which are fairly common in
-QuickBook. You might have noticed that single character punctuations are
-allowed as [link quickbook.syntax.block.templates.template_identifier
-template identifiers]. Example:
-
-[pre'''
-[template ![bar] '''<hey>'''[bar]'''</hey>''']
-''']
-
-Now, expanding this:
-
-[pre'''
-[!baz]
-''']
-
-We will have:
-
-[pre
-<hey>baz</hey>
-]
-
-[endsect] [/Templates]
-
-[section Blurbs]
-
-[pre'''
-[blurb :-) [*An eye catching advertisement or note...]
-
-    __spirit__ is an object-oriented recursive-descent parser generator framework
-    implemented using template meta-programming techniques. Expression templates
-    allow us to approximate the syntax of Extended Backus-Normal Form (EBNF)
-    completely in C++.
-]
-''']
-
-will generate this:
-
-[blurb :-) [*An eye catching advertisement or note...]
-
-    __spirit__ is an object-oriented recursive-descent parser generator
-    framework implemented using template meta-programming techniques. Expression
-    templates allow us to approximate the syntax of Extended Backus-Normal Form
-    (EBNF) completely in C++.
-]
-
-[note Prefer [link quickbook.syntax.block.admonitions admonitions] wherever
-appropriate.]
-
-[endsect] [/Blurbs]
-
-[section Tables]
-
-[pre'''
-[table:id A Simple Table
-    [[Heading 1] [Heading 2] [Heading 3]]
-    [[R0-C0]     [R0-C1]     [R0-C2]]
-    [[R1-C0]     [R1-C1]     [R1-C2]]
-    [[R2-C0]     [R2-C1]     [R2-C2]]
-]
-''']
-
-will generate:
-
-[table:id A Simple Table
-    [[Heading 1] [Heading 2] [Heading 3]]
-    [[R0-C0]     [R0-C1]     [R0-C2]]
-    [[R1-C0]     [R1-C1]     [R1-C2]]
-    [[R2-C0]     [R2-C1]     [R2-C2]]
-]
-
-The table title is optional. The first row of the table is automatically
-treated as the table header; that is, it is wrapped in [^<thead>...</thead>]
-XML tags. Note that unlike the original QuickDoc, the columns are nested in
-[cells... ].
-
-Giving tables an id is a new feature for quickbook 1.5 onwards. As with
-sections, the id is optional. If the table has a title but no id, an id will
-be generated from the title. The table above can be linked to using:
-
-[pre'''
-[link quickbook.syntax.block.tables.id link to table]
-''']
-
-which will generate:
-
-[link quickbook.syntax.block.tables.id link to table]
-
-The syntax is free-format and allows big cells to be formatted
-nicely. Example:
-
-[pre'''
-[table Table with fat cells
-    [[Heading 1] [Heading 2]]
-    [
-        [Row 0, Col 0: a small cell]
-        [
-            Row 0, Col 1: a big fat cell with paragraphs
-
-            Boost provides free peer-reviewed portable C++ source libraries.
-
-            We emphasize libraries that work well with the C++ Standard Library.
-            Boost libraries are intended to be widely useful, and usable across
-            a broad spectrum of applications. The Boost license encourages both
-            commercial and non-commercial use.
-        ]
-    ]
-    [
-        [Row 1, Col 0: a small cell]
-        [Row 1, Col 1: a small cell]
-    ]
-]
-''']
-
-and thus:
-
-[table Table with fat cells
-    [[Heading 1] [Heading 2]]
-    [
-        [Row 0, Col 0: a small cell]
-        [
-            Row 0, Col 1: a big fat cell with paragraphs
-
-            Boost provides free peer-reviewed portable C++ source libraries.
- [/ <-- There's a space here. Don't remove. This is intentional, for testing]
-            We emphasize libraries that work well with the C++ Standard Library.
-            Boost libraries are intended to be widely useful, and usable across
-            a broad spectrum of applications. The Boost license encourages both
-            commercial and non-commercial use.
-        ]
-    ]
-    [
-        [Row 1, Col 0: a small cell]
-        [Row 1, Col 1: a small cell]
-    ]
-]
-
-Here's how to have preformatted blocks of code in a table cell:
-
-[pre'''
-[table Table with code
-    [[Comment] [Code]]
-    [
-        [My first program]
-        ['''\`\`
-            #include <iostream>
-
-            int main()
-            {
-                std::cout << "Hello, World!" << std::endl;
-                return 0;
-            }
-        \`\`''']
-    ]
-]
-''']
-
-[table Table with code
-    [[Comment] [Code]]
-    [
-        [My first program]
-        [``
-            #include <iostream>
-
-            int main()
-            {
-                std::cout << "Hello, World!" << std::endl;
-                return 0;
-            }
-        ``]
-    ]
-]
-
-[endsect] [/Tables]
-
-[section Variable Lists]
-
-[pre'''
-[variablelist A Variable List
-    [[term 1] [The definition of term 1]]
-    [[term 2] [The definition of term 2]]
-    [[term 3] [
-    The definition of term 3.
-
-    Definitions may contain paragraphs.
-    ]]
-]
-''']
-
-will generate:
-
-[variablelist A Variable List
-    [[term 1] [The definition of term 1]]
-    [[term 2] [The definition of term 2]]
-    [[term 3] [
-    The definition of term 3.
-
-    Definitions may contain paragraphs.
-    ]]
-]
-
-The rules for variable lists are the same as for tables, except that
-only 2 "columns" are allowed. The first column contains the terms, and
-the second column contains the definitions. Those familiar with HTML
-will recognize this as a "definition list".
-
-[endsect] [/Variable Lists]
-
-[section Include]
-
-You can include one QuickBook file from another. The syntax is simply:
-
-[pre'''
-[include someother.qbk]
-''']
-
-The included file will be processed as if it had been cut and pasted
-into the current document, with the following exceptions:
-
-* The '''__FILENAME__''' predefined macro will reflect the name of the
-  file currently being processed.
-* Any macros defined in the included file are scoped to that file.
-
-The [^\[include\]] directive lets you specify a document id to use for the
-included file. When this id is not explicitly specified, the id defaults to
-the filename ("someother", in the example above). You can specify the id
-like this:
-
-[pre'''
-[include:someid someother.qbk]
-''']
-
-All auto-generated anchors will use the document id as a unique prefix. So
-for instance, if there is a top section in someother.qbk named "Intro", the
-named anchor for that section will be "someid.intro", and you can link to
-it with [^\[link someid.intro The Intro\]].
-
-[endsect] [/Include]
-
-[section Import]
-
-When documenting code, you'd surely need to present code from actual source
-files. While it is possible to copy some code and paste them in your QuickBook
-file, doing so is error prone and the extracted code in the documentation tends
-to get out of sync with the actual code as the code evolves. The problem, as
-always, is that once documentation is written, the tendency is for the docs to
-languish in the archives without maintenance.
-
-QuickBook's import facility provides a nice solution.
-
-[heading Example]
-
-You can effortlessly import code snippets from source code into your QuickBook.
-The following illustrates how this is done:
-
-[pre'''
-[import ../test/stub.cpp]
-[foo]
-[bar]
-''']
-
-The first line:
-
-[pre'''
-[import ../test/stub.cpp]
-''']
-
-collects specially marked-up code snippets from
-[@boost:/tools/quickbook/test/stub.cpp stub.cpp]
-and places them in your QuickBook file as virtual templates. Each of the
-specially marked-up code snippets has a name (e.g. `foo` and `bar` in the
-example above). This shall be the template identifier for that particular code
-snippet. The second and third line above does the actual template expansion:
-
-[pre'''
-[foo]
-[bar]
-''']
-
-And the result is:
-
-[import ../test/stub.cpp]
-[foo]
-[bar]
-
-[heading Code Snippet Markup]
-
-Note how the code snippets in [@boost:/tools/quickbook/test/stub.cpp stub.cpp]
-get marked up. We use distinguishable comments following the form:
-
-    //[id
-    some code here
-    //]
-
-The first comment line above initiates a named code-snippet. This prefix will
-not be visible in quickbook. The entire code-snippet in between `//[id` and
-`//]` will be inserted as a template in quickbook with name ['/id/]. The comment
-`//]` ends a code-snippet This too will not be visible in quickbook.
-
-[heading Special Comments]
-
-Special comments of the form:
-
-    //` some [*quickbook] markup here
-
-and:
-
-    /*` some [*quickbook] markup here */
-
-will be parsed by QuickBook. This can contain quickbook /blocks/ (e.g. sections,
-paragraphs, tables, etc). In the first case, the initial slash-slash, tick and
-white-space shall be ignored. In the second, the initial slash-star-tick and the
-final star-slash shall be ignored.
-
-Special comments of the form:
-
-    /*<- this C++ comment will be ignored ->*/
-
-or
-
-    /*<-*/ "this c++ code  will be ignored" /*->*/
-
-or
-
-    //<-
-    private:
-        int some_member;
-    //->
-
-can be used to inhibit code from passing through to quickbook. All text between
-the delimeters will simply be ignored.
-
-Comments of this form:
-
-    //=int main() {}
-
-or
-
-    /*=foo()*/
-
-will be displayed as code that isn't in comments. This allows you to
-include some code in the snippet but not actually use it when
-compiling your example.
-
-[heading Callouts]
-
-Special comments of the form:
-
-    /*< some [*quickbook] markup here >*/
-
-will be regarded as callouts. These will be collected, numbered and
-rendered as a "callout bug" (a small icon with a number). After the
-whole snippet is parsed, the callout list is generated. See
-[@http://www.docbook.org/tdg/en/html/callout.html Callouts] for details.
-Example:
-
-[foo_bar]
-
-This is the actual code:
-
-    //[ foo_bar
-    std::string foo_bar() /*< The /Mythical/ FooBar.
-                          See [@http://en.wikipedia.org/wiki/Foobar Foobar for details] >*/
-    {
-        return "foo-bar"; /*< return 'em, foo-bar man! >*/
-    }
-    //]
-
-The callouts bugs are placed exactly where the special callout comment
-is situated. It can be anywhere in the code. The bugs can be rather
-obtrusive, however. They get in the way of the clarity of the code.
-Another special callout comment style is available:
-
-    /*<< some [*quickbook] markup here >>*/
-
-This is the line-oriented version of the callout. With this, the "bug"
-is placed at the very left of the code block, away from the actual code.
-By placing it at the far left, the code is rendered un-obscured.
-Example:
-
-[class_]
-
-See the actual code here: [@boost:/tools/quickbook/test/stub.cpp]
-
-[endsect] [/Import]
-
-[endsect] [/Block Level Elements]
-
-[endsect] [/Syntax Summary]
-
-[section:install Installation and configuration]
-
-This section provides some guidelines on how to install and configure
-BoostBook and Quickbook under several operating systems. Before installing
-you'll need a local copy of boost, and to install the version of `bjam`
-which comes with it (or a later version).
-
-[/ I don't think this is needed any more]
-[/
-Before continuing, it is very important that you keep this in mind: if you
-try to build some documents and the process breaks due to misconfiguration,
-be absolutely sure to delete any `bin` and `bin.v2` directories generated
-by the build before trying again.  Otherwise your configuration fixes will
-not take any effect.
-]
-
-[section:macosx Mac OS X]
-
-The simplest way to install on OS X is to use macports.
-If you don't want to use macports and are using Snow Leopard or later,
-there are instructions [link quickbook.install.macosx.native later].
-Earlier versions of OS X need to use something like macports to install
-`xsltproc` because the version they come with is very old, and doesn't have
-good enough XSL support for boostbook's stylesheets.
-
-[section:macports Mac OS X, using macports]
-
-First install the `libxslt`, `docbook-xsl` and `docbook-xml-4.2`
-packages:
-
-    sudo port install libxslt docbook-xsl docbook-xml-4.2
-
-Next, we need to configure Boost Build to compile BoostBook files. Add the
-following to your `user-config.jam` file, which should be in your home
-directory. If you don't have one, create a file containing this text. For more
-information on setting up `user-config.jam`, see the
-[@http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html Boost
-Build documentation].
-
-    using xsltproc
-        : /opt/local/bin/xsltproc
-        ;
-
-    using boostbook
-        : /opt/local/share/xsl/docbook-xsl/
-        : /opt/local/share/xml/docbook/4.2
-        ;
-
-The above steps are enough to get a functional BoostBook setup.  Quickbook
-will be automatically built when needed.  If you want to avoid these
-rebuilds:
-
-# Go to Quickbook's source directory (`BOOST_ROOT/tools/quickbook`).
-
-# Build the utility by issuing `bjam`.
-
-# Copy the resulting `quickbook` binary (located at
-  `BOOST_ROOT/dist/bin`) to a safe place.  The traditional location is
-  `/usr/local/bin`.
-
-# Add the following to your `user-config.jam` file, using the full path of the
-  quickbook executable:
-  ```
- using quickbook
-     : /usr/local/bin/quickbook
-     ;
-  ```
- 
-If you need to build documentation that uses Doxygen, you will need to install it as well:
-
-    sudo port install doxygen
-
-And then add to your `user-config.jam`:
-
-    using doxygen ;
-
-Alternatively, you can install from the official doxygen `dmg`.
-This is described at [link osx-prebuilt-doxygen the end of the next section].
-
-[endsect] [/ macports]
-
-[section:native Mac OS X, Snow Leopard (or later)]
-
-[:['Section contributed by Julio M. Merino Vidal]]
-
-The text below assumes you want to install all the necessary utilities in a
-system-wide location, allowing any user in the machine to have access to
-them. Therefore, all files will be put in the `/usr/local` hierarchy.  If
-you do not want this, you can choose any other prefix such as
-`~/Applications` for a single-user installation.
-
-Snow Leopard comes with `xsltproc` and all related libraries preinstalled, so
-you do not need to take any extra steps to set them up.  It is probable
-that future versions will include them too, but these instructions may not
-apply to older versions.
-
-To get started:
-
-# Download [@http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip Docbook XML
-  4.2] and unpack it inside `/usr/local/share/xml/docbook/4.2`.
-
-# Download the latest
-  [@http://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608
-  Docbook XSL] version and unpack it. Be careful that you download the correct
-  file, sometimes the 'looking for the latest version' link often links to
-  another file. The name should be of the form
-  '''<code>docbook-xsl-1.<emphasis>nn</emphasis>.<emphasis>n</emphasis>.tar.bz2</code>''',
-  with no suffix such as `-ns.tar.bz2` or `-doc.tar.bz2`.
-  Put the results in
-  `/usr/local/share/xsl/docbook`, thus effectively removing the version
-  number from the directory name (for simplicity).
-
-# Add the following to your `user-config.jam` file, which should live in
-  your home directory (`/Users/<your_username>`).  You must already have it
-  somewhere or otherwise you could not be building Boost (i.e. missing
-  tools configuration).
-  ```
- using xsltproc ;
-
- using boostbook
-     : "/usr/local/share/xsl/docbook"
-     : "/usr/local/share/xml/docbook/4.2"
-     ;
-  ```
-
-The above steps are enough to get a functional BoostBook setup.  Quickbook
-will be automatically built when needed.  If you want to avoid these
-rebuilds and install a system-wide Quickbook instead:
-
-# Go to Quickbook's source directory (`BOOST_ROOT/tools/quickbook`).
-
-# Build the utility by issuing `bjam`.
-
-# Copy the resulting `quickbook` binary (located at
-  `BOOST_ROOT/dist/bin`) to a safe place.  Following our previous
-  example, you can install it into: `/usr/local/bin`.
-
-# Add the following to your `user-config.jam` file:
-  ```
- using quickbook
-     : "/usr/local/bin/quickbook" ;
-     ;
-  ```
-
-[# osx-prebuilt-doxygen]
-Additionally, if you need to build documentation that uses
-[@http://www.doxygen.org Doxygen], you will need to install it too:
-
-# Go to the [@http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
-  downloads section] and get the disk image (`dmg` file) for Mac OS X.
-
-# Open the disk image and drag the Doxygen application to your
-  `Applications` folder to install it.
-
-# Add the following to your `user-config.jam` file:
-  ```
- using doxygen
-     : /Applications/Doxygen.app/Contents/Resources/doxygen
-     ;
-  ```
-
-[/ Removed this, since there are macports based instructions earlier.
-   Instructions for pkgsrc welcome]
-[/
-Alternatively, you may want to install all the prerequistes through a
-package system to avoid manual management of the installations.  In that
-case, check out [@http://www.pkgsrc.org pkgsrc].
-]
-
-[endsect] [/ native]
-
-[endsect] [/ macosx]
-
-[section:windows Windows 2000, XP, 2003, Vista]
-
-[:['Section contributed by Julio M. Merino Vidal]]
-
-The following instructions apply to any Windows system based on Windows
-2000, including Windows XP, Windows 2003 Server and Windows Vista. The
-paths shown below are taken from a Windows Vista machine; you will need to
-adjust them to match your system in case you are running an older version.
-
-# First of all you need to have a copy of `xsltproc` for Windows.  There
-  are many ways to get this tool, but to keep things simple, use the
-  [@http://www.zlatkovic.com/pub/libxml/ binary packages] made by Igor
-  Zlatkovic.  At the very least, you need to download the following
-  packages: `iconv`, `zlib`, `libxml2` and `libxslt`.
-
-# Unpack all these packages in the same directory so that you get unique
-  `bin`, `include` and `lib` directories within the hierarchy.  These
-  instructions use `C:\Users\example\Documents\boost\xml` as the root for
-  all files.
-
-# From the command line, go to the `bin` directory and launch
-  `xsltproc.exe` to ensure it works.  You should get usage information on
-  screen.
-
-# Download [@http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip Docbook XML
-  4.2] and unpack it in the same directory used above.  That is:
-  `C:\Users\example\Documents\boost\xml\docbook-xml`.
-
-# Download the latest
-  [@http://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608
-  Docbook XSL] version and unpack it, again in the same directory
-  used before. Be careful that you download the correct
-  file, sometimes the 'looking for the latest version' link often links to
-  another file. The name should be of the form
-  '''<code>docbook-xsl-1.<emphasis>nn</emphasis>.<emphasis>n</emphasis>.tar.bz2</code>''',
-  with no suffix such as `-ns.tar.bz2` or `-doc.tar.bz2`.
-  To make things easier, rename the directory created
-  during the extraction to `docbook-xsl` (bypassing the version name):
-  `C:\Users\example\Documents\boost\xml\docbook-xsl`.
-
-# Add the following to your `user-config.jam` file, which should live in
-  your home directory (`%HOMEDRIVE%%HOMEPATH%`).  You must already have it
-  somewhere or otherwise you could not be building Boost (i.e. missing
-  tools configuration).
-
- using xsltproc
-     : "C:/Users/example/Documents/boost/xml/bin/xsltproc.exe"
-     ;
-
- using boostbook
-     : "C:/Users/example/Documents/boost/xml/docbook-xsl"
-     : "C:/Users/example/Documents/boost/xml/docbook-xml"
-     ;
-
-The above steps are enough to get a functional BoostBook setup.  Quickbook
-will be automatically built when needed.  If you want to avoid these
-rebuilds:
-
-# Go to Quickbook's source directory (`BOOST_ROOT\tools\quickbook`).
-
-# Build the utility by issuing `bjam`.
-
-# Copy the resulting `quickbook.exe` binary (located at
-  `BOOST_ROOT\dist\bin`) to a safe place.  Following our previous
-  example, you can install it into:
-  `C:\Users\example\Documents\boost\xml\bin`.
-
-# Add the following to your `user-config.jam` file:
-  ```
- using quickbook
-     : "C:/Users/example/Documents/boost/xml/bin/quickbook.exe"
-     ;
-  ```
-
-[endsect] [/Windows]
-
-[section:linux Debian, Ubuntu]
-
-The following instructions apply to Debian and its derivatives. They are based
-on a Ubuntu Edgy install but should work on other Debian based systems. They
-assume you've already installed an appropriate version of `bjam` for your
-copy of boost.
-
-First install the `xsltproc`, `docbook-xsl` and `docbook-xml` packages.
-For example, using `apt-get`:
-
-    sudo apt-get install xsltproc docbook-xsl docbook-xml
-
-If you're planning on building boost's documentation, you'll also need to
-install the `doxygen` package as well.
-
-Next, we need to configure Boost Build to compile BoostBook files. Add the
-following to your `user-config.jam` file, which should be in your home
-directory. If you don't have one, create a file containing this text. For more
-information on setting up `user-config.jam`, see the
-[@http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html Boost
-Build documentation].
-
-    using xsltproc ;
-
-    using boostbook
-        : /usr/share/xml/docbook/stylesheet/nwalsh
-        : /usr/share/xml/docbook/schema/dtd/4.2
-        ;
-
-    # Remove this line if you're not using doxygen
-    using doxygen ;
-
-The above steps are enough to get a functional BoostBook setup.  Quickbook
-will be automatically built when needed.  If you want to avoid these
-rebuilds:
-
-# Go to Quickbook's source directory (`BOOST_ROOT/tools/quickbook`).
-
-# Build the utility by issuing `bjam`.
-
-# Copy the resulting `quickbook` binary (located at
-  `BOOST_ROOT/dist/bin`) to a safe place.  The traditional location is
-  `/usr/local/bin`.
-
-# Add the following to your `user-config.jam` file, using the full path of the
-  quickbook executable:
-
- using quickbook
-     : /usr/local/bin/quickbook
-     ;
-
-[endsect] [/Linux]
-
-[endsect] [/Installation and configuration]
-
-[section:editors Editor Support]
-
-Editing quickbook files is usually done with text editors both simple and
-powerful. The following sections list the settings for some editors which can
-help make editing quickbook files a bit easier.
-
-[note You may submit your settings, tips, and suggestions to the
-authors, or through the [@https://lists.sourceforge.net/lists/listinfo/boost-
-docs Boost Docs mailing list].]
-
-[section:scite Scintilla Text Editor]
-
-[:['Section contributed by Dean Michael Berris]]
-
-The Scintilla Text Editor (SciTE) is a free source code editor for Win32 and X.
-It uses the SCIntilla source code editing component.
-
-[tip SciTE can be downloaded from [@http://www.scintilla.org/SciTE.html]]
-
-You can use the following settings to highlight quickbook tags when
-editing quickbook files.
-
-[pre'''
-qbk=*.qbk
-lexer.*.qbk=props
-use.tabs.$(qbk)=0
-tab.size.$(qbk)=4
-indent.size.$(qbk)=4
-style.props.32=$(font.base)
-comment.stream.start.props=[/
-comment.stream.end.props=]
-comment.box.start.props=[/
-comment.box.middle.props=
-comment.box.end.props=]
-''']
-
-[note Thanks to Rene Rivera for the above SciTE settings.]
-
-[endsect] [/scite]
-
-[/ KDE support (Kate, KWrite, Konqueror, KDevelop) ]
-[include ../extra/katepart/katepart.qbk]
-
-[endsect] [/editors]
-
-[section:faq Frequently Asked Questions]
-
-[heading Can I use QuickBook for non-Boost documentation?]
-
-QuickBook can be used for non-Boost documentation with a little extra work.
-
-[:['Faq contributed by Michael Marcin]]
-
-When building HTML documentation with BoostBook a Boost C++ Libraries header
-is added to the files. When using QuickBook to document projects outside of
-Boost this is not desirable. This behavior can be overridden at the BoostBook
-level by specifying some XSLT options. When using Boost Build version 2 (BBv2)
-this can be achieved by adding parameters to the BoostBook target declaration.
-
-For example:
-[pre
-using quickbook ;
-
-xml my_doc : my_doc.qbk ;
-
-boostbook standalone
-    :
-        my_doc
-    :
-        <xsl:param>boost.image.src\=images/my_project_logo.png
-        <xsl:param>boost.image.alt\="\\"My Project\\""
-        <xsl:param>boost.image.w=100
-        <xsl:param>boost.image.h=50
-        <xsl:param>nav.layout=none
-    ;
-]
-
-[heading Is there an easy way to convert BoostBook docs to QuickBook?]
-
-There's a stylesheet that allows Boostbook generated HTML to be viewed
-as quickbook source, see
-[@http://svn.boost.org/trac/boost/wiki/QuickbookSourceStylesheetProject],
-so it's then just a cut and paste job to convert the BoostBook to
-QuickBook (which IMO is a whole lot easier to edit and maintain).
-
---John Maddock
-
-[endsect] [/faq]
-
-[section:ref Quick Reference]
-
-[teletype]
-
-[template ordered_list_sample[]
-[pre'''
-# one
-# two
-# three
-''']
-]
-
-[template unordered_list_sample[]
-[pre'''
-* one
-* two
-* three
-''']
-]
-
-[template table_sample[]
-[pre'''
-[table Title
-[[a][b][c]]
-[[a][b][c]]
-]
-''']
-]
-
-[template var_list_sample[]
-[pre'''
-[variablelist Title
-[[a][b]]
-[[a][b]]
-]
-''']
-]
-
-
-[table Syntax Compendium
-    [[To do this...]        [Use this...]                                   [See this...]]
-    [[comment]              [[^'''[/ some comment]''']]                     [__comments__]]
-    [[['italics]]           [[^'''['italics] or /italics/''']]              [__font_styles__ and __simple_formatting__]]
-    [[[*bold]]              [[^'''[*bold] or *bold*''']]                    [__font_styles__ and __simple_formatting__]]
-    [[[_underline]]         [[^'''[_underline] or _underline_''']]          [__font_styles__ and __simple_formatting__]]
-    [[[^teletype]]          [[^'''[^teletype] or =teletype=''']]            [__font_styles__ and __simple_formatting__]]
-    [[[-strikethrough]]     [[^'''[-strikethrough]''']]                     [__font_styles__ and __simple_formatting__]]
-    [[[~replaceable]]       [[^'''[~replaceable]''']]                       [__replaceable__]]
-    [[source mode]          [[^\[c++\]] or [^\[python\]]]                   [__source_mode__]]
-    [[inline code]          [[^'''`int main();`''']]                        [__inline_code__]]
-    [[code block]           [[^'''``int main();``''']]                      [__code__]]
-    [[code escape]          [[^'''``from c++ to QuickBook``''']]            [__escape_back__]]
-    [[line break]           [[^'''[br] or \n''']]                           [__line_break__ *DEPRECATED*]]
-    [[anchor]               [[^'''[#anchor]''']]                            [__anchors__]]
-    [[link]                 [[^'''[@http://www.boost.org Boost]''']]        [__links__]]
-    [[anchor link]          [[^'''[link section.anchor Link text]''']]      [__anchor_links__]]
-    [[refentry link]        [[^'''[link xml.refentry Link text]''']]        [__refentry_links__]]
-    [[function link]        [[^'''[funcref fully::qualified::function_name Link text]''']]      [__code_links__]]
-    [[class link]           [[^'''[classref fully::qualified::class_name Link text]''']]        [__code_links__]]
-    [[member link]          [[^'''[memberref fully::qualified::member_name Link text]''']]      [__code_links__]]
-    [[enum link]            [[^'''[enumref fully::qualified::enum_name Link text]''']]          [__code_links__]]
-    [[macro link]           [[^'''[macroref MACRO_NAME Link text]''']]                          [__code_links__]]
-    [[concept link]         [[^'''[conceptref ConceptName Link text]''']]                       [__code_links__]]
-    [[header link]          [[^'''[headerref path/to/header.hpp Link text]''']]                 [__code_links__]]
-    [[global link]          [[^'''[globalref fully::qualified::global Link text]''']]           [__code_links__]]
-    [[escape]               [[^\'\'\'escaped text (no processing/formatting)\'\'\']]            [__escape__]]
-    [[single char escape]   [[^\\c]]                                        [__single_char_escape__]]
-    [[images]               [[^'''[$image.jpg]''']]                         [__images__]]
-    [[begin section]        [[^'''[section The Section Title]''']]          [__section__]]
-    [[end section]          [[^'''[endsect]''']]                            [__section__]]
-    [[paragraph]            [No markup. Paragraphs start left-flushed and are terminated by two or more newlines.]  [__paragraphs__]]
-    [[ordered list]         [[ordered_list_sample]]                         [__ordered_lists__]]
-    [[unordered list]       [[unordered_list_sample]]                       [__unordered_lists__]]
-    [[code]                 [No markup. Preformatted code starts with a space or a tab.]        [__code__]]
-    [[preformatted]         [[^'''[pre preformatted]''']]                   [__preformatted__]]
-    [[block quote]          [[^'''[:sometext...]''']]                       [__blockquote__]]
-    [[heading 1]            [[^'''[h1 Heading 1]''']]                       [__heading__]]
-    [[heading 2]            [[^'''[h2 Heading 2]''']]                       [__heading__]]
-    [[heading 3]            [[^'''[h3 Heading 3]''']]                       [__heading__]]
-    [[heading 4]            [[^'''[h4 Heading 4]''']]                       [__heading__]]
-    [[heading 5]            [[^'''[h5 Heading 5]''']]                       [__heading__]]
-    [[heading 6]            [[^'''[h6 Heading 6]''']]                       [__heading__]]
-    [[macro]                [[^'''[def macro_identifier some text]''']]     [__macros__]]
-    [[template]             [[^'''[template[a b] [a] body [b]]''']]         [__templates__]]
-    [[blurb]                [[^'''[blurb advertisement or note...]''']]     [__blurbs__]]
-    [[admonition]           [[^'''[warning Warning text...]''']]            [__admonitions__]]
-    [[table]                [[table_sample]]                                [__tables__]]
-    [[variablelist]         [[var_list_sample]]                             [__variable_lists__]]
-    [[include]              [[^'''[include someother.qbk]''']]              [__include__]]
-    [[conditional generation]
-                            [[^'''[? symbol phrase]''']]                    [__cond__]]
-]
-
-[endsect] [/ quick reference]
+[def __font_styles__        [link quickbook.phrase.font_styles Font Styles]]
+[def __quotations__         [link quickbook.phrase.quotations Quotations]]
+[def __replaceable__        [link quickbook.phrase.replaceable Replaceble]]
+[def __simple_formatting__  [link quickbook.phrase.simple_formatting Simple formatting]]
+[def __inline_code__        [link quickbook.phrase.inline_code Inline code]]
+[def __code_blocks__        [link quickbook.phrase.code_blocks Code blocks]]
+[def __source_mode__        [link quickbook.phrase.source_mode Source Mode]]
+[def __line_break__         [link quickbook.phrase.line_break line-break]]
+[def __anchors__            [link quickbook.phrase.anchors Anchors]]
+[def __links__              [link quickbook.phrase.links Links]]
+[def __anchor_links__       [link quickbook.phrase.anchor_links Anchor links]]
+[def __refentry_links__     [link quickbook.phrase.refentry_links refentry links]]
+[def __code_links__         [link quickbook.phrase.code_links function, class, member, enum, macro, concept or header links]]
+[def __escape__             [link quickbook.phrase.escape Escape]]
+[def __single_char_escape__ [link quickbook.phrase.single_char_escape Single char escape]]
+[def __images__             [link quickbook.phrase.images Images]]
+[def __cond__               [link quickbook.phrase.cond Conditional Generation]]
+
+[def __document__           [link quickbook.syntax.docinfo Document]]
+[def __section__            [link quickbook.syntax.section Section]]
+[def __xinclude__           [link quickbook.block.xinclude  xinclude]]
+[def __paragraphs__         [link quickbook.block.paragraphs Paragraphs]]
+[def __ordered_lists__      [link quickbook.block.lists.ordered_lists Ordered lists]]
+[def __list_hierarchies__   [link quickbook.block.lists.list_hierarchies List Hierarchies]]
+[def __long_list_lines__    [link quickbook.block.lists.long_list_lines Long List Lines]]
+[def __unordered_lists__    [link quickbook.block.lists.unordered_lists Unordered lists]]
+[def __mixed_lists__        [link quickbook.block.lists.mixed_lists Mixed lists]]
+[def __code__               [link quickbook.block.code Code]]
+[def __escape_back__        [link quickbook.block.escape_back Escaping Back To QuickBook]]
+[def __preformatted__       [link quickbook.block.preformatted Preformatted]]
+[def __blockquote__         [link quickbook.block.blockquote Blockquote]]
+[def __heading__            [link quickbook.block.headings Heading]]
+[def __macros__             [link quickbook.block.macros Macros]]
+[def __templates__          [link quickbook.block.templates Templates]]
+[def __predefined_macros__  [link quickbook.block.predefined_macros Predefined Macros]]
+[def __blurbs__             [link quickbook.block.blurbs Blurbs]]
+[def __admonitions__        [link quickbook.block.admonitions Admonitions]]
+[def __tables__             [link quickbook.block.tables Tables]]
+[def __variable_lists__     [link quickbook.block.variable_lists Variable Lists]]
+[def __include__            [link quickbook.block.include Include]]
+[def __import__             [link quickbook.block.import Import]]
+
+[include intro.qbk]
+[include change_log.qbk]
+[include syntax.qbk]
+[include phrase.qbk]
+[include block.qbk]
+[include install.qbk]
+[include editors.qbk]
+[include faq.qbk]
+[include ref.qbk]