glyph 0.2.0 → 0.3.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.
- 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/spec/macros/textile_spec.rb
CHANGED
@@ -36,11 +36,11 @@ Testing:
|
|
36
36
|
|
37
37
|
it "should be embeddable in section macros" do
|
38
38
|
text1 =
|
39
|
-
%{textile[section[
|
39
|
+
%{textile[section[@title[Test]
|
40
40
|
#@textile
|
41
41
|
]]}
|
42
42
|
text2 =
|
43
|
-
%{textile[section[
|
43
|
+
%{textile[section[@title[Test]#@textile
|
44
44
|
]]}
|
45
45
|
result =
|
46
46
|
%{<div class="section">
|
@@ -48,67 +48,9 @@ Testing:
|
|
48
48
|
#@html
|
49
49
|
</div>}
|
50
50
|
filter(text1).should == result
|
51
|
-
filter(text2).gsub(/<\/h2>/, "</h2
|
51
|
+
filter(text2).gsub(/<\/h2>/, "</h2>").should == result
|
52
52
|
end
|
53
53
|
|
54
|
-
######################################
|
55
|
-
|
56
|
-
it "should be embeddable in td macros" do
|
57
|
-
text0 =
|
58
|
-
%{<table>
|
59
|
-
<tr>
|
60
|
-
<td>
|
61
|
-
#@textile
|
62
|
-
</td>
|
63
|
-
</tr>
|
64
|
-
</table>
|
65
|
-
}
|
66
|
-
text1 =
|
67
|
-
%{textile[table[
|
68
|
-
tr[td[#@textile]]
|
69
|
-
]]}
|
70
|
-
text2 =
|
71
|
-
%{textile[table[
|
72
|
-
tr[
|
73
|
-
td[#@textile]
|
74
|
-
]
|
75
|
-
]]}
|
76
|
-
text3 =
|
77
|
-
%{textile[table[
|
78
|
-
tr[
|
79
|
-
td[
|
80
|
-
#@textile
|
81
|
-
]
|
82
|
-
]
|
83
|
-
]]}
|
84
|
-
text4 = %{textile[table[
|
85
|
-
tr[
|
86
|
-
td[This is a _test_.]
|
87
|
-
]
|
88
|
-
]]}
|
89
|
-
result =
|
90
|
-
%{<table>
|
91
|
-
<tr>
|
92
|
-
<td>
|
93
|
-
#@html
|
94
|
-
</td>
|
95
|
-
</tr>
|
96
|
-
</table>}
|
97
|
-
result2 =
|
98
|
-
%{<table>
|
99
|
-
<tr>
|
100
|
-
<td>
|
101
|
-
<p>This is a <em>test</em>.</p>
|
102
|
-
</td>
|
103
|
-
</tr>
|
104
|
-
</table>}
|
105
|
-
filter(text1).should == result
|
106
|
-
filter(text2).should == result
|
107
|
-
filter(text3).should == result
|
108
|
-
##### Check inline textile
|
109
|
-
filter(text4).should == result2
|
110
|
-
end
|
111
|
-
|
112
54
|
######################################
|
113
55
|
|
114
56
|
it "should be embeddable in box macros" do
|
@@ -177,33 +119,33 @@ Testing:
|
|
177
119
|
</div>
|
178
120
|
</div>}
|
179
121
|
text1 = %{textile[
|
180
|
-
section[
|
122
|
+
section[@title[Test]
|
181
123
|
#@textile
|
182
|
-
|
124
|
+
codeblock[#{code}]
|
183
125
|
]]}
|
184
126
|
text2 = %{textile[
|
185
|
-
section[
|
127
|
+
section[@title[Test]
|
186
128
|
#@textile
|
187
|
-
|
129
|
+
codeblock[#{code}
|
188
130
|
]
|
189
131
|
]
|
190
132
|
]}
|
191
133
|
text3 = %{textile[
|
192
|
-
section[
|
134
|
+
section[@title[Test]
|
193
135
|
#@textile
|
194
|
-
|
136
|
+
codeblock[
|
195
137
|
#{code}]
|
196
138
|
]]}
|
197
139
|
text4 = %{textile[
|
198
|
-
section[
|
140
|
+
section[@title[Test]
|
199
141
|
#@textile
|
200
|
-
|
142
|
+
codeblock[
|
201
143
|
#{code}
|
202
144
|
]]]}
|
203
145
|
text5 = %{textile[
|
204
|
-
section[
|
146
|
+
section[@title[Test]
|
205
147
|
#@textile
|
206
|
-
|
148
|
+
codeblock[
|
207
149
|
#{code}
|
208
150
|
]
|
209
151
|
]]}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
3
|
+
|
4
|
+
describe "Glyph Language" do
|
5
|
+
|
6
|
+
before do
|
7
|
+
create_project
|
8
|
+
end
|
9
|
+
|
10
|
+
after do
|
11
|
+
reset_quiet
|
12
|
+
language('glyph')
|
13
|
+
delete_project
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should support XML fallback by default" do
|
17
|
+
Glyph.run 'load:all'
|
18
|
+
output_for(%{
|
19
|
+
i[test]
|
20
|
+
code[
|
21
|
+
test
|
22
|
+
]
|
23
|
+
}).gsub(/\s+/, '').should == %{
|
24
|
+
<i>test</i>
|
25
|
+
<code>
|
26
|
+
test
|
27
|
+
</code>}.gsub(/\s+/, '')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should support XML macros" do
|
31
|
+
language('xml')
|
32
|
+
output_for("pre[code[test]]").should == "<pre>\n<code>test</code>\n</pre>"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should support XML attributes" do
|
36
|
+
language('xml')
|
37
|
+
output_for("span[@class[test] @style[color:red;] test...]").should == %{
|
38
|
+
<span class="test" style="color:red;">test...</span>
|
39
|
+
}.strip
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should detect invalid characters for XML elements and attributes" do
|
43
|
+
language('xml')
|
44
|
+
lambda { interpret("!&test[test]").document }.should raise_error
|
45
|
+
output_for("span[@class[test]@.[test]test]").should == %{<span class="test">test</span>}
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should notify the user that a macro is not found for invalid elements if xml_fallback is enabled" do
|
49
|
+
# Assuming language.options.xml_fallback = true
|
50
|
+
language('glyph')
|
51
|
+
lambda { interpret("*a[test]").document }.should raise_error(Glyph::MacroError, "Unknown macro '*a'")
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should not render blacklisted tags" do
|
55
|
+
language('xml')
|
56
|
+
text = %{
|
57
|
+
object[test]
|
58
|
+
applet[test]
|
59
|
+
base[test]
|
60
|
+
basefont[test]
|
61
|
+
embed[test]
|
62
|
+
frame[test]
|
63
|
+
frameset[test]
|
64
|
+
iframe[test]
|
65
|
+
isindex[test]
|
66
|
+
test[test]
|
67
|
+
meta[test]
|
68
|
+
noframes[test]
|
69
|
+
noscript[test]
|
70
|
+
object[test]
|
71
|
+
param[test]
|
72
|
+
title[tesy]
|
73
|
+
}
|
74
|
+
output_for(text).gsub(/\s/, '').should == "<test>test</test>"
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -14,7 +14,7 @@ end
|
|
14
14
|
|
15
15
|
require "glyph"
|
16
16
|
|
17
|
-
Glyph[
|
17
|
+
Glyph['system.quiet'] = true
|
18
18
|
|
19
19
|
def create_project_dir
|
20
20
|
Glyph::PROJECT.mkpath
|
@@ -22,7 +22,7 @@ end
|
|
22
22
|
|
23
23
|
def reset_quiet
|
24
24
|
Glyph.reset
|
25
|
-
Glyph[
|
25
|
+
Glyph['system.quiet'] = true
|
26
26
|
end
|
27
27
|
|
28
28
|
def create_project
|
@@ -32,15 +32,15 @@ def create_project
|
|
32
32
|
Glyph.run! 'project:create', Glyph::PROJECT.to_s
|
33
33
|
file_copy Glyph::SPEC_DIR/'files/container.textile', Glyph::PROJECT/'text/container.textile'
|
34
34
|
(Glyph::PROJECT/'text/a/b/c').mkpath
|
35
|
-
file_copy Glyph::SPEC_DIR/'files/included.textile', Glyph::PROJECT/'text/a
|
36
|
-
file_copy Glyph::SPEC_DIR/'files/markdown.markdown', Glyph::PROJECT/'text/a
|
35
|
+
file_copy Glyph::SPEC_DIR/'files/included.textile', Glyph::PROJECT/'text/a/b/c/included.textile'
|
36
|
+
file_copy Glyph::SPEC_DIR/'files/markdown.markdown', Glyph::PROJECT/'text/a/b/c/markdown.markdown'
|
37
37
|
file_copy Glyph::SPEC_DIR/'files/document.glyph', Glyph::PROJECT/'document.glyph'
|
38
38
|
file_copy Glyph::SPEC_DIR/'files/test.sass', Glyph::PROJECT/'styles/test.sass'
|
39
39
|
file_copy Glyph::SPEC_DIR/'files/ligature.jpg', Glyph::PROJECT/'images/ligature.jpg'
|
40
40
|
end
|
41
41
|
|
42
42
|
def delete_project_dir
|
43
|
-
|
43
|
+
return unless Glyph::PROJECT.exist?
|
44
44
|
Glyph::PROJECT.children.each do |f|
|
45
45
|
FileUtils.rmtree f if f.directory?
|
46
46
|
FileUtils.rm f if f.file?
|
@@ -61,9 +61,9 @@ def run_command(cmd)
|
|
61
61
|
old_stderr = $stderr
|
62
62
|
$stdout = out
|
63
63
|
$stderr = out
|
64
|
-
Glyph[
|
64
|
+
Glyph['system.quiet'] = false
|
65
65
|
GLI.run cmd
|
66
|
-
Glyph[
|
66
|
+
Glyph['system.quiet'] = true
|
67
67
|
$stdout = old_stdout
|
68
68
|
$stderr = old_stderr
|
69
69
|
out.string
|
@@ -75,22 +75,33 @@ end
|
|
75
75
|
|
76
76
|
def define_em_macro
|
77
77
|
Glyph.macro :em do
|
78
|
-
%{<em>#{
|
78
|
+
%{<em>#{value.to_s.strip}</em>}
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
82
|
def define_ref_macro
|
83
83
|
Glyph.macro :ref do
|
84
|
-
%{<a href="#{
|
84
|
+
%{<a href="#{parameter(0).to_s.strip}">#{parameter(1).to_s.strip}</a>}
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
def language(set)
|
89
|
+
reset_quiet
|
90
|
+
Glyph.run 'load:config'
|
91
|
+
Glyph['language.set'] = set
|
92
|
+
Glyph.run 'load:macros'
|
93
|
+
end
|
94
|
+
|
88
95
|
def interpret(text)
|
89
96
|
@p = Glyph::Interpreter.new(text)
|
90
97
|
end
|
91
98
|
|
99
|
+
def output_for(text)
|
100
|
+
Glyph::Interpreter.new(text).document.output
|
101
|
+
end
|
102
|
+
|
92
103
|
def create_tree(text)
|
93
|
-
|
104
|
+
Glyph::Interpreter.new(text).parse
|
94
105
|
end
|
95
106
|
|
96
107
|
def create_doc(tree)
|
@@ -100,3 +111,32 @@ end
|
|
100
111
|
def filter(text)
|
101
112
|
Glyph.filter text
|
102
113
|
end
|
114
|
+
|
115
|
+
def text_node(value, options={})
|
116
|
+
Glyph::TextNode.new.from({:value => value}.merge options)
|
117
|
+
end
|
118
|
+
|
119
|
+
def escape_node(value, options={})
|
120
|
+
Glyph::EscapeNode.new.from({:value => value, :escaped => true})
|
121
|
+
end
|
122
|
+
|
123
|
+
def document_node
|
124
|
+
Glyph::DocumentNode.new.from({:name => "--".to_sym})
|
125
|
+
end
|
126
|
+
|
127
|
+
def a_node(name, options={})
|
128
|
+
Glyph::AttributeNode.new.from({
|
129
|
+
:name => :"#{name}",
|
130
|
+
:escape => false}.merge(options))
|
131
|
+
end
|
132
|
+
|
133
|
+
def p_node(n)
|
134
|
+
Glyph::ParameterNode.new.from({:name => :"#{n}"})
|
135
|
+
end
|
136
|
+
|
137
|
+
def macro_node(name, options={})
|
138
|
+
Glyph::MacroNode.new.from({
|
139
|
+
:name => name.to_sym,
|
140
|
+
:escape => false
|
141
|
+
}.merge options)
|
142
|
+
end
|
data/spec/tasks/load_spec.rb
CHANGED
@@ -35,13 +35,24 @@ describe "load" do
|
|
35
35
|
Glyph::MACROS[:"#"].blank?.should == false
|
36
36
|
end
|
37
37
|
|
38
|
+
it "[macros] should be able to load only core macros" do
|
39
|
+
language 'core'
|
40
|
+
output_for("$:[language.set|glyph]").blank?.should == true
|
41
|
+
Glyph['language.set'].should == 'glyph'
|
42
|
+
end
|
43
|
+
|
44
|
+
it "[macros] should be able to load only filter macros" do
|
45
|
+
language 'filters'
|
46
|
+
output_for("textile[*test*]").should == "<p><strong>test</strong></p>"
|
47
|
+
end
|
48
|
+
|
38
49
|
it "[config] should load configuration files and apply overrides" do
|
39
50
|
Glyph.config_refresh
|
40
51
|
lambda { Glyph.run! 'load:config'}.should_not raise_error
|
41
|
-
Glyph[
|
52
|
+
Glyph['system.quiet'] = true
|
42
53
|
Glyph::PROJECT_CONFIG.blank?.should == false
|
43
54
|
Glyph::SYSTEM_CONFIG.blank?.should == false
|
44
|
-
Glyph['structure.headers'].class.to_s.should == "Array"
|
55
|
+
Glyph['system.structure.headers'].class.to_s.should == "Array"
|
45
56
|
end
|
46
57
|
|
47
58
|
end
|
data/styles/default.css
CHANGED
@@ -31,7 +31,7 @@ body {
|
|
31
31
|
}
|
32
32
|
|
33
33
|
/* Structure */
|
34
|
-
.titlepage {
|
34
|
+
.halftitlepage, .titlepage {
|
35
35
|
margin: auto;
|
36
36
|
text-align: center;
|
37
37
|
}
|
@@ -41,7 +41,7 @@ body {
|
|
41
41
|
line-height: 1.5em;
|
42
42
|
margin-bottom: 0.2em;
|
43
43
|
}
|
44
|
-
.titlepage h2 {
|
44
|
+
.halftitlepage h2, .titlepage h2 {
|
45
45
|
font-size: 1.1em;
|
46
46
|
font-style: italic;
|
47
47
|
font-weight: bold;
|
@@ -128,6 +128,13 @@ sup {
|
|
128
128
|
background: #EEE;
|
129
129
|
color: #1F1F1F;
|
130
130
|
}
|
131
|
+
.note>p,
|
132
|
+
.important>p,
|
133
|
+
.tip>p,
|
134
|
+
.caution>p {
|
135
|
+
margin: 0;
|
136
|
+
padding: 0;
|
137
|
+
}
|
131
138
|
.note-title {
|
132
139
|
font-weight: bold;
|
133
140
|
margin-right: 1em;
|
@@ -197,8 +204,13 @@ code, pre {
|
|
197
204
|
font-size: 0.75em;
|
198
205
|
}
|
199
206
|
pre{
|
200
|
-
|
201
|
-
padding:
|
207
|
+
border: 1px solid #cecece;
|
208
|
+
padding: 0.5em;
|
209
|
+
background: #ededed;
|
210
|
+
}
|
211
|
+
span.line-numbers{
|
212
|
+
margin: 0;
|
213
|
+
padding: 3px;
|
202
214
|
}
|
203
215
|
|
204
216
|
pre>code {
|
@@ -214,11 +226,11 @@ td>div.code, td>code {
|
|
214
226
|
}
|
215
227
|
|
216
228
|
/* FONTS */
|
229
|
+
|
217
230
|
body {
|
218
|
-
font-family: "Book Antiqua", "Times New Roman", "Serif";
|
231
|
+
font-family: "Gentium Book Basic", "Book Antiqua", "Times New Roman", "Serif";
|
219
232
|
}
|
220
233
|
|
221
234
|
code, pre {
|
222
235
|
font-family: "Droid Sans Mono", "Consolas", "Monaco", "Courier", "Monospace";
|
223
236
|
}
|
224
|
-
|
data/styles/pagination.css
CHANGED
@@ -1,21 +1,3 @@
|
|
1
|
-
/* FONTS */
|
2
|
-
|
3
|
-
@font-face {
|
4
|
-
font-family: "Serif"
|
5
|
-
src: local("Book Antiqua")
|
6
|
-
}
|
7
|
-
|
8
|
-
@font-face {
|
9
|
-
font-family: "Monospace"
|
10
|
-
src: local("Droid Sans Mono")
|
11
|
-
}
|
12
|
-
body {
|
13
|
-
font-family: "Book Antiqua", "Times New Roman", "Serif";
|
14
|
-
}
|
15
|
-
|
16
|
-
code, pre {
|
17
|
-
font-family: "Droid Sans Mono", "Consolas", "Monaco", "Courier", "Monospace";
|
18
|
-
}
|
19
1
|
@page {
|
20
2
|
size: A4;
|
21
3
|
margin: 40pt 30pt 40pt 30pt;
|
@@ -187,7 +169,7 @@ h2 {
|
|
187
169
|
page-break-before: always;
|
188
170
|
}
|
189
171
|
|
190
|
-
.titlepage h2 {
|
172
|
+
.halftitlepage h2, .titlepage h2 {
|
191
173
|
page-break-before: avoid;
|
192
174
|
}
|
193
175
|
|
data/tasks/generate.rake
CHANGED
@@ -4,13 +4,13 @@ namespace :generate do
|
|
4
4
|
|
5
5
|
desc "Process source"
|
6
6
|
task :document => ["load:all"] do
|
7
|
-
Glyph.info "Parsing '#{Glyph['document.source']}'..."
|
8
7
|
if Glyph.lite? then
|
9
8
|
text = file_load Pathname.new(Glyph['document.source'])
|
10
9
|
else
|
11
10
|
text = file_load Glyph::PROJECT/Glyph['document.source']
|
12
11
|
end
|
13
|
-
interpreter = Glyph::Interpreter.new text, :source =>
|
12
|
+
interpreter = Glyph::Interpreter.new text, :source => {:name => "#{Glyph['document.source']}"}, :info => true
|
13
|
+
interpreter.parse
|
14
14
|
Glyph.info "Processing..."
|
15
15
|
interpreter.process
|
16
16
|
Glyph.info "Post-processing..."
|