glyph 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.textile +1 -1
- data/CHANGELOG.textile +119 -222
- data/LICENSE.textile +1 -1
- data/README.textile +42 -23
- data/Rakefile +1 -3
- data/VERSION +1 -1
- data/benchmark.rb +72 -0
- data/book/config.yml +4 -4
- data/book/document.glyph +90 -57
- data/book/images/document_generation.png +0 -0
- data/book/lib/macros/reference.rb +75 -22
- data/book/output/html/glyph.html +3183 -2121
- data/book/output/html/images/document_generation.png +0 -0
- data/book/output/pdf/glyph.pdf +7370 -4913
- data/book/resources/document_generation.txt +34 -0
- data/book/snippets.yml +6 -0
- data/book/text/changelog.glyph +45 -34
- data/book/text/compiling/compiling.glyph +23 -0
- data/book/text/compiling/lite_mode.glyph +23 -0
- data/book/text/compiling/programmatic_usage.glyph +77 -0
- data/book/text/extending/bookmarks_headers.glyph +21 -0
- data/book/text/extending/further_reading.glyph +13 -0
- data/book/text/extending/internals.glyph +79 -0
- data/book/text/extending/interpreting.glyph +51 -0
- data/book/text/extending/macro_def.glyph +64 -0
- data/book/text/extending/params_attrs.glyph +70 -0
- data/book/text/extending/placeholders.glyph +34 -0
- data/book/text/extending/validators.glyph +16 -0
- data/book/text/getting_started/configuration.glyph +49 -0
- data/book/text/getting_started/create_project.glyph +41 -0
- data/book/text/getting_started/structure.glyph +55 -0
- data/book/text/introduction.glyph +49 -26
- data/book/text/license.glyph +1 -1
- data/book/text/macros/macros_block.glyph +99 -0
- data/book/text/macros/macros_core.glyph +208 -0
- data/book/text/macros/macros_filters.glyph +40 -0
- data/book/text/macros/macros_inline.glyph +50 -0
- data/book/text/macros/macros_structure.glyph +100 -0
- data/book/text/ref_commands.glyph +94 -73
- data/book/text/ref_config.glyph +34 -42
- data/book/text/ref_macros.glyph +1 -373
- data/book/text/text_editing/code.glyph +51 -0
- data/book/text/text_editing/conditionals.glyph +49 -0
- data/book/text/text_editing/evaluation.glyph +13 -0
- data/book/text/text_editing/glyph_files.glyph +7 -0
- data/book/text/text_editing/images.glyph +29 -0
- data/book/text/text_editing/inclusions.glyph +44 -0
- data/book/text/text_editing/links.glyph +53 -0
- data/book/text/text_editing/macro_intro.glyph +111 -0
- data/book/text/text_editing/raw_html.glyph +112 -0
- data/book/text/text_editing/sections.glyph +63 -0
- data/book/text/text_editing/stylesheets.glyph +36 -0
- data/book/text/troubleshooting/errors_command.glyph +39 -0
- data/book/text/troubleshooting/errors_generic.glyph +29 -0
- data/book/text/troubleshooting/errors_intro.glyph +3 -0
- data/book/text/troubleshooting/errors_macro.glyph +98 -0
- data/book/text/troubleshooting/errors_parser.glyph +29 -0
- data/config.yml +77 -58
- data/document.glyph +25 -25
- data/glyph.gemspec +57 -22
- data/lib/glyph.rb +54 -13
- data/lib/glyph/commands.rb +84 -17
- data/lib/glyph/config.rb +3 -3
- data/lib/glyph/document.rb +14 -8
- data/lib/glyph/interpreter.rb +18 -58
- data/lib/glyph/macro.rb +160 -55
- data/lib/glyph/macro_validators.rb +104 -12
- data/lib/glyph/node.rb +24 -0
- data/lib/glyph/parser.rb +278 -0
- data/lib/glyph/syntax_node.rb +225 -0
- data/macros/core.rb +212 -0
- data/macros/filters.rb +66 -15
- data/macros/html/block.rb +43 -105
- data/macros/html/inline.rb +11 -12
- data/macros/html/structure.rb +123 -58
- data/macros/xml.rb +33 -0
- data/spec/files/container.textile +2 -2
- data/spec/files/document.glyph +2 -2
- data/spec/files/document_with_toc.glyph +3 -3
- data/spec/files/included.textile +1 -1
- data/spec/files/ligature.jpg +0 -0
- data/spec/files/markdown.markdown +2 -1
- data/spec/lib/commands_spec.rb +46 -3
- data/spec/lib/document_spec.rb +4 -4
- data/spec/lib/glyph_spec.rb +17 -46
- data/spec/lib/interpreter_spec.rb +6 -25
- data/spec/lib/macro_spec.rb +141 -43
- data/spec/lib/macro_validators_spec.rb +27 -5
- data/spec/lib/node_spec.rb +26 -1
- data/spec/lib/parser_spec.rb +246 -0
- data/spec/lib/syntax_node_spec.rb +111 -0
- data/spec/macros/core_spec.rb +195 -0
- data/spec/macros/filters_spec.rb +38 -4
- data/spec/macros/macros_spec.rb +20 -176
- data/spec/macros/textile_spec.rb +13 -71
- data/spec/macros/xml_spec.rb +77 -0
- data/spec/spec_helper.rb +50 -10
- data/spec/tasks/load_spec.rb +13 -2
- data/styles/default.css +18 -6
- data/styles/pagination.css +1 -19
- data/tasks/generate.rake +2 -2
- data/tasks/load.rake +27 -17
- data/tasks/project.rake +1 -1
- metadata +75 -62
- data/book/script/compile.rb +0 -8
- data/book/script/prof +0 -1
- data/book/script/prof_results.htm +0 -21079
- data/book/text/authoring.glyph +0 -548
- data/book/text/extending.glyph +0 -224
- data/book/text/getting_started.glyph +0 -158
- data/book/text/troubleshooting.glyph +0 -179
- data/lib/glyph/glyph_language.rb +0 -538
- data/lib/glyph/glyph_language.treetop +0 -27
- data/macros/common.rb +0 -160
data/book/text/license.glyph
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Copyright (c) 2010 **Fabio Cevasco**, =>[http://www.h3rald.com]
|
2
2
|
|
3
|
-
|
3
|
+
codeblock[
|
4
4
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
5
|
of this software and associated documentation files (the "Software"), to deal
|
6
6
|
in the Software without restriction, including without limitation the rights
|
@@ -0,0 +1,99 @@
|
|
1
|
+
section[
|
2
|
+
@title[Block Macros]
|
3
|
+
|
4
|
+
ref_macro[
|
5
|
+
@n[box]
|
6
|
+
@desc[Creates a titled box (@<div>@ tag).]
|
7
|
+
@block_example[=
|
8
|
+
box[Why boxes?\|
|
9
|
+
Boxes can be used to make a section of text stand out from the rest of the document.
|
10
|
+
]
|
11
|
+
=]
|
12
|
+
@params[
|
13
|
+
-p[0|The box title.]
|
14
|
+
-p[1|The box text.]
|
15
|
+
]
|
16
|
+
]
|
17
|
+
|
18
|
+
ref_macro[
|
19
|
+
@n[codeblock]
|
20
|
+
@desc[Used to render a block of code within @<pre>@ and @<code>@ tags.]
|
21
|
+
@block_example[=
|
22
|
+
code[
|
23
|
+
def hello
|
24
|
+
puts "Hello World"
|
25
|
+
end
|
26
|
+
]
|
27
|
+
=]
|
28
|
+
@remarks[For code highlighting, see the %>[highlight].]
|
29
|
+
@params[-p[0|The code to be formatted.]]
|
30
|
+
]
|
31
|
+
|
32
|
+
ref_macro[
|
33
|
+
@n[figure]
|
34
|
+
@desc[Includes an image in the document, with an optional caption (see =>[#img_fig]).]
|
35
|
+
@block_example[=
|
36
|
+
figure[
|
37
|
+
graph.png\|Monthly Pageviews
|
38
|
+
@width[90%]
|
39
|
+
]
|
40
|
+
=]
|
41
|
+
@params[
|
42
|
+
-p[0|&[img_file]]
|
43
|
+
-p[1|The image caption &[opt].]
|
44
|
+
]
|
45
|
+
@attrs[
|
46
|
+
-a[*|&[img_attrs]]
|
47
|
+
]
|
48
|
+
]
|
49
|
+
|
50
|
+
ref_macro[
|
51
|
+
@n[image]
|
52
|
+
@desc[Includes an image in the document]
|
53
|
+
@block_example[=
|
54
|
+
img[
|
55
|
+
holidays/landscape.jpg
|
56
|
+
@class[photo]
|
57
|
+
@style[border: 1px solid black;]
|
58
|
+
]
|
59
|
+
=]
|
60
|
+
@params[
|
61
|
+
-p[0|&[img_file]]
|
62
|
+
]
|
63
|
+
@attrs[
|
64
|
+
-a[*|&[img_attrs]]
|
65
|
+
]
|
66
|
+
]
|
67
|
+
|
68
|
+
ref_macro[
|
69
|
+
@n[note]
|
70
|
+
@desc[Creates a note @div@ containing the value.]
|
71
|
+
@aliases[important, caution, tip]
|
72
|
+
@example[=note[This is a note.]=]
|
73
|
+
@params[-p[0|The text of the note.]]
|
74
|
+
]
|
75
|
+
|
76
|
+
ref_macro[
|
77
|
+
@n[pubdate]
|
78
|
+
@desc[Evaluates to a date string (in the format: em[current_month] em[current_year]; i.e. _%B_ _%Y_), within a @<div>@ tag.]
|
79
|
+
@example[=pubdate[]=]
|
80
|
+
]
|
81
|
+
|
82
|
+
ref_macro[
|
83
|
+
@n[revision]
|
84
|
+
@desc[Renders the revision of the document (based on the $>[document.revision]) within a @<div>@ tag.]
|
85
|
+
@example[=revision[]=]
|
86
|
+
]
|
87
|
+
|
88
|
+
ref_macro[
|
89
|
+
@n[subtitle]
|
90
|
+
@desc[Renders the subtitle of the document (based on the $>[document.subtitle]) within a @<h2>@ tag.]
|
91
|
+
@example[=subtitle[]=]
|
92
|
+
]
|
93
|
+
|
94
|
+
ref_macro[
|
95
|
+
@n[title]
|
96
|
+
@desc[Renders the title of the document (based on the $>[document.title]) within a @<h1>@ tag.]
|
97
|
+
@example[=title[]=]
|
98
|
+
]
|
99
|
+
]
|
@@ -0,0 +1,208 @@
|
|
1
|
+
section[
|
2
|
+
@title[Core Macros]
|
3
|
+
|
4
|
+
ref_macro[
|
5
|
+
@n[alias]
|
6
|
+
@desc[Creates a macro alias.]
|
7
|
+
@params[
|
8
|
+
-p[0|The name of the alias.]
|
9
|
+
-p[1|The name of an existing macro.]
|
10
|
+
]
|
11
|
+
@example[=alias[s\|section]=]
|
12
|
+
]
|
13
|
+
|
14
|
+
ref_macro[
|
15
|
+
@n[and]
|
16
|
+
@desc[Conditional code[and] operator, to be used with the %>[condition].]
|
17
|
+
@params[&[bin_params]]
|
18
|
+
@example[=?[and[true\|false]\|This is never displayed.]=]
|
19
|
+
]
|
20
|
+
|
21
|
+
ref_macro[
|
22
|
+
@n[comment]
|
23
|
+
@desc[
|
24
|
+
Evaluates to nothing. Used to add comments in a Glyph document that will not be displayed in output files.
|
25
|
+
]
|
26
|
+
@aliases[--]
|
27
|
+
@params[-p[0|The contents to comment out]]
|
28
|
+
@example[=--[\.=>[#link\|This link will not be evaluated]]=]
|
29
|
+
@remarks[Macros are not expanded within comments.]
|
30
|
+
]
|
31
|
+
|
32
|
+
ref_macro[
|
33
|
+
@n[condition]
|
34
|
+
@desc[
|
35
|
+
Tests a conditional expression. For more information, see =>[#cond_macros].
|
36
|
+
]
|
37
|
+
@aliases[?]
|
38
|
+
@params[
|
39
|
+
-p[0|The condition to test]
|
40
|
+
-p[1|The contents to expand if the condition is satisfied.]
|
41
|
+
]
|
42
|
+
@remarks[
|
43
|
+
For examples see any of the following:
|
44
|
+
* %>[and]
|
45
|
+
* %>[or]
|
46
|
+
* %>[not]
|
47
|
+
* %>[match]
|
48
|
+
* %>[eq]
|
49
|
+
]
|
50
|
+
]
|
51
|
+
|
52
|
+
ref_macro[
|
53
|
+
@n[config]
|
54
|
+
@desc[Returns the value of a configuration setting.]
|
55
|
+
@aliases[$]
|
56
|
+
@example[=$[document.author]=]
|
57
|
+
@params[
|
58
|
+
-p[0|The full name of a configuration setting.]
|
59
|
+
]
|
60
|
+
]
|
61
|
+
|
62
|
+
ref_macro[
|
63
|
+
@n[config:]
|
64
|
+
@desc[Sets the value of a configuration setting.]
|
65
|
+
@aliases[$:]
|
66
|
+
@example[=$:[document.draft\|true]=]
|
67
|
+
@remarks[&[unsafe]]
|
68
|
+
@params[
|
69
|
+
-p[0|The full name of a configuration setting.]
|
70
|
+
-p[0|The new value of the configuration setting]
|
71
|
+
]
|
72
|
+
]
|
73
|
+
|
74
|
+
ref_macro[
|
75
|
+
@n[eq]
|
76
|
+
@desc[Conditional equality operator, to be used with the %>[condition].]
|
77
|
+
@example[=?[eq[$[document.draft]\|true]\|This is displayed only in draft documents.]=]
|
78
|
+
@params[&[bin_params]]
|
79
|
+
]
|
80
|
+
|
81
|
+
ref_macro[
|
82
|
+
@n[escape]
|
83
|
+
@desc[Evaluates to its value. Commonly used with the escaping delimiters code[\[\=] and code[\=\]].]
|
84
|
+
@aliases[.]
|
85
|
+
@example[=.\[=Macros are escaped here =>[#test].=\]=]
|
86
|
+
@params[-p[0|The contents to escape.]]
|
87
|
+
]
|
88
|
+
|
89
|
+
ref_macro[
|
90
|
+
@n[include]
|
91
|
+
@desc[
|
92
|
+
Evaluates to the contents of a text file stored in the @text/@ directory referenced by its relative path. If &[filter_by_ext], filters the contents of the file using the =>[#f_macros|filter macro] corresponding to the file extension.
|
93
|
+
]
|
94
|
+
@aliases[@]
|
95
|
+
@example[=include[frontmatter/introduction]=]
|
96
|
+
@params[-p[0|The file to include.]]
|
97
|
+
@remarks[
|
98
|
+
ul[
|
99
|
+
li[&[unsafe]]
|
100
|
+
li[@.glyph@ is assumed if no file extension is specified.]
|
101
|
+
li[
|
102
|
+
This macro can also be used to include @.rb@ ruby files within the @lib@ directory. File contents are evaluated in the context of the =>[&[yardoc]/Glyph|Glyph] module.
|
103
|
+
]
|
104
|
+
]
|
105
|
+
]
|
106
|
+
]
|
107
|
+
|
108
|
+
ref_macro[
|
109
|
+
@n[match]
|
110
|
+
@desc[
|
111
|
+
Checks a string against a regular expression.
|
112
|
+
]
|
113
|
+
@params[
|
114
|
+
-p[0|The string to check.]
|
115
|
+
-p[1|The regular expression to match against the string.]
|
116
|
+
-p[2|The contents to expand if the string matches.]
|
117
|
+
]
|
118
|
+
@remarks[This macro must be used with the %>[condition].]
|
119
|
+
@example[=?[match[Hello!\|/^hell/i]\|This is always displayed]=]
|
120
|
+
]
|
121
|
+
|
122
|
+
ref_macro[
|
123
|
+
@n[macro:]
|
124
|
+
@desc[Defines a macro.]
|
125
|
+
@remarks[
|
126
|
+
ul[
|
127
|
+
li[&[unsafe]]
|
128
|
+
li[The new macro &[only_after_declaration].]
|
129
|
+
]
|
130
|
+
]
|
131
|
+
@aliases[%:]
|
132
|
+
@example[=%:[test\|"<em>test: #{value}</em>"]=]
|
133
|
+
@params[
|
134
|
+
-p[0|The name of the new macro.]
|
135
|
+
-p[1|The macro definition (Ruby code).]
|
136
|
+
]
|
137
|
+
]
|
138
|
+
|
139
|
+
ref_macro[
|
140
|
+
@n[not]
|
141
|
+
@desc[Conditional @not@ operator, to be used with the %>[condition].]
|
142
|
+
@example[=?[not[false]\|This is always displayed.]=]
|
143
|
+
@params[-p[0|The expression to negate]]
|
144
|
+
]
|
145
|
+
|
146
|
+
ref_macro[
|
147
|
+
@n[or]
|
148
|
+
@desc[Conditional @or@ operator, to be used with the %>[condition].]
|
149
|
+
@example[=?[or[true\|false]\|This is always displayed.]=]
|
150
|
+
@params[&[bin_params]]
|
151
|
+
]
|
152
|
+
|
153
|
+
ref_macro[
|
154
|
+
@n[rewrite:]
|
155
|
+
@desc[Defines a new macro by rewriting (for more information, see =>[#rewriting])]
|
156
|
+
@aliases[rw:]
|
157
|
+
@params[
|
158
|
+
-p[0|The name of the new macro.]
|
159
|
+
-p[0|The macro definition (Glyph code).]
|
160
|
+
]
|
161
|
+
@block_example[=
|
162
|
+
rw:[release\|
|
163
|
+
section[
|
164
|
+
@title[Release {{0}}]
|
165
|
+
{{1}}
|
166
|
+
]
|
167
|
+
]
|
168
|
+
=]
|
169
|
+
@remarks[
|
170
|
+
ul[
|
171
|
+
li[The new macro &[only_after_declaration].]
|
172
|
+
li[&[unsafe]]
|
173
|
+
]
|
174
|
+
]
|
175
|
+
]
|
176
|
+
|
177
|
+
ref_macro[
|
178
|
+
@n[ruby]
|
179
|
+
@desc[Evaluates its value as Ruby code within the context of the =>[&[yardoc]/Glyph|Glyph] module.]
|
180
|
+
@aliases[%]
|
181
|
+
@examples[=
|
182
|
+
%[Time.now]
|
183
|
+
%[Glyph::VERSION]
|
184
|
+
=]
|
185
|
+
@params[-p[0|The Ruby code to evaluate.]]
|
186
|
+
@remarks[&[unsafe]]
|
187
|
+
]
|
188
|
+
|
189
|
+
ref_macro[
|
190
|
+
@n[snippet]
|
191
|
+
@desc[Returns the value of a snippet.]
|
192
|
+
@aliases[&]
|
193
|
+
@example[=&[glang]=]
|
194
|
+
@params[-p[0|The ID of the snippet to retrieve.]]
|
195
|
+
]
|
196
|
+
|
197
|
+
ref_macro[
|
198
|
+
@n[snippet:]
|
199
|
+
@desc[Defines a snippet.]
|
200
|
+
@remarks[The new snippet &[only_after_declaration].]
|
201
|
+
@aliases[&:]
|
202
|
+
@example[=&:[test\|This is a test]=]
|
203
|
+
@params[
|
204
|
+
-p[0|The ID of the new snippet.]
|
205
|
+
-p[1|The contents of the new snippet.]
|
206
|
+
]
|
207
|
+
]
|
208
|
+
]
|
@@ -0,0 +1,40 @@
|
|
1
|
+
section[
|
2
|
+
@title[Filter Macros]
|
3
|
+
@id[f_macros]
|
4
|
+
|
5
|
+
ref_macro[
|
6
|
+
@n[markdown]
|
7
|
+
@desc[
|
8
|
+
Uses a Markdown converter (BlueCloth, RDiscount, Maruku or Kramdown) to transform the value into HTML if the $>[filters.target] is set to @html@.
|
9
|
+
|
10
|
+
&[called_on_files] with a @.markdown@ or a @.md@ extension.
|
11
|
+
]
|
12
|
+
@aliases[md]
|
13
|
+
@example[=markdown[This is *emphasized* text.]=]
|
14
|
+
@params[-p[0|The Markdown text to filter.]]
|
15
|
+
]
|
16
|
+
|
17
|
+
ref_macro[
|
18
|
+
@n[textile]
|
19
|
+
@desc[
|
20
|
+
Uses the RedCloth gem to transform the value into HTML or LaTeX, depending on the value of the $>[filters.target].
|
21
|
+
|
22
|
+
&[called_on_files] with a @.textile@ or a @.txt@ extension.
|
23
|
+
]
|
24
|
+
@aliases[txt]
|
25
|
+
@example[=textile[This is a *strong emphasis*.]=]
|
26
|
+
@params[-p[0|The Textile text to filter.]]
|
27
|
+
]
|
28
|
+
|
29
|
+
ref_macro[
|
30
|
+
@n[highlight]
|
31
|
+
@desc[Highlights a piece of source code (second parameter) according to the specified language (first parameter). fmi[code highligting|#source_code].]
|
32
|
+
@block_example[=
|
33
|
+
highlight[ruby\|
|
34
|
+
def hello
|
35
|
+
puts "Hello World"
|
36
|
+
end
|
37
|
+
]
|
38
|
+
=]
|
39
|
+
]
|
40
|
+
]
|
@@ -0,0 +1,50 @@
|
|
1
|
+
section[
|
2
|
+
@title[Inline Macros]
|
3
|
+
|
4
|
+
ref_macro[
|
5
|
+
@n[anchor]
|
6
|
+
@desc[Creates a named anchor (or bookmark).]
|
7
|
+
@aliases[bookmark, #]
|
8
|
+
@example[=#[test\|Test Bookmark]=]
|
9
|
+
@params[
|
10
|
+
-p[0|The identifier of the bookmark]
|
11
|
+
-p[1|The contents of the bookmark &[opt]]
|
12
|
+
]
|
13
|
+
]
|
14
|
+
|
15
|
+
ref_macro[
|
16
|
+
@n[draftcomment]
|
17
|
+
@desc[If the $>[document.draft] is set to @true@, displays a draft comment within the document.]
|
18
|
+
@aliases[dc]
|
19
|
+
@example[=dc[This is printed only in draft documents.]=]
|
20
|
+
@params[-p[0|The text of the comment.]]
|
21
|
+
]
|
22
|
+
|
23
|
+
ref_macro[
|
24
|
+
@n[fmi]
|
25
|
+
@desc[Creates a _For More Information_ link (for an example usage, see the %>[link]).]
|
26
|
+
@example[=fmi[creating links\|#links]=]
|
27
|
+
@params[
|
28
|
+
-p[0|The object that needs additional explanation.]
|
29
|
+
-p[0|A valid bookmark within the document.]
|
30
|
+
]
|
31
|
+
]
|
32
|
+
|
33
|
+
ref_macro[
|
34
|
+
@n[link]
|
35
|
+
@desc[Creates an hyperlink (\.fmi[creating links|#links]).]
|
36
|
+
@aliases[\.=>]
|
37
|
+
@example[=\.=>[http://www.h3rald.com\|H3RALD.com]=]
|
38
|
+
@params[
|
39
|
+
-p[0|A valid bookmark within the document or an URL.]
|
40
|
+
-p[1|The text of the link &[opt].]
|
41
|
+
]
|
42
|
+
]
|
43
|
+
|
44
|
+
ref_macro[
|
45
|
+
@n[todo]
|
46
|
+
@aliases[!]
|
47
|
+
@desc[Saves the value as a TODO item, which can be printed using the #>[todo] and included in the document if the $>[document.draft] is set to @true@.]
|
48
|
+
@example[=todo[Remember to do this.]=]
|
49
|
+
]
|
50
|
+
]
|
@@ -0,0 +1,100 @@
|
|
1
|
+
section[
|
2
|
+
@title[Structure Macros]
|
3
|
+
|
4
|
+
ref_macro[
|
5
|
+
@n[article]
|
6
|
+
@desc[
|
7
|
+
Used to create a simple article. By default, it includes the following macros:
|
8
|
+
* @document@
|
9
|
+
** @head@
|
10
|
+
*** @style\[default.css\]@
|
11
|
+
** @body@
|
12
|
+
*** @halftitlepage@
|
13
|
+
**** @title@
|
14
|
+
**** @pubdate@
|
15
|
+
**** @subtitle@
|
16
|
+
**** @author@
|
17
|
+
]
|
18
|
+
@params[-p[0|The article contents.]]
|
19
|
+
@attrs[
|
20
|
+
-a[pre-title|Contents to include before the %>[title].]
|
21
|
+
-a[post-title|Contents to include after the %>[title].]
|
22
|
+
-a[head|Contents to include instead of the default code[head] macro.]
|
23
|
+
-a[pubdate|Contents to include instead of the default code[pubdate] macro.]
|
24
|
+
-a[halftitlepage|Contents to include instead of the default code[halftitlepage] macro.]
|
25
|
+
]
|
26
|
+
]
|
27
|
+
|
28
|
+
ref_macro[
|
29
|
+
@n[book]
|
30
|
+
@desc[
|
31
|
+
Used to create a book. By default, it includes the following macros:
|
32
|
+
* @document@
|
33
|
+
** @head@
|
34
|
+
*** @style\[default.css\]@
|
35
|
+
** @body@
|
36
|
+
*** @titlepage@
|
37
|
+
**** @title@
|
38
|
+
**** @pubdate@
|
39
|
+
**** @subtitle@
|
40
|
+
**** @revision@
|
41
|
+
**** @author@
|
42
|
+
]
|
43
|
+
@params[-p[0|The article contents.]]
|
44
|
+
@attrs[
|
45
|
+
-a[pre-title|Contents to include before the %>[title].]
|
46
|
+
-a[post-title|Contents to include after the %>[title].]
|
47
|
+
-a[head|Contents to include instead of the default code[head] macro.]
|
48
|
+
-a[pubdate|Contents to include instead of the default code[pubdate] macro.]
|
49
|
+
-a[titlepage|Contents to include instead of the default code[titlepage] macro.]
|
50
|
+
-a[frontmatter|Contents to include within a code[frontmatter] macro.]
|
51
|
+
-a[bodymatter|Contents to include within a code[bodymatter] macro.]
|
52
|
+
-a[backmatter|Contents to include within a code[backmatter] macro.]
|
53
|
+
]
|
54
|
+
]
|
55
|
+
|
56
|
+
ref_macro[
|
57
|
+
@n[document]
|
58
|
+
@desc[Creates an @<html>@ tag and a DOCTYPE declaration. Called internally by the %>[book] and the %>[article].]
|
59
|
+
@params[-p[0|The document contents.]]
|
60
|
+
]
|
61
|
+
|
62
|
+
ref_macro[
|
63
|
+
@n[head]
|
64
|
+
@desc[Creates a @<head>@ tag, pre-populated with @title@ and author/copyright @<meta>@ tags.]
|
65
|
+
@params[-p[0|The head contents.]]
|
66
|
+
]
|
67
|
+
|
68
|
+
ref_macro[
|
69
|
+
@n[section]
|
70
|
+
@desc[Creates a section (@<div>@ tag).]
|
71
|
+
@aliases[%[=Glyph['system.structure'].values.flatten.uniq.map{\|a\| a.to_s }.push("section").sort.join(', ')=]]
|
72
|
+
@block_example[=
|
73
|
+
section[
|
74
|
+
@title[Test Section]
|
75
|
+
@id[test]
|
76
|
+
...
|
77
|
+
]
|
78
|
+
=]
|
79
|
+
@params[-p[0|The text of the section]]
|
80
|
+
@attrs[
|
81
|
+
-a[title|The title of the section &[opt]]
|
82
|
+
-a[id|The ID of the section &[opt]]
|
83
|
+
-a[notoc|If not blank, the header will not appear in the Table of Contents. &[opt]]
|
84
|
+
]
|
85
|
+
]
|
86
|
+
|
87
|
+
ref_macro[
|
88
|
+
@n[style]
|
89
|
+
@desc[Embeds the content of a CSS or Sass file within a @<style>@ tag (\.fmi[stylesheets|#stylesheets]).]
|
90
|
+
@example[=style[default.css]=]
|
91
|
+
@params[-p[0|The stylesheet file to embed.]]
|
92
|
+
]
|
93
|
+
|
94
|
+
ref_macro[
|
95
|
+
@n[toc]
|
96
|
+
@desc[Generates a _Table of Contents_ based on how sections are nested in the current document.]
|
97
|
+
@example[=toc[1]=]
|
98
|
+
@params[-p[0|The maximum header depth of the TOC &[opt].]]
|
99
|
+
]
|
100
|
+
]
|