📄 quickbook-manual.quickbook
字号:
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]
[section:code_links Code Links]
If you want to link to a function, class, member, enum, concept 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]
''']
Again, the link text is optional. If this is not present, the link text will
automatically be the function, class, member, enum, macro, concept or header. Example:
[pre'''
[classref boost::bar::baz]
''']
would have "boost::bar::baz" as the link text.
[endsect]
[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]
[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]
[section Images]
[pre'''
[$image.jpg]
''']
[endsect]
[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].
[section Macro Expansion]
[pre'''
__a_macro_identifier__
''']
See __macros__ for details.
[endsect]
[section Template Expansion]
[pre'''
[a_template_identifier]
''']
See __templates__ for details.
[endsect]
[endsect]
[endsect]
[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.3]
[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.3 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.
=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]
[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 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]
[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.
[endsect]
[section Lists]
[section Ordered lists]
[pre
# One
# Two
# Three
]
will generate:
# One
# Two
# Three
[endsect]
[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]
[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]
[section Unordered lists]
[pre'''
* First
* Second
* Third
''']
will generate:
* First
* Second
* Third
[endsect]
[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]
[endsect]
[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)
[c++]
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]
[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]
[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]
[section Blockquote]
[pre
'''[:sometext...]'''
]
[:Indents the paragraph. This applies to one paragraph only.]
[endsect]
[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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -