ruwiki 0.9.0

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.
Files changed (96) hide show
  1. data/Readme.rubygems +86 -0
  2. data/Readme.tarfile +65 -0
  3. data/bin/ruwiki +58 -0
  4. data/bin/ruwiki.cgi +87 -0
  5. data/bin/ruwiki_convert +56 -0
  6. data/bin/ruwiki_service.rb +82 -0
  7. data/bin/ruwiki_servlet +53 -0
  8. data/contrib/enscript-token.rb +55 -0
  9. data/contrib/rublog_integrator.rb +68 -0
  10. data/data/Default/ProjectIndex.ruwiki +49 -0
  11. data/data/Ruwiki/Antispam.ruwiki +65 -0
  12. data/data/Ruwiki/BugTracking.ruwiki +33 -0
  13. data/data/Ruwiki/ChangeLog.ruwiki +102 -0
  14. data/data/Ruwiki/Configuring_Ruwiki.ruwiki +151 -0
  15. data/data/Ruwiki/Extending_Ruwiki.ruwiki +317 -0
  16. data/data/Ruwiki/LicenseAndAuthorInfo.ruwiki +30 -0
  17. data/data/Ruwiki/ProjectIndex.ruwiki +84 -0
  18. data/data/Ruwiki/Roadmap.ruwiki +225 -0
  19. data/data/Ruwiki/RuwikiTemplatingLibrary.ruwiki +156 -0
  20. data/data/Ruwiki/RuwikiUtilities.ruwiki +157 -0
  21. data/data/Ruwiki/SandBox.ruwiki +9 -0
  22. data/data/Ruwiki/To_Do.ruwiki +51 -0
  23. data/data/Ruwiki/TroubleShooting.ruwiki +33 -0
  24. data/data/Ruwiki/WikiFeatures.ruwiki +17 -0
  25. data/data/Ruwiki/WikiMarkup.ruwiki +261 -0
  26. data/data/Tutorial/AddingPages.ruwiki +16 -0
  27. data/data/Tutorial/AddingProjects.ruwiki +16 -0
  28. data/data/Tutorial/ProjectIndex.ruwiki +11 -0
  29. data/data/Tutorial/SandBox.ruwiki +9 -0
  30. data/data/agents.banned +60 -0
  31. data/data/agents.readonly +321 -0
  32. data/data/hostip.banned +30 -0
  33. data/data/hostip.readonly +28 -0
  34. data/lib/ruwiki.rb +622 -0
  35. data/lib/ruwiki/auth.rb +56 -0
  36. data/lib/ruwiki/auth/gforge.rb +73 -0
  37. data/lib/ruwiki/backend.rb +318 -0
  38. data/lib/ruwiki/backend/flatfiles.rb +217 -0
  39. data/lib/ruwiki/config.rb +244 -0
  40. data/lib/ruwiki/exportable.rb +192 -0
  41. data/lib/ruwiki/handler.rb +342 -0
  42. data/lib/ruwiki/lang/de.rb +339 -0
  43. data/lib/ruwiki/lang/en.rb +334 -0
  44. data/lib/ruwiki/lang/es.rb +339 -0
  45. data/lib/ruwiki/page.rb +262 -0
  46. data/lib/ruwiki/servlet.rb +38 -0
  47. data/lib/ruwiki/template.rb +553 -0
  48. data/lib/ruwiki/utils.rb +24 -0
  49. data/lib/ruwiki/utils/command.rb +102 -0
  50. data/lib/ruwiki/utils/converter.rb +297 -0
  51. data/lib/ruwiki/utils/manager.rb +639 -0
  52. data/lib/ruwiki/utils/servletrunner.rb +295 -0
  53. data/lib/ruwiki/wiki.rb +147 -0
  54. data/lib/ruwiki/wiki/tokens.rb +136 -0
  55. data/lib/ruwiki/wiki/tokens/00default.rb +211 -0
  56. data/lib/ruwiki/wiki/tokens/01wikilinks.rb +166 -0
  57. data/lib/ruwiki/wiki/tokens/02actions.rb +63 -0
  58. data/lib/ruwiki/wiki/tokens/abbreviations.rb +40 -0
  59. data/lib/ruwiki/wiki/tokens/calendar.rb +147 -0
  60. data/lib/ruwiki/wiki/tokens/headings.rb +43 -0
  61. data/lib/ruwiki/wiki/tokens/lists.rb +112 -0
  62. data/lib/ruwiki/wiki/tokens/rubylists.rb +48 -0
  63. data/ruwiki.conf +22 -0
  64. data/ruwiki.pkg +0 -0
  65. data/templates/default/body.tmpl +19 -0
  66. data/templates/default/content.tmpl +7 -0
  67. data/templates/default/controls.tmpl +23 -0
  68. data/templates/default/edit.tmpl +27 -0
  69. data/templates/default/error.tmpl +14 -0
  70. data/templates/default/footer.tmpl +23 -0
  71. data/templates/default/ruwiki.css +297 -0
  72. data/templates/default/save.tmpl +8 -0
  73. data/templates/sidebar/body.tmpl +19 -0
  74. data/templates/sidebar/content.tmpl +8 -0
  75. data/templates/sidebar/controls.tmpl +8 -0
  76. data/templates/sidebar/edit.tmpl +27 -0
  77. data/templates/sidebar/error.tmpl +13 -0
  78. data/templates/sidebar/footer.tmpl +22 -0
  79. data/templates/sidebar/ruwiki.css +347 -0
  80. data/templates/sidebar/save.tmpl +10 -0
  81. data/templates/simple/body.tmpl +13 -0
  82. data/templates/simple/content.tmpl +7 -0
  83. data/templates/simple/controls.tmpl +8 -0
  84. data/templates/simple/edit.tmpl +25 -0
  85. data/templates/simple/error.tmpl +10 -0
  86. data/templates/simple/footer.tmpl +10 -0
  87. data/templates/simple/ruwiki.css +192 -0
  88. data/templates/simple/save.tmpl +8 -0
  89. data/tests/harness.rb +52 -0
  90. data/tests/tc_backend_flatfile.rb +103 -0
  91. data/tests/tc_bugs.rb +74 -0
  92. data/tests/tc_exportable.rb +64 -0
  93. data/tests/tc_template.rb +145 -0
  94. data/tests/tc_tokens.rb +335 -0
  95. data/tests/testall.rb +20 -0
  96. metadata +182 -0
@@ -0,0 +1,14 @@
1
+ <div id="rw_header">
2
+ <div class="rw_navbar">
3
+ <div class="rw_navbar_tab">%home_link%</div>
4
+ <div class="rw_navbar_righttab" style="background-color: #C72"><strong><em>%name%</em></strong></div>
5
+ </div>
6
+ </div>
7
+
8
+ <div id="rw_content">
9
+ <div class="rw_content">
10
+ <h1>%name%</h1>
11
+ <p>#label_send_report_by# <a href="mailto:%webmaster%?subject=%name%[?backtrace_email|&amp;body=%backtrace_email%?]">#label_send_report#</a></p>
12
+ <p>%backtrace%</p>
13
+ </div>
14
+ </div>
@@ -0,0 +1,23 @@
1
+ <div id="rw_footer">
2
+ <!--<form class="rw_navbar" action="_search">
3
+ <div class="rw_navbar_tab">%home_link%</div>
4
+ <div class="rw_navbar_tab">#label_project#<a href="%cgi_url%/%page_project%/"><strong>%page_project%</strong></a></div>
5
+ <div class="rw_navbar_tab">%label_topic_or_search% %page_topic%</div>
6
+ [?editable|<div class="rw_navbar_tab"><a href="%cgi_url%/%page_project%/%page_raw_topic%/_edit">#label_edit#</a></div>?]
7
+ {!-- Right-hand tabs must go in reverse order! --}
8
+ <div class="rw_navbar_righttab">
9
+ <input class="rw_search_box" type="text" name="q" size="10" />
10
+ <button class="rw_search_button" type="submit">#label_search_project#</button>
11
+ <input class="rw_search_all_check" type="checkbox" name="a">#label_search_all#</input>
12
+ </div>
13
+ <div class="rw_navbar_righttab">
14
+ <a href="%cgi_url%/%page_project%/RecentChanges">#label_recent_changes#</a>
15
+ </div>
16
+ <div class="rw_navbar_righttab">
17
+ %page_project%::<a href="%cgi_url%/%page_project%/_topics">#label_topics#</a>
18
+ </div>
19
+ <div class="rw_navbar_righttab">
20
+ <a href="%cgi_url%/_projects">#label_projects#</a>
21
+ </div>
22
+ </form>-->
23
+ </div>
@@ -0,0 +1,297 @@
1
+ /* $Id: ruwiki.css,v 1.13 2004/11/22 04:53:41 austin Exp $ */
2
+ /*
3
+ * The fixed positioning for what we're doing is based on:
4
+ * http://www.456bereastreet.com/lab/cssframes/
5
+ */
6
+ body, html { margin: 0; padding: 0; }
7
+ /* Prevents content from becoming unreachable in Gecko */
8
+ body { min-width: 720px; }
9
+
10
+ /*
11
+ * position: absolute - scrolls the whole page for all browsers. This also
12
+ * makes the background invisible, so the text doesn't appear between tabs.
13
+ */
14
+ div#rw_header
15
+ {
16
+ position: absolute;
17
+ width: 100%;
18
+ top: 0;
19
+ left: 0;
20
+ height: 2.25em;
21
+ background-color: #F7FEFF;
22
+ }
23
+
24
+ /* position: fixed - header and footer don't scroll; modern browsers */
25
+ body > div#rw_header { position: fixed; }
26
+
27
+ /*
28
+ * position: absolute - scrolls the whole page for all browsers. This also
29
+ * makes the background invisible, so the text doesn't appear between tabs.
30
+ */
31
+ div#rw_footer
32
+ {
33
+ /*position: absolute;
34
+ width: 100%;
35
+ bottom: 0;
36
+ left: 0;
37
+ height: 2.25em;
38
+ background-color: #F7FEFF;*/
39
+ }
40
+
41
+ /* position: fixed - header and footer don't scroll; modern browsers */
42
+ body > div#rw_footer { position: fixed; }
43
+
44
+ body > div#rw_footer > .rw_navbar { position: fixed; bottom: 0; }
45
+ body > div#rw_footer > .rw_navbar > div { position: relative; top: -2em; }
46
+
47
+ body
48
+ {
49
+ margin: 0.5em;
50
+ color: black;
51
+ font-size: medium;
52
+ font-family: "Trebuchet MS", "Verdana", sans-serif;
53
+ background-color: #F7FEFF;
54
+ }
55
+
56
+ .rw_navbar
57
+ {
58
+ width: 100%;
59
+ margin: 0;
60
+ padding: 0.1em;
61
+ font-size: 0.7em;
62
+ border: 1px solid black;
63
+ color: white;
64
+ background-color: #27C;
65
+ height: 0.5em;
66
+ z-index: 2;
67
+ }
68
+
69
+ .rw_navbar a
70
+ {
71
+ color: white;
72
+ border-bottom: 1px dashed white;
73
+ font-weight: bold;
74
+ }
75
+
76
+ .rw_navbar a:visited
77
+ {
78
+ color: #2E7;
79
+ font-weight: normal;
80
+ border-bottom: 1px dashed #2E7;
81
+ }
82
+
83
+ .rw_navbar a:hover
84
+ {
85
+ text-decoration: none;
86
+ }
87
+
88
+ .rw_navbar_tab
89
+ {
90
+ float: left;
91
+ background-color: #27C;
92
+ padding-left: 0.8em;
93
+ padding-right: 0.8em;
94
+ padding-top: 0.3em;
95
+ border: 1px solid #059;
96
+ margin: 0 0.3em;
97
+ height: 2em;
98
+ vertical-align: center;
99
+ }
100
+
101
+ .rw_navbar_tab:hover
102
+ {
103
+ background-color: #49E;
104
+ }
105
+
106
+ .rw_navbar_righttab
107
+ {
108
+ float: right;
109
+ padding-left: 0.8em;
110
+ padding-top: 0.3em;
111
+ padding-right: 0.8em;
112
+ border: 1px solid #059;
113
+ background-color: #27C;
114
+ margin: 0 0.3em;
115
+ height: 2em;
116
+ }
117
+
118
+ .rw_navbar_righttab:hover
119
+ {
120
+ background-color: #49E;
121
+ }
122
+
123
+ .rw_content
124
+ {
125
+ clear: both;
126
+ margin-top: 2em;
127
+ margin-left: 3em;
128
+ margin-right: 3em;
129
+ }
130
+
131
+ .rw_message
132
+ {
133
+ background-color: #fab;
134
+ border: 3px dotted red;
135
+ font-weight: bolder;
136
+ clear: both;
137
+ font-size: 90%;
138
+ padding: 1em;
139
+ margin-top: 3em;
140
+ margin-left: 5em;
141
+ margin-right: 5em;
142
+ }
143
+
144
+ .rw_edit_content
145
+ {
146
+ border: 1px dashed #059;
147
+ padding: 0.3em;
148
+ width: 100%;
149
+ min-height: 20.5em;
150
+ }
151
+
152
+ .rw_accelerator { text-decoration: underline; }
153
+
154
+ .rw_edit_content textarea
155
+ {
156
+ border: 1px dashed #059;
157
+ padding: 0.3em;
158
+ width: 100%;
159
+ min-height: 20.5em;
160
+ height: 20.5em;
161
+ }
162
+
163
+ .rw_edit_comment
164
+ {
165
+ clear: both;
166
+ margin-top: 1em;
167
+ }
168
+
169
+ .rw_edit_comment input
170
+ {
171
+ border: 1px dashed #059;
172
+ min-width: 50%;
173
+ width: 70%;
174
+ max-width: 80%;
175
+ }
176
+
177
+ .rw_edit_form_button
178
+ {
179
+ font-size: 0.8em;
180
+ border: 1px dotted #27C;
181
+ }
182
+
183
+ .rw_edit_raw
184
+ {
185
+ font-size: 0.8em;
186
+ float: left;
187
+ max-width: 48%;
188
+ width: 48%;
189
+ margin: 0;
190
+ }
191
+
192
+ .rw_edit_raw pre
193
+ {
194
+ border: 3px double #72C;
195
+ overflow: scroll;
196
+ clear: right;
197
+ }
198
+
199
+ .rw_edit_format
200
+ {
201
+ font-size: 0.8em;
202
+ float: right;
203
+ max-width: 48%;
204
+ width: 48%;
205
+ margin: 0;
206
+ }
207
+
208
+ .rw_edit_title
209
+ {
210
+ margin: 0;
211
+ }
212
+
213
+ .rw_edit_format div
214
+ {
215
+ border: 3px double #27C;
216
+ }
217
+
218
+ .rw_search_button
219
+ {
220
+ border: 1px dotted #27C;
221
+ }
222
+
223
+ .rw_search_box
224
+ {
225
+ border: 1px dotted #27C;
226
+ }
227
+
228
+ .rw_search_box:hover
229
+ {
230
+ background-color: #999;
231
+ }
232
+
233
+ li { margin-top: 0.25em; margin-bottom: 0.25em; }
234
+
235
+ .rw_minilink { font-size: 0.5em; font-weight: bold; }
236
+
237
+ #rw_editing_tab { background-color: #C72; }
238
+ #rw_saved_page_announcement { border-bottom: 1px solid black; }
239
+
240
+ /* Token Classes */
241
+ .rwtk_Paragraph { }
242
+ .rwtk_Code
243
+ {
244
+ border-left: 1em solid #999;
245
+ }
246
+ .rwtk_Image { }
247
+ .rwtk_NumberedLinks
248
+ {
249
+ border: 1px dashed #72C;
250
+ background-color: #C7CECF;
251
+ }
252
+ .rwtk_NamedLinks
253
+ {
254
+ border: 1px dashed #72C;
255
+ background-color: #C7CECF;
256
+ }
257
+ .rwtk_ExternalLinks
258
+ {
259
+ border: 1px dashed #72C;
260
+ background-color: #C7CECF;
261
+ }
262
+ .rwtk_RubyTalkLinks
263
+ {
264
+ border: 1px dashed #72C;
265
+ background-color: #C7CECF;
266
+ }
267
+ .rwtk_OtherRubyLinks
268
+ {
269
+ border: 1px dashed #72C;
270
+ background-color: #C7CECF;
271
+ }
272
+ .rwtk_HRule { }
273
+
274
+ .rwtk_Abbreviations { }
275
+
276
+ div.rwtk_Calendar {
277
+ border: 1px solid black;
278
+ float: right;
279
+ clear: none;
280
+ }
281
+ .rwtk_Calendar_current_month { }
282
+ .rwtk_Calendar_prev_month { }
283
+ .rwtk_Calendar_next_month { }
284
+ .rwtk_Calendar_weekend { }
285
+ .rwtk_Calendar_weekday { }
286
+ .rwtk_Calendar_day { }
287
+ .rwtk_Calendar_today { background-color: #FFFFA7; }
288
+
289
+ .rwtk_EditWikiLink { border: 1px dotted blue }
290
+ .rwtk_WikiLink { }
291
+
292
+ .rwtk_Headings { }
293
+ .rwtk_Lists { }
294
+ .rwtk_Blockquotes { }
295
+ .rwtk_Definitions { }
296
+ .rwtk_Definitions dt { font-weight: bold; }
297
+
@@ -0,0 +1,8 @@
1
+ <!-- header -->!INCLUDE!<!-- /header -->
2
+ <!-- content --><div id="rw_content"><div class="rw_content" id="rw_saved_page_announcement">
3
+ #label_saved_page# <a href="%cgi_url%/%page_project%/%page_raw_topic%">%page_project%::%page_topic_name%</a>
4
+ </div>
5
+ <div class="rw_content">
6
+ %content%
7
+ </div></div><!-- /content -->
8
+ <!-- footer -->!INCLUDE!<!-- /footer -->
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>%wiki_title%</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=#charset_encoding#" />
7
+ [!indexable|<meta name="robots" content="noindex,nofollow" />?]
8
+ %css_link%
9
+ <!--[if IE 6]>
10
+ <style type="text/css" media="screen,print">
11
+ html { overflow: hidden; }
12
+ body { height: 100%; overflow: auto; }
13
+ </style>
14
+ <![endif]-->
15
+ </head>
16
+ <body>
17
+ !INCLUDE!
18
+ </body>
19
+ </html>
@@ -0,0 +1,8 @@
1
+ <!-- header -->!INCLUDE!<!-- /header -->
2
+ <!-- content --><div id="rw_content">
3
+ [?message|<div class="rw_message">%message%</div>?]
4
+ <div class="rw_content">
5
+ %content%
6
+ </div>
7
+ <!-- footer -->!INCLUDE!<!-- /footer -->
8
+ </div><!-- /content -->
@@ -0,0 +1,8 @@
1
+ <div id="rw_header">
2
+ <div class="rw_titlebar">
3
+ <div class="rw_titlebar_tab">%home_link%</div>
4
+ <div class="rw_titlebar_tab">#label_project#<a href="%cgi_url%/%page_project%/"><strong>%page_project%</strong></a></div>
5
+ <div class="rw_titlebar_tab">%label_topic_or_search% %page_topic%</div>
6
+ [?editable|<div class="rw_titlebar_tab"><a href="%cgi_url%/%page_project%/%page_raw_topic%/_edit">#label_edit#</a></div>?]
7
+ </div>
8
+ </div>
@@ -0,0 +1,27 @@
1
+ <div id="rw_header">
2
+ <div class="rw_titlebar">
3
+ <div class="rw_titlebar_tab">%home_link%</div>
4
+ <div class="rw_titlebar_tab">#label_topic#<b>%page_topic%</b></div>
5
+ <div class="rw_titlebar_tab">#label_project#<b>%page_project%</b></div>
6
+ <div class="rw_titlebar_tab" id="rw_editing_tab"><strong><em>#label_editing#</em> #%page_version%</strong></div>
7
+ </div>
8
+ </div>
9
+
10
+ <div id="rw_content">
11
+ [?message|<div class="rw_message">%message%</div>?]
12
+ <div class="rw_content_edit">
13
+ <form class="rw_edit_form" action="%cgi_url%/%page_project%/%page_raw_topic%" method="post">
14
+ <span class="rw_accelerator">(#label_text_accelerator#)</span> #label_text#<br /><textarea accesskey="#label_text_accelerator#" class="rw_edit_content" rows="15" name="newpage">%page_content%</textarea>
15
+ <div class="rw_edit_comment"><span class="rw_accelerator">(#label_comment_accelerator#)</span> #label_edit_comment#<input accesskey="#label_comment_accelerator#" type="text" name="edcomment" value="%edit_comment%" /></div>
16
+ <input type="hidden" name="topic" value="%page_raw_topic%" />
17
+ <input type="hidden" name="project" value="%page_project%" />
18
+ <input type="hidden" name="version" value="%page_version%" /><br />
19
+ <button class="rw_edit_form_button" accesskey="#label_save_accelerator#" type="submit" name="save"><span class="rw_accelerator">(#label_save_accelerator#)</span> #label_save#</button>
20
+ <button class="rw_edit_form_button" accesskey="#label_cancel_accelerator#" type="submit" name="cancel"><span class="rw_accelerator">(#label_cancel_accelerator#)</span> #label_cancel#</button>
21
+ <button class="rw_edit_form_button" accesskey="#label_preview_accelerator#" type="submit" name="preview"><span class="rw_accelerator">(#label_preview_accelerator#)</span> #label_preview#</button>
22
+ </form>
23
+ <h2 style="border-bottom: 1px solid black">#label_original_text#</h2>
24
+ <div class="rw_edit_raw"><h2 class="rw_edit_title">#label_raw#</h2><pre>%pre_page_content%</pre></div>
25
+ <div class="rw_edit_format"><h2 class="rw_edit_title">#label_formatted#</h2><div>%unedited_page_content%</div></div>
26
+ </div>
27
+ </div>
@@ -0,0 +1,13 @@
1
+ <div id="rw_header">
2
+ <div class="rw_navbar">
3
+ <div class="rw_navbar_tab">%home_link%</div>
4
+ <div class="rw_navbar_righttab" style="background-color: #C72"><strong><em>%name%</em></strong></div>
5
+ </div>
6
+ </div>
7
+ <div id="rw_content">
8
+ <div class="rw_content">
9
+ <h1>%name%</h1>
10
+ <p>#label_send_report_by# <a href="mailto:%webmaster%?subject=%name%[?backtrace_email|&amp;body=%backtrace_email%?]">#label_send_report#</a></p>
11
+ <p>%backtrace%</p>
12
+ </div>
13
+ </div>
@@ -0,0 +1,22 @@
1
+ <div class="rw_footer">
2
+ <form class="rw_footer_tab" action="_search">
3
+ <div>
4
+ <input class="rw_search_box" type="text" name="q" size="10" />
5
+ </div>
6
+ <div>
7
+ <input class="rw_search_all_check" type="checkbox" name="a">#label_search_all#</input>
8
+ <button class="rw_search_button" type="submit">#label_search_project#</button>
9
+ </div>
10
+ </form>
11
+ <div class="rw_footer_tab">
12
+ <dl>
13
+ <dt>%page_project%::</dt>
14
+ <dd><a href="%cgi_url%/%page_project%/_topics">#label_topics#</a><br />
15
+ <a href="%cgi_url%/%page_project%/RecentChanges">#label_recent_changes#</a>
16
+ </dd>
17
+ </div>
18
+ <div class="rw_footer_tab">
19
+ <a href="%cgi_url%/_projects">#label_projects#</a>
20
+ </div>
21
+ </form>
22
+ </div>