/[suikacvs]/markup/html/html5/spec-ja/edit.cgi
Suika

Contents of /markup/html/html5/spec-ja/edit.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (hide annotations) (download)
Sun Aug 10 04:16:33 2008 UTC (16 years, 2 months ago) by wakaba
Branch: MAIN
Changes since 1.7: +19 -0 lines
*** empty log message ***

1 wakaba 1.1 #!/usr/bin/perl
2     use strict;
3     use CGI::Carp qw(fatalsToBrowser);
4    
5     my $data_dir_name = q[data/];
6    
7     my $path = $ENV{PATH_INFO};
8    
9     sub htescape ($) {
10     my $s = shift;
11     $s =~ s/&/&/g;
12     $s =~ s/</&lt;/g;
13     $s =~ s/"/&quot;/g;
14     return $s;
15     } # htescape
16    
17 wakaba 1.6 if ($path =~ m[^/(_?[0-9a-z-]+)$]) {
18 wakaba 1.1 my $name = $1;
19     my $file_name = $data_dir_name . $name . '.dat';
20     if (-f $file_name) {
21     if ($ENV{REQUEST_METHOD} eq 'GET') {
22     my $data;
23     {
24     open my $file, '<:utf8', $file_name or die "$0: $file_name: $!";
25     local $/ = undef;
26     $data = <$file>;
27     }
28    
29     print qq[Content-Type: text/html; charset=utf-8
30    
31     <!DOCTYPE HTML>
32     <html lang=en>
33     <head>
34     <title>Edit &mdash; @{[htescape ($name)]}</title>
35     <style>
36     textarea {
37     width: 95%;
38     height: 40em;
39     }
40     </style>
41     <link rel=license href="./#license">
42     <body>
43     <h1>Edit &mdash; @{[htescape ($name)]}</h1>
44     <form action accept-charset=utf-8 method=post>
45     <p><textarea name=data lang>@{[htescape ($data)]}</textarea>
46     <p><input type=submit value=Save>
47     <strong>Important</strong>: See <a href="./#license" rel=license>license</a>.
48     </form>
49     ];
50     exit;
51     } elsif ($ENV{REQUEST_METHOD} eq 'POST') {
52     eval q{ use CGI qw(param) };
53     my $data = param ('data');
54     open my $file, '>', $file_name or die "$0: $file_name: $!";
55     print $file $data;
56     close $file;
57     my $user = $ENV{REMOTE_USER};
58     $user =~ s/[^0-9A-Za-z_-]/_/g;
59     (system "cvs commit -m \"by remote user \'$user\'\" data > /dev/null") == 0 or die "$0: $?";
60    
61     print q[Status: 204 Saved; No Content];
62     exit;
63     } else {
64     print q[Status: 405 Method Not Allowed
65     Content-Type: text/plain ; charset=us-ascii
66     Allow: GET, POST
67    
68     405];
69     exit;
70     }
71     }
72     } elsif ($path eq '/') {
73     opendir my $data_dir, $data_dir_name or die "$0: $data_dir_name: $!";
74     print q[Content-Type: text/html; charset=utf-8
75    
76     <!DOCTYPE HTML>
77     <html lang=en>
78     <title>English-Japanese Data Files</title>
79     <link rel=history href="../data/,cvslog">
80     <link rel=license href="#license">
81 wakaba 1.4 <link rel=stylesheet href="/www/style/html/xhtml">
82 wakaba 1.1 <h1>English-Japanese Data Files</h1>
83    
84     <ul>];
85     for (sort {$a cmp $b} grep {/\.dat$/} readdir $data_dir) {
86     my $name = $_;
87     $name =~ s/\.dat$//;
88     print qq[<li><a href="@{[htescape ($name)]}"><code class=file>@{[htescape ($name)]}</code></a></li>];
89     }
90     print q[</ul>
91    
92 wakaba 1.7 <section id=tools>
93     <h2>Tools</h2>
94 wakaba 1.5
95 wakaba 1.7 <ul>
96     <li><a href="../words">English-Japanese word mapping table</a>
97     <li id=find><a href="../find" rel=search>Find</a>
98     </ul>
99 wakaba 1.5 </section>
100    
101 wakaba 1.2 <section id=status>
102     <h2>Status of translation</h2>
103    
104     <p>See <a href="../status.png">progress graph</a>.
105     </section>
106    
107 wakaba 1.1 <section id=license>
108     <h2>License of data files</h2>
109    
110 wakaba 1.3 <p><strong>Texts from HTML5 and Web Workers specs</strong>:
111 wakaba 1.1 <blockquote cite="http://whatwg.org/html5">
112     <p class=copyright>&copy; Copyright 2004-2008 Apple Computer, Inc.,
113     Mozilla Foundation, and Opera Software ASA.</p>
114    
115     <p class=copyright>You are granted a license to use, reproduce and create
116     derivative works of this document.</p>
117 wakaba 1.3 </blockquote>
118    
119     <p><strong>Texts from XBL 2.0 spec</strong>:
120     <blockquote cite="http://www.mozilla.org/projects/xbl/xbl2.html">
121     <p class=copyright>Portions of this content are &copy; 1998&#8211;2006 by
122     individual mozilla.org contributors; content available under a Creative
123     Commons license. (<a
124     href="http://www.mozilla.org/foundation/licensing/website-content.html">Details</a>)</p>
125 wakaba 1.1 </blockquote>
126    
127     <p><strong>For contributors</strong>: You have to agree that your
128     contributions are licensed under the terms quoted above.
129     </section>
130     ];
131     exit;
132 wakaba 1.8 } elsif ($path eq '/para/add') {
133     if ($ENV{REQUEST_METHOD} eq 'POST') {
134    
135     }
136    
137     print q[Content-Type: text/html ; charset=utf-8
138    
139     <!DOCTYPE HTML>
140     <html lang=en>
141     <head>
142     <title>Add paragraph</title>
143     <link rel=stylesheet href="/www/style/html/xhtml">
144     <body>
145     <h1>Add paragraph</h1>
146     <form action=add accept-charset=utf-8 method=post>
147     ];
148    
149     print q[</form>];
150     exit;
151 wakaba 1.1 }
152    
153     print q[Content-Type: text/plain ; charset=us-ascii
154     Status: 404 Not Found
155    
156     404];

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24