glyph 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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