bd3be26138
Only possible since I made escaping punctuation templates illegal. [SVN r85286]
314 lines
5.5 KiB
Plaintext
314 lines
5.5 KiB
Plaintext
[article Template 1.6
|
|
[quickbook 1.6]
|
|
]
|
|
|
|
[section Templates]
|
|
|
|
[/-------------------------------- nullary arg ]
|
|
|
|
[template foo0 nullary_arg]
|
|
|
|
[foo0]
|
|
|
|
[/-------------------------------- unary arg, phrase syle ]
|
|
|
|
[template foo1[bar] foo [bar]]
|
|
|
|
[foo1 baz]
|
|
|
|
[/-------------------------------- unary arg, block syle ]
|
|
|
|
[template foo2[bar]
|
|
foo [bar]
|
|
]
|
|
|
|
[foo2 baz]
|
|
|
|
[template foo3[bar]
|
|
This is a complete paragraph. [bar] [bar] [bar] [bar] [bar]
|
|
[bar] [bar] [bar] [bar].... blah blah blah......
|
|
]
|
|
|
|
[foo3 kalamazoo]
|
|
|
|
[/-------------------------------- unary arg, using punctuation ]
|
|
|
|
[template ![bar] '''<hey>'''[bar]'''</hey>''']
|
|
|
|
[!baz]
|
|
|
|
[/-------------------------------- recursive templates ]
|
|
|
|
[template foo4[bar]
|
|
[foo3 [bar]]
|
|
]
|
|
|
|
[foo3 madagascar]
|
|
|
|
[template foo5[x] zoom [x]]
|
|
[template foo6[x] [x] zoom]
|
|
|
|
[foo6[foo5 peanut]]
|
|
|
|
[template kinda_weird[x y] [x] [y]]
|
|
|
|
[kinda_weird exactly..xanadu]
|
|
|
|
|
|
[/-------------------------------- space delimitted args ]
|
|
|
|
[template simple1[a b] [a][b]]
|
|
|
|
[simple1 w x]
|
|
|
|
[template simple2[a b c d] [a][b][c][d]]
|
|
|
|
[simple2 w x y z][simple2 w x y z trail]
|
|
|
|
[/-------------------------------- John's templates ]
|
|
|
|
[template code[x]
|
|
int main()
|
|
{
|
|
std::cout << ``[x]`` << std::endl;
|
|
}
|
|
]
|
|
|
|
[code "Hello\, World"]
|
|
|
|
[template alpha '''α''']
|
|
[template pow[a b] [a]'''<superscript>'''[b]'''</superscript>''' ]
|
|
[template super[text]'''<superscript>'''[text]'''</superscript>''' ]
|
|
|
|
[pow x 2]
|
|
|
|
[pow [alpha] 2]
|
|
|
|
x[super 2]
|
|
|
|
[/-------------------------------- Some more ]
|
|
|
|
[template banana got a banana?]
|
|
[template plantation[bananarama] [bananarama]]
|
|
|
|
[plantation [banana]]
|
|
|
|
[/-------------------------------- Not a bug (there was a syntax error here) ]
|
|
|
|
[template join1[a b] [b][a]]
|
|
[template join2[a b] [a][b]]
|
|
[template test[x] [join1 [join2 0 [x]]...0]]
|
|
[test 0]
|
|
|
|
[/-------------------------------- Mismatched template ]
|
|
|
|
[template foo 1]
|
|
[fool]
|
|
|
|
[template blah 10]
|
|
|
|
[endsect]
|
|
|
|
[section Empty Templates]
|
|
|
|
[template empty1]
|
|
[template empty2 ]
|
|
[template empty3 [/comment]]
|
|
[template empty4 [/comment]
|
|
|
|
]
|
|
[template empty5
|
|
]
|
|
[template empty6
|
|
|
|
]
|
|
[template empty7
|
|
[/comment]
|
|
]
|
|
[template empty8
|
|
|
|
[/comment]
|
|
]
|
|
[template empty_arg1[x]]
|
|
[template empty_arg2[x y]]
|
|
|
|
[empty1]
|
|
[empty2]
|
|
[empty3]
|
|
[empty4]
|
|
[empty5]
|
|
[empty6]
|
|
[empty7]
|
|
[empty8]
|
|
[empty_arg1 1]
|
|
[empty_arg2 1 2]
|
|
|
|
[endsect]
|
|
|
|
[/----------------------------------- Nested templates ]
|
|
|
|
[section Nested Templates]
|
|
|
|
[template block_foo[content]
|
|
|
|
Start block template.
|
|
|
|
[content]
|
|
|
|
End block template.
|
|
]
|
|
|
|
[template phrase_foo[content] Start phrase template. [content] End phrase template.]
|
|
|
|
Pre [block_foo [block_foo Hello!]] Post
|
|
|
|
Pre [block_foo [phrase_foo Hello!]] Post
|
|
|
|
Pre [phrase_foo [block_foo Hello!]] Post
|
|
|
|
Pre [phrase_foo [phrase_foo Hello!]] Post
|
|
|
|
[endsect]
|
|
|
|
[/----------------------------------- Block Markup ]
|
|
|
|
[section Block Markup]
|
|
|
|
[template list
|
|
* a
|
|
* b]
|
|
|
|
[template horizontal
|
|
----]
|
|
|
|
[template codeblock
|
|
int main() {}]
|
|
|
|
[template paragraphs
|
|
Paragraphs 1
|
|
|
|
Paragraphs 2
|
|
]
|
|
|
|
[list][horizontal][codeblock][paragraphs]
|
|
|
|
* [list]
|
|
* [horizontal]
|
|
* [codeblock]
|
|
* [paragraphs]
|
|
|
|
[endsect]
|
|
|
|
[/----------------------------------- 1.5+ use static scoping ]
|
|
|
|
[section Static Scoping]
|
|
|
|
[template x static scoping]
|
|
[template static_test1[] [x]]
|
|
[template static_test2[x] [static_test1]]
|
|
[static_test2 dynamic scoping]
|
|
|
|
[/ This should be '[a]' because [a] isn't matched. ]
|
|
[template test1[] [a]]
|
|
[template test2[a] [test1]]
|
|
[test2 1]
|
|
|
|
[/ In 1.5 template arguments are scoped at the point they are defined]
|
|
|
|
[template y new]
|
|
[template static_test3[a y] [a]]
|
|
[static_test3 [y] old]
|
|
|
|
[/ From https://svn.boost.org/trac/boost/ticket/2034 ]
|
|
|
|
[template same[x] [x]]
|
|
[template echo[a b] [a] [b]]
|
|
[template echo_twice[x] [echo [same [x]]..[same [x]]]]
|
|
[echo_twice foo]
|
|
|
|
[endsect]
|
|
|
|
[/----------------------------------- 1.5+ template arguments ]
|
|
|
|
[section Template Arguments]
|
|
|
|
[template binary[x y] {[x]-[y]}]
|
|
[binary 1..2] [/ {1-2} ]
|
|
[binary 1 2] [/ {1-2} ]
|
|
[binary 1..2 3 4] [/ {1-2 3 4} ]
|
|
[binary 1 2..3 4] [/ {1 2-3 4} ]
|
|
[binary 1 2 3..4] [/ {1 2 3-4} ]
|
|
[binary 1.\.2..3] [/ {1..2-3} ]
|
|
[binary 1.\.2 3] [/ {1..2-3} ]
|
|
|
|
[binary [binary 1 2..3]..4] [/ { {1 2-3}-4} ]
|
|
[binary [binary 1 2..3] 4] [/ { {1 2-3}-4} ]
|
|
[binary [binary 1 2 3]..4] [/ { {1-2 3}-4} ]
|
|
|
|
[binary \[1 2\] 3] [/ {[1-2] 3} ]
|
|
[binary \[1..2\] 3] [/ {[1-2] 3} ]
|
|
[binary \[1 2] [/ {(1-2} ]
|
|
|
|
[template ternary[x y z] {[x]-[y]-[z]}]
|
|
[ternary 1..2..3] [/ {1-2-3} ]
|
|
[ternary 1 2 3] [/ {1-2-3} ]
|
|
|
|
[endsect]
|
|
|
|
[/----------------------------------- Block and phrases ]
|
|
|
|
[section Block and phrase templates]
|
|
|
|
[template phrase_template[] Some *text*]
|
|
[template block_template[]
|
|
|
|
A <emphasis>paragraph</emphasis>.
|
|
]
|
|
|
|
[phrase_template]
|
|
[block_template]
|
|
[`phrase_template]
|
|
[`block_template]
|
|
|
|
[/ Trailing newline shouldn't be included]
|
|
|
|
[template named_index[type title]
|
|
'''<index type="'''[type]'''"><title>'''[title]'''</title></index>'''
|
|
]
|
|
|
|
[named_index things Things]
|
|
|
|
[endsect]
|
|
|
|
[/-------------------------------- Skipping template body ]
|
|
|
|
[section:template_body Skipping the template body correctly]
|
|
|
|
[template args1[x] [`x]]
|
|
[template args2[]
|
|
[ordered_list [``code``]]
|
|
]
|
|
[/ Due to a bug in the template parser need to stop the parser
|
|
thinking that the code is an escaped template. ]
|
|
[template args3[]
|
|
[ordered_list [\ `code`]]
|
|
]
|
|
|
|
[args1 <emphasis>Argument</emphasis>]
|
|
[args2]
|
|
[args3]
|
|
|
|
[endsect]
|
|
|
|
[/----------------------------------- Escaped templates ]
|
|
|
|
[section Escaped templates]
|
|
|
|
[template raw_markup <thingbob>Not real boostbook</thingbob>]
|
|
[template escaped1 [x] [`x]]
|
|
|
|
[`raw_markup]
|
|
[escaped1 <thingbob>More fake boostbook</thingbob>]
|
|
|
|
[endsect]
|