glyph 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. data/.gitignore +7 -0
  2. data/AUTHORS.textile +8 -7
  3. data/CHANGELOG.textile +89 -8
  4. data/LICENSE.textile +1 -2
  5. data/README.textile +89 -61
  6. data/Rakefile +12 -10
  7. data/VERSION +1 -1
  8. data/benchmark.rb +1 -1
  9. data/book/config.yml +18 -4
  10. data/book/document.glyph +269 -45
  11. data/book/images/glyph/commands_tasks.png +0 -0
  12. data/book/images/{document_generation.png → glyph/document_generation.png} +0 -0
  13. data/book/images/glyph/glyph.eps +123 -0
  14. data/book/images/glyph/glyph.png +0 -0
  15. data/book/images/glyph/glyph.svg +29 -0
  16. data/book/lib/commands/commands.rb +11 -0
  17. data/book/lib/layouts/bookindex.glyph +127 -0
  18. data/book/lib/layouts/bookpage.glyph +129 -0
  19. data/book/lib/layouts/project.glyph +26 -0
  20. data/book/lib/macros/reference.rb +27 -7
  21. data/book/lib/tasks/tasks.rake +52 -0
  22. data/book/snippets.yml +1 -1
  23. data/book/text/{acknowledgement.glyph → acknowledgements.glyph} +4 -2
  24. data/book/text/changelog.glyph +29 -3
  25. data/book/text/compiling/compiling.glyph +44 -20
  26. data/book/text/compiling/lite_mode.glyph +0 -4
  27. data/book/text/compiling/programmatic_usage.glyph +1 -5
  28. data/book/text/config/document.glyph +35 -0
  29. data/book/text/config/filters.glyph +28 -0
  30. data/book/text/config/options.glyph +25 -0
  31. data/book/text/config/output.glyph +83 -0
  32. data/book/text/extending/bookmarks_headers.glyph +0 -5
  33. data/book/text/extending/command.glyph +56 -0
  34. data/book/text/extending/commands_tasks.glyph +39 -0
  35. data/book/text/extending/further_reading.glyph +0 -3
  36. data/book/text/extending/internals.glyph +3 -5
  37. data/book/text/extending/interpreting.glyph +0 -4
  38. data/book/text/extending/layouts.glyph +68 -0
  39. data/book/text/extending/macro_def.glyph +0 -5
  40. data/book/text/extending/output_format.glyph +78 -0
  41. data/book/text/extending/params_attrs.glyph +0 -3
  42. data/book/text/extending/placeholders.glyph +0 -4
  43. data/book/text/extending/task.glyph +46 -0
  44. data/book/text/extending/validators.glyph +5 -6
  45. data/book/text/getting_started/configuration.glyph +1 -5
  46. data/book/text/getting_started/create_project.glyph +1 -5
  47. data/book/text/getting_started/structure.glyph +0 -4
  48. data/book/text/introduction.glyph +100 -75
  49. data/book/text/license.glyph +1 -2
  50. data/book/text/macros/macros_block.glyph +8 -4
  51. data/book/text/macros/macros_core.glyph +0 -3
  52. data/book/text/macros/macros_filters.glyph +2 -7
  53. data/book/text/macros/macros_inline.glyph +0 -4
  54. data/book/text/macros/macros_structure.glyph +0 -4
  55. data/book/text/ref_commands.glyph +29 -7
  56. data/book/text/stats/bookmarks.glyph +49 -0
  57. data/book/text/stats/links.glyph +90 -0
  58. data/book/text/stats/macros.glyph +73 -0
  59. data/book/text/stats/snippets.glyph +50 -0
  60. data/book/text/stats/stats.glyph +79 -0
  61. data/book/text/text_editing/attribute_intro.glyph +22 -0
  62. data/book/text/text_editing/code.glyph +0 -5
  63. data/book/text/text_editing/conditionals.glyph +0 -4
  64. data/book/text/text_editing/esc_quot.glyph +64 -0
  65. data/book/text/text_editing/evaluation.glyph +0 -3
  66. data/book/text/text_editing/glyph_files.glyph +0 -3
  67. data/book/text/text_editing/images.glyph +0 -5
  68. data/book/text/text_editing/inclusions.glyph +0 -4
  69. data/book/text/text_editing/links.glyph +2 -7
  70. data/book/text/text_editing/macro_intro.glyph +1 -98
  71. data/book/text/text_editing/raw_html.glyph +0 -87
  72. data/book/text/text_editing/section_aliases.glyph +28 -0
  73. data/book/text/text_editing/sections.glyph +1 -32
  74. data/book/text/text_editing/stylesheets.glyph +3 -5
  75. data/book/text/text_editing/topics.glyph +33 -0
  76. data/book/text/text_editing/xml_fallback.glyph +73 -0
  77. data/book/text/troubleshooting/errors_command.glyph +0 -3
  78. data/book/text/troubleshooting/errors_generic.glyph +21 -6
  79. data/book/text/troubleshooting/errors_macro.glyph +11 -8
  80. data/book/text/troubleshooting/errors_parser.glyph +0 -3
  81. data/config.yml +60 -25
  82. data/glyph.gemspec +90 -36
  83. data/layouts/web/index.glyph +16 -0
  84. data/layouts/web/topic.glyph +15 -0
  85. data/layouts/web5/index.glyph +16 -0
  86. data/layouts/web5/topic.glyph +17 -0
  87. data/lib/glyph.rb +36 -49
  88. data/lib/glyph/analyzer.rb +253 -0
  89. data/lib/glyph/bookmark.rb +92 -0
  90. data/lib/glyph/commands.rb +9 -221
  91. data/lib/glyph/commands/add.rb +8 -0
  92. data/lib/glyph/commands/compile.rb +93 -0
  93. data/lib/glyph/commands/config.rb +38 -0
  94. data/lib/glyph/commands/init.rb +6 -0
  95. data/lib/glyph/commands/outline.rb +45 -0
  96. data/lib/glyph/commands/stats.rb +48 -0
  97. data/lib/glyph/commands/todo.rb +29 -0
  98. data/lib/glyph/config.rb +2 -0
  99. data/lib/glyph/document.rb +61 -30
  100. data/lib/glyph/interpreter.rb +2 -2
  101. data/lib/glyph/macro.rb +14 -5
  102. data/lib/glyph/macro_helpers.rb +280 -0
  103. data/lib/glyph/macro_validators.rb +37 -2
  104. data/lib/glyph/reporter.rb +182 -0
  105. data/lib/glyph/syntax_node.rb +37 -10
  106. data/lib/glyph/system_extensions.rb +8 -45
  107. data/lib/glyph/utils.rb +148 -0
  108. data/macros/core.rb +10 -15
  109. data/macros/filters.rb +4 -5
  110. data/macros/html/block.rb +46 -30
  111. data/macros/html/inline.rb +9 -35
  112. data/macros/html/structure.rb +59 -72
  113. data/macros/html5/block.rb +69 -0
  114. data/macros/html5/inline.rb +24 -0
  115. data/macros/html5/structure.rb +139 -0
  116. data/macros/xml.rb +1 -1
  117. data/spec/files/custom_command.rb +6 -0
  118. data/spec/files/custom_tasks.rake +6 -0
  119. data/spec/files/document_for_stats.glyph +12 -0
  120. data/spec/files/references.glyph +4 -0
  121. data/spec/files/web1.glyph +11 -0
  122. data/spec/files/web2.glyph +10 -0
  123. data/spec/files/web_doc.glyph +23 -0
  124. data/spec/lib/analyzer_spec.rb +137 -0
  125. data/spec/lib/bookmark_spec.rb +64 -0
  126. data/spec/lib/commands_spec.rb +30 -5
  127. data/spec/lib/document_spec.rb +49 -9
  128. data/spec/lib/glyph_spec.rb +21 -1
  129. data/spec/lib/macro_spec.rb +6 -6
  130. data/spec/lib/macro_validators_spec.rb +24 -0
  131. data/spec/lib/reporter_spec.rb +132 -0
  132. data/spec/macros/core_spec.rb +2 -3
  133. data/spec/macros/filters_spec.rb +2 -2
  134. data/spec/macros/html5_spec.rb +101 -0
  135. data/spec/macros/macros_spec.rb +16 -6
  136. data/spec/macros/web5_spec.rb +32 -0
  137. data/spec/macros/web_spec.rb +59 -0
  138. data/spec/macros/xml_spec.rb +1 -1
  139. data/spec/spec_helper.rb +24 -4
  140. data/spec/tasks/generate_spec.rb +54 -0
  141. data/spec/tasks/load_spec.rb +29 -3
  142. data/spec/tasks/project_spec.rb +21 -3
  143. data/styles/default.css +40 -4
  144. data/styles/pagination.css +59 -41
  145. data/tasks/generate.rake +110 -31
  146. data/tasks/load.rake +39 -7
  147. data/tasks/project.rake +9 -7
  148. metadata +115 -34
  149. data/book/images/glyph.png +0 -0
  150. data/book/images/glyph.svg +0 -351
  151. data/book/output/html/glyph.html +0 -4482
  152. data/book/output/html/images/document_generation.png +0 -0
  153. data/book/output/html/images/glyph.png +0 -0
  154. data/book/output/html/images/glyph.svg +0 -351
  155. data/book/output/pdf/glyph.pdf +4 -10254
  156. data/book/script/authors +0 -1
  157. data/book/script/changelog +0 -1
  158. data/book/script/license +0 -1
  159. data/book/script/readme +0 -1
  160. data/book/text/ref_config.glyph +0 -100
  161. data/book/text/ref_macros.glyph +0 -6
  162. data/book/text/troubleshooting/errors_intro.glyph +0 -3
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ thumbs.db
3
+ .rvmrc*
4
+ .bundle
5
+ Gemfile.lock
6
+ book/output
7
+ book/output/*
data/AUTHORS.textile CHANGED
@@ -1,8 +1,9 @@
1
- Glyph was designed and developed by <a href="http://www.h3rald.com">Fabio Cevasco</a> (h3rald).
2
-
3
- Special thanks to the following individuals who contributed to Glyph by reporting and fixing issues and/or proposing and implementing new features:
4
- * <a href="http://www.jabbslad.com">Jamie Atkinson</a> (Jabbslad)
5
- * <a href="http://koraktor.github.com">Sebastian Staudt</a> (koraktor)
6
-
7
-
1
+ <p>Glyph was designed and developed by <a href="http://www.h3rald.com">Fabio Cevasco</a> (h3rald).</p>
2
+ <p>Special thanks to the following individuals who contributed to Glyph by reporting and fixing issues and/or proposing and implementing new features:</p>
3
+ <ul>
4
+ <li><a href="http://www.jabbslad.com">Jamie Atkinson</a> (Jabbslad)</li>
5
+ <li><a href="http://koraktor.github.com">Sebastian Staudt</a> (koraktor)</li>
6
+ <li><a href="http://balcone.eveel.ru">Dmitry A. Ustalov</a> (eveel)</li>
7
+ <li><a href="http://www.stuartellis.eu">Stuart Ellis</a> (stuartellis)</li>
8
+ </ul>
8
9
 
data/CHANGELOG.textile CHANGED
@@ -4,9 +4,90 @@
4
4
 
5
5
 
6
6
  <div class="section">
7
- <h2 id="h_1">v0.3.0 &ndash; June 13th 2010</h2>
7
+ <h2 id="h_1">v0.4.0 &ndash; September 3th 2010</h2>
8
8
  <div class="section">
9
- <h3 id="h_2">27 Features Implemented</h3>
9
+ <h3 id="h_2">13 Features Implemented</h3>
10
+ <table><tr><th>ID</th>
11
+ <th>Description</th></tr>
12
+
13
+
14
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/40">#40</a></td>
15
+ <td><p>A new stats command can be used to display statistics about project files, snippets, macros, bookmarks and links.</p></td></tr>
16
+
17
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/73">#73</a></td>
18
+ <td><p>It is now possible to validate online <span class="caps">HTTP</span> links.</p></td></tr>
19
+
20
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/112">#112</a></td>
21
+ <td><p>It is now possible to use <em>wkhtmltopdf</em> instead of Prince to generate <span class="caps">PDF</span> files from <span class="caps">HTML</span> files.</p></td></tr>
22
+
23
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/114">#114</a></td>
24
+ <td><p>It is now possible to generate documents comprised of multiple files (topics).</p></td></tr>
25
+
26
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/115">#115</a></td>
27
+ <td><p>It is now possible to define layouts (used when generating multi-file outputs) using Glyph macros.</p></td></tr>
28
+
29
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/120">#120</a></td>
30
+ <td><p>It is now possible to compile your project to a single HTML5 file (<code>html5</code> output) or multiple files (<code>web5</code> output)</p></td></tr>
31
+
32
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/135">#135</a></td>
33
+ <td><p>Stylesheets can now be linked and imported as well as embedded.</p></td></tr>
34
+
35
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/138">#138</a></td>
36
+ <td><p><code>web</code> and <code>web5</code> output formats inherit <code>html</code> macros.</p></td></tr>
37
+
38
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/142">#142</a></td>
39
+ <td><p>A new navigation macro can be used in <code>web</code> and <code>web5</code> outputs to navigate through topics.</p></td></tr>
40
+
41
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/143">#143</a></td>
42
+ <td><p>A topic-based <span class="caps">TOC</span> is generated when compiling to <code>web</code> or <code>web5</code></p></td></tr>
43
+
44
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/144">#144</a></td>
45
+ <td><p>Two new validators are now available to check whether a macro has (or doesn&#8217;t have) a certain ancestor: <code>within</code> and <code>not_within</code>.</p></td></tr>
46
+
47
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/147">#147</a></td>
48
+ <td><p>The default stylesheets provided by Glyph are now compatible with HTML5 outputs (html5 and web5).</p></td></tr>
49
+
50
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/148">#148</a></td>
51
+ <td><p>It is now possible to create custom tasks and commands to extend Glyph functionality.</p></td></tr></table>
52
+
53
+ </div>
54
+
55
+
56
+ <div class="section">
57
+ <h3 id="h_3">7 Bugs Fixed</h3>
58
+ <table><tr><th>ID</th>
59
+ <th>Description</th></tr>
60
+
61
+
62
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/133">#133</a></td>
63
+ <td><p>Added <span class="caps">HTML</span> charset to Glyph documents (utf-8).</p></td></tr>
64
+
65
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/136">#136</a></td>
66
+ <td><p>Moved utility functions to separate <code>Glyph::Utils</code> module.</p></td></tr>
67
+
68
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/139">#139</a></td>
69
+ <td><p>Heavily restructured Glyph configuration.</p></td></tr>
70
+
71
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/140">#140</a></td>
72
+ <td><p>Added <code>Glyph::Macro::Helpers</code> module to avoid code duplication in macros for different output formats.</p></td></tr>
73
+
74
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/141">#141</a></td>
75
+ <td><p>Prevented non-rb files to be loaded as macros.</p></td></tr>
76
+
77
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/145">#145</a></td>
78
+ <td><p>Dotfiles are now ignored by init command.</p></td></tr>
79
+
80
+ <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/167">#167</a></td>
81
+ <td><p>Fixed <span class="caps">PDF</span> book download links.</p></td></tr></table>
82
+
83
+ </div>
84
+
85
+ </div>
86
+
87
+ <div class="section">
88
+ <h2 id="h_4">v0.3.0 &ndash; June 13th 2010</h2>
89
+ <div class="section">
90
+ <h3 id="h_5">13 Features Implemented</h3>
10
91
  <table><tr><th>ID</th>
11
92
  <th>Description</th></tr>
12
93
 
@@ -42,7 +123,7 @@
42
123
  <td><p>A new alias macro has been implemented to create macro aliases.</p></td></tr>
43
124
 
44
125
  <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/128">#128</a></td>
45
- <td><p>A blacklist for <span class="caps">XML</span> tags has been exposed via the language.options.xml_blacklist setting.</p></td></tr>
126
+ <td><p>A blacklist for <span class="caps">XML</span> tags has been exposed via the <code>language.options.xml_blacklist</code> setting.</p></td></tr>
46
127
 
47
128
  <tr><td><a href="http://github.com/h3rald/glyph/issues/closed#issue/129">#129</a></td>
48
129
  <td><p>The include macro can now be used in lite mode, it can evaluate ruby files and requires relative paths.</p></td></tr>
@@ -54,7 +135,7 @@
54
135
 
55
136
 
56
137
  <div class="section">
57
- <h3 id="h_3">7 Bugs Fixed</h3>
138
+ <h3 id="h_6">3 Bugs Fixed</h3>
58
139
  <table><tr><th>ID</th>
59
140
  <th>Description</th></tr>
60
141
 
@@ -73,9 +154,9 @@
73
154
  </div>
74
155
 
75
156
  <div class="section">
76
- <h2 id="h_4">v0.2.0 &ndash; May 9th 2010</h2>
157
+ <h2 id="h_7">v0.2.0 &ndash; May 9th 2010</h2>
77
158
  <div class="section">
78
- <h3 id="h_5">23 Features Implemented</h3>
159
+ <h3 id="h_8">11 Features Implemented</h3>
79
160
  <table><tr><th>ID</th>
80
161
  <th>Description</th></tr>
81
162
 
@@ -117,7 +198,7 @@
117
198
 
118
199
 
119
200
  <div class="section">
120
- <h3 id="h_6">17 Bugs Fixed</h3>
201
+ <h3 id="h_9">8 Bugs Fixed</h3>
121
202
  <table><tr><th>ID</th>
122
203
  <th>Description</th></tr>
123
204
 
@@ -151,7 +232,7 @@
151
232
  </div>
152
233
 
153
234
  <div class="section">
154
- <h2 id="h_7">v0.1.0 &ndash; April 8th 2010</h2>
235
+ <h2 id="h_10">v0.1.0 &ndash; April 8th 2010</h2>
155
236
  Initial release.
156
237
 
157
238
  </div>
data/LICENSE.textile CHANGED
@@ -1,5 +1,4 @@
1
- Copyright (c) 2010 **Fabio Cevasco**, <a href="http://www.h3rald.com">http://www.h3rald.com</a>
2
-
1
+ <p>Copyright &copy; 2010 <strong>Fabio Cevasco</strong>, <a href="http://www.h3rald.com">http://www.h3rald.com</a></p>
3
2
 
4
3
  <div class="code">
5
4
  <pre>
data/README.textile CHANGED
@@ -1,58 +1,27 @@
1
-
2
1
  Glyph is a _Rapid Document Authoring Framework_.
3
2
 
4
- With Glyph, you can manage your documents tidily in _projects_ and generate deliverables in different formats such as HTML or PDF (through <a href="http://www.princexml.com/">Prince</a>).
5
-
6
- <div class="section">
3
+ With Glyph, creating and maintaining any kind of document becomes as easy as... _programming_. Glyph enables you to minimize text duplication, focus on content rather than presentation, manage references seamlessly and automate tedious tasks through a simple but effective macro language, specifically geared towards customization and extensibility.
4
+
5
+ <div class="section">
7
6
  <h2 id="h_1">Main Features</h2>
8
- Glyph comes with its very own macro system to perform a wide variety of advanced tasks:
9
- * Generate block-level HTML tags not commonly managed by lightweight markups, like @head@, @body@, @div@ and @table@.
10
- * Create and validate internal and external links.
11
- * Include and validate images and figures.
12
- * Automatically determine header levels based on the document structure.
13
- * Automatically generate a Table of Contents based on the document structure.
14
- * Store common snippets of text in a single YAML file and use them anywhere in your document, as many times as you need.
15
- * Store configuration settings in a YAML file and use them anywhere in your document, as many times as you need.
16
- * Evaluate Ruby code within your document.
17
- * Include content only if certain conditions are satisfied.
18
- * Define macros, snippets and configuration settings directly within your document.
19
- * Highlight source code.
20
- * Call macros from other macros (including snippets), avoiding mutual calls.
21
- * Include text files within other text files.
22
- * Include the value of any configuration setting (like author, title) in the document.
23
- * Filter input explicitly or implicitly (based on file extensions).
24
- * Manage draft comments and todo items.
25
- * Provide a simple, less-verbose syntax to write XML code.
26
-
27
- </div>
28
-
29
7
  <div class="section">
30
- <h2 id="h_2">Installation</h2>
31
- @gem install glyph@ -- simple, as always.
32
-
33
- </div>
34
-
35
- <div class="section">
36
- <h2 id="h_3">Essential Glyph commands</h2>
8
+ <h3 id="h_2">Command Line Interface</h3>
37
9
  Glyph is 100% command line. Its interface resambles <a href="http://git-scm.com/">Git's</a> for its simplicity and power (thanks to the <a href="http://github.com/davetron5000/gli">gli</a> gem). Here are some example commands:
38
10
 
39
11
  * @glyph init@ -- to initialize a new Glyph project in the current (empty) directory.
40
12
  * @glyph add introduction.textile@ -- to create a new file called _introduction.textile_.
41
13
  * @glyph compile@ -- to compile the current document into a single HTML file.
42
14
  * @glyph compile --auto@ -- to keep recompiling the current document every time a file is changed.
43
- * @glyph compile -f pdf@ -- to compile the current document into HTML and then transform it into PDF using <a href="http://www.princexml.com/">Prince</a>.
15
+ * @glyph compile -f pdf@ -- to compile the current document into HTML and then transform it into PDF.
44
16
  * @glyph compile readme.glyph@ -- to compile a _readme.glyph_ located in the current directory into a single HTML file.
45
17
  * @glyph outline -l 2@ -- Display the document outline, up to second-level headers.
18
+ * @glyph stats@ -- Display project statistics.
46
19
 
47
20
  </div>
48
-
49
- <div class="section">
50
- <h2 id="macros_nutshell">Glyph macros in a nutshell</h2>
51
- Format your documents using Textile or Markdown, and use Glyph Macros to do everything else:
52
-
53
- **Glyph Source:**
54
-
55
-
21
+ <div class="section">
22
+ <h3 id="h_3">Minimalist Syntax</h3>
23
+ Glyph syntax rules can be explained using Glyph itself:
24
+
56
25
  <div class="code">
57
26
  <pre>
58
27
  <code>
@@ -63,26 +32,24 @@ You can use Glyph macros in conjunction
63
32
  with _Textile_ or _Markdown_ to
64
33
  produce HTML files effortlessly.
65
34
  ]
66
- p[
67
- Alternatively, you can just use em[Glyph itself]
68
- to generate HTML tags.
69
- ]
35
+ p[Alternatively, you can just use em[Glyph itself] to generate HTML tags.]
70
36
  section[
71
37
  @title[What about PDFs?]
72
38
  @id[pdf]
39
+ p[
73
40
  Once you have a single, well-formatted HTML
74
41
  file, converting it to PDF is
75
- extremely easy with a 3rd-party
76
- renderer like =>[http://www.princexml.com|Prince].
42
+ extremely easy with a free 3rd-party
43
+ renderer like =>[http://www.princexml.com|Prince]
44
+ or =>[http://code.google.com/p/wkhtmltopdf/|wkhtmltopdf].
45
+ ]
77
46
  ]
78
47
  ]
79
48
  </code>
80
49
  </pre>
81
50
  </div>
82
-
83
- **HTML Output:**
84
-
85
-
51
+ The Glyph code above corresponds to the following HTML code:
52
+
86
53
  <div class="code">
87
54
  <pre>
88
55
  <code>
@@ -93,17 +60,18 @@ renderer like =>[http://www.princexml.com|Prince].
93
60
  <em>Textile</em> or <em>Markdown</em> to
94
61
  produce HTML files effortlessly.
95
62
  </p>
63
+ <p>
64
+ Alternatively, you can just use <em>Glyph itself</em>
65
+ to generate HTML tags.
66
+ </p>
96
67
  <div class="section">
97
68
  <h3 id="pdf">What about PDFs?</h3>
98
69
  <p>
99
70
  Once you have a single, well-formatted HTML
100
71
  file, converting it to PDF is
101
- extremely easy with a 3rd-party renderer
102
- like <a href="http://www.princexml.com">Prince</a>.
103
- </p>
104
- <p>
105
- Alternatively, you can just use <em>Glyph itself</em>
106
- to generate HTML tags.
72
+ extremely easy with a free 3rd-party renderer
73
+ like <a href="http://www.princexml.com">Prince</a>
74
+ or <a href="http://code.google.com/p/wkhtmltopdf/\">wkhtmltopdf</a>.
107
75
  </p>
108
76
  </div>
109
77
  </div>
@@ -112,16 +80,76 @@ renderer like =>[http://www.princexml.com|Prince].
112
80
  </div>
113
81
 
114
82
  </div>
83
+ <div class="section">
84
+ <h3 id="h_4">Content Reuse</h3>
85
+ Finding yourself repeating the same sentence over an over? Glyph allows you to create snippets. Within snippets. Within other snippets (and so on, for a long long time...) as long as you don't define a snippet by defining itself, which would be kinda nasty (and Glyph would complain!):
86
+
87
+ <div class="code">
88
+ <pre>
89
+ <code>
90
+ snippet:[entities|snippets and macros]
91
+ snippet:[custom_definitions|
92
+ p[Glyph allows you to define your own &[entities].]
93
+ ]
94
+ &[custom_definitions]
95
+ </code>
96
+ </pre>
97
+ </div>
98
+ ...which results in:
99
+
100
+ <div class="code">
101
+ <pre>
102
+ <code>
103
+ <p>Glyph allows you to define your own snippets and macros.</p>
104
+ </code>
105
+ </pre>
106
+ </div>
107
+ If yourself dreaming about _parametric_ snippets, just create your own macros (see the <a href="http://github.com/h3rald/glyph/blob/master/book/text/changelog.glyph">source</a> of Glyph's changelog, just to have an idea).
115
108
 
116
- <div class="section">
117
- <h2 id="h_5">Resources</h2>
109
+ </div>
110
+ <div class="section">
111
+ <h3 id="h_5">Automation of Common Tasks</h3>
112
+ If you're writing a book, you shouldn't have to worry about pagination, headers, footers, table of contents, section numbering or similar. Glyph understands you, and will take care of everything for you (with a little help from CSS3, sometimes).
113
+
114
+ </div>
115
+ <div class="section">
116
+ <h3 id="h_6">Reference Validation</h3>
117
+ Feel free to add plenty of links, snippets, bookmarks, ... if Glyph doesn't find something, it will definitely complain. Broken references are a thing on the past, and you don't need to worry about it.
118
+
119
+ </div>
120
+ <div class="section">
121
+ <h3 id="h_7">Extreme Extensibility</h3>
122
+ * You miss a <code>!!!</code> macro to format really, _really_ important things? Create it. In under 3 seconds, in Ruby or Glyph itself. And yes, you can use special characters, too.
123
+ * You want your own, very special special @glyph create --everything@ command to create all _you_ need in a Glyph project? You can do it. Using your own Rake tasks, too.
124
+ * You want Glyph to output ODF files? You can do it, and you'll be able to run @glyph generate -f odf@. This would probably require a little more time, but it's trivial, from a technical point of view.
125
+
126
+ </div>
127
+ <div class="section">
128
+ <h3 id="h_8">Convention over Configuration</h3>
129
+ Put your text files in @/text@, your images in @/images@, add custom macros in a @macro@ folder within your @/lib@ folder... you get the picture: Glyph has its special places.
130
+
131
+ Nonetheless, you also have 1 (_one_) configuration file to customize to your heart's content (with smart defaults).
132
+
133
+ </div>
134
+ <div class="section">
135
+ <h3 id="h_9">Free and Open Source</h3>
136
+ Glyph is 100% Open Source Software, developed using the Ruby Programming Language and licensed under the very permissive terms of the <a href="http://www.opensource.org/licenses/mit-license.php">MIT License</a>.
137
+
138
+ If you have Ruby installed, just run @gem install glyph@. That's all it takes.
139
+
140
+ </div>
141
+
142
+ </div>
143
+ <div class="section">
144
+ <h2 id="h_10">Resources</h2>
118
145
  * Home Page: <a href="http://www.h3rald.com/glyph/">http://www.h3rald.com/glyph/</a>
119
146
  * Repository: <a href="http://www.github.com/h3rald/glyph/">http://www.github.com/h3rald/glyph/</a>
120
147
  * Bug Tracking: <a href="http://www.github.com/h3rald/glyph/issues">http://www.github.com/h3rald/glyph/issues</a>
121
148
  * Development Wiki <a href="http://wiki.github.com/h3rald/glyph">http://wiki.github.com/h3rald/glyph</a>
122
149
  * RubyGem Download <a href="http://www.rubygems.org/gems/glyph">http://www.rubygems.org/gems/glyph</a>
123
- * Book (PDF): <a href="http://github.com/h3rald/glyph/raw/0.2.0/book/output/pdf/glyph.pdf">http://github.com/h3rald/glyph/raw/0.2.0/book/output/pdf/glyph.pdf</a>
124
- * Reference Documentation: <a href="http://yardoc.org/docs/h3rald-glyph/">http://yardoc.org/docs/h3rald-glyph/</a>
150
+ * Book (PDF): <a href="http://github.com/downloads/h3rald/glyph/glyph.pdf">http://github.com/downloads/h3rald/glyph/glyph.pdf</a>
151
+ * Book (Web): <a href="http://www.h3rald.com/glyph/book/">http://www.h3rald.com/glyph/book/</a>
152
+ * Reference Documentation: <a href="http://rubydoc.info/gems/glyph/">http://rubydoc.info/gems/glyph/</a>
125
153
  * User Group: <a href="http://groups.google.com/group/glyph-framework">http://groups.google.com/group/glyph-framework</a>
126
154
 
127
155
  </div>
data/Rakefile CHANGED
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
- $: << File.expand_path(File.dirname(__FILE__) + '/lib')
2
+ lib = File.expand_path(File.dirname(__FILE__) + '/lib')
3
+ $: << lib
3
4
  require 'rubygems'
4
5
  require 'rake/clean'
5
- require 'glyph'
6
+ require "#{lib}/glyph.rb"
6
7
 
7
8
  task :default => :spec
8
9
 
@@ -27,16 +28,17 @@ begin
27
28
  s.email = "h3rald@h3rald.com"
28
29
  s.homepage = "http://www.h3rald.com/glyph/"
29
30
  s.authors = ["Fabio Cevasco"]
30
- s.files.include "styles/**/*"
31
- s.files.include "book/**/*"
32
- s.add_dependency 'gli', '>= 0.3.1' # Command line interface
33
- s.add_dependency 'extlib', '>= 0.9.12' # Extension methods
31
+ s.files.exclude 'book/output/web/**/*'
32
+ s.files.exclude 'book/output/web5/**/*'
33
+ s.files.exclude 'book/output/html5/**/*'
34
+ s.add_dependency 'gli', '>= 1.1.1' # Command line interface
35
+ s.add_dependency 'extlib', '>= 0.9.15' # Extension methods
34
36
  s.add_dependency 'rake', '>= 0.8.7' # Glyph rasks
35
- s.add_development_dependency 'rspec', '>= 1.1.11' # Test suite
36
- s.add_development_dependency 'yard', '>= 1.5.4' # Documentation suite
37
+ s.add_development_dependency 'rspec', '>= 1.3.0' # Test suite
38
+ s.add_development_dependency 'yard', '>= 0.6.0' # Documentation suite
37
39
  s.add_development_dependency 'jeweler', '1.4.0' # Gem management
38
40
  s.add_development_dependency 'directory_watcher', ">= 1.3.2" # Auto-regeneration
39
- s.add_development_dependency 'haml', ">= 3.0.6" # Sass filter
41
+ s.add_development_dependency 'haml', ">= 3.0.15" # Sass filter
40
42
  s.add_development_dependency 'RedCloth', ">= 4.2.3" # Textile filter
41
43
  s.add_development_dependency 'bluecloth', ">= 2.0.7" # Markdown filter
42
44
  s.add_development_dependency 'coderay', ">= 0.9.3" # Syntax Highlighting
@@ -47,7 +49,7 @@ rescue LoadError
47
49
  end
48
50
 
49
51
  begin
50
- require 'spec/rake/spectask'
52
+ require "spec/rake/spectask"
51
53
  Spec::Rake::SpecTask.new('spec') do |t|
52
54
  t.spec_files = FileList['spec/**/*_spec.rb']
53
55
  t.spec_opts = ["--color"]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
data/benchmark.rb CHANGED
@@ -66,7 +66,7 @@ Benchmark.bm(30) do |x|
66
66
  sep
67
67
  puts " => Macro Set: XML"
68
68
  reset_glyph
69
- Glyph['language.set'] = 'xml'
69
+ Glyph['options.macro_set'] = 'xml'
70
70
  Glyph.run! 'load:all'
71
71
  rep(x, "HTML text") { macro_exec html }
72
72
  end
data/book/config.yml CHANGED
@@ -1,11 +1,25 @@
1
1
  ---
2
2
  :document:
3
3
  :output: html
4
- :title: Glyph
5
4
  :subtitle: Rapid Document Authoring Framework
6
5
  :author: Fabio Cevasco
7
- :revision: "v0.3.0"
8
- :filename: glyph
9
6
  :draft: true
10
- :filters:
7
+ :revision: v0.4.0
8
+ :filename: glyph
9
+ :title: Glyph
10
+ :styles: link
11
+ :output:
12
+ :h3rald:
13
+ :multifile: true
14
+ :extension: '.html'
15
+ :filter_target: 'html'
16
+ :base: '/glyph/book/'
17
+ :macro_dirs: ['html']
18
+ :layout_dirs: ['web']
19
+ :layouts:
20
+ :topic: bookpage
21
+ :index: bookindex
22
+ :pdf:
23
+ :generator: prince
24
+ :filters:
11
25
  :highlighter: ultraviolet