glyph 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/AUTHORS.textile +8 -0
  2. data/CHANGELOG.textile +260 -0
  3. data/LICENSE.textile +26 -0
  4. data/README.textile +49 -21
  5. data/Rakefile +17 -7
  6. data/VERSION +1 -1
  7. data/book/config.yml +11 -5
  8. data/book/document.glyph +24 -13
  9. data/book/lib/macros/reference.rb +41 -14
  10. data/book/output/html/glyph.html +2298 -687
  11. data/book/output/pdf/glyph.pdf +6218 -2698
  12. data/book/script/authors +1 -0
  13. data/book/script/changelog +1 -0
  14. data/book/script/compile.rb +8 -0
  15. data/book/script/license +1 -0
  16. data/book/script/prof +1 -0
  17. data/book/script/prof_results.htm +21079 -0
  18. data/book/script/readme +1 -0
  19. data/book/snippets.yml +3 -4
  20. data/book/text/acknowledgement.glyph +8 -0
  21. data/book/text/authoring.glyph +548 -0
  22. data/book/text/changelog.glyph +76 -0
  23. data/book/text/extending.glyph +224 -0
  24. data/book/text/{getting_started.textile → getting_started.glyph} +30 -24
  25. data/book/text/{introduction.textile → introduction.glyph} +22 -12
  26. data/book/text/license.glyph +21 -0
  27. data/book/text/{ref_commands.textile → ref_commands.glyph} +30 -8
  28. data/book/text/ref_config.glyph +108 -0
  29. data/book/text/ref_macros.glyph +378 -0
  30. data/book/text/troubleshooting.glyph +179 -0
  31. data/config.yml +16 -4
  32. data/glyph.gemspec +83 -22
  33. data/lib/glyph.rb +164 -31
  34. data/lib/glyph/commands.rb +98 -23
  35. data/lib/glyph/document.rb +13 -7
  36. data/lib/glyph/glyph_language.rb +9 -1
  37. data/lib/glyph/glyph_language.treetop +1 -1
  38. data/lib/glyph/interpreter.rb +19 -9
  39. data/lib/glyph/macro.rb +88 -11
  40. data/lib/glyph/macro_validators.rb +48 -0
  41. data/lib/glyph/node.rb +13 -1
  42. data/lib/glyph/system_extensions.rb +0 -28
  43. data/macros/common.rb +125 -31
  44. data/macros/filters.rb +19 -13
  45. data/macros/html/block.rb +119 -68
  46. data/macros/html/inline.rb +29 -3
  47. data/macros/html/structure.rb +40 -40
  48. data/spec/files/article.glyph +5 -0
  49. data/spec/lib/commands_spec.rb +98 -3
  50. data/spec/lib/document_spec.rb +15 -2
  51. data/spec/lib/glyph_spec.rb +39 -10
  52. data/spec/lib/interpreter_spec.rb +8 -2
  53. data/spec/lib/macro_spec.rb +54 -6
  54. data/spec/lib/macro_validators_spec.rb +33 -0
  55. data/spec/lib/node_spec.rb +11 -3
  56. data/spec/macros/filters_spec.rb +5 -5
  57. data/spec/macros/macros_spec.rb +185 -8
  58. data/spec/macros/textile_spec.rb +217 -0
  59. data/spec/spec_helper.rb +25 -15
  60. data/spec/tasks/generate_spec.rb +3 -3
  61. data/spec/tasks/load_spec.rb +11 -1
  62. data/spec/tasks/project_spec.rb +0 -3
  63. data/styles/coderay.css +121 -0
  64. data/styles/default.css +54 -20
  65. data/{book/styles/css3.css → styles/pagination.css} +35 -7
  66. data/styles/ultraviolet/active4d.css +114 -0
  67. data/styles/ultraviolet/all_hallows_eve.css +72 -0
  68. data/styles/ultraviolet/amy.css +147 -0
  69. data/styles/ultraviolet/blackboard.css +88 -0
  70. data/styles/ultraviolet/brilliance_black.css +605 -0
  71. data/styles/ultraviolet/brilliance_dull.css +599 -0
  72. data/styles/ultraviolet/cobalt.css +149 -0
  73. data/styles/ultraviolet/dawn.css +121 -0
  74. data/styles/ultraviolet/eiffel.css +121 -0
  75. data/styles/ultraviolet/espresso_libre.css +109 -0
  76. data/styles/ultraviolet/idle.css +62 -0
  77. data/styles/ultraviolet/iplastic.css +80 -0
  78. data/styles/ultraviolet/lazy.css +73 -0
  79. data/styles/ultraviolet/mac_classic.css +123 -0
  80. data/styles/ultraviolet/magicwb_amiga.css +104 -0
  81. data/styles/ultraviolet/pastels_on_dark.css +188 -0
  82. data/styles/ultraviolet/slush_poppies.css +85 -0
  83. data/styles/ultraviolet/spacecadet.css +51 -0
  84. data/styles/ultraviolet/sunburst.css +180 -0
  85. data/styles/ultraviolet/twilight.css +137 -0
  86. data/styles/ultraviolet/zenburnesque.css +91 -0
  87. data/tasks/generate.rake +45 -26
  88. data/tasks/load.rake +21 -18
  89. data/tasks/project.rake +3 -1
  90. metadata +210 -41
  91. data/book/styles/default.css +0 -190
  92. data/book/text/authoring.textile +0 -351
  93. data/book/text/extending.textile +0 -148
  94. data/book/text/ref_config.textile +0 -0
  95. data/book/text/ref_macros.textile +0 -256
  96. data/book/text/troubleshooting.textile +0 -118
  97. data/styles/css3.css +0 -220
@@ -1,148 +0,0 @@
1
- Glyph was created wih extensibility in mind. You can freely extend &[glang] by creating or overriding macros, to do whatever you like. Macro definitions are written in pure Ruby code and placed in @.rb@ files within the @/lib/macros@ folder of your project.
2
-
3
- section[header[Anatomy of a Macro]
4
-
5
- This is the source code of a fairly simple macro used to format a note :
6
-
7
- <notextile>
8
- code[=
9
- macro :note do
10
- %{<div class="#{@name}"><span class="note-title">#{@name.to_s.capitalize}</span>#{@value}
11
-
12
- </div>}
13
- end
14
- =]
15
- </notextile>
16
-
17
- The @macro@ method takes a single Symbol or String parameter, corresponding to the name of the macro. In this case, the entire block (or _body_ of the macro) is a String corresponding to what we want the macro to evaluate to: a @<div>@ tag containing a note.
18
-
19
- The body of the macro is evaluated in the context of the =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Macro|Glyph::Macro] class, therefore its instance variables (like codeph[@name] or codeph[@value]) can be used directly.
20
-
21
- box[Why using codeph[@name] instead of just "note"?|
22
- For the @note@ macro, it absolutely makes no difference. However, by using codeph[@name] it is possible to re-use the same code for the @tip@, @important@ and @caution@ macros as well, which are in fact only aliases of the @note@ macro:
23
-
24
- @macro_alias :important => :note@
25
- @macro_alias :tip => :note@
26
- @macro_alias :caution => :note@
27
- ] --[End box]
28
-
29
- The following table lists all the instance variables that can be used inside macros:
30
-
31
- table[
32
- tr[
33
- th[Variable]
34
- th[Description]
35
- ]
36
- tr[
37
- td[codeph[@node]]
38
- td[A =>[http://yardoc.org/docs/h3rald-glyph/Node|Node] containing information about the macro, within the document syntax tree. Useful for accessing parent and child macros, and the current =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Document|document]. Normally, macro nodes contain the following keys:
39
- - @:name@, the name of the macro
40
- - @:value@, the value (i.e. the contents, within the delimiters) of the macro
41
- - @:source@, a String identifying the source of the macro (a file, a snippet, etc.)
42
- - @:document@, the parsed document tree
43
-
44
- Note that the first three keys can also be accessed via instance variables.]
45
- ]
46
- tr[
47
- td[codeph[@name]]
48
- td[The name of the macro]
49
- ]
50
- tr[
51
- td[codeph[@value]]
52
- td[The full contents (including parameters and nested macros) within the macro delimiters.]
53
- ]
54
- tr[
55
- td[codeph[@source]]
56
- td[A String identifying the source of the macro (a file, a snippet, etc.) ]
57
- ]
58
- tr[
59
- td[codeph[@params]]
60
- td[The parameters passed to the macro. In other words, the value of the macro split by pipes (@|@).]
61
- ]
62
- ] --[End Table]
63
-
64
- ]
65
-
66
- section[header[Bookmarks and Headers]
67
-
68
- The =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Macro|Glyph::Macro] class also includes a few methods to check and store bookmarks and headers. Consider for example the following source code for the @anchor@ macro:
69
-
70
- <notextile>
71
- code[=
72
- macro :anchor do
73
- ident, title = @params
74
- macro_error "Bookmark '#{ident}' already exists" if bookmark? ident
75
- bookmark :id => ident, :title => title
76
- %{<a id="#{ident}">#{title}</a>}
77
- end
78
- =] </notextile>
79
-
80
- The @bookmark?@ method can be used to check the existance of a particular ID within the whole document, while the @bookmark@ method is used to store bookmark IDs and titles. In a similar way, you can use @header?@ and @header@ methods to check the existance of headers within the documents or store new ones.
81
-
82
- ]
83
-
84
- section[header[Using Placeholders]
85
-
86
- Sometimes you may need to access some data that will not be available until the entire document has been fully parsed and analyzed. For example, in order to be able to validate internal links, it is necessary to know in advance if the bookmark ID referenced in the link exists or not, either before (that's easy) or even _after_ the location of the link.
87
-
88
- Here's the source code of the @link@ macro:
89
-
90
- <notextile>
91
- code[=
92
- macro :link do
93
- href, title = @params
94
- if href.match /^#/ then
95
- anchor = href.gsub(/^#/, '').to_sym
96
- bmk = bookmark? anchor
97
- if bmk then
98
- title ||= bmk[:title]
99
- else
100
- plac = placeholder do |document|
101
- macro_error "Bookmark '#{anchor}' does not exist" unless document.bookmarks[anchor]
102
- document.bookmarks[anchor][:title]
103
- end
104
- title ||= plac
105
- end
106
- end
107
- title ||= href
108
- %{<a href="#{href}">#{title}</a>}
109
- end
110
- =] </notextile>
111
-
112
- If there's already a bookmark stored in the current document, then it is possible to retrieve its title and use it as link text. Otherwise, it is necessary to wait until the entire document has been fully processed and then check if the bookmark exists. To do so, use the @placeholder@ method. When called, this method returns an unique placeholder, which is then substituted with the value of the block, right before the document is finalized.
113
-
114
- Within the @placeholder@ block, the @document@ parameter is, by all means, the fully analyzed document.
115
- ]
116
-
117
- section[header[Interpreting Glyph Code]
118
-
119
- What if you need to evaluate some Glyph code _within_ a macro? Say for example you want to transform a parameter in a link, and you want to make sure that link gets validated exactly like the others, in this case, you can use the @interpret@ method, as follows:
120
-
121
- <notextile>
122
- code[=
123
- macro :fmi do
124
- topic, href = @params
125
- link = placeholder do |document|
126
- interpret "link[#{href}]"
127
- end
128
- %{<span class="fmi">for more information on #{topic}, see #{link}</span>}
129
- end
130
- =] </notextile>
131
-
132
- When the @interpreter@ method is called, the following happens:
133
- # A new Glyph document is created from the String passed to the method.
134
- # The bookmarks, headers and placeholders are passed from the main document to the new one. Because they are stored in Arrays or Hashes, they are passed by reference, so for example any new bookmark stored in the new document will also become available in the main document.
135
- # Any macro included in the String is evaluated, and the resulting text is returned by the method. Note that this new document does not get finalized: in other words, placeholders will be left as they are, and they'll eventually be replaced when _the main document_ is finalized.
136
-
137
- ]
138
-
139
- section[header[Further Reading]
140
-
141
- For more examples on how to create more complex macros, have a look at the =>[http://github.com/h3rald/glyph/tree/master/macros/|source code] of the existing ones.
142
-
143
- To gain a deeper understanding on how macros are executed, have a look at the following Glyph classes:
144
- * =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Macro|Glyph::Macro]
145
- * =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Interpreter|Glyph::Interpreter]
146
- * =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Document|Glyph::Document]
147
- * =>[http://yardoc.org/docs/h3rald-glyph/Glyph/Node|Node]
148
- ]
File without changes
@@ -1,256 +0,0 @@
1
- section[header[Common Macros]
2
-
3
- ref_macro[comment|
4
- Evaluates to nothing. Used to add comments in a Glyph document that will not be displayed in output files.
5
-
6
- aliases[--]
7
- example[--\[This is a comment. It will not be displayed in the output\]]
8
- ]
9
-
10
- ref_macro[todo|
11
- Saves the value as a TODO item, which can be printed using the #>[todo].
12
-
13
- example[todo\[Remember to do this.\]]
14
- ]
15
-
16
- ref_macro[snippet|
17
- Evaluates to the snippet referenced by its value.
18
-
19
- aliases[&]
20
- example[&\[glang\]]
21
- ]
22
-
23
- ref_macro[include|
24
- Evaluates to the contents of a text file stored in the @text/@ directory referenced by its value. If &[filter_by_ext], filters the contents of the file using the =>[#f_macros|filter macro] corresponding to the file extension.
25
-
26
- aliases[@]
27
- example[@\[introduction.textile\]]
28
- ]
29
-
30
- ref_macro[ruby|
31
- Evaluates its value as Ruby code (using @Kernel#instance_eval@).
32
-
33
- aliases[%]
34
- examples[
35
- %\[Time.now\]
36
- %\[Glyph::VERSION\]
37
- ]
38
- ]
39
-
40
- ref_macro[config|
41
- Evaluates to the configuration setting referenced by its value.
42
-
43
- aliases[$]
44
- example[$\[document.author\]]
45
- ]
46
-
47
- ref_macro[escape|
48
- Evaluates to its value. Commonly used with the escaping delimiters @\[=@ and @=\]@.
49
-
50
- aliases[.]
51
- example[.\[=Macros are escaped here =>\[#test\].=\]]
52
- ]
53
-
54
- ] --[End common macros]
55
-
56
- section[header[Filter Macros|f_macros]
57
-
58
- ref_macro[textile|
59
- Uses the RedCloth gem to transform the value into HTML or LaTeX, depending on the value of the $>[filters.target].
60
-
61
- &[called_on_files] with a @.textile@ extension.
62
-
63
- example[textile\[This is a *strong emphasis*.\]]
64
- ]
65
-
66
- ref_macro[markdown|
67
- Uses a markdown converter (BlueCloth, RDiscount, Maruku or Kramdown) to transform the value into HTML if the $>[filters.target] is set to @html@.
68
-
69
- &[called_on_files] with a @.markdown@ or a @.md@ extension.
70
-
71
- example[markdown\[This is *emphasized* text.\]]
72
- ]
73
-
74
- ] --[End filter macros]
75
-
76
- section[header[Block Macros]
77
-
78
- ref_macro[note|
79
- Creates a note @div@ containing the value.
80
-
81
- aliases[important, caution, tip]
82
- example[note\[This is a note.\]]
83
- ]
84
-
85
- ref_macro[box|
86
- Creates a titled box @div@.
87
-
88
- *Example:*
89
-
90
- code[
91
- box\[Why boxes?\|
92
- Boxes can be used to make a section of text stand out from the rest of the document.
93
- \]
94
- ]
95
- ]
96
-
97
- ref_macro[code|
98
- Used to render a block of code within @pre@ and @code@ tags. For inline code, see the %>[codeph].
99
-
100
- *Example:*
101
-
102
- code[
103
- code\[
104
- def hello
105
- puts "Hello World"
106
- end
107
- \]
108
- ]
109
-
110
- ]
111
-
112
- ref_macro[title|
113
- Renders the title of the document (based on the $>[document.title]) within a @h1@ tag.
114
-
115
- example[title\[\]]
116
- ]
117
-
118
- ref_macro[subtitle|
119
- Renders the subtitle of the document (based on the $>[document.subtitle]) within a @h2@ tag.
120
-
121
- example[subtitle\[\]]
122
- ]
123
-
124
- ref_macro[pubdate|
125
- Evaluates to a date string (in the format: _current-month_ _current-year_; or _%B_ _%Y_), within a @div@ tag.
126
-
127
- example[pubdate\[\]]
128
- ]
129
-
130
- ref_macro[img|
131
- Includes an image in the document, optionally scaled according to the specified width and height. The image must be stored within the @images/@ directory of the current project.
132
-
133
- examples[
134
- img\[icon.png\]
135
- img\[holidays/landscape.jpg\|70%\]
136
- img\[logo.svg\|50%\|50%\]
137
- ]
138
- ]
139
-
140
- ref_macro[fig|
141
- Includes an image in the document, with an optional caption.
142
-
143
- examples[
144
- fig\[diagram.png\]
145
- fig\[graph.png\|Monthly pageviews\]
146
- ]
147
- ]
148
-
149
- ref_macro[table|
150
- Evaluates to an HTML table. Used in conjunction with the =>[#m_tr|@tr@], =>[#m_td|@td@] and =>[#m_th|@th@] macros.
151
-
152
- *Example:*
153
-
154
- code[
155
- table\[
156
- tr\[
157
- th\[Name\]
158
- th\[Value\]
159
- \]
160
- tr\[
161
- td\[A\]
162
- td\[1\]
163
- \]
164
- tr\[
165
- td\[B\]
166
- td\[2\]
167
- \]
168
- \]
169
- ]
170
-
171
- ]
172
-
173
- ref_macro[tr|See =>[#m_table].]
174
- ref_macro[th|See =>[#m_table].]
175
- ref_macro[td|See =>[#m_table].]
176
-
177
-
178
- ] --[End block macros]
179
-
180
- section[header[Inline Macros]
181
-
182
- ref_macro[anchor|
183
- Creates a named anchor (or bookmark).
184
-
185
- aliases[bookmark, #]
186
- example[#\[test\|Test Bookmark\]]
187
- ]
188
-
189
- ref_macro[link|
190
- Creates an hyperlink (\.fmi[creating links|#links]).
191
-
192
- aliases[=>]
193
- examples[
194
- =>\[#introduction\]
195
- =>\[#troub\|Troubleshooting\]
196
- =>\[http://www.h3rald.com\|H3RALD.com\]
197
- ]
198
- ]
199
-
200
- ref_macro[codeph|
201
- Wraps the value in a @code@ tag.
202
-
203
- example[codeph\[Kernel.instance_eval\]]
204
-
205
- ]
206
-
207
- ref_macro[fmi|
208
- Creates a _For More Information_ link (for an example usage, see the %>[link]).
209
-
210
- example[fmi\[creating links\|#links\]]
211
- ]
212
-
213
- ] --[End inline macros]
214
-
215
- section[header[Structure Macros]
216
-
217
- ref_macro[div|
218
- Creates a @div@ tag.
219
-
220
- *Aliases:* todo[List div aliases]
221
- ]
222
-
223
- ref_macro[header|
224
- Creates an @h2@, @h3@, @h4@, etc. header (\.fmi[using headers|#sec_head]).
225
-
226
- examples[
227
- header\[Introduction\]
228
- header\[Getting Started\|gs\]
229
- ]
230
- ]
231
-
232
- ref_macro[document|
233
- The root macro used in every Glyph document.
234
- ]
235
-
236
- ref_macro[body|
237
- Creates a @body@ tag.
238
- ]
239
-
240
- ref_macro[head|
241
- Creates a @head@ tag, pre-populated with @title@ and author/copyright meta tags.
242
- ]
243
-
244
- ref_macro[style|
245
- Embeds the content of a CSS or Sass file within a @style@ tag (\.fmi[stylesheets|#stylesheets]).
246
-
247
- example[style\[default.css\]]
248
- ]
249
-
250
- ref_macro[toc|
251
- Generates a _Table of Contents_ based on how sections and headers are nested in the current document.
252
-
253
- example[toc\[\]]
254
- ]
255
-
256
- ] --[End structure macros]
@@ -1,118 +0,0 @@
1
- This chapter lists the most common error messages that can be returned when running a Glyph command. It does not aim to be an exhaustive list, especially if you =>[#extending|extended] Glyph by creating your own macros.
2
-
3
- section[header[Generic Errors]
4
-
5
- error_table[
6
- ref_error[Document contains syntax errors|
7
- This error is returned if the document was not parsed because of one or more syntax error.
8
-
9
- *At present, no indication on the exact location of the error(s) is provided*, so the only way to determine what went wrong is to try compiling a single file at a time (@glyph compile -s source-file@), and examine more closely the source of the files that do not compile.
10
- ]
11
- ref_error[Invalid alias: macro '_macro-name_' already exists|
12
- The alias name supplied to the @macro_alias@ method has already been used for another macro or alias.
13
- ]
14
- ref_error[Undefined macro '_macro-name_'|
15
- The document contains a macro that does not exist, i.e. it is not a standard or used-defined =>[#macro_ref|Glyph macro or alias].
16
- ]
17
- ref_error[An error occurred when generating _file-name_.pdf|
18
- Returned if Prince could not generate the PDF file or if Prince is not installed. Normally, Prince provides additional details on the specific error(s).
19
- ]
20
- ref_error[Glyph cannot generate PDF. Please specify a valid pdf_renderer setting|
21
- Returned if the @pdf_renderer@ setting has not be set to a valid PDF renderer. Currently, the only supported value for this setting is @prince@.
22
- ]
23
- ref_error[The current directory is not a valid Glyph project|
24
- Returned if a glyph command was executed outside a valid glyph project directory.
25
- ]
26
- ref_error[Invalid snippet file|
27
- The @snippet.yml@ file contains invalid data. Most likely, it does not evaluate to a Ruby Hash.
28
- ]
29
- ref_error[Directory '_directory-name_' is not empty|
30
- Returned when executing @glyph init@ in a directory that is not empty.
31
- ]
32
- ref_error[File '_file-name_' already exists|
33
- Returned if the name of an existing file was specified as a parameter for the @glyph add@ command.
34
- ]
35
- ]
36
- ] --[End Generic Errors]
37
-
38
-
39
-
40
- section[header[Command Errors]
41
-
42
- error_table[
43
-
44
- ref_error[Please specify a file name|
45
- No file name was specified for the @glyph add@ command.
46
- ]
47
-
48
- ref_error[Output target not specified|
49
- Returned if no target was specified for the @glyph compile@ command _and_ if the @document.output@ configuration setting is not set.
50
- ]
51
-
52
- ref_error[Unknown output target '_target-name_'|
53
- An unsupported output target was specified for the @glyph compile@ command. Only the following output targets are supported:
54
- - @html@
55
- - @pdf@
56
- ]
57
-
58
- ref_error[Too few/too many arguments|
59
- Returned if the @glyph config@ command was used with no arguments or more than two arguments respectively.
60
- ]
61
-
62
- ref_error[Unknown setting '_setting-name_'|
63
- The name of an unknown setting was specified for the @glyph config@ command.
64
- ]
65
- ]
66
- ] --[End Command Errors]
67
-
68
-
69
-
70
- section[header[Macro Errors]
71
-
72
- The following errors are displayed in the form:
73
-
74
- _macro-path_ _message_
75
-
76
- Where:
77
- * _macro-path_ is the full path to the macro that returned the error, within the document syntax tree, e.g. @document/body/bodymatter/chapter/section/header/&@ if the error occurrent in a snippet within the header of a section in the @bodymatter@ part of the document.
78
- * _message_ is the error message.
79
-
80
- error_table[
81
-
82
- ref_error[Mutual inclusion|
83
- This error is returned if a catch-22 situation occurs with macro inclusion, for example if the body of a snippet includes a reference to the same snippet.
84
- ]
85
- ref_error[Snippet '_snippet-id_' does not exist|
86
- Returned by the %>[snippet] if an invalid snippet was supplied.
87
- ]
88
- ref_error[File '_file-name_' not found|
89
- Returned by the %>[include] if an invalid file was supplied.
90
- ]
91
- ref_error[Filter macro '_macro-name_' not found|
92
- Returned by the %>[include] macro if the @filters.by_file_extension@ setting is set to @true@ but the file extension of the included file is not recognized as a filter macro.
93
- ]
94
- ref_error[RedCloth gem not installed. Please run: gem insall RedCloth|
95
- Returned by the %>[textile] if the RedCloth gem is not installed.
96
- ]
97
- ref_error[No MarkDown converter installed. Please run: gem insall bluecloth|
98
- Returned by the %>[markdown] if no valid Markup converter gem is installed.
99
-
100
- Glyph checks for: BlueCloth, Maruku, Kramdown and RDiscount.
101
- ]
102
- ref_error[Image/Figure not found|
103
- Retured by the %>[img] or the %>[fig] respectively, if the specified image file could not be found within the @images/@ folder.
104
- ]
105
- ref_error[Bookmark '_bookmark-name_' already exists|
106
- Returned by the %>[anchor] or by the %>[header] if the anchor ID supplied as parameter has already been used in the document.
107
- ]
108
- ref_error[Bookmark '_bookmark-name_' already exists|
109
- Returned by the %>[link] if the anchor ID supplied as parameter has not been used in the document.
110
- ]
111
- ref_error[Stylesheet '_file-name_' not found|
112
- Returned by the %>[style] if the .css or .sass file supplied as parameter was not found in the @styles/@ directory.
113
- ]
114
- ref_error[Haml is not installed. Please run: gem install haml|
115
- Returned by the %>[style] macro if a .sass file was passed as parameter but the Haml gem is not installed.
116
- ]
117
- ]
118
- ] --[End Macro Errors]