runo 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +19 -0
- data/README.rdoc +120 -0
- data/bin/runo +35 -0
- data/lib/_error.rb +14 -0
- data/lib/_field.rb +260 -0
- data/lib/_i18n.rb +141 -0
- data/lib/_parser.rb +243 -0
- data/lib/_path.rb +86 -0
- data/lib/_storage/_storage.rb +213 -0
- data/lib/_storage/file.rb +200 -0
- data/lib/_storage/sequel.rb +174 -0
- data/lib/_storage/temp.rb +73 -0
- data/lib/_widget/action_create.rb +23 -0
- data/lib/_widget/action_login.rb +22 -0
- data/lib/_widget/action_signup.rb +16 -0
- data/lib/_widget/action_update.rb +16 -0
- data/lib/_widget/crumb.rb +24 -0
- data/lib/_widget/done.rb +16 -0
- data/lib/_widget/login.rb +25 -0
- data/lib/_widget/me.rb +31 -0
- data/lib/_widget/message.rb +51 -0
- data/lib/_widget/navi.rb +88 -0
- data/lib/_widget/submit.rb +49 -0
- data/lib/_widget/view_ym.rb +77 -0
- data/lib/_workflow/_workflow.rb +89 -0
- data/lib/_workflow/attachment.rb +50 -0
- data/lib/_workflow/blog.rb +28 -0
- data/lib/_workflow/contact.rb +23 -0
- data/lib/_workflow/forum.rb +26 -0
- data/lib/_workflow/register.rb +39 -0
- data/lib/meta/_meta.rb +20 -0
- data/lib/meta/group.rb +19 -0
- data/lib/meta/id.rb +59 -0
- data/lib/meta/owner.rb +21 -0
- data/lib/meta/timestamp.rb +118 -0
- data/lib/runo.rb +396 -0
- data/lib/scalar/checkbox.rb +68 -0
- data/lib/scalar/file.rb +144 -0
- data/lib/scalar/img.rb +112 -0
- data/lib/scalar/password.rb +58 -0
- data/lib/scalar/radio.rb +47 -0
- data/lib/scalar/select.rb +47 -0
- data/lib/scalar/text.rb +38 -0
- data/lib/scalar/textarea.rb +35 -0
- data/lib/scalar/textarea_pre.rb +14 -0
- data/lib/scalar/textarea_wiki.rb +173 -0
- data/lib/set/_set.rb +195 -0
- data/lib/set/dynamic.rb +177 -0
- data/lib/set/static.rb +102 -0
- data/lib/set/static_folder.rb +96 -0
- data/locale/en/index.po +242 -0
- data/locale/index.pot +243 -0
- data/locale/ja/index.po +242 -0
- data/locale/lazy_parser.rb +54 -0
- data/skel/config.ru +27 -0
- data/skel/skin/_users/00000000_frank-avatar.jpg +0 -0
- data/skel/skin/_users/00000000_frank-avatar_small.jpg +0 -0
- data/skel/skin/_users/00000000_frank.yaml +12 -0
- data/skel/skin/_users/00000000_root-avatar.jpg +0 -0
- data/skel/skin/_users/00000000_root-avatar_small.jpg +0 -0
- data/skel/skin/_users/00000000_root.yaml +11 -0
- data/skel/skin/_users/css/users.css +21 -0
- data/skel/skin/_users/css/users.less +25 -0
- data/skel/skin/_users/done.html +42 -0
- data/skel/skin/_users/index.html +46 -0
- data/skel/skin/_users/index.yaml +3 -0
- data/skel/skin/_users/summary.html +40 -0
- data/skel/skin/css/base.css +93 -0
- data/skel/skin/css/base.less +139 -0
- data/skel/skin/css/coax.css +199 -0
- data/skel/skin/css/coax.less +244 -0
- data/skel/skin/examples/blog/20091214_0001.yaml +8 -0
- data/skel/skin/examples/blog/20100630_0001.yaml +8 -0
- data/skel/skin/examples/blog/20100630_0002.yaml +14 -0
- data/skel/skin/examples/blog/20100701_0001.yaml +8 -0
- data/skel/skin/examples/blog/20100701_0002-a-20100701_0001-f.jpg +0 -0
- data/skel/skin/examples/blog/20100701_0002-a-20100701_0001-f_small.jpg +0 -0
- data/skel/skin/examples/blog/20100701_0002.yaml +19 -0
- data/skel/skin/examples/blog/frank/20100701_0001.yaml +10 -0
- data/skel/skin/examples/blog/frank/index.yaml +4 -0
- data/skel/skin/examples/blog/index.html +51 -0
- data/skel/skin/examples/blog/rss.xml +18 -0
- data/skel/skin/examples/contact/20100701_0001-file.txt +1 -0
- data/skel/skin/examples/contact/20100701_0001.yaml +15 -0
- data/skel/skin/examples/contact/20100701_0002.yaml +8 -0
- data/skel/skin/examples/contact/20100701_0003.yaml +9 -0
- data/skel/skin/examples/contact/index.html +47 -0
- data/skel/skin/examples/contact/js/contact.js +13 -0
- data/skel/skin/examples/contact/summary.html +54 -0
- data/skel/skin/examples/forum/20100701_0001.yaml +41 -0
- data/skel/skin/examples/forum/20100701_0002.yaml +25 -0
- data/skel/skin/examples/forum/index.html +68 -0
- data/skel/skin/examples/forum/summary.html +47 -0
- data/skel/skin/examples/index.html +75 -0
- data/skel/skin/index.html +41 -0
- data/skel/skin/js/base.js +50 -0
- data/t/locale/de/index.po +19 -0
- data/t/locale/en-GB/index.po +25 -0
- data/t/locale/ja/index.po +30 -0
- data/t/skin/_users/00000000_test.yaml +3 -0
- data/t/skin/_users/index.html +13 -0
- data/t/skin/foo/20091120_0001.yaml +7 -0
- data/t/skin/foo/bar/20091120_0001.yaml +5 -0
- data/t/skin/foo/bar/index.yaml +5 -0
- data/t/skin/foo/baz/css/baz.css +1 -0
- data/t/skin/foo/css/foo.css +1 -0
- data/t/skin/foo/index.html +14 -0
- data/t/skin/foo/index.yaml +7 -0
- data/t/skin/foo/not_css/foo.css +1 -0
- data/t/skin/foo/sub-20100306_0001.yaml +3 -0
- data/t/skin/index.yaml +3 -0
- data/t/skin/t_attachment/index.html +13 -0
- data/t/skin/t_contact/done.html +6 -0
- data/t/skin/t_contact/index.html +9 -0
- data/t/skin/t_file/index.html +16 -0
- data/t/skin/t_img/index.html +14 -0
- data/t/skin/t_img/test.jpg +0 -0
- data/t/skin/t_select/index.html +9 -0
- data/t/skin/t_store/index.html +9 -0
- data/t/skin/t_summary/20100326_0001.yaml +3 -0
- data/t/skin/t_summary/create.html +9 -0
- data/t/skin/t_summary/index.html +9 -0
- data/t/skin/t_summary/summary.html +9 -0
- data/t/t.rb +27 -0
- data/t/test_checkbox.rb +273 -0
- data/t/test_field.rb +330 -0
- data/t/test_file.rb +900 -0
- data/t/test_id.rb +215 -0
- data/t/test_img.rb +328 -0
- data/t/test_meta.rb +57 -0
- data/t/test_parser.rb +1266 -0
- data/t/test_password.rb +188 -0
- data/t/test_radio.rb +226 -0
- data/t/test_role.rb +249 -0
- data/t/test_runo.rb +742 -0
- data/t/test_runo_call.rb +1286 -0
- data/t/test_runo_i18n.rb +318 -0
- data/t/test_select.rb +182 -0
- data/t/test_set_complex.rb +527 -0
- data/t/test_set_dynamic.rb +1504 -0
- data/t/test_set_folder.rb +515 -0
- data/t/test_set_permit.rb +246 -0
- data/t/test_set_static.rb +445 -0
- data/t/test_storage.rb +915 -0
- data/t/test_text.rb +125 -0
- data/t/test_textarea.rb +138 -0
- data/t/test_timestamp.rb +473 -0
- data/t/test_workflow.rb +367 -0
- metadata +345 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
6
|
+
|
7
|
+
<head>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
9
|
+
<title>@(label)</title>
|
10
|
+
<link rel="stylesheet" href="/css/base.css" type="text/css" media="screen" />
|
11
|
+
<link rel="stylesheet" href="/css/coax.css" type="text/css" media="screen" />
|
12
|
+
</head>
|
13
|
+
|
14
|
+
<body>
|
15
|
+
<div id="container">
|
16
|
+
<div id="header">
|
17
|
+
<h1><a href=".">@(label)</a></h1>
|
18
|
+
$(.crumb)
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div id="center" class="column">
|
22
|
+
<table id="main" class="runo-contact summary" style="border: 1px solid black;">
|
23
|
+
<tr>
|
24
|
+
<th>Subject</th>
|
25
|
+
<th>Author</th>
|
26
|
+
<th>Posted at</th>
|
27
|
+
</tr>
|
28
|
+
<tr class="body">
|
29
|
+
<td>$(subject)</td>
|
30
|
+
<td>$(_owner)</td>
|
31
|
+
<td>$(_timestamp)</td>
|
32
|
+
</tr>
|
33
|
+
</table>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
<div id="right" class="column">
|
37
|
+
$(.action_signup)
|
38
|
+
$(.me)
|
39
|
+
$(main.action_create)
|
40
|
+
$(main.view_ym)
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="footer"></div>
|
44
|
+
</div>
|
45
|
+
</body>
|
46
|
+
|
47
|
+
</html>
|
@@ -0,0 +1,75 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="_(en)" lang="_(en)">
|
6
|
+
|
7
|
+
<head>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
9
|
+
<meta name="runo-label" content="Examples" />
|
10
|
+
<title>@(label)</title>
|
11
|
+
<link rel="stylesheet" href="/css/base.css" type="text/css" media="screen" />
|
12
|
+
<link rel="stylesheet" href="/css/coax.css" type="text/css" media="screen" />
|
13
|
+
</head>
|
14
|
+
|
15
|
+
<body>
|
16
|
+
<div id="container">
|
17
|
+
<div id="header">
|
18
|
+
<h1><a href=".">@(label)</a></h1>
|
19
|
+
$(.crumb)
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div id="center" class="column">
|
23
|
+
<h2>@(label)</h2>
|
24
|
+
<p>
|
25
|
+
This directory contains some sample apps to show you how good Runo works.
|
26
|
+
When you don't need them any more, you can just remove skin/examples/ directory and they will be gone.
|
27
|
+
</p>
|
28
|
+
<p>
|
29
|
+
You may have to login to try some features of the apps. By default, there are two users.
|
30
|
+
The first user is "root", the admin of the whole Runo app.
|
31
|
+
The second user is "frank", who has no special privilege.
|
32
|
+
Their initial passwords are same as their names (e.g. "root" for root, "frank" for frank).
|
33
|
+
And of course, you can create your own account at <a href="../_users/create.html">here</a>.
|
34
|
+
</p>
|
35
|
+
<p>
|
36
|
+
The data are stored in plain YAML files under data/examples/ by default. You can store the data on any RDB by fiddling config.ru.
|
37
|
+
</p>
|
38
|
+
<dl>
|
39
|
+
<dt><a href="./blog/">Blog</a></dt>
|
40
|
+
<dd>
|
41
|
+
The admin (root) can post / update / delete entries and everybody can read them.
|
42
|
+
Typical features such as monthly archives or syndication by RSS are provided.
|
43
|
+
You have to login as "root" to post new articles.
|
44
|
+
</dd>
|
45
|
+
<dt><a href="./blog/frank/">Frank's Blog</a></dt>
|
46
|
+
<dd>
|
47
|
+
This is an example of inheritance.
|
48
|
+
By simply making an empty sub-directory (blog/frank/), all HTMLs are inherited from the upper directory (blog/).
|
49
|
+
Then, blog/frank/index.yaml overrides the label ("Frank's Blog") and the admin (frank).
|
50
|
+
</dd>
|
51
|
+
<dt><a href="./contact/">Contact Form</a></dt>
|
52
|
+
<dd>
|
53
|
+
This is an "everybody -> admin" type app.
|
54
|
+
Everybody other than root can post this form and only root can see the posted result.
|
55
|
+
The index.html should be a good sample of various items such like radio, select, checkbox etc.
|
56
|
+
</dd>
|
57
|
+
<dt><a href="./forum/">Forum</a></dt>
|
58
|
+
<dd>
|
59
|
+
This is an example of a nested model.
|
60
|
+
The app will have many posts, and each post will have many comments.
|
61
|
+
Everybody who logged in can create a new post, or reply to a existing post.
|
62
|
+
</dd>
|
63
|
+
</dl>
|
64
|
+
<div id="main" class="runo-blog"></div>
|
65
|
+
<!-- $(main.action_create) -->
|
66
|
+
</div>
|
67
|
+
|
68
|
+
<div id="right" class="column">
|
69
|
+
</div>
|
70
|
+
|
71
|
+
<div id="footer"></div>
|
72
|
+
</div>
|
73
|
+
</body>
|
74
|
+
|
75
|
+
</html>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="_(en)" lang="_(en)">
|
6
|
+
|
7
|
+
<head>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
9
|
+
<meta name="runo-label" content="Home" />
|
10
|
+
<title>_(It works!)</title>
|
11
|
+
<link rel="stylesheet" href="/css/base.css" type="text/css" media="screen" />
|
12
|
+
<link rel="stylesheet" href="/css/coax.css" type="text/css" media="screen" />
|
13
|
+
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
|
14
|
+
<script type="text/javascript" src="/js/base.js"></script>
|
15
|
+
</head>
|
16
|
+
|
17
|
+
<body>
|
18
|
+
<div id="container">
|
19
|
+
<div id="header">
|
20
|
+
<h1><a href=".">_(It works!)</a></h1>
|
21
|
+
$(.crumb)
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div id="center" class="column">
|
25
|
+
<h2>_(Welcome!)</h2>
|
26
|
+
<p>
|
27
|
+
This is your homepage of the Runo app.<br />
|
28
|
+
You can play with <a href="./examples/">the examples</a> before making your first Runo app.
|
29
|
+
</p>
|
30
|
+
<div id="main" class="runo-blog"></div>
|
31
|
+
<!-- $(main.action_create) -->
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div id="right" class="column">
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<div id="footer"></div>
|
38
|
+
</div>
|
39
|
+
</body>
|
40
|
+
|
41
|
+
</html>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
$('span.error').hover(
|
3
|
+
function(){
|
4
|
+
$('.error_message', this).fadeIn(150);
|
5
|
+
},
|
6
|
+
function(){
|
7
|
+
if ($(this).is(':not(.focused)')) $('.error_message', this).fadeOut(50);
|
8
|
+
}
|
9
|
+
);
|
10
|
+
|
11
|
+
$(':input', $('span.error')).focus(
|
12
|
+
function(){
|
13
|
+
var d = $(this).closest('span.error');
|
14
|
+
d.addClass('focused');
|
15
|
+
$('.error_message', d).fadeIn(150);
|
16
|
+
}
|
17
|
+
).blur(
|
18
|
+
function(){
|
19
|
+
var d = $(this).closest('span.error');
|
20
|
+
d.removeClass('focused');
|
21
|
+
$('.error_message', d).fadeOut(50);
|
22
|
+
}
|
23
|
+
).change(
|
24
|
+
function(){
|
25
|
+
var d = $(this).closest('span.error');
|
26
|
+
d.removeClass('error');
|
27
|
+
d.removeClass('focused');
|
28
|
+
$('.error_message', d).hide();
|
29
|
+
}
|
30
|
+
);
|
31
|
+
|
32
|
+
$('.error_message').hide().css({
|
33
|
+
'color': 'white',
|
34
|
+
'background': 'red',
|
35
|
+
'opacity': '0.9',
|
36
|
+
'position': 'absolute',
|
37
|
+
'margin-left': '0',
|
38
|
+
'margin-top': '2px',
|
39
|
+
'padding': '.3em 1em .3em 1em',
|
40
|
+
'-moz-border-radius': '.3em',
|
41
|
+
'-webkit-border-radius': '.3em'
|
42
|
+
});
|
43
|
+
|
44
|
+
if ($('span.error').length > 0) {
|
45
|
+
$(':input:enabled:first', $('span.error:first')).focus().select();
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
$(':input:enabled:first').focus().select();
|
49
|
+
}
|
50
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# just a test.
|
2
|
+
# Copyright (C) 2010 Akira FUNAI
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
4
|
+
# FIRST AUTHOR Akira FUNAI, 2010.
|
5
|
+
#
|
6
|
+
|
7
|
+
"Project-Id-Version: 0.01\n"
|
8
|
+
"POT-Creation-Date: 2010-05-06 15:11+0900\n"
|
9
|
+
"PO-Revision-Date: 2010-05-06 15:11+0900\n"
|
10
|
+
"Last-Translator: Akira FUNAI <akira@funai.com>\n"
|
11
|
+
"Language-Team: none <nobody@example.com>\n"
|
12
|
+
"MIME-Version: 1.0\n"
|
13
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14
|
+
"Content-Transfer-Encoding: 8bit\n"
|
15
|
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
16
|
+
|
17
|
+
#: t.rb:1234
|
18
|
+
msgid "malformed input."
|
19
|
+
msgstr "Fehlerhafte Eingabe."
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# just a test.
|
2
|
+
# Copyright (C) 2010 Akira FUNAI
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
4
|
+
# FIRST AUTHOR Akira FUNAI, 2010.
|
5
|
+
#
|
6
|
+
|
7
|
+
"Project-Id-Version: 0.01\n"
|
8
|
+
"POT-Creation-Date: 2010-05-06 15:11+0900\n"
|
9
|
+
"PO-Revision-Date: 2010-05-06 15:11+0900\n"
|
10
|
+
"Last-Translator: Akira FUNAI <akira@funai.com>\n"
|
11
|
+
"Language-Team: none <nobody@example.com>\n"
|
12
|
+
"MIME-Version: 1.0\n"
|
13
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14
|
+
"Content-Transfer-Encoding: 8bit\n"
|
15
|
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
16
|
+
|
17
|
+
#: t.rb:1234
|
18
|
+
msgid "color"
|
19
|
+
msgstr "colour"
|
20
|
+
|
21
|
+
#: t.rb:2345
|
22
|
+
msgid "one color"
|
23
|
+
msgid_plural "%{n} colors"
|
24
|
+
msgstr[0] "one colour"
|
25
|
+
msgstr[1] "%{n} colours"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# just a test.
|
2
|
+
# Copyright (C) 2010 Akira FUNAI
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
4
|
+
# FIRST AUTHOR Akira FUNAI, 2010.
|
5
|
+
#
|
6
|
+
|
7
|
+
"Project-Id-Version: 0.01\n"
|
8
|
+
"POT-Creation-Date: 2010-05-06 15:11+0900\n"
|
9
|
+
"PO-Revision-Date: 2010-05-06 15:11+0900\n"
|
10
|
+
"Last-Translator: Akira FUNAI <akira@funai.com>\n"
|
11
|
+
"Language-Team: none <nobody@example.com>\n"
|
12
|
+
"MIME-Version: 1.0\n"
|
13
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14
|
+
"Content-Transfer-Encoding: 8bit\n"
|
15
|
+
"Plural-Forms: nplurals=1; plural=0;\n"
|
16
|
+
|
17
|
+
#: t.rb:1234
|
18
|
+
msgid "color"
|
19
|
+
msgstr "色"
|
20
|
+
# msgstr "mmm"
|
21
|
+
|
22
|
+
#: t.rb:2234
|
23
|
+
#, fuzzy
|
24
|
+
msgid "sound"
|
25
|
+
msgstr "音"
|
26
|
+
|
27
|
+
#: t.rb:2345
|
28
|
+
msgid "one color"
|
29
|
+
msgid_plural "%{n} colors"
|
30
|
+
msgstr[0] "%{n}色"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>@(label)</title></head>
|
3
|
+
<body>
|
4
|
+
<h1>@(label)</h1>
|
5
|
+
<dl id="main" class="runo-blog">
|
6
|
+
<dt>id: $(_id = meta-id 32 1..32)</dt>
|
7
|
+
<dd>
|
8
|
+
password: $(password = password 12)
|
9
|
+
avatar: $(avatar = img 72*72 0...320000)
|
10
|
+
</dd>
|
11
|
+
</dl>
|
12
|
+
</body>
|
13
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
#moo {}
|
@@ -0,0 +1 @@
|
|
1
|
+
#foo {bar: baz;}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>@(label)</title></head>
|
3
|
+
<body>
|
4
|
+
<h1>@(label)</h1>
|
5
|
+
<ul id="main" class="runo-blog">
|
6
|
+
<li>
|
7
|
+
$(name = text 32 1..32 :'foo'): $(comment = text 64 1..64 :'bar!')
|
8
|
+
<ul id="files" class="runo-attachment"><li>$(file=text)</li></ul>
|
9
|
+
<ul id="replies" class="runo-blog"><li>$(reply=text)</li></ul>
|
10
|
+
</li>
|
11
|
+
</ul>
|
12
|
+
<ul id="sub" class="runo-blog"><li>$(article=text)</li></ul>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
#foo {bar: baz;}
|
data/t/skin/index.yaml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>@(label)</title></head>
|
3
|
+
<body>
|
4
|
+
<h1>@(label)</h1>
|
5
|
+
<ul id="main" class="runo-blog">
|
6
|
+
<li title="tArticle, tArticles">
|
7
|
+
$(comment=text)
|
8
|
+
<ul id="files" class="runo-attachment"><li>$(file=text 1..16)</li></ul>
|
9
|
+
<ul id="replies" class="runo-blog"><li>$(reply=text)</li></ul>
|
10
|
+
</li>
|
11
|
+
</ul>
|
12
|
+
</body>
|
13
|
+
</html>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>@(label)</title></head>
|
3
|
+
<body>
|
4
|
+
<h1>@(label)</h1>
|
5
|
+
<ul id="main" class="runo-blog">
|
6
|
+
<li>
|
7
|
+
$(_timestamp = meta-timestamp can_edit)
|
8
|
+
$(foo = file 0..50)
|
9
|
+
$(bar = file 0..50)
|
10
|
+
<ul id="baz" class="runo-attachment">
|
11
|
+
$(qux = file 1..50)
|
12
|
+
</ul>
|
13
|
+
</li>
|
14
|
+
</ul>
|
15
|
+
</body>
|
16
|
+
</html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>@(label)</title></head>
|
3
|
+
<body>
|
4
|
+
<h1>@(label)</h1>
|
5
|
+
<ul id="main" class="runo-blog">
|
6
|
+
<li>
|
7
|
+
$(foo = img 32*32 1..5000 crop)
|
8
|
+
<ul id="baz" class="runo-attachment">
|
9
|
+
$(qux = img 16*16 1..5000 crop)
|
10
|
+
</ul>
|
11
|
+
</li>
|
12
|
+
</ul>
|
13
|
+
</body>
|
14
|
+
</html>
|