gf-ralbum 0.0.2
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/LICENSE +20 -0
- data/README.rdoc +80 -0
- data/bin/ralbum-JPG2jpg.rb +90 -0
- data/bin/ralbum-compile_skins.rb +18 -0
- data/bin/ralbum-myconv.rb +81 -0
- data/bin/ralbum-readexif.rb +18 -0
- data/bin/ralbum-reorder.rb +200 -0
- data/bin/ralbum.rb +12 -0
- data/example/README.txt +8 -0
- data/example/example.sh +3 -0
- data/example/httpd.rb +35 -0
- data/example/test_phototree/album.xml +21 -0
- data/example/test_phototree/catalog_data/md5_to_key.yaml +4 -0
- data/example/test_phototree/catalog_data/md5_to_key.yaml.test +4 -0
- data/example/test_phototree/catalog_data/project.xml +329 -0
- data/example/test_phototree/r_photo01.jpg +0 -0
- data/example/test_phototree/r_photo01.jpg.xml +17 -0
- data/example/test_phototree/subalbum01/album.xml +21 -0
- data/example/test_phototree/subalbum01/subalbum01_photo01.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo01.jpg.xml +15 -0
- data/example/test_phototree/subalbum01/subalbum01_photo02.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo02.jpg.xml +15 -0
- data/example/test_phototree/subalbum01/subalbum01_photo03.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo03.jpg.xml +15 -0
- data/example/test_phototree/subalbum01/subalbum01_photo04.jpg +0 -0
- data/example/test_phototree/subalbum01/subalbum01_photo04.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/album.xml +10 -0
- data/example/test_phototree/subalbum02/subalbum02_photo01.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo01.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo02.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo02.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo03.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo03.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo04.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo04.jpg.xml +15 -0
- data/example/test_phototree/subalbum02/subalbum02_photo05.jpg +0 -0
- data/example/test_phototree/subalbum02/subalbum02_photo05.jpg.xml +15 -0
- data/lib/ralbum-common/object_with_properties.rb +14 -0
- data/lib/ralbum-common/object_with_validation.rb +50 -0
- data/lib/ralbum.rb +19 -0
- data/lib/ralbum/album.rb +66 -0
- data/lib/ralbum/catalog.rb +178 -0
- data/lib/ralbum/cli/cli_ralbum.rb +116 -0
- data/lib/ralbum/generate_album_tree_node_visitor.rb +60 -0
- data/lib/ralbum/image_file.rb +81 -0
- data/lib/ralbum/image_pool.rb +71 -0
- data/lib/ralbum/image_strategy.rb +143 -0
- data/lib/ralbum/options.rb +15 -0
- data/lib/ralbum/photo_tree_builder.rb +165 -0
- data/lib/ralbum/photo_tree_item.rb +89 -0
- data/lib/ralbum/photo_tree_node.rb +40 -0
- data/lib/ralbum/project.rb +89 -0
- data/lib/ralbum/ralbum_exception.rb +2 -0
- data/lib/ralbum/resource.rb +17 -0
- data/lib/ralbum/skin.rb +76 -0
- data/lib/ralbum/skin_engine.rb +98 -0
- data/lib/ralbum/skin_engines/erb_skin_engine.rb +35 -0
- data/lib/ralbum/skin_engines/kwartz_skin_engine.rb +54 -0
- data/lib/ralbum/skin_manager.rb +46 -0
- data/lib/ralbum/skins/cgi/cgi_skin.rb +27 -0
- data/lib/ralbum/skins/cgi/info.yml +3 -0
- data/lib/ralbum/skins/cgi/res/model.rb +235 -0
- data/lib/ralbum/skins/cgi/res/resource.rb +17 -0
- data/lib/ralbum/skins/gfold/inc/menu_bottom.html +53 -0
- data/lib/ralbum/skins/gfold/inc/menu_top.html +71 -0
- data/lib/ralbum/skins/gfold/inc/page_footer.html +28 -0
- data/lib/ralbum/skins/gfold/info.yml +3 -0
- data/lib/ralbum/skins/gfold/out/album_page.rb +316 -0
- data/lib/ralbum/skins/gfold/out/image_page.rb +231 -0
- data/lib/ralbum/skins/gfold/out/tree_page.rb +96 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-down.png +0 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-left.png +0 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-right.png +0 -0
- data/lib/ralbum/skins/gfold/res/16-arrow-up.png +0 -0
- data/lib/ralbum/skins/gfold/res/left.gif +0 -0
- data/lib/ralbum/skins/gfold/res/prototype.js +3277 -0
- data/lib/ralbum/skins/gfold/res/right.gif +0 -0
- data/lib/ralbum/skins/gfold/res/style1.css +453 -0
- data/lib/ralbum/skins/gfold/res/style2.css +414 -0
- data/lib/ralbum/skins/gfold/res/styleswitcher.js +89 -0
- data/lib/ralbum/skins/gfold/res/top.gif +0 -0
- data/lib/ralbum/skins/gfold/res/up.gif +0 -0
- data/lib/ralbum/skins/gfold/res/valid-css.png +0 -0
- data/lib/ralbum/skins/gfold/res/valid-xhtml.png +0 -0
- data/lib/ralbum/skins/gfold/res/valid-xhtml11.png +0 -0
- data/lib/ralbum/skins/gfold/res/vcss.gif +0 -0
- data/lib/ralbum/skins/gfold/template/album_page.html +161 -0
- data/lib/ralbum/skins/gfold/template/album_page.plogic +127 -0
- data/lib/ralbum/skins/gfold/template/image_page.html +91 -0
- data/lib/ralbum/skins/gfold/template/image_page.plogic +70 -0
- data/lib/ralbum/skins/gfold/template/tree_page.html +79 -0
- data/lib/ralbum/skins/gfold/template/tree_page.plogic +45 -0
- data/lib/ralbum/skins/js/info.yml +3 -0
- data/lib/ralbum/skins/js/js_skin.rb +50 -0
- data/lib/ralbum/skins/js/out/album_page.rb +181 -0
- data/lib/ralbum/skins/js/out/slideshow_page.rb +187 -0
- data/lib/ralbum/skins/js/out/tree_page.rb +134 -0
- data/lib/ralbum/skins/js/res/left.gif +0 -0
- data/lib/ralbum/skins/js/res/right.gif +0 -0
- data/lib/ralbum/skins/js/res/style.css +76 -0
- data/lib/ralbum/skins/js/res/top.gif +0 -0
- data/lib/ralbum/skins/js/res/up.gif +0 -0
- data/lib/ralbum/skins/js/template/album_page.html +178 -0
- data/lib/ralbum/skins/js/template/album_page.plogic +88 -0
- data/lib/ralbum/skins/js/template/slideshow_page.html +169 -0
- data/lib/ralbum/skins/js/template/slideshow_page.plogic +1 -0
- data/lib/ralbum/skins/js/template/tree_page.html +118 -0
- data/lib/ralbum/skins/js/template/tree_page.plogic +43 -0
- data/lib/ralbum/skins/test_erb/info.yml +3 -0
- data/lib/ralbum/skins/test_erb/out/album_page.rb +54 -0
- data/lib/ralbum/skins/test_erb/out/image_page.rb +54 -0
- data/lib/ralbum/skins/test_kwartz/info.yml +3 -0
- data/lib/ralbum/skins/test_kwartz/out/album_page.rb +54 -0
- data/lib/ralbum/skins/test_kwartz/out/image_page.rb +54 -0
- data/lib/ralbum/skins/test_kwartz/template/album_page.html +37 -0
- data/lib/ralbum/skins/test_kwartz/template/image_page.html +37 -0
- data/test/ralbum/cli/test_cli_ralbum.rb +13 -0
- data/test/ralbum/tc_01_photo_tree.rb +37 -0
- data/test/ralbum/tc_02_photo_tree_builder.rb +20 -0
- data/test/ralbum/tc_03_album.rb +42 -0
- data/test/ralbum/tc_04_skin_manager.rb +30 -0
- data/test/ralbum/tc_05_kwartz_skin_engine.rb +50 -0
- data/test/ralbum/tc_06_image_strategy.rb +21 -0
- data/test/ralbum/tc_catalog.rb +31 -0
- data/test/ralbum/test_helper.rb +13 -0
- data/test/test_ralbum.rb +14 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0004.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0005.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0006.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/img_0007.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_1/index.html +195 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0008.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0009.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0010.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0011.jpg.html +152 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/img_0012.jpg.html +148 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/album_2/index.html +206 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/img_0003.jpg.html +141 -0
- data/test_data/ralbum/test_data/albums_directory/gfold/index.html +208 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0003.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0004.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0005.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0006.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0007.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0008.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0009.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0010.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0011.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_100x100/img_0012.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0003.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0004.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0005.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0006.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0007.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0008.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0009.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0010.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0011.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/images_640x480/img_0012.jpg +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/left.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/prototype.js +3277 -0
- data/test_data/ralbum/test_data/albums_directory/res/right.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/style1.css +453 -0
- data/test_data/ralbum/test_data/albums_directory/res/style2.css +414 -0
- data/test_data/ralbum/test_data/albums_directory/res/styleswitcher.js +89 -0
- data/test_data/ralbum/test_data/albums_directory/res/top.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/up.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/valid-css.png +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/valid-xhtml.png +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/valid-xhtml11.png +0 -0
- data/test_data/ralbum/test_data/albums_directory/res/vcss.gif +0 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0004.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0005.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0006.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/img_0007.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_1/index.html +13 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0008.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0009.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0010.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0011.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/img_0012.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/album_2/index.html +13 -0
- data/test_data/ralbum/test_data/albums_directory/test/img_0003.jpg.html +11 -0
- data/test_data/ralbum/test_data/albums_directory/test/index.html +13 -0
- data/test_data/ralbum/test_data/is_test/r_photo01_scaled.jpg +0 -0
- data/test_data/ralbum/test_data/is_test/r_photo01_sepia_scaled.jpg +0 -0
- metadata +276 -0
@@ -0,0 +1,169 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>#{album.title}#</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="#{relroot}#data/style.css">
|
6
|
+
|
7
|
+
<script LANGUAGE="JavaScript">
|
8
|
+
<!--
|
9
|
+
|
10
|
+
// ----- getParams
|
11
|
+
|
12
|
+
function getParams()
|
13
|
+
{
|
14
|
+
var idx = document.URL.indexOf("?");
|
15
|
+
var params = new Array();
|
16
|
+
if (idx != -1) {
|
17
|
+
var pairs =
|
18
|
+
document.URL.substring( idx + 1, document.URL.lenght ).split("&");
|
19
|
+
for( var i = 0; i < pairs.length; i++ ) {
|
20
|
+
nomeVal = pairs[ i ].split("=");
|
21
|
+
params[ nomeVal[0] ] = nomeVal[1];
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return params;
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
// ----- slide show
|
29
|
+
|
30
|
+
var rotate_delay = 5000; // delay in milliseconds (5000 = 5 secs)
|
31
|
+
current = 0;
|
32
|
+
|
33
|
+
// change displayed image
|
34
|
+
function change()
|
35
|
+
{
|
36
|
+
current = document.slideform.slide.selectedIndex;
|
37
|
+
document.images.show.src =
|
38
|
+
"#{relroot}#images_640x480/img_" +
|
39
|
+
document.slideform.slide[ current ].value
|
40
|
+
+ ".jpg";
|
41
|
+
}
|
42
|
+
|
43
|
+
function next()
|
44
|
+
{
|
45
|
+
if ( document.slideform.slide[ current+1 ] ) {
|
46
|
+
document.slideform.slide.selectedIndex = ++current;
|
47
|
+
change();
|
48
|
+
} else {
|
49
|
+
first();
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
function previous()
|
54
|
+
{
|
55
|
+
if ( current-1 >= 0 ) {
|
56
|
+
document.slideform.slide.selectedIndex = --current;
|
57
|
+
change();
|
58
|
+
} else {
|
59
|
+
last();
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
function first()
|
64
|
+
{
|
65
|
+
current = 0;
|
66
|
+
document.slideform.slide.selectedIndex = 0;
|
67
|
+
change();
|
68
|
+
}
|
69
|
+
|
70
|
+
function last()
|
71
|
+
{
|
72
|
+
current = document.slideform.slide.length-1;
|
73
|
+
document.slideform.slide.selectedIndex = current;
|
74
|
+
change();
|
75
|
+
}
|
76
|
+
|
77
|
+
function ap(text)
|
78
|
+
{
|
79
|
+
document.slideform.slidebutton.value = (text == "Stop") ? "Start" : "Stop";
|
80
|
+
rotate();
|
81
|
+
}
|
82
|
+
|
83
|
+
function rotate()
|
84
|
+
{
|
85
|
+
if (document.slideform.slidebutton.value == "Stop") {
|
86
|
+
current = (current == document.slideform.slide.length-1) ? 0 : current+1;
|
87
|
+
document.slideform.slide.selectedIndex = current;
|
88
|
+
change();
|
89
|
+
window.setTimeout("rotate()", rotate_delay);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
function select( photokey )
|
94
|
+
{
|
95
|
+
var i = 0;
|
96
|
+
while( i < document.slideform.slide.length &&
|
97
|
+
photokey != document.slideform.slide[ i ].value ) {
|
98
|
+
i++;
|
99
|
+
}
|
100
|
+
if( i < document.slideform.slide.length ) {
|
101
|
+
document.slideform.slide.selectedIndex = i;
|
102
|
+
change();
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
// -->
|
107
|
+
</script>
|
108
|
+
</head>
|
109
|
+
|
110
|
+
|
111
|
+
<body>
|
112
|
+
|
113
|
+
|
114
|
+
<table border="0" cellspacing="0" cellpadding="0" width="650" align="center">
|
115
|
+
<!-- album title -->
|
116
|
+
<tr>
|
117
|
+
<td class="shade" align="center" colspan="2">
|
118
|
+
<span class="title">#{album.title}#</span>
|
119
|
+
</td>
|
120
|
+
</tr>
|
121
|
+
|
122
|
+
<!-- description + navigation buttons -->
|
123
|
+
<tr>
|
124
|
+
<td align="left">
|
125
|
+
|
126
|
+
<form name="slideform">
|
127
|
+
<select name="slide" onChange="change();">
|
128
|
+
<option id="Foreach:photo=album.leaves" value="#{photo.key}#">#{photo.title}#</option>
|
129
|
+
</select>
|
130
|
+
<input type=button onClick="first();" value="|<<" title="Beginning">
|
131
|
+
|
132
|
+
<a title="Prev photo" href="javascript:previous()"><img
|
133
|
+
src="#{relroot}#data/left.gif" border="0" width="15" height="15"
|
134
|
+
alt="Prev"></a>
|
135
|
+
|
136
|
+
<input type=button name="slidebutton" onClick="ap(this.value);" value="Start" title="AutoPlay">
|
137
|
+
|
138
|
+
<a title="Next photo" href="javascript:next();"><img
|
139
|
+
src="#{relroot }#data/right.gif" border="0" width="15" height="15" alt="Next"></a>
|
140
|
+
|
141
|
+
<input type=button onClick="last();" value=">>|" title="End">
|
142
|
+
</form>
|
143
|
+
</td>
|
144
|
+
<td align="right">
|
145
|
+
<a href="#{relroot}#/html/index.html" title="Up to top"><img src="#{relroot}#data/top.gif"
|
146
|
+
border="0" width="15" height="15" alt="Top"></a>
|
147
|
+
<a title="Up to album" href="index.html"><img
|
148
|
+
src="#{relroot}#data/up.gif" border="0" width="15" height="15" alt="Up"></a>
|
149
|
+
</td>
|
150
|
+
</tr>
|
151
|
+
|
152
|
+
<!-- image -->
|
153
|
+
<tr>
|
154
|
+
<td colspan="2" align="center">
|
155
|
+
<img name="show" border="0">
|
156
|
+
</td>
|
157
|
+
</tr>
|
158
|
+
|
159
|
+
</table>
|
160
|
+
|
161
|
+
<script language="javascript">
|
162
|
+
params = getParams();
|
163
|
+
photokey = unescape(params["photokey"]);
|
164
|
+
// document.write("photokey = " + photokey + "<br>");
|
165
|
+
select( photokey );
|
166
|
+
</script>
|
167
|
+
|
168
|
+
</body>
|
169
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1,118 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<link rel="stylesheet" type="text/css" href="rubyphoto.css">
|
5
|
+
<title>Album Tree</title>
|
6
|
+
</head>
|
7
|
+
<body/>
|
8
|
+
|
9
|
+
<table align="center" border="0" cellspacing="0" cellpadding="3" width="650">
|
10
|
+
|
11
|
+
<!-- title -->
|
12
|
+
<tr>
|
13
|
+
<td class="shade">
|
14
|
+
<span class="title">Album Tree</span>
|
15
|
+
</td>
|
16
|
+
</tr>
|
17
|
+
|
18
|
+
<tr>
|
19
|
+
<td>
|
20
|
+
<span id="mark:albumstree">
|
21
|
+
<li id="mark:treenode"><a href="#{album.pageurl}#">#{album.title}#</a></li>
|
22
|
+
<ul id="mark:tree"></ul>
|
23
|
+
</span>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
|
27
|
+
<tr>
|
28
|
+
<td>
|
29
|
+
<br>
|
30
|
+
<ul>
|
31
|
+
<li><a href="/index.html">foto</a>
|
32
|
+
<ul>
|
33
|
+
<li><a href="10_Roma/index.html">Roma</a>
|
34
|
+
<ul>
|
35
|
+
<li><a href="10_Roma/Campidoglio/index.html">Campidoglio</a>
|
36
|
+
<li><a href="10_Roma/Celio/index.html">Celio</a>
|
37
|
+
<li><a href="10_Roma/CircoMassimo/index.html">Circo Massimo</a>
|
38
|
+
<li><a href="10_Roma/Colosseo/index.html">Colosseo</a>
|
39
|
+
<li><a href="10_Roma/Farnese/index.html">Piazza Farnese e Dintorni</a>
|
40
|
+
<li><a href="10_Roma/FontanaTrevi/index.html">Fontana di Trevi</a>
|
41
|
+
<li><a href="10_Roma/ForiRomani/index.html">Fori Romani</a>
|
42
|
+
<li><a href="10_Roma/Ghetto/index.html">Ghetto</a>
|
43
|
+
<li><a href="10_Roma/Gianicolo/index.html">Gianicolo</a>
|
44
|
+
<li><a href="10_Roma/GianicoloAlba/index.html">Il gianicolo all'alba</a>
|
45
|
+
<li><a href="10_Roma/MonteMario/index.html">Monte Mario</a>
|
46
|
+
<li><a href="10_Roma/Olimpico%2DFarnesina/index.html">Olimpico e Farnesina</a>
|
47
|
+
<li><a href="10_Roma/Orologio/index.html">Piazza dell'Orologio</a>
|
48
|
+
<li><a href="10_Roma/Periferie/index.html">Periferie</a>
|
49
|
+
<li><a href="10_Roma/PiazzaBarberini/index.html">Piazza Barberini</a>
|
50
|
+
<li><a href="10_Roma/PiazzaBoccaDellaVerita/index.html">Piazza Bocca della Verita'</a>
|
51
|
+
<li><a href="10_Roma/PiazzaDelPopolo/index.html">Piazza del Popolo</a>
|
52
|
+
<li><a href="10_Roma/PiazzaNavona/index.html">Piazza Navona</a>
|
53
|
+
<li><a href="10_Roma/PiazzaRepubblica/index.html">Piazza Repubblica</a>
|
54
|
+
<li><a href="10_Roma/PinetaSacchetti/index.html">Pineta Sacchetti</a>
|
55
|
+
<li><a href="10_Roma/PonteNomentano/index.html">Ponte Momentano</a>
|
56
|
+
<li><a href="10_Roma/Quirinale/index.html">Il Quirinale</a>
|
57
|
+
<li><a href="10_Roma/SanGiovanni/index.html">San Giovanni</a>
|
58
|
+
<li><a href="10_Roma/SanPietro/index.html">San Pietro</a>
|
59
|
+
<li><a href="10_Roma/TeatroMarcello/index.html">Teatro Marcello</a>
|
60
|
+
<li><a href="10_Roma/TermeCaracalla/index.html">Terme di Caracalla</a>
|
61
|
+
<li><a href="10_Roma/Tevere%2DCastelSantAngelo/index.html">Tevere - Castel Sant'Angelo</a>
|
62
|
+
<li><a href="10_Roma/Tevere%2DCastelSantAngelo%2DNotte/index.html">Tevere - Castel Sant'Angelo</a>
|
63
|
+
<li><a href="10_Roma/Tevere%2DIsolaTiberina/index.html">Tevere - Isola Tiberina</a>
|
64
|
+
<li><a href="10_Roma/Tevere%2DPonteMargherita/index.html">Tevere - Ponte Margheria e Ponte Cavour di notte</a>
|
65
|
+
<li><a href="10_Roma/Tevere%2DPonteMilvio/index.html">Tevere - Ponte Milvio</a>
|
66
|
+
<li><a href="10_Roma/Trastevere/index.html">Trastevere</a>
|
67
|
+
<li><a href="10_Roma/TrinitaDeiMonti/index.html">Trinita dei Monti</a>
|
68
|
+
<li><a href="10_Roma/Varie/index.html">Varie</a>
|
69
|
+
<li><a href="10_Roma/VillaBorghese/index.html">Villa Borghese</a>
|
70
|
+
<li><a href="10_Roma/VillaBorghese%2DPincio/index.html">Villa Borghese: il Pincio</a>
|
71
|
+
<li><a href="10_Roma/VillaggioOlimpico/index.html">Villaggio Olimpico</a>
|
72
|
+
<li><a href="10_Roma/Vittoriano/index.html">Vittoriano</a>
|
73
|
+
</ul>
|
74
|
+
<li><a href="20_BreveViaggioInToscana/index.html">Breve viaggio in Toscana</a>
|
75
|
+
<ul>
|
76
|
+
<li><a href="20_BreveViaggioInToscana/VersoPisa/index.html">Verso Pisa</a>
|
77
|
+
<li><a href="20_BreveViaggioInToscana/Pisa/index.html">Pisa</a>
|
78
|
+
<li><a href="20_BreveViaggioInToscana/MarinaDiPisa/index.html">Una passeggiata a Marina di Pisa</a>
|
79
|
+
<li><a href="20_BreveViaggioInToscana/Firenze/index.html">Un giorno a Firenze</a>
|
80
|
+
<li><a href="20_BreveViaggioInToscana/Livorno/index.html">Un giorno a Livorno</a>
|
81
|
+
<li><a href="20_BreveViaggioInToscana/Meo/index.html">Meo: il gatto!</a>
|
82
|
+
</ul>
|
83
|
+
<li><a href="30_GitaInToscana/index.html">Gita In Toscana</a>
|
84
|
+
<ul>
|
85
|
+
<li><a href="30_GitaInToscana/00_VersoPisa/index.html">Verso Pisa</a>
|
86
|
+
<li><a href="30_GitaInToscana/01_Viareggio/index.html">Viareggio</a>
|
87
|
+
<li><a href="30_GitaInToscana/02_Luminara/index.html">Luminara San Ranieri</a>
|
88
|
+
<li><a href="30_GitaInToscana/03_regatasranieri/index.html">Arno</a>
|
89
|
+
<li><a href="30_GitaInToscana/04_cittadella/index.html">Cittadella</a>
|
90
|
+
<li><a href="30_GitaInToscana/05_varie/index.html">Varie</a>
|
91
|
+
</ul>
|
92
|
+
<li><a href="40_Montepulciano/index.html">Montepulciano</a>
|
93
|
+
<li><a href="45_Calabria/index.html">Calabria</a>
|
94
|
+
<ul>
|
95
|
+
<li><a href="45_Calabria/00_Vibo/index.html">Vibo Valentia</a>
|
96
|
+
<li><a href="45_Calabria/05_Pizzo/index.html">Pizzo</a>
|
97
|
+
<li><a href="45_Calabria/10_Briatico/index.html">Briatico</a>
|
98
|
+
<li><a href="45_Calabria/15_Tropea/index.html">Tropea</a>
|
99
|
+
<li><a href="45_Calabria/20_capovaticano/index.html">Capo Vaticano</a>
|
100
|
+
</ul>
|
101
|
+
<li><a href="50_Oggetti/index.html">Oggetti</a>
|
102
|
+
<li><a href="60_Flora/index.html">Fiori e Piante</a>
|
103
|
+
</ul>
|
104
|
+
|
105
|
+
</ul>
|
106
|
+
<br>
|
107
|
+
</td>
|
108
|
+
</tr>
|
109
|
+
|
110
|
+
<!-- footer -->
|
111
|
+
<tr>
|
112
|
+
<td class="shade"> </tr>
|
113
|
+
</tr>
|
114
|
+
</table>
|
115
|
+
|
116
|
+
</body>
|
117
|
+
</html>
|
118
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#albumstree {
|
2
|
+
logic: {
|
3
|
+
stack = Array.new;
|
4
|
+
@element(tree);
|
5
|
+
}
|
6
|
+
}
|
7
|
+
|
8
|
+
/**
|
9
|
+
//:elem(albumstree)
|
10
|
+
// :set( stack = Array.new )
|
11
|
+
// @elem_tree
|
12
|
+
//:end
|
13
|
+
**/
|
14
|
+
|
15
|
+
#tree {
|
16
|
+
logic: {
|
17
|
+
@stag;
|
18
|
+
// @stag(treenode);
|
19
|
+
// @cont(treenode);
|
20
|
+
album = album.subalbus;
|
21
|
+
while album
|
22
|
+
// # @elem_tree
|
23
|
+
end
|
24
|
+
// @etag(treenode);
|
25
|
+
@etag;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
/***
|
30
|
+
//:elem( tree )
|
31
|
+
// @stag
|
32
|
+
// @stag_treenode
|
33
|
+
// @cont_treenode
|
34
|
+
// :set( album = album.subalbus )
|
35
|
+
// :while( album )
|
36
|
+
// # @elem_tree
|
37
|
+
// :end
|
38
|
+
// @etag_treenode
|
39
|
+
// @etag
|
40
|
+
//:end
|
41
|
+
**/
|
42
|
+
|
43
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module View
|
2
|
+
|
3
|
+
(@@proc_table ||= {})['album_page'] = proc do
|
4
|
+
_buf = ""; _buf << "<html>
|
5
|
+
<head>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<table>
|
9
|
+
|
10
|
+
<h1>Variables in album page</h1>
|
11
|
+
<tr>
|
12
|
+
<td>
|
13
|
+
<pre>album.name</pre>
|
14
|
+
</td>
|
15
|
+
<td>
|
16
|
+
<%= album.name %>
|
17
|
+
</td>
|
18
|
+
</tr>
|
19
|
+
|
20
|
+
<tr>
|
21
|
+
<td>
|
22
|
+
<pre>album.description</pre>
|
23
|
+
</td>
|
24
|
+
<td>
|
25
|
+
<%= album.description %>
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
|
29
|
+
<tr>
|
30
|
+
<td>
|
31
|
+
<pre>album.relroot</pre>
|
32
|
+
</td>
|
33
|
+
<td>
|
34
|
+
<%= album.relroot %>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
|
38
|
+
</table>
|
39
|
+
</body>
|
40
|
+
</html>"; ; _buf
|
41
|
+
end#proc
|
42
|
+
|
43
|
+
module_function
|
44
|
+
def expand_album_page(context={})
|
45
|
+
if context.is_a?(Hash)
|
46
|
+
hash = context
|
47
|
+
context = Object.new
|
48
|
+
hash.each { |key, val| context.instance_variable_set("@#{key}", val) }
|
49
|
+
end
|
50
|
+
proc_obj = @@proc_table['album_page']
|
51
|
+
context.instance_eval(&proc_obj)
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module View
|
2
|
+
|
3
|
+
(@@proc_table ||= {})['image_page'] = proc do
|
4
|
+
_buf = ""; _buf << "<html>
|
5
|
+
<head>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
|
9
|
+
<h1>Variable in image page</h1>
|
10
|
+
<table>
|
11
|
+
<tr>
|
12
|
+
<td>
|
13
|
+
image.name
|
14
|
+
</td>
|
15
|
+
<td>
|
16
|
+
<%= image.name %>
|
17
|
+
</td>
|
18
|
+
</tr>
|
19
|
+
|
20
|
+
<tr>
|
21
|
+
<td>
|
22
|
+
image.description
|
23
|
+
</td>
|
24
|
+
<td>
|
25
|
+
<%= image.description %>
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
|
29
|
+
<tr>
|
30
|
+
<td>
|
31
|
+
<pre>image.relroot</pre>
|
32
|
+
</td>
|
33
|
+
<td>
|
34
|
+
<%= image.relroot %>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
|
38
|
+
</table>
|
39
|
+
</body>
|
40
|
+
</html>"; ; _buf
|
41
|
+
end#proc
|
42
|
+
|
43
|
+
module_function
|
44
|
+
def expand_image_page(context={})
|
45
|
+
if context.is_a?(Hash)
|
46
|
+
hash = context
|
47
|
+
context = Object.new
|
48
|
+
hash.each { |key, val| context.instance_variable_set("@#{key}", val) }
|
49
|
+
end
|
50
|
+
proc_obj = @@proc_table['image_page']
|
51
|
+
context.instance_eval(&proc_obj)
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|