glyph 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.textile +1 -1
- data/CHANGELOG.textile +119 -222
- data/LICENSE.textile +1 -1
- data/README.textile +42 -23
- data/Rakefile +1 -3
- data/VERSION +1 -1
- data/benchmark.rb +72 -0
- data/book/config.yml +4 -4
- data/book/document.glyph +90 -57
- data/book/images/document_generation.png +0 -0
- data/book/lib/macros/reference.rb +75 -22
- data/book/output/html/glyph.html +3183 -2121
- data/book/output/html/images/document_generation.png +0 -0
- data/book/output/pdf/glyph.pdf +7370 -4913
- data/book/resources/document_generation.txt +34 -0
- data/book/snippets.yml +6 -0
- data/book/text/changelog.glyph +45 -34
- data/book/text/compiling/compiling.glyph +23 -0
- data/book/text/compiling/lite_mode.glyph +23 -0
- data/book/text/compiling/programmatic_usage.glyph +77 -0
- data/book/text/extending/bookmarks_headers.glyph +21 -0
- data/book/text/extending/further_reading.glyph +13 -0
- data/book/text/extending/internals.glyph +79 -0
- data/book/text/extending/interpreting.glyph +51 -0
- data/book/text/extending/macro_def.glyph +64 -0
- data/book/text/extending/params_attrs.glyph +70 -0
- data/book/text/extending/placeholders.glyph +34 -0
- data/book/text/extending/validators.glyph +16 -0
- data/book/text/getting_started/configuration.glyph +49 -0
- data/book/text/getting_started/create_project.glyph +41 -0
- data/book/text/getting_started/structure.glyph +55 -0
- data/book/text/introduction.glyph +49 -26
- data/book/text/license.glyph +1 -1
- data/book/text/macros/macros_block.glyph +99 -0
- data/book/text/macros/macros_core.glyph +208 -0
- data/book/text/macros/macros_filters.glyph +40 -0
- data/book/text/macros/macros_inline.glyph +50 -0
- data/book/text/macros/macros_structure.glyph +100 -0
- data/book/text/ref_commands.glyph +94 -73
- data/book/text/ref_config.glyph +34 -42
- data/book/text/ref_macros.glyph +1 -373
- data/book/text/text_editing/code.glyph +51 -0
- data/book/text/text_editing/conditionals.glyph +49 -0
- data/book/text/text_editing/evaluation.glyph +13 -0
- data/book/text/text_editing/glyph_files.glyph +7 -0
- data/book/text/text_editing/images.glyph +29 -0
- data/book/text/text_editing/inclusions.glyph +44 -0
- data/book/text/text_editing/links.glyph +53 -0
- data/book/text/text_editing/macro_intro.glyph +111 -0
- data/book/text/text_editing/raw_html.glyph +112 -0
- data/book/text/text_editing/sections.glyph +63 -0
- data/book/text/text_editing/stylesheets.glyph +36 -0
- data/book/text/troubleshooting/errors_command.glyph +39 -0
- data/book/text/troubleshooting/errors_generic.glyph +29 -0
- data/book/text/troubleshooting/errors_intro.glyph +3 -0
- data/book/text/troubleshooting/errors_macro.glyph +98 -0
- data/book/text/troubleshooting/errors_parser.glyph +29 -0
- data/config.yml +77 -58
- data/document.glyph +25 -25
- data/glyph.gemspec +57 -22
- data/lib/glyph.rb +54 -13
- data/lib/glyph/commands.rb +84 -17
- data/lib/glyph/config.rb +3 -3
- data/lib/glyph/document.rb +14 -8
- data/lib/glyph/interpreter.rb +18 -58
- data/lib/glyph/macro.rb +160 -55
- data/lib/glyph/macro_validators.rb +104 -12
- data/lib/glyph/node.rb +24 -0
- data/lib/glyph/parser.rb +278 -0
- data/lib/glyph/syntax_node.rb +225 -0
- data/macros/core.rb +212 -0
- data/macros/filters.rb +66 -15
- data/macros/html/block.rb +43 -105
- data/macros/html/inline.rb +11 -12
- data/macros/html/structure.rb +123 -58
- data/macros/xml.rb +33 -0
- data/spec/files/container.textile +2 -2
- data/spec/files/document.glyph +2 -2
- data/spec/files/document_with_toc.glyph +3 -3
- data/spec/files/included.textile +1 -1
- data/spec/files/ligature.jpg +0 -0
- data/spec/files/markdown.markdown +2 -1
- data/spec/lib/commands_spec.rb +46 -3
- data/spec/lib/document_spec.rb +4 -4
- data/spec/lib/glyph_spec.rb +17 -46
- data/spec/lib/interpreter_spec.rb +6 -25
- data/spec/lib/macro_spec.rb +141 -43
- data/spec/lib/macro_validators_spec.rb +27 -5
- data/spec/lib/node_spec.rb +26 -1
- data/spec/lib/parser_spec.rb +246 -0
- data/spec/lib/syntax_node_spec.rb +111 -0
- data/spec/macros/core_spec.rb +195 -0
- data/spec/macros/filters_spec.rb +38 -4
- data/spec/macros/macros_spec.rb +20 -176
- data/spec/macros/textile_spec.rb +13 -71
- data/spec/macros/xml_spec.rb +77 -0
- data/spec/spec_helper.rb +50 -10
- data/spec/tasks/load_spec.rb +13 -2
- data/styles/default.css +18 -6
- data/styles/pagination.css +1 -19
- data/tasks/generate.rake +2 -2
- data/tasks/load.rake +27 -17
- data/tasks/project.rake +1 -1
- metadata +75 -62
- data/book/script/compile.rb +0 -8
- data/book/script/prof +0 -1
- data/book/script/prof_results.htm +0 -21079
- data/book/text/authoring.glyph +0 -548
- data/book/text/extending.glyph +0 -224
- data/book/text/getting_started.glyph +0 -158
- data/book/text/troubleshooting.glyph +0 -179
- data/lib/glyph/glyph_language.rb +0 -538
- data/lib/glyph/glyph_language.treetop +0 -27
- data/macros/common.rb +0 -160
data/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..."
|