… | |
… | |
26 | body { |
26 | body { |
27 | background: white; |
27 | background: white; |
28 | color: black; |
28 | color: black; |
29 | font-family: Arial, Helvetica, sans-serif; |
29 | font-family: Arial, Helvetica, sans-serif; |
30 | font-size: 12pt; |
30 | font-size: 12pt; |
|
|
31 | margin: 0; |
|
|
32 | padding: 0; |
31 | } |
33 | } |
32 | |
34 | |
33 | .bg-ede { background: url(/img/ede.jpg) no-repeat; padding: 20px; width: 100%; height: 82px; } |
35 | .bg-ede { background: url(/img/ede.jpg) no-repeat; padding: 20px; width: 100%; height: 82px; } |
34 | .bg-perl { background: url(/img/perl.jpg) no-repeat; padding: 20px; width: 100%; height: 194px; } |
36 | .bg-perl { background: url(/img/perl.jpg) no-repeat; padding: 20px; width: 100%; height: 194px; } |
35 | .bg-bluete { background: url(/img/bluete.jpg) no-repeat; padding: 20px; width: 100%; height: 148px; } |
37 | .bg-bluete { background: url(/img/bluete.jpg) no-repeat; padding: 20px; width: 100%; height: 148px; } |
… | |
… | |
48 | color: #034; |
50 | color: #034; |
49 | } |
51 | } |
50 | .short-desc { |
52 | .short-desc { |
51 | font-weight: bold; |
53 | font-weight: bold; |
52 | padding: 3px 3px 3px 8px; |
54 | padding: 3px 3px 3px 8px; |
53 | margin: 1em 1px 1px 13px; |
55 | margin: 0 1px 0 13px; |
54 | } |
56 | } |
55 | h2 { |
57 | h2 { |
56 | color: #069; |
58 | color: #069; |
57 | font-weight: bold; |
59 | font-weight: bold; |
58 | border: solid red; |
60 | border: solid red; |
59 | border-width: 0 0 0 12px; |
61 | border-width: 0 0 0 12px; |
60 | padding: 3px 3px 3px 8px; |
62 | padding: 3px 3px 3px 8px; |
61 | margin: 1em 1px 1px 1px; |
63 | margin: 0 1px 0 1px; |
62 | } |
64 | } |
63 | p { |
65 | p { |
64 | padding: 3px 3px 3px 8px; |
66 | padding: 3px 3px 3px 8px; |
65 | margin: 1em 1px 1px 13px; |
67 | margin: 0 1px 0 13px; |
66 | } |
68 | } |
67 | h3 { color: #034; } |
69 | h3 { color: #034; } |
68 | h4 { color: #034; } |
70 | h4 { color: #034; } |
69 | |
71 | |
70 | img { display: block; } |
72 | img { display: block; } |
… | |
… | |
105 | .overview th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } |
107 | .overview th { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } |
106 | .overview td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } |
108 | .overview td { border-top: 1px dashed #aaa; vertical-align: top; text-align: left; padding: 0.2ex; } |
107 | |
109 | |
108 | hr.footer { display: none; } |
110 | hr.footer { display: none; } |
109 | .footer { font-size: 8pt; border-top: 1px solid red; } |
111 | .footer { font-size: 8pt; border-top: 1px solid red; } |
|
|
112 | |
|
|
113 | .section { margin: 0 0 0 0; padding: 0.5em 4px 0.5em 4px; } |
|
|
114 | .section-header { background: white; } |
|
|
115 | .section-footer { background: white; } |
|
|
116 | .section-overview { background: white; } |
|
|
117 | |
|
|
118 | .section-short-desc { background: white; } |
|
|
119 | .section-blurb { background: white; } |
|
|
120 | .section-resources { background: white; } |
|
|
121 | .section-documents { background: white; } |
|
|
122 | .section-about { background: white; } |
|
|
123 | |
110 | </style> |
124 | </style> |
111 | </head> |
125 | </head> |
112 | <body> |
126 | <body> |
|
|
127 | <div class='section section-header'> |
113 | <p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p> |
128 | <p class='back'><a href='/'>Schmorpforge Ta-Sa Software Repository</a></p> |
114 | <h1 class="$_[1]">$_[0]</h1> |
129 | <h1 class="$_[1]">$_[0]</h1> |
115 | <div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> |
130 | <div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> |
116 | <!-- |
131 | <!-- |
117 | <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> |
132 | <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> |
… | |
… | |
127 | <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> |
142 | <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> |
128 | <br /> |
143 | <br /> |
129 | The free as in beer, liberal, code & content retro-style graphical MMORPG :) |
144 | The free as in beer, liberal, code & content retro-style graphical MMORPG :) |
130 | </a> |
145 | </a> |
131 | </div> |
146 | </div> |
|
|
147 | </div> |
132 | EOF |
148 | EOF |
133 | } |
149 | } |
134 | |
150 | |
135 | sub ftr { |
151 | sub ftr { |
136 | print <<EOF; |
152 | print <<EOF; |
|
|
153 | <div class='section section-footer'> |
137 | <hr class='footer'/> |
154 | <hr class='footer'/> |
138 | <p class='footer'> |
155 | <p class='footer'> |
139 | Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann <schmorpforge\@schmorp.de></a>. |
156 | Contact for this page: <a href="mailto:schmorpforge\@schmorp.de">Marc Lehmann <schmorpforge\@schmorp.de></a>. |
140 | </p> |
157 | </p> |
|
|
158 | </div> |
141 | </body> |
159 | </body> |
142 | </html> |
160 | </html> |
143 | EOF |
161 | EOF |
144 | } |
162 | } |
145 | |
163 | |
… | |
… | |
154 | $desc =~ s/^(.*?)\n\s*\n//s |
172 | $desc =~ s/^(.*?)\n\s*\n//s |
155 | or die "malformed desc in $name: $desc"; |
173 | or die "malformed desc in $name: $desc"; |
156 | |
174 | |
157 | my $short = $1; |
175 | my $short = $1; |
158 | |
176 | |
|
|
177 | (my $id = $name) =~ y%/%-%; |
159 | $index{$name} = "<tr><th id='$name'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; |
178 | $index{$name} = "<tr><th id='$id'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; |
160 | |
179 | |
161 | open STDOUT, ">", "software.schmorp.de/pkg/$name.html" |
180 | open STDOUT, ">", "software.schmorp.de/pkg/$name.html" |
162 | or die "software.schmorp.de/pkg/$name.html: $!"; |
181 | or die "software.schmorp.de/pkg/$name.html: $!"; |
163 | |
182 | |
164 | my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede"; |
183 | my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede"; |
165 | hdr $name, $bg; |
184 | hdr $name, $bg; |
166 | |
185 | |
167 | print <<EOF; |
186 | print <<EOF; |
|
|
187 | <div class='section section-short-desc'> |
168 | <h2>$name</h1> |
188 | <h2>$name</h2> |
169 | <p class='short-desc'>$short</p> |
189 | <p class='short-desc'>$short</p> |
|
|
190 | </div> |
170 | |
191 | |
|
|
192 | <div class='section section-blurb'> |
171 | <h2>Blurb</h2> |
193 | <h2>Blurb</h2> |
172 | <p class='blurb'>$desc</p> |
194 | <p class='blurb'>$desc</p> |
|
|
195 | </div> |
|
|
196 | |
|
|
197 | <div class='section section-resources'> |
173 | <h2>Resources</h2> |
198 | <h2>Resources</h2> |
174 | <table class='resources'> |
199 | <table class='resources'> |
175 | EOF |
200 | EOF |
176 | if (grep /git/, @args) { |
201 | if (grep /git/, @args) { |
177 | print <<EOF; |
202 | print <<EOF; |
… | |
… | |
242 | } |
267 | } |
243 | |
268 | |
244 | print "</table>"; |
269 | print "</table>"; |
245 | |
270 | |
246 | if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) { |
271 | if (my @files = grep $_, map /(cvs-co|cvs-pod|git-pod|git-co)\((\S+)\)/ && [$1, $2], @args) { |
247 | print "<h2>Additional Documents</h2><table class='resources'>"; |
272 | print "</div><div class='section section-documents'><h2>Additional Documents</h2><table class='resources'>"; |
248 | |
273 | |
249 | for (@files) { |
274 | for (@files) { |
250 | my ($type, $arg) = @$_; |
275 | my ($type, $arg) = @$_; |
251 | |
276 | |
252 | if ($type eq "cvs-co") { |
277 | if ($type eq "cvs-co") { |
… | |
… | |
268 | } |
293 | } |
269 | } |
294 | } |
270 | |
295 | |
271 | print "</table>"; |
296 | print "</table>"; |
272 | } |
297 | } |
|
|
298 | print "</div>"; |
273 | |
299 | |
274 | ftr; |
300 | ftr; |
275 | } |
301 | } |
276 | |
302 | |
277 | open STDOUT, ">software.schmorp.de/index.html"; |
303 | open STDOUT, ">software.schmorp.de/index.html"; |
278 | |
304 | |
279 | hdr "Project List", "bg-bluete"; |
305 | hdr "Project List", "bg-bluete"; |
280 | |
306 | |
281 | print <<EOF; |
307 | print <<EOF; |
282 | |
308 | |
|
|
309 | <div class='section section-about'> |
283 | <h2>About</h2> |
310 | <h2>About</h2> |
284 | <p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and |
311 | <p class='blurb'>This page briefly documents the Schmorpforge Ta-Sa Software Repository and |
285 | lists all projects available here.</p> |
312 | lists all projects available here.</p> |
|
|
313 | </div> |
286 | |
314 | |
|
|
315 | <div class='section section-resources'> |
287 | <table class='resources'> |
316 | <table class='resources'> |
288 | <tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr> |
317 | <tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr> |
289 | <tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr> |
318 | <tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr> |
290 | <tr><td><tt class='icon'>FILE</tt></td><td class='rr'>Most file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr> |
319 | <tr><td><tt class='icon'>FILE</tt></td><td class='rr'>Most file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr> |
291 | <tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr> |
320 | <tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr> |
292 | <!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>--> |
321 | <!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>--> |
293 | |
322 | |
294 | <!--<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://webchat.freenode.net/?randomnick=1&channels=schmorp&prompt=1'><tt><b>irc.freenode.net</b></tt>, channel <tt>#schmorp</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr>--> |
323 | <!--<tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://webchat.freenode.net/?randomnick=1&channels=schmorp&prompt=1'><tt><b>irc.freenode.net</b></tt>, channel <tt>#schmorp</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr>--> |
295 | <tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://chat.schmorp.de/?channels=schmorpforge'><tt><b>irc.schmorp.de</b></tt>, channel <tt>#schmorpforge</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr> |
324 | <tr><td><tt class='icon'>IRC</tt></td><td class='rr'>Server <a href='http://chat.schmorp.de/?channels=schmorpforge'><tt><b>irc.schmorp.de</b></tt>, channel <tt>#schmorpforge</tt></a>, users <tt>schmorp</tt> and <tt>elmex</tt> <b>(say hi and <i>wait a few minutes or hours</i>)</b><br/>Other project-specific IRC servers are listed on their respective project page.</td></tr> |
296 | EOF |
|
|
297 | |
|
|
298 | print <<EOF; |
|
|
299 | </table> |
325 | </table> |
|
|
326 | </div> |
300 | |
327 | |
|
|
328 | <div class='section section-overview'> |
301 | <h2>Project List</h2> |
329 | <h2>Project List</h2> |
302 | <table class='overview'> |
330 | <table class='overview'> |
303 | EOF |
331 | EOF |
304 | |
332 | |
305 | print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index; |
333 | print $index{$_} for sort { (lc $a) cmp (lc $b) } keys %index; |
306 | |
334 | |
307 | print "</table>"; |
335 | print "</table></div>"; |
308 | ftr; |
336 | ftr; |
309 | |
337 | |
310 | __DATA__ |
338 | __DATA__ |
311 | rxvt-unicode dist list(rxvt-unicode) cvs-pod(doc/rxvt.1.pod,) cvs-pod(doc/rxvt.7.pod,FAQ) cvs-pod(src/urxvt.pm,Perl) cvs-co(Changes) irc(rxvt) irc(rxvtdev) |
339 | rxvt-unicode dist list(rxvt-unicode) cvs-pod(doc/rxvt.1.pod,) cvs-pod(doc/rxvt.7.pod,FAQ) cvs-pod(src/urxvt.pm,Perl) cvs-co(Changes) irc(rxvt) irc(rxvtdev) |
312 | rxvt-unicode is a fork of the well known terminal emulator rxvt. |
340 | rxvt-unicode is a fork of the well known terminal emulator rxvt. |
… | |
… | |
408 | your own clients, bots and so on. It also contains Gtk2 modules for |
436 | your own clients, bots and so on. It also contains Gtk2 modules for |
409 | KGS-independent rendering of beautiful Go boards. For a introduction to |
437 | KGS-independent rendering of beautiful Go boards. For a introduction to |
410 | the game of go, look <a href="http://playgo.to/interactive/">here</a>. |
438 | the game of go, look <a href="http://playgo.to/interactive/">here</a>. |
411 | |
439 | |
412 | App-Staticperl cpan cvs-pod(bin/staticperl,) cvs-co(Changes) |
440 | App-Staticperl cpan cvs-pod(bin/staticperl,) cvs-co(Changes) |
413 | Perl, libc, 50 modules - all in one self-contained 500kb executable. |
441 | Perl, libc, 100 modules - all in one self-contained 500kb executable. |
414 | |
442 | |
415 | App::Staticperl installs a helper script that allows you to install a |
443 | App::Staticperl installs a helper script that allows you to install a |
416 | statically linked (or linkable) perl distribution, install additional |
444 | statically linked (or linkable) perl distribution, install additional |
417 | modules, and create new perl interpreters with just the selection of |
445 | modules, and create new perl interpreters with just the selection of |
418 | modules you need. It is also possible to just create the C source files |
446 | modules you need. It is also possible to just create the C source files |
419 | needed to embed this custom interpreter into your own programs.<p /> |
447 | needed to embed this custom interpreter into your own programs.<p /> |
420 | |
448 | |
421 | Two pre-built perl binaries which include some highly subjective |
449 | Two pre-built perl binaries (for Linux on x86 or amd64) which |
422 | package selection are available as |
450 | include some highly subjective package selections are available as |
423 | <a href="http://staticperl.schmorp.de/smallperl.html">smallperl</a> |
451 | <a href="http://staticperl.schmorp.de/smallperl.html">smallperl</a> |
424 | and |
452 | and |
425 | <a href="http://staticperl.schmorp.de/bigperl.html">bigperl</a>. |
453 | <a href="http://staticperl.schmorp.de/bigperl.html">bigperl</a>. |
426 | |
454 | |
427 | Net-Knuddels cvs-pod(Net/Knuddels.pm,) |
455 | Net-Knuddels cvs-pod(Net/Knuddels.pm,) |