deplate 0.7.3 → 0.8

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 (160) hide show
  1. data/AUTHORS.TXT +3 -0
  2. data/CHANGES.TXT +248 -175
  3. data/LICENSE.TXT +0 -0
  4. data/NEWS.TXT +28 -24
  5. data/README.TXT +0 -0
  6. data/TODO.TXT +174 -88
  7. data/VERSION.TXT +1 -1
  8. data/bin/deplate +0 -0
  9. data/bin/deplate.bat +0 -0
  10. data/etc/deplate.ini +91 -3
  11. data/lib/action_view/helpers/deplate.rb +45 -0
  12. data/lib/deplate.rb +6 -1
  13. data/lib/deplate/abstract-class.rb +0 -0
  14. data/lib/deplate/bib.rb +576 -0
  15. data/lib/deplate/builtin.rb +0 -0
  16. data/lib/deplate/cache.rb +55 -5
  17. data/lib/deplate/commands.rb +346 -183
  18. data/lib/deplate/common.rb +209 -48
  19. data/lib/deplate/converter.rb +12 -6
  20. data/lib/deplate/core.rb +777 -378
  21. data/lib/deplate/counters.rb +254 -0
  22. data/lib/deplate/css/article.css +4 -3
  23. data/lib/deplate/css/deplate.css +121 -5
  24. data/lib/deplate/css/heading-navbar.css +0 -0
  25. data/lib/deplate/css/layout-deplate-print.css +0 -0
  26. data/lib/deplate/css/layout-deplate.css +0 -0
  27. data/lib/deplate/css/sans-serif.css +0 -0
  28. data/lib/deplate/css/serif-e.css +0 -0
  29. data/lib/deplate/css/serif-rel.css +0 -0
  30. data/lib/deplate/css/serif.css +9 -3
  31. data/lib/deplate/css/slides.css +0 -0
  32. data/lib/deplate/css/tabbar-left.css +0 -0
  33. data/lib/deplate/css/tabbar-right-ie.css +3 -9
  34. data/lib/deplate/css/tabbar-right.css +51 -18
  35. data/lib/deplate/css/tabbar-top.css +7 -1
  36. data/lib/deplate/css/tabbar.css +0 -0
  37. data/lib/deplate/css/text-sans-serif.css +0 -0
  38. data/lib/deplate/css/text-serif.css +0 -0
  39. data/lib/deplate/define.rb +183 -177
  40. data/lib/deplate/deplate-string.rb +82 -0
  41. data/lib/deplate/docbook.rb +236 -128
  42. data/lib/deplate/elements.rb +584 -417
  43. data/lib/deplate/etc.rb +163 -101
  44. data/lib/deplate/external.rb +42 -11
  45. data/lib/deplate/fmt/dbk-article-4.1.2.rb +0 -0
  46. data/lib/deplate/fmt/dbk-article.rb +0 -0
  47. data/lib/deplate/fmt/dbk-book.rb +0 -0
  48. data/lib/deplate/fmt/dbk-ref.rb +3 -3
  49. data/lib/deplate/fmt/dbk-slides.rb +0 -0
  50. data/lib/deplate/fmt/dbk-snippet.rb +0 -0
  51. data/lib/deplate/fmt/html-snippet.rb +0 -0
  52. data/lib/deplate/fmt/html.rb +783 -550
  53. data/lib/deplate/fmt/htmlsite.rb +192 -199
  54. data/lib/deplate/fmt/htmlslides.rb +0 -0
  55. data/lib/deplate/fmt/htmlwebsite.rb +3 -3
  56. data/lib/deplate/fmt/latex-snippet.rb +0 -0
  57. data/lib/deplate/fmt/latex.rb +242 -83
  58. data/lib/deplate/fmt/null.rb +32 -0
  59. data/lib/deplate/fmt/php.rb +4 -4
  60. data/lib/deplate/fmt/phpsite.rb +6 -5
  61. data/lib/deplate/fmt/plain.rb +160 -106
  62. data/lib/deplate/fmt/template.rb +0 -0
  63. data/lib/deplate/fmt/xhtml10t.rb +0 -0
  64. data/lib/deplate/formatter-snippet.rb +0 -0
  65. data/lib/deplate/formatter.rb +613 -301
  66. data/lib/deplate/input.rb +202 -142
  67. data/lib/deplate/input/deplate-headings.rb +4 -6
  68. data/lib/deplate/input/deplate-restricted.rb +15 -9
  69. data/lib/deplate/input/deplate.rb +2 -4
  70. data/lib/deplate/input/rdoc.rb +39 -38
  71. data/lib/deplate/input/template.rb +0 -0
  72. data/lib/deplate/lib/Makefile.config +29 -0
  73. data/lib/deplate/lib/latex/deplate.sty +54 -0
  74. data/lib/deplate/lib/latex/highlight-extra.sty +0 -0
  75. data/lib/deplate/lib/latex/highlight-typical.sty +0 -0
  76. data/lib/deplate/lib/php/page-comment.inc.php +216 -0
  77. data/lib/deplate/lib/tabmenu.js +0 -0
  78. data/lib/deplate/locale/de.latin1 +155 -17
  79. data/lib/deplate/locale/ru.koi8-r +0 -0
  80. data/lib/deplate/locale/zh_cn.gb2312 +0 -0
  81. data/lib/deplate/macros.rb +133 -82
  82. data/lib/deplate/messages.rb +6 -4
  83. data/lib/deplate/metadata.rb +0 -0
  84. data/lib/deplate/metadata/marshal.rb +0 -0
  85. data/lib/deplate/metadata/xml.rb +0 -0
  86. data/lib/deplate/metadata/yaml.rb +0 -0
  87. data/lib/deplate/mod/anyword.rb +3 -3
  88. data/lib/deplate/mod/babelfish.rb +4 -4
  89. data/lib/deplate/mod/code-gvim.rb +8 -4
  90. data/lib/deplate/mod/code-highlight.rb +3 -3
  91. data/lib/deplate/mod/colored-log.rb +0 -0
  92. data/lib/deplate/mod/de.rb +2 -2
  93. data/lib/deplate/mod/en.rb +0 -0
  94. data/lib/deplate/mod/endnotes.rb +0 -0
  95. data/lib/deplate/mod/fr.rb +0 -0
  96. data/lib/deplate/mod/html-asciimath.rb +0 -0
  97. data/lib/deplate/mod/html-deplate-button.rb +0 -0
  98. data/lib/deplate/mod/html-headings-navbar.rb +5 -13
  99. data/lib/deplate/mod/html-jsmath.rb +39 -0
  100. data/lib/deplate/mod/html-obfuscate-email.rb +3 -3
  101. data/lib/deplate/mod/html-sidebar.rb +0 -0
  102. data/lib/deplate/mod/htmlslides-navbar-fh.rb +3 -3
  103. data/lib/deplate/mod/iconv.rb +0 -0
  104. data/lib/deplate/mod/imgurl.rb +4 -4
  105. data/lib/deplate/mod/inlatex-compound.rb +7 -10
  106. data/lib/deplate/mod/koma.rb +0 -0
  107. data/lib/deplate/mod/latex-emph-table-head.rb +0 -0
  108. data/lib/deplate/mod/latex-styles.rb +7 -4
  109. data/lib/deplate/mod/latex-verbatim-small.rb +0 -0
  110. data/lib/deplate/mod/makefile.rb +23 -7
  111. data/lib/deplate/mod/mark-external-urls.rb +3 -3
  112. data/lib/deplate/mod/markup-1-warn.rb +10 -10
  113. data/lib/deplate/mod/markup-1.rb +0 -0
  114. data/lib/deplate/mod/navbar-png.rb +24 -8
  115. data/lib/deplate/mod/noindent.rb +0 -0
  116. data/lib/deplate/mod/numpara.rb +0 -0
  117. data/lib/deplate/mod/particle-math.rb +4 -4
  118. data/lib/deplate/mod/php-extra.rb +46 -6
  119. data/lib/deplate/mod/pstoedit.rb +0 -0
  120. data/lib/deplate/mod/recode.rb +0 -0
  121. data/lib/deplate/mod/ru_koi8-r.rb +0 -0
  122. data/lib/deplate/mod/smart-dash.rb +26 -0
  123. data/lib/deplate/mod/smiley.rb +69 -7
  124. data/lib/deplate/mod/soffice.rb +0 -0
  125. data/lib/deplate/mod/symbols-latin1.rb +14 -23
  126. data/lib/deplate/mod/symbols-od-utf-8.rb +5 -3
  127. data/lib/deplate/mod/symbols-plain.rb +5 -35
  128. data/lib/deplate/mod/symbols-sgml.rb +8 -9
  129. data/lib/deplate/mod/symbols-utf-8.rb +8 -9
  130. data/lib/deplate/mod/symbols-xml.rb +5 -9
  131. data/lib/deplate/mod/syntax-region-alt.rb +5 -5
  132. data/lib/deplate/mod/utf8.rb +0 -0
  133. data/lib/deplate/mod/validate-html.rb +0 -0
  134. data/lib/deplate/mod/xmlrpc.rb +0 -0
  135. data/lib/deplate/mod/zh-cn-autospace.rb +18 -20
  136. data/lib/deplate/mod/zh-cn.rb +4 -6
  137. data/lib/deplate/nukumi2.rb +71 -0
  138. data/lib/deplate/once-method.rb +0 -0
  139. data/lib/deplate/output.rb +19 -21
  140. data/lib/deplate/particles.rb +178 -116
  141. data/lib/deplate/regions.rb +99 -58
  142. data/lib/deplate/skeletons.rb +122 -0
  143. data/lib/deplate/structured.rb +164 -106
  144. data/lib/deplate/template.rb +67 -43
  145. data/lib/deplate/templates/html-doc.html +0 -0
  146. data/lib/deplate/templates/html-left-tabbar-js.html +0 -0
  147. data/lib/deplate/templates/html-left-tabbar.html +0 -0
  148. data/lib/deplate/templates/html-tabbar-right-pcomments.php +22 -0
  149. data/lib/deplate/templates/html-tabbar-right-step.html +24 -0
  150. data/lib/deplate/templates/html-tabbar-right-table.html +0 -0
  151. data/lib/deplate/templates/html-tabbar-right.html +2 -4
  152. data/lib/deplate/templates/html-tabbar-top.html +0 -9
  153. data/lib/deplate/templates/html-tabbar.html +0 -0
  154. data/lib/deplate/variables.rb +127 -0
  155. data/lib/deplate/wiki-markup.rb +99 -33
  156. data/lib/deplate/xml.rb +18 -18
  157. data/lib/deplate/zh-cn.rb +0 -0
  158. data/lib/ps2ppm.rb +0 -0
  159. data/man/man1/deplate.1 +564 -474
  160. metadata +201 -186
@@ -1,12 +1,12 @@
1
1
  /* Text style: sans-serif */
2
2
  /* @Author: Thomas Link (samul AT web.de) */
3
3
  /* @Created: 13-Apr-2004. */
4
- /* @Last Change: 27-Okt-2005. */
5
- /* @Revision: 0.624 */
4
+ /* @Last Change: 23-Apr-2006. */
5
+ /* @Revision: 0.626 */
6
6
 
7
7
  body, table, div {
8
8
  /* font-family: Georgia, Bookman, Times, Serif; */
9
- font-family: Georgia, Minion Web, Palatino, Book Antiqua, Utopia, "Times New Roman", serif;
9
+ font-family: Georgia, Minion Web, Palatino, "Book Antiqua", Utopia, "Times New Roman", serif;
10
10
  /* font-size-adjust: .5; */
11
11
  font-size: 14px;
12
12
  }
@@ -188,3 +188,9 @@ span.progress {
188
188
  font-size: 10px;
189
189
  }
190
190
 
191
+ input, textarea {
192
+ font-family: Georgia, Minion Web, Palatino, "Book Antiqua", Utopia, "Times New Roman", serif;
193
+ font-size: 90%;
194
+ line-height: 135%;
195
+ }
196
+
File without changes
File without changes
@@ -1,14 +1,8 @@
1
1
  @media screen {
2
- #tabBody {
3
- margin: 0px 40px 40px 240px;
4
- padding: 20px;
5
- }
6
- #tabBar {
2
+ #tabBarRight {
7
3
  position: relative;
8
- top: 10px;
4
+ /* top: 10px; */
9
5
  left: 10px;
10
- }
11
- table.tabBarRight {
12
- border-collapse: collapse;
6
+ width: 160px;
13
7
  }
14
8
  }
@@ -1,13 +1,13 @@
1
1
  @import url(deplate.css);
2
2
 
3
3
  body {
4
- background-color: #e0e0ff;
4
+ background-color: #d9e0f0;
5
5
  }
6
6
 
7
7
  #tabFrame {
8
8
  /* display: table; */
9
9
  /* border-spacing: 0; */
10
- background-color: #e0e0ff;
10
+ background-color: #d9e0f0;
11
11
  border-spacing: 0;
12
12
  border-collapse: collapse;
13
13
  border: 0;
@@ -25,7 +25,7 @@ body {
25
25
  border: 0;
26
26
  padding: 10px 0 0 0;
27
27
  margin: 0;
28
- background-color: #e0e0ff;
28
+ background-color: #d9e0f0;
29
29
  }
30
30
  #tabBodyFrame {
31
31
  /* display: table-cell; */
@@ -35,7 +35,7 @@ body {
35
35
  float: left;
36
36
  text-align: left;
37
37
  vertical-align: top;
38
- background-color: #e0e0ff;
38
+ background-color: #d9e0f0;
39
39
  width: 750px;
40
40
  padding: 0;
41
41
  margin: 0;
@@ -56,12 +56,12 @@ body {
56
56
 
57
57
  .tabFrameRow {
58
58
  /* display: table-row; */
59
- background-color: #e0e0ff;
59
+ background-color: #d9e0f0;
60
60
  border: 0;
61
61
  }
62
62
  .tabFrameCell {
63
63
  /* display: table-cell; */
64
- background-color: #e0e0ff;
64
+ background-color: #d9e0f0;
65
65
  border: 0;
66
66
  }
67
67
 
@@ -73,36 +73,65 @@ table.tabBarRight {
73
73
  margin: 0;
74
74
  /* padding: 10px; */
75
75
  border-spacing: 0;
76
- max-width: 140px;
76
+ /* max-width: 160px; */
77
+ width: 160px;
78
+ /* min-width: 140px; */
77
79
  }
78
80
  tr.tabBarRight {
79
81
  }
80
82
  td.tabBarRight {
81
83
  }
82
84
 
83
- .tabBarRightActive {
85
+ *[class|=tabBarRightActive] {
84
86
  background-color: #fafafa;
85
87
  }
86
- tr.tabBarRightActive {
88
+ tr[class|=tabBarRightActive] {
87
89
  }
88
- td.tabBarRightActive {
89
- border: 1px inset #e0e0e0;
90
- /* border-left: 4px solid #e0e0e0; */
91
- /* border-right: 4px solid #afafaf; */
90
+ td[class|=tabBarRightActive] {
91
+ border-top: 0;
92
+ border-bottom: 0;
92
93
  padding: 2px;
93
94
  }
94
95
 
95
- .tabBarRightInactive {
96
+ tr.tabBarRightActive-Level1 {
97
+ border-top: 0;
98
+ border-bottom: 0;
99
+ }
100
+ tr.tabBarRightActive-Level2 {
101
+ border-top: 0;
102
+ border-bottom: 0;
103
+ }
104
+
105
+ td.tabBarRightActive-Level1 {
106
+ border-top: 1px solid #555555;
107
+ border-left: 1px solid #555555;
108
+ border-bottom: 0 none;
109
+ background-color: #fff3d0;
110
+ margin: 5px;
111
+ }
112
+ td.tabBarRightActive-Level2 {
113
+ border-left: 1px solid #555555;
114
+ border-top: 0 none;
115
+ border-bottom: 0 none;
116
+ background-color: #ffffff;
117
+ margin: 5px;
118
+ }
119
+
120
+ *[class|=tabBarRightInactive] {
96
121
  background-color: #f0f0f0;
97
122
  }
98
- tr.tabBarRightInactive {
123
+ tr[class|=tabBarRightInactive] {
99
124
  }
100
- td.tabBarRightInactive {
125
+ td[class|=tabBarRightInactive] {
101
126
  border: 1px solid #fafafa;
102
- /* border-left: 4px solid #afafaf; */
103
- /* border-right: 4px solid #e0e0e0; */
104
127
  padding: 2px;
105
128
  }
129
+ td.tabBarRightInactive-Level1 {
130
+ border-top: 0 none;
131
+ border-bottom: 0 none;
132
+ background-color: #f0f0f0;
133
+ margin: 5px;
134
+ }
106
135
 
107
136
  .tabBarRightButtons {
108
137
  }
@@ -116,3 +145,7 @@ td.tabBarRightButtons {
116
145
  text-align: center;
117
146
  }
118
147
 
148
+ table.comment_form, td.comment_form {
149
+ background-color: #d9e0f0;
150
+ }
151
+
@@ -1,5 +1,9 @@
1
1
  @import url(deplate.css);
2
2
 
3
+ body {
4
+ background-color: #d9e0f0;
5
+ }
6
+
3
7
  #tabFrame {
4
8
  position: absolute;
5
9
  top: 0;
@@ -11,7 +15,7 @@
11
15
  padding: 0;
12
16
  border: 0;
13
17
  margin: 10px 0 0 0;
14
- background-color: #e9e9ff;
18
+ background-color: #d9e0f0;
15
19
  }
16
20
  #tabBodyFrame {
17
21
  /* text-align: left; */
@@ -35,11 +39,13 @@ table.tabBarTop {
35
39
  border-spacing: 0;
36
40
  position: relative;
37
41
  top: 1px;
42
+ text-align: center;
38
43
  }
39
44
  tr.tabBarTop {
40
45
  border: 0;
41
46
  margin: 0;
42
47
  padding: 0;
48
+ text-align: center;
43
49
  }
44
50
  td.tabBarTopActive {
45
51
  margin: 0;
File without changes
File without changes
File without changes
@@ -3,11 +3,11 @@
3
3
  # @Website: http://deplate.sf.net/
4
4
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
5
  # @Created: 19-Okt-2004.
6
- # @Last Change: 23-Okt-2005.
7
- # @Revision: 0.402
6
+ # @Last Change: 29-Apr-2006.
7
+ # @Revision: 0.500
8
8
 
9
- require "deplate/commands"
10
- require "deplate/macros"
9
+ require 'deplate/commands'
10
+ require 'deplate/macros'
11
11
 
12
12
  module Deplate::DefRegions; end
13
13
  module Deplate::DefElements; end
@@ -24,14 +24,12 @@ module Deplate::DefMacro; end
24
24
  # CHANGES:
25
25
  #
26
26
  class Deplate::Define < Deplate::Region
27
- @line_cont = true
28
-
29
27
  class << self
30
28
  def let_variables(deplate, args, &block)
31
29
  unset = []
32
30
  saved = {}
33
31
  begin
34
- for key, val in args
32
+ args.each do |key, val|
35
33
  if key.kind_of?(String)
36
34
  opt = deplate.variables[key]
37
35
  if opt
@@ -42,12 +40,12 @@ class Deplate::Define < Deplate::Region
42
40
  deplate.variables[key] = val
43
41
  end
44
42
  end
45
- block.call
43
+ return block.call
46
44
  ensure
47
- for key in unset
45
+ unset.each do |key|
48
46
  deplate.variables.delete(key)
49
47
  end
50
- for key, val in saved
48
+ saved.each do |key, val|
51
49
  deplate.variables[key] = val
52
50
  end
53
51
  end
@@ -57,7 +55,7 @@ class Deplate::Define < Deplate::Region
57
55
  if mandatory
58
56
  diff = mandatory.split(/\s+/) - args.keys
59
57
  unless diff.empty?
60
- Deplate::Core.log(["Missing arguments", diff], :error, source)
58
+ Deplate::Core.log(['Missing arguments', diff], :error, source)
61
59
  end
62
60
  end
63
61
  end
@@ -71,7 +69,7 @@ class Deplate::Define < Deplate::Region
71
69
 
72
70
  def valid_id?(id)
73
71
  if id =~ /\W/
74
- log(["Invalid id", id], :error)
72
+ log(['Invalid ID', id], :error)
75
73
  return false
76
74
  else
77
75
  return true
@@ -93,16 +91,16 @@ end
93
91
 
94
92
  # class Deplate::Define::Region < Deplate::Region::SecondOrder
95
93
  class Deplate::Define::Region < Deplate::Region
96
- @line_cont = true
97
94
  def finish
98
95
  finish_accum
99
96
  setup_template
100
- @args["@body"] = @accum.join("\n")
101
- @args["@note"] = @regNote
97
+ @args['@body'] = @accum.join("\n")
98
+ @args['@note'] = @regNote
102
99
  Deplate::Define.check_arguments(@mandatory, @args, @source)
103
100
  @expected = Deplate::Element
104
101
  @elt = []
105
102
  Deplate::Define.let_variables(@deplate, @args) do
103
+ # p "DBG DefineRegion: #{@deplate.options.counters.inspect}"
106
104
  @elt = @deplate.parsed_array_from_strings(@template, @source.begin, @source.file)
107
105
  end
108
106
  unless @elt.empty?
@@ -113,122 +111,133 @@ class Deplate::Define::Region < Deplate::Region
113
111
  end
114
112
 
115
113
  class Deplate::Regions::DefRegion < Deplate::Define
116
- @@regions["DefRegion"] = self
117
- @@regions["DefineRegion"] = self
118
- @@regions["Defr"] = self
114
+ @@regions['DefRegion'] = self
115
+ @@regions['DefineRegion'] = self
116
+ @@regions['Defr'] = self
119
117
 
120
118
  def define
121
- id = @args["id"] || @regNote
119
+ id = @args['id'] ||= @regNote
122
120
  if valid_id?(id)
123
- region = %{
124
- class Deplate::DefRegions::#{id} < Deplate::Define::Region
125
- @@regions["#{id}"] = self
126
- def setup_template
127
- @template = #{@accum.inspect}
128
- @mandatory = #{@args["args"].inspect}
129
- end
121
+ # if @args['lineCont'] == false
122
+ line_cont = 'set_line_cont false'
123
+ # else
124
+ # line_cont = ''
125
+ # end
126
+ body = <<-EOR
127
+ #{line_cont}
128
+ def setup_template
129
+ @template = #{@accum.inspect}
130
+ @mandatory = #{@args['args'].inspect}
130
131
  end
131
- }
132
- eval region
132
+ EOR
133
+ @args[:register] = true
134
+ @args[:super] = Deplate::Define::Region
135
+ cls = Deplate::Cache.region(@deplate, body, @args)
133
136
  end
134
137
  end
135
138
  end
136
139
 
140
+ class Deplate::Define::Element < Deplate::Element
141
+ def finish
142
+ m = self.class.match(@accum.join(' '))
143
+ if m
144
+ m.captures.each_with_index do |e, i|
145
+ @args[(i + 1).to_s] = e
146
+ end
147
+ @expected = Deplate::Element
148
+ tmpl = Deplate::Template.new(:template => self.class.tpl,
149
+ :source => @source,
150
+ :container => self)
151
+ Deplate::Define.let_variables(@deplate, @args) do
152
+ @accum = tmpl.fill_in(@deplate, :source => @source)
153
+ end
154
+ @accum.flatten!
155
+ @accum.collect! {|l| l.split("\n")}
156
+ @accum.flatten!
157
+ else
158
+ raise 'Internal error!'
159
+ end
160
+ @elt = @deplate.parsed_array_from_strings(@accum, @source.begin, @source.file)
161
+ return @elt
162
+ end
163
+ end
137
164
 
138
165
  class Deplate::Regions::DefElement < Deplate::Define
139
- @@regions["DefElement"] = self
140
- @@regions["DefineElement"] = self
141
- @@regions["Defe"] = self
166
+ @@regions['DefElement'] = self
167
+ @@regions['DefineElement'] = self
168
+ @@regions['Defe'] = self
142
169
  @@def_element_counter = 0
143
170
 
144
- @line_cont = false
171
+ set_line_cont false
145
172
 
146
173
  def define
147
- rx = @args['rx'] || @regNote
174
+ rx = @args['rx'] ||= @regNote
148
175
  if rx
149
176
  @@def_element_counter += 1
150
- template = @accum.join("\n").gsub(/\'/, "\\\\\'")
151
- rx = Regexp.new(rx).source.gsub(/\//, '\\\\/')
177
+ # template = @accum.join("\n").gsub(/\'/, "\\\\\'")
178
+ template = @accum.join("\n")
179
+ # rx = Regexp.new(rx).source.gsub(/\//, '\\\\/')
180
+ rx = %r{^#{rx}}
152
181
  multiline = valid_switch(@args['multiline'], 'true')
153
182
  collapse = valid_switch(@args['collapse'], 'false')
154
- eval %{
155
- class Deplate::DefElements::Elt#{@@def_element_counter} < Deplate::Element
156
- @@elements << self
157
- @rx = /^#{rx}/
158
- TPL = '#{template}'
159
-
160
- def setup
161
- @multiliner = #{multiline}
162
- @collapse = #{collapse}
163
- @accum = [@match[0]]
164
- end
165
-
166
- def finish
167
- m = self.class.match(@accum.join(' '))
168
- if m
169
- m.captures.each_with_index do |e, i|
170
- @args[(i + 1).to_s] = e
171
- end
172
- @expected = Deplate::Element
173
- tmpl = Deplate::Template.new(:template => TPL,
174
- :source => @source,
175
- :container => self)
176
- Deplate::Define.let_variables(@deplate, @args) do
177
- @accum = tmpl.fill_in(@deplate, :source => @source)
178
- end
179
- @accum.flatten!
180
- @accum.collect! {|l| l.split("\n")}
181
- @accum.flatten!
182
- else
183
- raise 'Internal error!'
184
- end
185
- @elt = @deplate.parsed_array_from_strings(@accum, @source.begin, @source.file)
186
- return @elt
187
- end
183
+ body = <<-EOR
184
+ set_rx(#{rx.inspect})
185
+ class_attribute :tpl, #{template.inspect}
186
+ def setup
187
+ @multiliner = #{multiline}
188
+ @collapse = #{collapse}
189
+ @accum = [@match[0]]
188
190
  end
189
- }
191
+ EOR
192
+ @args[:register] = true
193
+ @args[:super] = Deplate::Define::Element
194
+ cls = Deplate::Cache.element(@deplate, body, @args)
190
195
  end
191
196
  end
192
197
  end
193
198
 
199
+ class Deplate::Define::Particle < Deplate::Particle
200
+ def setup
201
+ @match.captures.each_with_index do |e, i|
202
+ @args[(i + 1).to_s] = e
203
+ end
204
+ @expected = Deplate::Particle
205
+ tmpl = Deplate::Template.new(:template => self.class.tpl,
206
+ :source => @source,
207
+ :container => self)
208
+ Deplate::Define.let_variables(@deplate, @args) do
209
+ @elt = tmpl.fill_in(@deplate, :source => @source)
210
+ end
211
+ @elt = @deplate.parse(@container, @elt.join(' '))
212
+ end
213
+
214
+ def process
215
+ @elt = @deplate.format_particles(@elt)
216
+ end
217
+ end
194
218
 
195
219
  class Deplate::Regions::DefParticle < Deplate::Define
196
- @@regions["DefParticle"] = self
197
- @@regions["DefineParticle"] = self
198
- @@regions["Defp"] = self
220
+ @@regions['DefParticle'] = self
221
+ @@regions['DefineParticle'] = self
222
+ @@regions['Defp'] = self
199
223
  @@def_particle_counter = 0
200
224
 
201
225
  def define
202
- rx = @args['rx'] || @regNote
203
- if rx
204
- template = @accum.join("\n").gsub(/\'/, "\\\\\'")
205
- rx = Regexp.new(rx).source
226
+ rs = @args['rx'] ||= @regNote
227
+ if rs
228
+ # template = @accum.join("\n").gsub(/\'/, "\\\\\'")
229
+ template = @accum.join("\n")
230
+ rx = %r{^#{rs}}
206
231
  multiline = valid_switch(@args['multiline'], 'true')
207
232
  collapse = valid_switch(@args['collapse'], 'false')
208
- cls = @deplate.formatter.retrieve_particle(rx, template)
233
+ # cls = @deplate.formatter.retrieve_particle(rx.source, template)
209
234
  body = <<-EOR
210
- @rx = /^#{rx}/
211
- TPL = '#{template}'
212
-
213
- def setup
214
- @match.captures.each_with_index do |e, i|
215
- @args[(i + 1).to_s] = e
216
- end
217
- @expected = Deplate::Particle
218
- tmpl = Deplate::Template.new(:template => TPL,
219
- :source => @source,
220
- :container => self)
221
- Deplate::Define.let_variables(@deplate, @args) do
222
- @elt = tmpl.fill_in(@deplate, :source => @source)
223
- end
224
- @elt = @deplate.parse(@container, @elt.join(' '))
225
- end
226
-
227
- def process
228
- @elt = @deplate.format_particles(@elt)
229
- end
235
+ set_rx(#{rx.inspect})
236
+ class_attribute :tpl, #{template.inspect}
230
237
  EOR
231
- cls = Deplate::Cache.particle(deplate, body, :register => true)
238
+ @args[:register] = true
239
+ @args[:super] = Deplate::Define::Particle
240
+ cls = Deplate::Cache.particle(deplate, body, @args)
232
241
  end
233
242
  end
234
243
  end
@@ -239,7 +248,7 @@ class Deplate::Define::Command < Deplate::Command
239
248
  def accumulate(source, array, deplate, text, match, args, cmd)
240
249
  Deplate::Core.log("%s: %s" % [cmd, text], :debug)
241
250
  template, mandatory = setup_template(text, deplate)
242
- args["@body"] = text
251
+ args['@body'] = text
243
252
  Deplate::Define.check_arguments(mandatory, args, source)
244
253
  Deplate::Define.let_variables(deplate, args) do
245
254
  deplate.include_stringarray(template, array, source.begin, source.file)
@@ -250,34 +259,33 @@ end
250
259
 
251
260
 
252
261
  class Deplate::Regions::DefCommand < Deplate::Define
253
- @@regions["DefCommand"] = self
254
- @@regions["DefCmd"] = self
255
- @@regions["DefineCommand"] = self
256
- @@regions["Defc"] = self
262
+ @@regions['DefCommand'] = self
263
+ @@regions['DefCmd'] = self
264
+ @@regions['DefineCommand'] = self
265
+ @@regions['Defc'] = self
257
266
 
258
267
  def define
259
- id = @args["id"] || @regNote
268
+ id = @args['id'] ||= @regNote
260
269
  if valid_id?(id)
261
- eval %{
262
- class Deplate::DefCommand::#{id} < Deplate::Define::Command
263
- @@commands["#{id}"] = self
264
- class << self
265
- def setup_template(text, deplate)
266
- [#{@accum.inspect}, #{@args["args"].inspect}]
267
- end
270
+ body = <<-EOR
271
+ class << self
272
+ def setup_template(text, deplate)
273
+ [#{@accum.inspect}, #{@args['args'].inspect}]
268
274
  end
269
275
  end
270
- }
276
+ EOR
277
+ @args[:register] = true
278
+ @args[:super] = Deplate::Define::Command
279
+ cls = Deplate::Cache.command(@deplate, body, @args)
271
280
  end
272
281
  end
273
282
  end
274
283
 
275
284
 
276
285
  class Deplate::Define::Macro < Deplate::Macro
277
- @line_cont = true
278
286
  def setup(text)
279
287
  setup_template(text)
280
- @args["@body"] = text
288
+ @args['@body'] = text
281
289
  Deplate::Define.check_arguments(@mandatory, @args, @container.source)
282
290
  tmpl = Deplate::Template.new(:master => @deplate,
283
291
  :template => @template,
@@ -293,23 +301,22 @@ end
293
301
 
294
302
 
295
303
  class Deplate::Regions::DefMacro < Deplate::Define
296
- @@regions["DefMacro"] = self
297
- @@regions["DefineMacro"] = self
298
- @@regions["Defm"] = self
304
+ @@regions['DefMacro'] = self
305
+ @@regions['DefineMacro'] = self
306
+ @@regions['Defm'] = self
299
307
  def define
300
- id = @args["id"] || @regNote
308
+ id = @args['id'] ||= @regNote
301
309
  if valid_id?(id)
302
- eval %{
303
- class Deplate::DefMacro::Define_#{id} < Deplate::Define::Macro
304
- @@macros[#{id.inspect}] = self
305
- def setup_template(text)
306
- @template = #{@accum.join("\n").inspect}
307
- @mandatory = #{@args["args"].inspect}
308
- @macro_id = #{id.inspect}
309
- end
310
+ body = <<-EOR
311
+ def setup_template(text)
312
+ @template = #{@accum.join("\n").inspect}
313
+ @mandatory = #{@args['args'].inspect}
314
+ @macro_id = #{id.inspect}
310
315
  end
311
- }
312
- # @deplate.initialize_particles(true)
316
+ EOR
317
+ @args[:register] = true
318
+ @args[:super] = Deplate::Define::Macro
319
+ cls = Deplate::Cache.macro(@deplate, body, @args)
313
320
  end
314
321
  end
315
322
  end
@@ -318,15 +325,15 @@ end
318
325
 
319
326
  class Deplate::Regions::Native
320
327
  def expand_template
321
- @args["@note"] = @regNote
322
- @args["@body"] = @accum.join("\n")
328
+ @args['@note'] = @regNote
329
+ @args['@body'] = @accum.join("\n")
323
330
  tmpl = Deplate::Template.new(:master => @deplate,
324
331
  :template => @template,
325
332
  :source => @source,
326
333
  :container => self)
327
334
  rv = nil
328
335
  Deplate::Define.let_variables(@deplate, @args) do
329
- rv = tmpl.fill_in(@deplate, :body => @args["@body"], :source => @source)
336
+ rv = tmpl.fill_in(@deplate, :body => @args['@body'], :source => @source)
330
337
  end
331
338
  return rv
332
339
  end
@@ -334,24 +341,24 @@ end
334
341
 
335
342
 
336
343
  class Deplate::Regions::DefRegionN < Deplate::Define
337
- @@regions["DefRegionN"] = self
338
- @@regions["DefineRegionN"] = self
339
- @@regions["Defrn"] = self
344
+ @@regions['DefRegionN'] = self
345
+ @@regions['DefineRegionN'] = self
346
+ @@regions['Defrn'] = self
340
347
  def define
341
- id = @args["id"] || @regNote
348
+ id = @args['id'] ||= @regNote
342
349
  if valid_id?(id)
343
- eval %{
344
- class Deplate::DefRegions::#{id} < Deplate::Regions::Native
345
- @@regions["#{id}"] = self
346
- def finish
347
- finish_accum
348
- @template = #{@accum.join("\n").inspect}
349
- @mandatory = #{@args["args"].inspect}
350
- @elt = [ expand_template ]
351
- return self
352
- end
350
+ body = <<-EOR
351
+ def finish
352
+ finish_accum
353
+ @template = #{@accum.join("\n").inspect}
354
+ @mandatory = #{@args['args'].inspect}
355
+ @elt = [ expand_template ]
356
+ return self
353
357
  end
354
- }
358
+ EOR
359
+ @args[:register] = true
360
+ @args[:super] = Deplate::Regions::Native
361
+ cls = Deplate::Cache.region(@deplate, body, @args)
355
362
  end
356
363
  end
357
364
  end
@@ -359,7 +366,7 @@ end
359
366
 
360
367
  class Deplate::Define::CommandNative < Deplate::Command
361
368
  def expand_template
362
- @args["@body"] = @accum.join(" ")
369
+ @args['@body'] = @accum.join(' ')
363
370
  tmpl = Deplate::Template.new(:master => @deplate,
364
371
  :template => @template,
365
372
  :source => @source,
@@ -378,24 +385,24 @@ end
378
385
 
379
386
 
380
387
  class Deplate::Regions::DefCommandN < Deplate::Define
381
- @@regions["DefCommandN"] = self
382
- @@regions["DefCmdN"] = self
383
- @@regions["DefineCommandN"] = self
384
- @@regions["Defcn"] = self
388
+ @@regions['DefCommandN'] = self
389
+ @@regions['DefCmdN'] = self
390
+ @@regions['DefineCommandN'] = self
391
+ @@regions['Defcn'] = self
385
392
  def define
386
- id = @args["id"] || @regNote
393
+ id = @args['id'] ||= @regNote
387
394
  if valid_id?(id)
388
- eval %{
389
- class Deplate::DefCommand::#{id} < Deplate::Define::CommandNative
390
- @@commands["#{id}"] = self
391
- def finish
392
- @template = #{@accum.join("\n").inspect}
393
- @mandatory = #{@args["args"].inspect}
394
- @elt = [ expand_template ]
395
- return self
396
- end
395
+ body = <<-EOR
396
+ def finish
397
+ @template = #{@accum.join("\n").inspect}
398
+ @mandatory = #{@args['args'].inspect}
399
+ @elt = [ expand_template ]
400
+ return self
397
401
  end
398
- }
402
+ EOR
403
+ @args[:register] = true
404
+ @args[:super] = Deplate::Define::CommandNative
405
+ cls = Deplate::Cache.command(@deplate, body, @args)
399
406
  end
400
407
  end
401
408
  end
@@ -404,7 +411,7 @@ end
404
411
  class Deplate::Define::MacroNative < Deplate::Macro
405
412
  def setup(text)
406
413
  setup_template
407
- @args["@body"] = text
414
+ @args['@body'] = text
408
415
  tmpl = Deplate::Template.new(:master => @deplate,
409
416
  :template => @template,
410
417
  :source => @source,
@@ -417,22 +424,21 @@ end
417
424
 
418
425
 
419
426
  class Deplate::Regions::DefMacroN < Deplate::Define
420
- @@regions["DefMacroN"] = self
421
- @@regions["DefineMacroN"] = self
422
- @@regions["Defmn"] = self
427
+ @@regions['DefMacroN'] = self
428
+ @@regions['DefineMacroN'] = self
429
+ @@regions['Defmn'] = self
423
430
  def define
424
- id = @args["id"] || @regNote
431
+ id = @args['id'] ||= @regNote
425
432
  if valid_id?(id)
426
- eval %{
427
- class Deplate::DefMacro::Define_#{id} < Deplate::Define::MacroNative
428
- @@macros[#{id.inspect}] = self
429
- def setup_template
430
- @template = #{@accum.join(" ").inspect}
431
- @mandatory = #{@args["args"].inspect}
432
- end
433
+ body = <<-EOR
434
+ def setup_template
435
+ @template = #{@accum.join(' ').inspect}
436
+ @mandatory = #{@args['args'].inspect}
433
437
  end
434
- }
435
- # @deplate.initialize_particles(true)
438
+ EOR
439
+ @args[:register] = true
440
+ @args[:super] = Deplate::Define::MacroNative
441
+ cls = Deplate::Cache.macro(@deplate, body, @args)
436
442
  end
437
443
  end
438
444
  end