修訂 | 75 (tree) |
---|---|
時間 | 2008-04-10 20:06:28 |
作者 | junkikuchi |
updated.
@@ -18,7 +18,7 @@ | ||
18 | 18 | assert_equal('GET', req['request_method']) |
19 | 19 | assert_equal( |
20 | 20 | ['http_cookie', 'query_string', 'request_method'], |
21 | - req.sort.map do |k, v| k end | |
21 | + req.header.sort.map do |k, v| k end | |
22 | 22 | ) |
23 | 23 | assert_equal('123', req.query['a']) |
24 | 24 | assert_equal('456', req.query['b']) |
@@ -40,7 +40,7 @@ | ||
40 | 40 | assert_equal('POST', req['request_method']) |
41 | 41 | assert_equal( |
42 | 42 | ['content_length', 'content_type', 'query_string', 'request_method'], |
43 | - req.sort.map do |k, v| k end | |
43 | + req.header.sort.map do |k, v| k end | |
44 | 44 | ) |
45 | 45 | assert_equal('123', req.query['a']) |
46 | 46 | assert_equal('456', req.query['b']) |
@@ -97,7 +97,7 @@ | ||
97 | 97 | assert_equal('POST', req['request_method']) |
98 | 98 | assert_equal( |
99 | 99 | ['content_length', 'content_type', 'query_string', 'request_method'], |
100 | - req.sort.map do |k, v| k end | |
100 | + req.header.sort.map do |k, v| k end | |
101 | 101 | ) |
102 | 102 | assert_equal('111', req.query['a']) |
103 | 103 | assert_equal('22222', req.query['b']) |
@@ -96,7 +96,12 @@ | ||
96 | 96 | :class => 'Widget::HTML', |
97 | 97 | :row => {}, |
98 | 98 | :relation => {'view' => 'view:resource'}, |
99 | - :preference => {} | |
99 | + :preference => { | |
100 | + 'html.size.height' => '100%', | |
101 | + #'body.font.font_size' => '122%', | |
102 | + 'body.text.text_align' => 'left', | |
103 | + 'body.size.height' => '100%', | |
104 | + } | |
100 | 105 | }, |
101 | 106 | { |
102 | 107 | :name => 'session.user.content.view.html.title', |
@@ -103,59 +108,222 @@ | ||
103 | 108 | :class => 'Widget::Content::Title', |
104 | 109 | :row => {}, |
105 | 110 | :relation => {'view' => 'view:resource.index'}, |
111 | + :preference => { | |
112 | + 'title.text.format' => 'Tenarai: %s' | |
113 | + } | |
114 | + }, | |
115 | + { | |
116 | + :name => 'session.user.content.view.html.reset', | |
117 | + :class => 'Widget::YUI::ResetFontsGrids', | |
118 | + :row => {}, | |
119 | + :relation => {'view' => 'view:resource.index'}, | |
120 | + :preference => { | |
121 | + 'yui.src.uri' => 'http://localhost/pub/yui-2.4.1/build/reset-fonts-grids/reset-fonts-grids.css' | |
122 | + } | |
123 | + }, | |
124 | + { | |
125 | + :name => 'session.user.content.view.html.doc', | |
126 | + :class => 'Widget::Panel', | |
127 | + :row => {}, | |
128 | + :relation => {'view' => 'view:resource.index'}, | |
129 | + :preference => { | |
130 | + 'box.size.width' => '900px', | |
131 | + 'box.size.height' => '100%', | |
132 | + 'box.margin.margin_left' => 'auto', | |
133 | + 'box.margin.margin_right' => 'auto', | |
134 | + } | |
135 | + }, | |
136 | + { | |
137 | + :name => 'session.user.content.view.html.doc.hd', | |
138 | + :class => 'Widget::Panel', | |
139 | + :row => {}, | |
140 | + :relation => {'view' => 'view:resource.index'}, | |
106 | 141 | :preference => {} |
107 | 142 | }, |
108 | 143 | { |
109 | - :name => 'session.user.content.view.html.menu', | |
110 | - :class => 'Widget::View::List', | |
144 | + :name => 'session.user.content.view.html.doc.bd', | |
145 | + :class => 'Widget::Panel', | |
111 | 146 | :row => {}, |
112 | 147 | :relation => {'view' => 'view:resource.index'}, |
113 | 148 | :preference => {} |
114 | 149 | }, |
115 | 150 | { |
116 | - :name => 'session.user.content.view.html.header', | |
117 | - :class => 'Widget::Content::Header', | |
151 | + :name => 'session.user.content.view.html.doc.ft', | |
152 | + :class => 'Widget::Panel', | |
118 | 153 | :row => {}, |
119 | 154 | :relation => {'view' => 'view:resource.index'}, |
120 | 155 | :preference => {} |
121 | 156 | }, |
122 | 157 | { |
123 | - :name => 'session.user.content.view.html.path', | |
158 | + :name => 'session.user.content.view.html.doc.hd.header', | |
159 | + :class => 'Widget::Content::Header', | |
160 | + :row => {}, | |
161 | + :relation => {'view' => 'view:resource.index'}, | |
162 | + :preference => { | |
163 | + 'box.padding.padding_top' => '10px', | |
164 | + 'box.font.font_size' => '197%', | |
165 | + } | |
166 | + }, | |
167 | + { | |
168 | + :name => 'session.user.content.view.html.doc.hd.menu', | |
169 | + :class => 'Widget::View::Menu', | |
170 | + :row => {}, | |
171 | + :relation => {'view' => 'view:resource.index'}, | |
172 | + :preference => { | |
173 | + 'ul.text.text_align' => 'right', | |
174 | + 'ul.padding.padding_bottom' => '3px', | |
175 | + 'ul.border.border_bottom' => '1px solid silver', | |
176 | + 'li.layout.display' => 'inline', | |
177 | + 'a.text.text_decoration' => 'none', | |
178 | + 'a.padding.padding_top' => '3px', | |
179 | + 'a.padding.padding_right' => '3px', | |
180 | + 'a.padding.padding_bottom' => '3px', | |
181 | + 'a.padding.padding_left' => '3px', | |
182 | + 'a.border.border_top' => '1px solid silver', | |
183 | + 'a.border.border_right' => '1px solid silver', | |
184 | + 'a.border.border_bottom' => 'none', | |
185 | + 'a.border.border_left' => '1px solid silver', | |
186 | + } | |
187 | + }, | |
188 | + { | |
189 | + :name => 'session.user.content.view.html.doc.hd.path', | |
124 | 190 | :class => 'Widget::Content::Path', |
125 | 191 | :row => {}, |
126 | 192 | :relation => {'view' => 'view:resource.index'}, |
127 | - :preference => {} | |
193 | + :preference => { | |
194 | + 'box.margin.margin_top' => '10px', | |
195 | + 'box.margin.margin_bottom' => '10px', | |
196 | + 'ul.layout.display' => 'inline', | |
197 | + 'ul.padding.padding_top' => '10px', | |
198 | + 'ul.padding.padding_bottom' => '10px', | |
199 | + 'li.layout.display' => 'inline', | |
200 | + 'a.text.text_decoration' => 'none', | |
201 | + 'a.padding.padding_top' => '10px', | |
202 | + 'a.padding.padding_right' => '10px', | |
203 | + 'a.padding.padding_bottom' => '10px', | |
204 | + } | |
128 | 205 | }, |
129 | 206 | { |
130 | - :name => 'session.user.content.view.html.list', | |
207 | + :name => 'session.user.content.view.html.doc.bd.sidebar', | |
208 | + :class => 'Widget::Panel', | |
209 | + :row => {}, | |
210 | + :relation => {'view' => 'view:resource.index'}, | |
211 | + :preference => { | |
212 | + 'box.size.width' => '200px', | |
213 | + 'box.layout.float' => 'left', | |
214 | + } | |
215 | + }, | |
216 | + { | |
217 | + :name => 'session.user.content.view.html.doc.bd.client', | |
218 | + :class => 'Widget::Panel', | |
219 | + :row => {}, | |
220 | + :relation => {'view' => 'view:resource.index'}, | |
221 | + :preference => { | |
222 | + 'box.size.width' => '700px', | |
223 | + 'box.layout.float' => 'right', | |
224 | + } | |
225 | + }, | |
226 | + { | |
227 | + :name => 'session.user.content.view.html.doc.bd.sidebar.list', | |
131 | 228 | :class => 'Widget::Content::List', |
132 | 229 | :row => {}, |
133 | 230 | :relation => {'view' => 'view:resource.index'}, |
134 | - :preference => {} | |
231 | + :preference => { | |
232 | + 'box.size.width' => '100%', | |
233 | + 'ul.margin.margin_bottom' => '10px', | |
234 | + 'a.text.text_decoration' => 'none', | |
235 | + 'a.margin.margin_right' => '10px', | |
236 | + 'a.margin.margin_bottom' => '10px', | |
237 | + } | |
135 | 238 | }, |
136 | 239 | { |
137 | - :name => 'session.user.content.view.html.view', | |
240 | + :name => 'session.user.content.view.html.doc.bd.client.view', | |
138 | 241 | :class => 'Widget::Content::Wiki', |
139 | 242 | :row => {}, |
140 | 243 | :relation => {'view' => 'view:resource.index.view'}, |
141 | - :preference => {} | |
244 | + :preference => { | |
245 | + 'box.size.width' => '100%', | |
246 | + 'h2.font.font_size' => '189%', | |
247 | + 'h3.font.font_size' => '174%', | |
248 | + 'h4.font.font_size' => '161.6%', | |
249 | + 'h5.font.font_size' => '146.5%', | |
250 | + 'h6.font.font_size' => '131%', | |
251 | + | |
252 | + 'h2.padding.padding_top' => '5px', | |
253 | + 'h3.padding.padding_top' => '5px', | |
254 | + 'h4.padding.padding_top' => '5px', | |
255 | + 'h5.padding.padding_top' => '5px', | |
256 | + 'h6.padding.padding_top' => '5px', | |
257 | + | |
258 | + 'h2.padding.padding_right' => '5px', | |
259 | + 'h3.padding.padding_right' => '5px', | |
260 | + 'h4.padding.padding_right' => '5px', | |
261 | + 'h5.padding.padding_right' => '5px', | |
262 | + 'h6.padding.padding_right' => '5px', | |
263 | + | |
264 | + 'h2.padding.padding_bottom' => '5px', | |
265 | + 'h3.padding.padding_bottom' => '5px', | |
266 | + 'h4.padding.padding_bottom' => '5px', | |
267 | + 'h5.padding.padding_bottom' => '5px', | |
268 | + 'h6.padding.padding_bottom' => '5px', | |
269 | + | |
270 | + 'h2.padding.padding_left' => '5px', | |
271 | + 'h3.padding.padding_left' => '5px', | |
272 | + 'h4.padding.padding_left' => '5px', | |
273 | + 'h5.padding.padding_left' => '5px', | |
274 | + 'h6.padding.padding_left' => '5px', | |
275 | + | |
276 | + 'h2.border.border_left' => 'solid 10px red', | |
277 | + 'h3.border.border_left' => 'solid 10px red', | |
278 | + 'h4.border.border_left' => 'solid 10px red', | |
279 | + 'h5.border.border_left' => 'solid 10px red', | |
280 | + 'h6.border.border_left' => 'solid 10px red', | |
281 | + | |
282 | + 'h2.border.border_bottom' => 'solid 1px silver', | |
283 | + 'h3.border.border_bottom' => 'solid 1px silver', | |
284 | + 'h4.border.border_bottom' => 'solid 1px silver', | |
285 | + 'h5.border.border_bottom' => 'solid 1px silver', | |
286 | + 'h6.border.border_bottom' => 'solid 1px silver', | |
287 | + | |
288 | + 'h2.margin.margin_bottom' => '10px', | |
289 | + 'h3.margin.margin_bottom' => '10px', | |
290 | + 'h4.margin.margin_bottom' => '10px', | |
291 | + 'h5.margin.margin_bottom' => '10px', | |
292 | + 'h6.margin.margin_bottom' => '10px', | |
293 | + | |
294 | + 'p.margin.margin_bottom' => '10px', | |
295 | + } | |
142 | 296 | }, |
143 | 297 | { |
144 | - :name => 'session.user.content.view.html.new', | |
298 | + :name => 'session.user.content.view.html.doc.bd.client.new', | |
145 | 299 | :class => 'Widget::Content::Form', |
146 | 300 | :row => {}, |
147 | 301 | :relation => {'view' => 'view:resource.index.new'}, |
148 | 302 | :preference => { |
149 | - 'form.form.type' => 'new' | |
303 | + 'form.form.type' => 'new', | |
304 | + 'label.layout.display' => 'block', | |
305 | + 'label.margin.margin_bottom' => '5px', | |
306 | + 'title.size.width' => '100%', | |
307 | + 'title.margin.margin_bottom' => '10px', | |
308 | + 'content.size.width' => '100%', | |
309 | + 'content.size.height' => '350px', | |
310 | + 'content.margin.margin_bottom' => '10px', | |
150 | 311 | } |
151 | 312 | }, |
152 | 313 | { |
153 | - :name => 'session.user.content.view.html.edit', | |
314 | + :name => 'session.user.content.view.html.doc.bd.client.edit', | |
154 | 315 | :class => 'Widget::Content::Form', |
155 | 316 | :row => {}, |
156 | 317 | :relation => {'view' => 'view:resource.index.edit'}, |
157 | 318 | :preference => { |
158 | - 'form.form.type' => 'edit' | |
319 | + 'form.form.type' => 'edit', | |
320 | + 'label.layout.display' => 'block', | |
321 | + 'label.margin.margin_bottom' => '5px', | |
322 | + 'title.size.width' => '100%', | |
323 | + 'title.margin.margin_bottom' => '10px', | |
324 | + 'content.size.width' => '100%', | |
325 | + 'content.size.height' => '350px', | |
326 | + 'content.margin.margin_bottom' => '10px', | |
159 | 327 | } |
160 | 328 | }, |
161 | 329 | ], |
@@ -165,7 +165,7 @@ | ||
165 | 165 | } |
166 | 166 | |
167 | 167 | ESC_STR = ESC.inject('') do |ret, (key, val)| |
168 | - ret += key | |
168 | + ret << key | |
169 | 169 | ret |
170 | 170 | end |
171 | 171 |
@@ -2,7 +2,6 @@ | ||
2 | 2 | # Copyright (C) 2007, 2008 Jun Kikuchi <kikuchi@bonnou.com> |
3 | 3 | # |
4 | 4 | |
5 | -require 'enumerator' | |
6 | 5 | require 'tenarai/cgi' |
7 | 6 | require 'tenarai/container' |
8 | 7 |
@@ -95,8 +94,6 @@ | ||
95 | 94 | 505 => 'HTTP Version Not Supported' |
96 | 95 | } |
97 | 96 | |
98 | - include Enumerable | |
99 | - | |
100 | 97 | attr_accessor :code |
101 | 98 | attr_reader :header |
102 | 99 | attr_reader :cookie |
@@ -112,10 +109,6 @@ | ||
112 | 109 | @out = out |
113 | 110 | end |
114 | 111 | |
115 | - def fetch(key) | |
116 | - @header.fetch(key) | |
117 | - end | |
118 | - | |
119 | 112 | def [](key) |
120 | 113 | @header[key] |
121 | 114 | end |
@@ -124,10 +117,6 @@ | ||
124 | 117 | @header[key] = val |
125 | 118 | end |
126 | 119 | |
127 | - def each(&block) | |
128 | - @header.each(&block) | |
129 | - end | |
130 | - | |
131 | 120 | def set_cookie(key, val, param={}) |
132 | 121 | cookie << Cookie.new(key, val, param) |
133 | 122 | end |
@@ -2,7 +2,6 @@ | ||
2 | 2 | # Copyright (C) 2007, 2008 Jun Kikuchi <kikuchi@bonnou.com> |
3 | 3 | # |
4 | 4 | |
5 | -require 'enumerator' | |
6 | 5 | require 'stringio' |
7 | 6 | require 'tenarai/cgi' |
8 | 7 | require 'tenarai/cgi/parser' |
@@ -54,8 +53,6 @@ | ||
54 | 53 | } |
55 | 54 | HANDLER.default = NilHandler |
56 | 55 | |
57 | - include Enumerable | |
58 | - | |
59 | 56 | attr_reader :method |
60 | 57 | attr_reader :cookie |
61 | 58 | attr_reader :query |
@@ -91,17 +88,9 @@ | ||
91 | 88 | @content.freeze |
92 | 89 | end |
93 | 90 | |
94 | - def fetch(key) | |
95 | - @header.fetch(key) | |
96 | - end | |
97 | - | |
98 | 91 | def [](key) |
99 | 92 | @header[key] |
100 | 93 | end |
101 | - | |
102 | - def each(&block) | |
103 | - @header.each(&block) | |
104 | - end | |
105 | 94 | end |
106 | 95 | end |
107 | 96 | end |
@@ -1,5 +1,5 @@ | ||
1 | 1 | # |
2 | -# Copyright (C) 2007 Jun Kikuchi <kikuchi@bonnou.com> | |
2 | +# Copyright (C) 2007, 2008 Jun Kikuchi <kikuchi@bonnou.com> | |
3 | 3 | # |
4 | 4 | |
5 | 5 | require 'tenarai/xml' |
@@ -21,7 +21,7 @@ | ||
21 | 21 | end |
22 | 22 | |
23 | 23 | def <<(md) |
24 | - @buf.push(md) | |
24 | + @buf << md | |
25 | 25 | end |
26 | 26 | |
27 | 27 | def render(xml) |
@@ -38,12 +38,12 @@ | ||
38 | 38 | end |
39 | 39 | |
40 | 40 | def <<(md) |
41 | - @buf.push(md[1]) | |
41 | + @buf << md[1] | |
42 | 42 | end |
43 | 43 | |
44 | 44 | def render(xml) |
45 | 45 | @buf.each do |hr| |
46 | - xml.tag(:hr) | |
46 | + xml.tag('hr') | |
47 | 47 | end |
48 | 48 | @buf.clear |
49 | 49 | end |
@@ -57,7 +57,7 @@ | ||
57 | 57 | end |
58 | 58 | |
59 | 59 | def <<(md) |
60 | - @buf += md.post_match + @eol | |
60 | + @buf << md.post_match + @eol | |
61 | 61 | end |
62 | 62 | |
63 | 63 | def render(xml) |
@@ -72,14 +72,14 @@ | ||
72 | 72 | end |
73 | 73 | |
74 | 74 | def <<(md) |
75 | - @buf.push(:term => md[1], :desc => md.post_match) | |
75 | + @buf << {:term => md[1], :desc => md.post_match} | |
76 | 76 | end |
77 | 77 | |
78 | 78 | def render(xml) |
79 | - xml.tag(:dl) do |dl| | |
79 | + xml.tag('dl') do |dl| | |
80 | 80 | @buf.each do |d| |
81 | - dl.tag(:dt).text(d[:term]) | |
82 | - dl.tag(:dd).text(d[:desc]) | |
81 | + dl.tag('dt').text(d[:term]) | |
82 | + dl.tag('dd').text(d[:desc]) | |
83 | 83 | end |
84 | 84 | end |
85 | 85 | @buf.clear |
@@ -95,7 +95,7 @@ | ||
95 | 95 | def <<(md) |
96 | 96 | @op.each do |regexp, tag| |
97 | 97 | if regexp.match(md[1]) |
98 | - @buf.push([tag, md[1].scan(regexp).size, md.post_match]) | |
98 | + @buf << [tag, md[1].scan(regexp).size, md.post_match] | |
99 | 99 | end |
100 | 100 | end |
101 | 101 | end |
@@ -107,19 +107,19 @@ | ||
107 | 107 | @buf.each do |tag, level, text| |
108 | 108 | if stack[level] |
109 | 109 | if stack[level][:tag] == tag |
110 | - li = stack[level][:list].tag(:li) | |
110 | + li = stack[level][:list].tag('li') | |
111 | 111 | stack[level][:li] = li |
112 | 112 | else |
113 | 113 | stack.slice!(level, stack.size) |
114 | 114 | list = stack[level -1][:li].tag(tag) |
115 | - li = list.tag(:li) | |
115 | + li = list.tag('li') | |
116 | 116 | stack[level] = {:tag => tag, :list => list, :li => li} |
117 | 117 | end |
118 | 118 | else |
119 | 119 | until level < stack.size |
120 | 120 | list = stack.last[:li].tag(tag) |
121 | - li = list.tag(:li) | |
122 | - stack.push({:tag => tag, :list => list, :li => li}) | |
121 | + li = list.tag('li') | |
122 | + stack << {:tag => tag, :list => list, :li => li} | |
123 | 123 | end |
124 | 124 | end |
125 | 125 | li.text(text) |
@@ -132,11 +132,11 @@ | ||
132 | 132 | |
133 | 133 | h = Syntax::H.new |
134 | 134 | hr = Syntax::HR.new |
135 | - p = Syntax::Block.new(:p, "") | |
136 | - pre = Syntax::Block.new(:pre, "\n") | |
137 | - blockquote = Syntax::Block.new(:blockquote, "") | |
135 | + p = Syntax::Block.new('p', "") | |
136 | + pre = Syntax::Block.new('pre', "\n") | |
137 | + blockquote = Syntax::Block.new('blockquote', "") | |
138 | 138 | deflist = Syntax::DefList.new |
139 | - list = Syntax::List.new(%r#\-# => :ul, %r#\d+\.# => :ol) | |
139 | + list = Syntax::List.new(%r#\-# => 'ul', %r#\d+\.# => 'ol') | |
140 | 140 | _nil = Syntax::Nil.new |
141 | 141 | |
142 | 142 | SYNTAX = [ |
@@ -172,12 +172,9 @@ | ||
172 | 172 | end |
173 | 173 | private :render_xml |
174 | 174 | |
175 | - attr_reader :text | |
176 | - | |
177 | 175 | def initialize(text) |
178 | 176 | super() |
179 | - @text = text | |
180 | - render_xml(self, @text) | |
177 | + render_xml(self, text) | |
181 | 178 | end |
182 | 179 | end |
183 | 180 | end |
@@ -122,6 +122,7 @@ | ||
122 | 122 | end if v[:relation] |
123 | 123 | |
124 | 124 | v[:preference].each do |pk, pv| |
125 | + p [pk, pv] | |
125 | 126 | if pv.is_a? Symbol |
126 | 127 | mk, mv = pv.to_s.split(':') |
127 | 128 | pv = map[mk][mv].primary_key.to_s |
@@ -8,7 +8,7 @@ | ||
8 | 8 | extend Tenarai::ClassLoader |
9 | 9 | |
10 | 10 | preference 'yui' do |yui| |
11 | - yui.group 'reset_fonts_grids' do |rfg| | |
11 | + yui.group 'src' do |rfg| | |
12 | 12 | rfg.edit 'uri' do |uri| |
13 | 13 | uri.value = 'http://yui.yahooapis.com/2.5.1/build/reset-fonts-grids/reset-fonts-grids.css' |
14 | 14 | end |
@@ -20,7 +20,7 @@ | ||
20 | 20 | 'link', |
21 | 21 | 'rel' => 'stylesheet', |
22 | 22 | 'type' => 'text/css', |
23 | - 'href' => preference.yui.reset_fonts_grids.uri.value | |
23 | + 'href' => preference.yui.src.uri.value | |
24 | 24 | ) |
25 | 25 | end |
26 | 26 | end |
@@ -62,6 +62,7 @@ | ||
62 | 62 | 'lang' => 'ja' |
63 | 63 | ) do |html| |
64 | 64 | html.tag('head') do |head| |
65 | + render_html_head(head, builder) | |
65 | 66 | head.tag( |
66 | 67 | 'link', |
67 | 68 | 'rel' => 'stylesheet', |
@@ -68,7 +69,6 @@ | ||
68 | 69 | 'type' => 'text/css', |
69 | 70 | 'href' => uri('css') |
70 | 71 | ) |
71 | - render_html_head(head, builder) | |
72 | 72 | end |
73 | 73 | html.tag('body', 'id' => html_id) do |body| |
74 | 74 | if builder.empty?(self) |
@@ -0,0 +1,38 @@ | ||
1 | +# | |
2 | +# Copyright (C) 2008 Jun Kikuchi <kikuchi@bonnou.com> | |
3 | +# | |
4 | + | |
5 | +Tenarai::ClassLoader.load_class('Widget::View') | |
6 | + | |
7 | +class Widget | |
8 | + class View | |
9 | + class Menu < ::Widget | |
10 | + extend Tenarai::ClassLoader | |
11 | + | |
12 | + preference_css 'box' | |
13 | + preference_css 'ul', 'ul' | |
14 | + preference_css 'li', 'li' | |
15 | + preference_css 'a', 'a' | |
16 | + preference_css 'a_selected', 'a.selected' | |
17 | + preference_css 'a_hover', 'a:hover' | |
18 | + | |
19 | + def render_html(xml, builder, content=nil) | |
20 | + content = resource.content.parent if content.nil? | |
21 | + | |
22 | + xml.tag('div', 'id' => html_id) do |div| | |
23 | + div.tag('ul') do |ul| | |
24 | + content.node.each do |c| | |
25 | + ul.tag('li') do |li| | |
26 | + li.tag('a') do |a| | |
27 | + a['href'] = uri(c.id) | |
28 | + a['class'] = 'selected' if resource.content.equal?(c) | |
29 | + end.text(c.name) | |
30 | + render_html(li, builder, c) unless c.node.empty? | |
31 | + end | |
32 | + end | |
33 | + end | |
34 | + end | |
35 | + end | |
36 | + end | |
37 | + end | |
38 | +end |
@@ -44,10 +44,10 @@ | ||
44 | 44 | end |
45 | 45 | |
46 | 46 | def render_html(xml, builder) |
47 | - if form_type == :new | |
48 | - title, body = '', '' | |
47 | + title, body, submit = if form_type == :new | |
48 | + ['', '', '登録'] | |
49 | 49 | else |
50 | - title, body = resource.content.title, resource.content.body | |
50 | + [resource.content.title, resource.content.body, '更新'] | |
51 | 51 | end |
52 | 52 | |
53 | 53 | xml.tag('div', 'id' => html_id) do |div| |
@@ -57,27 +57,24 @@ | ||
57 | 57 | end if @msg |
58 | 58 | |
59 | 59 | form.tag('div') do |div| |
60 | - div.tag('label') do |label| | |
61 | - label.text('Title:') | |
62 | - label.tag( | |
63 | - 'input', | |
64 | - 'type' => 'text', | |
65 | - 'name' => html_id('title'), | |
66 | - 'value' => title | |
67 | - ) | |
68 | - end | |
60 | + div.tag('label').text('Title:') | |
61 | + div.tag( | |
62 | + 'input', | |
63 | + 'type' => 'text', | |
64 | + 'name' => html_id('title'), | |
65 | + 'value' => title | |
66 | + ) | |
69 | 67 | div.tag('br') |
70 | 68 | |
71 | - div.tag('label') do |label| | |
72 | - label.text('Content:') | |
73 | - label.tag('textarea', 'name' => html_id('body')).text(body) | |
74 | - end | |
69 | + div.tag('label').text('Content:') | |
70 | + div.tag('textarea', 'name' => html_id('body')).text(body) | |
75 | 71 | div.tag('br') |
76 | 72 | |
77 | 73 | div.tag( |
78 | 74 | 'input', |
79 | - 'type' => 'submit', | |
80 | - 'name' => html_id('submit') | |
75 | + 'type' => 'submit', | |
76 | + 'name' => html_id('submit'), | |
77 | + 'value' => submit | |
81 | 78 | ) |
82 | 79 | end |
83 | 80 | end |
@@ -11,6 +11,25 @@ | ||
11 | 11 | class Wiki < ::Widget |
12 | 12 | extend Tenarai::ClassLoader |
13 | 13 | |
14 | + preference_css 'box' | |
15 | + | |
16 | + preference_css 'h2', 'h2' | |
17 | + preference_css 'h3', 'h3' | |
18 | + preference_css 'h4', 'h4' | |
19 | + preference_css 'h5', 'h5' | |
20 | + preference_css 'h6', 'h6' | |
21 | + preference_css 'hr', 'hr' | |
22 | + preference_css 'p', 'p' | |
23 | + preference_css 'pre', 'pre' | |
24 | + preference_css 'blockquote', 'blockquote' | |
25 | + preference_css 'dl', 'dl' | |
26 | + preference_css 'dt', 'dt' | |
27 | + preference_css 'dd', 'dd' | |
28 | + preference_css 'ul', 'ul' | |
29 | + preference_css 'ul_li', 'ul li' | |
30 | + preference_css 'ol', 'ol' | |
31 | + preference_css 'ol_li', 'ol li' | |
32 | + | |
14 | 33 | def render_html(xml, builder) |
15 | 34 | xml.tag('div', 'id' => html_id) do |div| |
16 | 35 | div << Tenarai::Wiki.new(resource.content.body) |
@@ -10,9 +10,11 @@ | ||
10 | 10 | extend Tenarai::ClassLoader |
11 | 11 | |
12 | 12 | preference_css 'box' |
13 | - preference_css 'list', 'a' | |
14 | - preference_css 'list_selected', 'a.selected' | |
15 | - preference_css 'list_hover', 'a:hover' | |
13 | + preference_css 'ul', 'ul' | |
14 | + preference_css 'li', 'li' | |
15 | + preference_css 'a', 'a' | |
16 | + preference_css 'a_selected', 'a.selected' | |
17 | + preference_css 'a_hover', 'a:hover' | |
16 | 18 | |
17 | 19 | def render_html(xml, builder, content=nil) |
18 | 20 | if content.nil? |
@@ -10,9 +10,11 @@ | ||
10 | 10 | extend Tenarai::ClassLoader |
11 | 11 | |
12 | 12 | preference_css 'box' |
13 | - preference_css 'path', 'a' | |
14 | - preference_css 'path_selected', 'a.selected' | |
15 | - preference_css 'path_hover', 'a:hover' | |
13 | + preference_css 'ul', 'ul' | |
14 | + preference_css 'li', 'li' | |
15 | + preference_css 'a', 'a' | |
16 | + preference_css 'a_selected', 'a.selected' | |
17 | + preference_css 'a_hover', 'a:hover' | |
16 | 18 | |
17 | 19 | def render_html(xml, builder) |
18 | 20 | xml.tag('div', 'id' => html_id) do |t| |
@@ -56,13 +56,13 @@ | ||
56 | 56 | def to_css |
57 | 57 | Tenarai::CSS.new do |css| |
58 | 58 | widget.render_css(css, self) |
59 | - end.to_s(2) | |
59 | + end.to_s | |
60 | 60 | end |
61 | 61 | |
62 | 62 | def to_html |
63 | 63 | Tenarai::XML.new do |xml| |
64 | 64 | widget.render_html(xml, self) |
65 | - end.to_s(2) | |
65 | + end.to_s | |
66 | 66 | end |
67 | 67 | end |
68 | 68 | end |