qwikdoc 0.0.1

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 (335) hide show
  1. data/.gitignore +5 -0
  2. data/.rspec +2 -0
  3. data/CHANGES +3 -0
  4. data/COPYING +340 -0
  5. data/Gemfile +3 -0
  6. data/README.md +10 -0
  7. data/Rakefile +10 -0
  8. data/TextFormattingRules +137 -0
  9. data/TextFormattingRules.ja +143 -0
  10. data/bin/qwikdoc +34 -0
  11. data/lib/qwik_doc.rb +15 -0
  12. data/lib/qwik_doc/hack.rb +184 -0
  13. data/qwikdoc.gemspec +26 -0
  14. data/spec/qwik_doc_spec.rb +305 -0
  15. data/spec/spec_helper.rb +12 -0
  16. data/vendor/qwik/Makefile +63 -0
  17. data/vendor/qwik/Rakefile +17 -0
  18. data/vendor/qwik/act-aa.rb +83 -0
  19. data/vendor/qwik/act-archive.rb +386 -0
  20. data/vendor/qwik/act-attach.rb +304 -0
  21. data/vendor/qwik/act-backup.rb +236 -0
  22. data/vendor/qwik/act-basic.rb +325 -0
  23. data/vendor/qwik/act-book.rb +161 -0
  24. data/vendor/qwik/act-calc.rb +371 -0
  25. data/vendor/qwik/act-charset.rb +251 -0
  26. data/vendor/qwik/act-christel.rb +112 -0
  27. data/vendor/qwik/act-chronology.rb +149 -0
  28. data/vendor/qwik/act-code.rb +155 -0
  29. data/vendor/qwik/act-comment.rb +554 -0
  30. data/vendor/qwik/act-config.rb +49 -0
  31. data/vendor/qwik/act-counter.rb +125 -0
  32. data/vendor/qwik/act-day.rb +96 -0
  33. data/vendor/qwik/act-describe.rb +135 -0
  34. data/vendor/qwik/act-diary.rb +109 -0
  35. data/vendor/qwik/act-edit.rb +317 -0
  36. data/vendor/qwik/act-embed-html.rb +296 -0
  37. data/vendor/qwik/act-emode.rb +150 -0
  38. data/vendor/qwik/act-event.rb +187 -0
  39. data/vendor/qwik/act-file.rb +303 -0
  40. data/vendor/qwik/act-files.rb +771 -0
  41. data/vendor/qwik/act-getpass.rb +295 -0
  42. data/vendor/qwik/act-history.rb +136 -0
  43. data/vendor/qwik/act-html.rb +204 -0
  44. data/vendor/qwik/act-httpauth.rb +147 -0
  45. data/vendor/qwik/act-include.rb +142 -0
  46. data/vendor/qwik/act-interwiki.rb +189 -0
  47. data/vendor/qwik/act-isearch.rb +109 -0
  48. data/vendor/qwik/act-keywords.rb +137 -0
  49. data/vendor/qwik/act-lang.rb +81 -0
  50. data/vendor/qwik/act-license.rb +63 -0
  51. data/vendor/qwik/act-list.rb +287 -0
  52. data/vendor/qwik/act-login.rb +410 -0
  53. data/vendor/qwik/act-logout.rb +60 -0
  54. data/vendor/qwik/act-mail.rb +159 -0
  55. data/vendor/qwik/act-map.rb +292 -0
  56. data/vendor/qwik/act-md5.rb +42 -0
  57. data/vendor/qwik/act-mdlb.rb +741 -0
  58. data/vendor/qwik/act-media.rb +416 -0
  59. data/vendor/qwik/act-member.rb +157 -0
  60. data/vendor/qwik/act-menu.rb +142 -0
  61. data/vendor/qwik/act-metadata.rb +323 -0
  62. data/vendor/qwik/act-mlsubmitform.rb +49 -0
  63. data/vendor/qwik/act-monitor.rb +167 -0
  64. data/vendor/qwik/act-new.rb +418 -0
  65. data/vendor/qwik/act-pagelist.rb +248 -0
  66. data/vendor/qwik/act-password.rb +145 -0
  67. data/vendor/qwik/act-plan.rb +210 -0
  68. data/vendor/qwik/act-povray.rb +230 -0
  69. data/vendor/qwik/act-presen.rb +380 -0
  70. data/vendor/qwik/act-redirect.rb +133 -0
  71. data/vendor/qwik/act-ring.rb +1071 -0
  72. data/vendor/qwik/act-rrefs.rb +255 -0
  73. data/vendor/qwik/act-ruby.rb +116 -0
  74. data/vendor/qwik/act-sample.rb +170 -0
  75. data/vendor/qwik/act-save.rb +295 -0
  76. data/vendor/qwik/act-schedule.rb +374 -0
  77. data/vendor/qwik/act-search.rb +180 -0
  78. data/vendor/qwik/act-searchwords.rb +51 -0
  79. data/vendor/qwik/act-sendpass.rb +83 -0
  80. data/vendor/qwik/act-site.rb +89 -0
  81. data/vendor/qwik/act-sitebackup.rb +419 -0
  82. data/vendor/qwik/act-sitelog.rb +118 -0
  83. data/vendor/qwik/act-smil.rb +299 -0
  84. data/vendor/qwik/act-status.rb +220 -0
  85. data/vendor/qwik/act-style.rb +608 -0
  86. data/vendor/qwik/act-table.rb +263 -0
  87. data/vendor/qwik/act-tableform.rb +241 -0
  88. data/vendor/qwik/act-tag.rb +103 -0
  89. data/vendor/qwik/act-text.rb +70 -0
  90. data/vendor/qwik/act-textarea.rb +164 -0
  91. data/vendor/qwik/act-theme.rb +346 -0
  92. data/vendor/qwik/act-toc.rb +112 -0
  93. data/vendor/qwik/act-typekey.rb +198 -0
  94. data/vendor/qwik/act-under-const.rb +94 -0
  95. data/vendor/qwik/act-webservice.rb +321 -0
  96. data/vendor/qwik/act-wema.rb +558 -0
  97. data/vendor/qwik/act-wysiwyg.rb +238 -0
  98. data/vendor/qwik/action.rb +325 -0
  99. data/vendor/qwik/autoreload.rb +98 -0
  100. data/vendor/qwik/bench-bench.rb +28 -0
  101. data/vendor/qwik/bench-emode.rb +47 -0
  102. data/vendor/qwik/bench-format-xml.rb +70 -0
  103. data/vendor/qwik/bench-large-table.rb +62 -0
  104. data/vendor/qwik/bench-md5.rb +14 -0
  105. data/vendor/qwik/bench-module-session.rb +19 -0
  106. data/vendor/qwik/bench-page.rb +50 -0
  107. data/vendor/qwik/bench-s-md5.rb +28 -0
  108. data/vendor/qwik/bench-session.rb +25 -0
  109. data/vendor/qwik/bench-textformat.rb +31 -0
  110. data/vendor/qwik/catalog-factory.rb +91 -0
  111. data/vendor/qwik/catalog-ja.rb +479 -0
  112. data/vendor/qwik/catalog-ml-ja.rb +145 -0
  113. data/vendor/qwik/check-act-monitor.rb +112 -0
  114. data/vendor/qwik/check-act-monitor2.rb +46 -0
  115. data/vendor/qwik/check-act-theme.rb +27 -0
  116. data/vendor/qwik/check-event.rb +112 -0
  117. data/vendor/qwik/check-event2.rb +55 -0
  118. data/vendor/qwik/check-htree-rexml.rb +77 -0
  119. data/vendor/qwik/check-htree.rb +51 -0
  120. data/vendor/qwik/check-libxml.rb +135 -0
  121. data/vendor/qwik/check-many-pages.rb +47 -0
  122. data/vendor/qwik/check-monitor.rb +33 -0
  123. data/vendor/qwik/check-observer.rb +67 -0
  124. data/vendor/qwik/check-server.rb +61 -0
  125. data/vendor/qwik/check-uuencode.rb +33 -0
  126. data/vendor/qwik/check-webdav.rb +65 -0
  127. data/vendor/qwik/check-xml-xpath.rb +27 -0
  128. data/vendor/qwik/common-backtrace.rb +94 -0
  129. data/vendor/qwik/common-basic.rb +111 -0
  130. data/vendor/qwik/common-condition.rb +142 -0
  131. data/vendor/qwik/common-error.rb +48 -0
  132. data/vendor/qwik/common-gettext.rb +50 -0
  133. data/vendor/qwik/common-javascript.rb +45 -0
  134. data/vendor/qwik/common-notice.rb +132 -0
  135. data/vendor/qwik/common-plain.rb +105 -0
  136. data/vendor/qwik/common-plugin.rb +111 -0
  137. data/vendor/qwik/common-res.rb +76 -0
  138. data/vendor/qwik/common-resolve.rb +92 -0
  139. data/vendor/qwik/common-send.rb +171 -0
  140. data/vendor/qwik/common-session.rb +139 -0
  141. data/vendor/qwik/common-surface.rb +261 -0
  142. data/vendor/qwik/common-url.rb +90 -0
  143. data/vendor/qwik/compat/Makefile +12 -0
  144. data/vendor/qwik/compat/add_load_path.rb +1 -0
  145. data/vendor/qwik/config.rb +299 -0
  146. data/vendor/qwik/db-b-backup.rb +142 -0
  147. data/vendor/qwik/db-backup.rb +184 -0
  148. data/vendor/qwik/db-berkeley.rb +306 -0
  149. data/vendor/qwik/db-filesystem.rb +305 -0
  150. data/vendor/qwik/db-indexer.rb +154 -0
  151. data/vendor/qwik/db-searchwords.rb +238 -0
  152. data/vendor/qwik/description-ja.rb +267 -0
  153. data/vendor/qwik/description.rb +256 -0
  154. data/vendor/qwik/dev-add-copyright.rb +23 -0
  155. data/vendor/qwik/dev-backup.rb +24 -0
  156. data/vendor/qwik/dev-bench.rb +175 -0
  157. data/vendor/qwik/dev-calctime.rb +52 -0
  158. data/vendor/qwik/dev-css-compressor.rb +60 -0
  159. data/vendor/qwik/dev-extract-catalog.rb +102 -0
  160. data/vendor/qwik/dev-js-compressor.rb +73 -0
  161. data/vendor/qwik/dev-release.rb +235 -0
  162. data/vendor/qwik/dev-replace.rb +353 -0
  163. data/vendor/qwik/dev-sendmail.rb +25 -0
  164. data/vendor/qwik/farm.rb +283 -0
  165. data/vendor/qwik/gettext.rb +56 -0
  166. data/vendor/qwik/group-cond.rb +157 -0
  167. data/vendor/qwik/group-config.rb +247 -0
  168. data/vendor/qwik/group-confirm.rb +147 -0
  169. data/vendor/qwik/group-db.rb +326 -0
  170. data/vendor/qwik/group-mail.rb +195 -0
  171. data/vendor/qwik/group-member.rb +307 -0
  172. data/vendor/qwik/group-sendmail.rb +231 -0
  173. data/vendor/qwik/group-site.rb +374 -0
  174. data/vendor/qwik/group-sweep.rb +63 -0
  175. data/vendor/qwik/group.rb +157 -0
  176. data/vendor/qwik/helper.rb +6 -0
  177. data/vendor/qwik/html-generator.rb +104 -0
  178. data/vendor/qwik/html-to-wabisabi.rb +149 -0
  179. data/vendor/qwik/htree-diff.rb +87 -0
  180. data/vendor/qwik/htree-format-xml.rb +57 -0
  181. data/vendor/qwik/htree-generator.rb +144 -0
  182. data/vendor/qwik/htree-get.rb +251 -0
  183. data/vendor/qwik/htree-html-generator.rb +179 -0
  184. data/vendor/qwik/htree-template.rb +263 -0
  185. data/vendor/qwik/htree-to-wabisabi.rb +171 -0
  186. data/vendor/qwik/loadlib.rb +79 -0
  187. data/vendor/qwik/logger.rb +115 -0
  188. data/vendor/qwik/mail-body.rb +171 -0
  189. data/vendor/qwik/mail-header.rb +474 -0
  190. data/vendor/qwik/mail-multipart.rb +193 -0
  191. data/vendor/qwik/mail-parse.rb +147 -0
  192. data/vendor/qwik/mail.rb +341 -0
  193. data/vendor/qwik/mailaddress.rb +83 -0
  194. data/vendor/qwik/mdlb-model.rb +81 -0
  195. data/vendor/qwik/mdlb-sample.rb +324 -0
  196. data/vendor/qwik/ml-catalog-factory.rb +27 -0
  197. data/vendor/qwik/ml-exception.rb +15 -0
  198. data/vendor/qwik/ml-generator.rb +28 -0
  199. data/vendor/qwik/ml-gettext.rb +137 -0
  200. data/vendor/qwik/ml-logger.rb +82 -0
  201. data/vendor/qwik/ml-memory.rb +65 -0
  202. data/vendor/qwik/ml-msg-validator.rb +86 -0
  203. data/vendor/qwik/ml-processor.rb +609 -0
  204. data/vendor/qwik/ml-quickml-server.rb +122 -0
  205. data/vendor/qwik/ml-sendmail.rb +0 -0
  206. data/vendor/qwik/ml-server.rb +107 -0
  207. data/vendor/qwik/ml-session.rb +348 -0
  208. data/vendor/qwik/ml-sweeper.rb +101 -0
  209. data/vendor/qwik/mock-logger.rb +65 -0
  210. data/vendor/qwik/mock-sendmail.rb +78 -0
  211. data/vendor/qwik/mock-socket.rb +82 -0
  212. data/vendor/qwik/modulobe.rb +406 -0
  213. data/vendor/qwik/mongrel-server.rb +72 -0
  214. data/vendor/qwik/page-files.rb +249 -0
  215. data/vendor/qwik/page-generate.rb +82 -0
  216. data/vendor/qwik/page-get.rb +262 -0
  217. data/vendor/qwik/page-images.rb +168 -0
  218. data/vendor/qwik/page-put.rb +128 -0
  219. data/vendor/qwik/page-rrefs.rb +154 -0
  220. data/vendor/qwik/page-title.rb +0 -0
  221. data/vendor/qwik/page-wikidb.rb +234 -0
  222. data/vendor/qwik/page.rb +67 -0
  223. data/vendor/qwik/pages.rb +444 -0
  224. data/vendor/qwik/parse-plugin.rb +249 -0
  225. data/vendor/qwik/parser-emode.rb +116 -0
  226. data/vendor/qwik/parser-inline.rb +273 -0
  227. data/vendor/qwik/parser.rb +350 -0
  228. data/vendor/qwik/password.rb +183 -0
  229. data/vendor/qwik/periodic.rb +79 -0
  230. data/vendor/qwik/qp.rb +56 -0
  231. data/vendor/qwik/qwik-service.rb +341 -0
  232. data/vendor/qwik/qwik.rb +5 -0
  233. data/vendor/qwik/qwikweb-adduser.rb +34 -0
  234. data/vendor/qwik/qwikweb-catalog-validator.rb +110 -0
  235. data/vendor/qwik/qwikweb-incgen.rb +28 -0
  236. data/vendor/qwik/qwikweb-makesite.rb +41 -0
  237. data/vendor/qwik/qwikweb-server.rb +44 -0
  238. data/vendor/qwik/qwikweb-showpassword.rb +26 -0
  239. data/vendor/qwik/qwikweb-watchlog.rb +67 -0
  240. data/vendor/qwik/request-path.rb +304 -0
  241. data/vendor/qwik/request-ua.rb +76 -0
  242. data/vendor/qwik/request-webrick.rb +81 -0
  243. data/vendor/qwik/request.rb +91 -0
  244. data/vendor/qwik/resolve-tdiary.rb +292 -0
  245. data/vendor/qwik/resolve.rb +121 -0
  246. data/vendor/qwik/response.rb +228 -0
  247. data/vendor/qwik/server-memory.rb +57 -0
  248. data/vendor/qwik/server-webrick.rb +102 -0
  249. data/vendor/qwik/server.rb +252 -0
  250. data/vendor/qwik/site-config.rb +149 -0
  251. data/vendor/qwik/site-db.rb +136 -0
  252. data/vendor/qwik/site-event.rb +162 -0
  253. data/vendor/qwik/site-files.rb +86 -0
  254. data/vendor/qwik/site-group.rb +103 -0
  255. data/vendor/qwik/site-index.rb +47 -0
  256. data/vendor/qwik/site-log.rb +64 -0
  257. data/vendor/qwik/site-member.rb +230 -0
  258. data/vendor/qwik/site-monitor.rb +97 -0
  259. data/vendor/qwik/site-pages.rb +62 -0
  260. data/vendor/qwik/site-plan.rb +139 -0
  261. data/vendor/qwik/site-report.rb +282 -0
  262. data/vendor/qwik/site-resolve.rb +230 -0
  263. data/vendor/qwik/site-rrefs.rb +18 -0
  264. data/vendor/qwik/site-search.rb +180 -0
  265. data/vendor/qwik/site-timeline.rb +153 -0
  266. data/vendor/qwik/site-url.rb +189 -0
  267. data/vendor/qwik/site.rb +76 -0
  268. data/vendor/qwik/smil-time.rb +105 -0
  269. data/vendor/qwik/smtp-session.rb +331 -0
  270. data/vendor/qwik/template-generator.rb +149 -0
  271. data/vendor/qwik/template.rb +85 -0
  272. data/vendor/qwik/test-common.rb +10 -0
  273. data/vendor/qwik/test-ml-info.rb +225 -0
  274. data/vendor/qwik/test-module-ml.rb +142 -0
  275. data/vendor/qwik/test-module-path.rb +110 -0
  276. data/vendor/qwik/test-module-public.rb +70 -0
  277. data/vendor/qwik/test-module-server.rb +98 -0
  278. data/vendor/qwik/test-module-session.rb +264 -0
  279. data/vendor/qwik/test-module-suite.rb +91 -0
  280. data/vendor/qwik/test-ms-applemail.rb +59 -0
  281. data/vendor/qwik/test-ms-attach.rb +174 -0
  282. data/vendor/qwik/test-ms-basic.rb +40 -0
  283. data/vendor/qwik/test-ms-close.rb +35 -0
  284. data/vendor/qwik/test-ms-confirm.rb +75 -0
  285. data/vendor/qwik/test-ms-ignore-spam.rb +57 -0
  286. data/vendor/qwik/test-ms-japanese.rb +97 -0
  287. data/vendor/qwik/test-ms-jfilename.rb +82 -0
  288. data/vendor/qwik/test-ms-large.rb +58 -0
  289. data/vendor/qwik/test-ms-member.rb +103 -0
  290. data/vendor/qwik/test-ms-multipart.rb +84 -0
  291. data/vendor/qwik/test-ms-org.rb +129 -0
  292. data/vendor/qwik/test-ms-plan.rb +130 -0
  293. data/vendor/qwik/test-ms-post.rb +53 -0
  294. data/vendor/qwik/test-ms-quopri.rb +76 -0
  295. data/vendor/qwik/test-sub-quopri.rb +45 -0
  296. data/vendor/qwik/test-submit-base64.rb +59 -0
  297. data/vendor/qwik/test-submit-forward.rb +61 -0
  298. data/vendor/qwik/test-submit-html-mail.rb +52 -0
  299. data/vendor/qwik/test-submit-japanese.rb +135 -0
  300. data/vendor/qwik/test-submit-jfilename.rb +144 -0
  301. data/vendor/qwik/test-submit-uuencode.rb +71 -0
  302. data/vendor/qwik/test-suite-all.rb +8 -0
  303. data/vendor/qwik/test-suite-basic.rb +9 -0
  304. data/vendor/qwik/test-suite-ml.rb +9 -0
  305. data/vendor/qwik/test-typekey.rb +64 -0
  306. data/vendor/qwik/testunit.rb +45 -0
  307. data/vendor/qwik/tokenizer-inline.rb +294 -0
  308. data/vendor/qwik/tokenizer.rb +332 -0
  309. data/vendor/qwik/typekey.rb +160 -0
  310. data/vendor/qwik/util-basic.rb +135 -0
  311. data/vendor/qwik/util-charset.rb +332 -0
  312. data/vendor/qwik/util-css.rb +56 -0
  313. data/vendor/qwik/util-csv-tokenizer.rb +113 -0
  314. data/vendor/qwik/util-filename.rb +112 -0
  315. data/vendor/qwik/util-pathname.rb +202 -0
  316. data/vendor/qwik/util-pid.rb +58 -0
  317. data/vendor/qwik/util-safe.rb +67 -0
  318. data/vendor/qwik/util-sendmail.rb +273 -0
  319. data/vendor/qwik/util-string.rb +203 -0
  320. data/vendor/qwik/util-time.rb +125 -0
  321. data/vendor/qwik/util-webrick.rb +176 -0
  322. data/vendor/qwik/version.rb +11 -0
  323. data/vendor/qwik/wabisabi-basic.rb +163 -0
  324. data/vendor/qwik/wabisabi-diff.rb +130 -0
  325. data/vendor/qwik/wabisabi-format-xml.rb +310 -0
  326. data/vendor/qwik/wabisabi-generator.rb +262 -0
  327. data/vendor/qwik/wabisabi-index.rb +174 -0
  328. data/vendor/qwik/wabisabi-table.rb +212 -0
  329. data/vendor/qwik/wabisabi-template.rb +295 -0
  330. data/vendor/qwik/wabisabi-to-htree.rb +111 -0
  331. data/vendor/qwik/wabisabi-to-wiki.rb +690 -0
  332. data/vendor/qwik/wabisabi-traverse.rb +207 -0
  333. data/vendor/qwik/wabisabi-validator.rb +116 -0
  334. data/vendor/qwik/wabisabi.rb +5 -0
  335. metadata +416 -0
@@ -0,0 +1,49 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+
7
+ module Qwik
8
+ class Action
9
+ NotYet_D_site_config = {
10
+ :dt => 'Site Config mode',
11
+ :dd => 'You can edit site configurations.',
12
+ :dc => "* Example
13
+ [[site.config]]
14
+ "
15
+ }
16
+
17
+ def notyet_ext_config
18
+ method = "config_#{@req.base}"
19
+ return c_nerror if ! self.respond_to?(method)
20
+ return self.send(method)
21
+ end
22
+
23
+ SITE_CONFIG = '_SiteConfig'
24
+
25
+ def config_site
26
+ @req.base = SITE_CONFIG # Fake.
27
+ w = []
28
+ w << [:h1, _('Site Configuration')]
29
+ w = c_res(content)
30
+ w = TDiaryResolver.resolve(@config, @site, self, w)
31
+ title = _('Function')+' | '+hash[:dt]
32
+ return c_surface(title, true) { w }
33
+ end
34
+ end
35
+ end
36
+
37
+ if $0 == __FILE__
38
+ require 'qwik/test-common'
39
+ $test = true
40
+ end
41
+
42
+ if defined?($test) && $test
43
+ class TestAction < Test::Unit::TestCase
44
+ include TestSession
45
+
46
+ def test_config
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,125 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+
7
+ module Qwik
8
+ class Action
9
+ D_PluginCounter = {
10
+ :dt => 'Counter plugin',
11
+ :dd => 'You can show a conter for the page.',
12
+ :dc => '* Example
13
+ {{counter}}
14
+ {{counter}}
15
+ '
16
+ }
17
+
18
+ D_PluginCounter_ja = {
19
+ :dt => '�J�E���^�[�E�v���O�C��',
20
+ :dd => '�A�N�Z�X�J�E���^�[�𖄂ߍ��ނ��Ƃ��ł��܂��B',
21
+ :dc => '* ��
22
+ {{counter}}
23
+ {{counter}}
24
+ '
25
+ }
26
+
27
+ def plg_counter
28
+ return [:div, {:class=>'counter'},
29
+ [:iframe, {:src=>"#{@req.base}.counter",
30
+ :style=>'
31
+ margin:0;
32
+ padding:0;
33
+ width:5em;height:1em;
34
+ border: 0;
35
+ '}, '']]
36
+ end
37
+
38
+ def ext_counter
39
+ couner_num = counter_increment_count
40
+ new_counter_str = couner_num.to_s
41
+
42
+ @res['Content-Type'] = 'text/html; charset=Shift_JIS'
43
+ @res.body = [:html,
44
+ [:head,
45
+ [:title, 'counter'],
46
+ [:style, '
47
+ * {
48
+ padding: 0;
49
+ margin: 0;
50
+ }
51
+ body {
52
+ border: 0;
53
+ font-family: Helvetica,Arial,Verdana,sans-serif;
54
+ font-size: xx-small;
55
+ text-align: right;
56
+ }
57
+ ']],
58
+ [:body, [:div, {:class=>'counter'}, new_counter_str]]]
59
+ return nil
60
+ end
61
+
62
+ def counter_increment_count
63
+ pagename = @req.base
64
+ counter_pagename = "_counter_#{pagename}"
65
+
66
+ counter_page = @site[counter_pagename]
67
+ if counter_page.nil?
68
+ counter_page = @site.create(counter_pagename)
69
+ counter_page.store('0')
70
+ end
71
+
72
+ counter_str = counter_page.load
73
+ md5 = counter_str.md5hex
74
+
75
+ counter_num = counter_str.to_i
76
+ counter_num += 1
77
+ new_counter_str = counter_num.to_s
78
+
79
+ #counter_page.store(counter_num.to_s)
80
+ begin
81
+ counter_page.put_with_md5(new_counter_str, md5)
82
+ rescue PageCollisionError
83
+ # Do nothing.
84
+ end
85
+
86
+ return counter_num
87
+ end
88
+ end
89
+ end
90
+
91
+ if $0 == __FILE__
92
+ require 'qwik/test-common'
93
+ $test = true
94
+ end
95
+
96
+ if defined?($test) && $test
97
+ class TestActCounter < Test::Unit::TestCase
98
+ include TestSession
99
+
100
+ def test_all
101
+ t_add_user
102
+
103
+ page = @site.create_new
104
+ page.store('{{counter}}')
105
+
106
+ res = session('/test/1.html')
107
+ ok_xp([:div, {:class=>'counter'},
108
+ [:iframe,
109
+ {:style=>"\nmargin:0;\npadding:0;\nwidth:5em;height:1em;\nborder: 0;\n", :src=>'1.counter'}, '']],
110
+ "//span[@class='counter']")
111
+
112
+ res = session('/test/1.counter')
113
+ ok_xp([:div, {:class=>'counter'}, '1'],
114
+ "//div[@class='counter']")
115
+
116
+ counter_page = @site['_counter_1']
117
+ eq '1', counter_page.load
118
+
119
+ res = session('/test/1.counter')
120
+ ok_xp([:div, {:class=>'counter'}, '2'],
121
+ "//div[@class='counter']")
122
+ eq '2', counter_page.load
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,96 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ # Under construction.
6
+
7
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
8
+ require 'qwik/site-timeline'
9
+ require 'qwik/act-chronology'
10
+
11
+ module Qwik
12
+ class Action
13
+ # find the newest day.
14
+ def act_day
15
+ timeline = @site.timeline
16
+ timeline.calc_history
17
+ #pp timeline
18
+
19
+ max = timeline.site_max
20
+ day = max.ymd_s
21
+
22
+ @req.base = day
23
+ return ext_day
24
+
25
+ # return c_notice('max') {
26
+ # day
27
+ # }
28
+ end
29
+
30
+ # http://co/qwik/20051126.day
31
+ def ext_day
32
+ day = @req.base
33
+ return c_nerror('require arg') if day.nil?
34
+
35
+ if /\A(\d\d\d\d)(\d\d)(\d\d)\z/ =~ day
36
+ time = Time.local($1, $2, $3)
37
+ else
38
+ return c_nerror('wrong format')
39
+ end
40
+
41
+ timeline = @site.timeline
42
+ timeline.calc_history
43
+ #pp timeline
44
+
45
+ ymd = time.ymd_s
46
+ keys = timeline.get_keys_by_day(ymd)
47
+ return c_nerror('no contents') if keys.nil?
48
+
49
+ ar = []
50
+ keys.each {|pagename|
51
+ page = @site[pagename]
52
+ ar << [:h1, [:a, {:href=>"#{pagename}.html"}, page.get_title]]
53
+ ar << surface_get_body(page)
54
+ pageattribute = c_page_res('_PageAttribute')
55
+ }
56
+ return c_surface(_('One day') + ' | ' + ymd) {
57
+ ar
58
+ }
59
+ end
60
+ end
61
+ end
62
+
63
+ if $0 == __FILE__
64
+ require 'qwik/test-common'
65
+ $test = true
66
+ end
67
+
68
+ if defined?($test) && $test
69
+ class TestActDay < Test::Unit::TestCase
70
+ include TestSession
71
+
72
+ def test_all
73
+ t_add_user
74
+
75
+ page = @site.create_new
76
+ page.put_with_time('* t1', 0) # Store this page first.
77
+ page.put_with_time('* t2', 1) # Store this page second.
78
+ #p @site.to_a
79
+
80
+ # test_act_day
81
+ res = session '/test/.day'
82
+ #ok_in ['max'], '//title'
83
+
84
+ =begin
85
+ # test_ext_day
86
+ # There is a page in 1970-01-01.
87
+ res = session '/test/19700101.day'
88
+ ok_in ["One day | 19700101"], '//title'
89
+ =end
90
+
91
+ # There is no page in 1970-01-02.
92
+ res = session '/test/19700102.day'
93
+ ok_in ['no contents'], '//title'
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,135 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/description'
7
+ require 'qwik/description-ja'
8
+ # FIXME: Load description files from all languages automatically.
9
+
10
+ module Qwik
11
+ class Action
12
+ NotNecessary_D_ExtDescribe = {
13
+ :dt => 'Description of functions',
14
+ :dd => 'You can see the description of each functions of qwikWeb.',
15
+ :dc => "* Example
16
+ [[QwikWeb.describe]]
17
+ [[QwikWeb.describe]]
18
+
19
+ You can see the list below.
20
+ "
21
+ }
22
+
23
+ NotNecessary_D_ExtDescribe_ja = {
24
+ :dt => '�@�\����',
25
+ :dd => 'qwikWeb�̋@�\���������邱�Ƃ��ł��܂��B',
26
+ :dc => '* ��
27
+ [[QwikWeb.describe]]
28
+ [[QwikWeb.describe]]
29
+
30
+ �@�\�����̈ꗗ�́A���̉��ɂ‚��Ă��܂��B
31
+ '
32
+ }
33
+
34
+ def notuse_plg_description_list_dl
35
+ list = [:dl]
36
+ self.description_list(@req.accept_language).each {|name|
37
+ hash = description_get(name, @req.accept_language)
38
+ list << [:dt, [:a, {:href=>"#{name}.describe"},
39
+ [:em, name], " | ", [:strong, hash[:dt]]]]
40
+ list << [:dd, hash[:dd]]
41
+ }
42
+ return [:div, {:class=>'description-list'}, list]
43
+ end
44
+
45
+ def plg_description_list
46
+ list = [:ul]
47
+ self.description_list(@req.accept_language).each {|name|
48
+ hash = description_get(name, @req.accept_language)
49
+ list << [:li, [:a, {:href=>"#{name}.describe"},
50
+ [:em, name], ' ', [:strong, hash[:dt]]], ' ', hash[:dd]]
51
+ }
52
+ return [:div, {:class=>'description-list'}, list]
53
+ end
54
+
55
+ def description_list(langs=nil)
56
+ langs = [] if langs.nil?
57
+ langs << '' if ! langs.include?('')
58
+ list = []
59
+ self.class.constants.each {|constname|
60
+ langs.each {|lang|
61
+ if /\AD_([A-Za-z]+)_#{lang}\z/ =~ constname
62
+ if ! list.include?($1)
63
+ list << $1
64
+ end
65
+ elsif /\AD_([A-Za-z]+)\z/ =~ constname
66
+ if ! list.include?($1)
67
+ list << $1
68
+ end
69
+ end
70
+ }
71
+ }
72
+ return list.sort
73
+ end
74
+
75
+ DEFAULT_DESCRIPTION = 'QwikWeb'
76
+
77
+ def act_describe
78
+ @req.base = DEFAULT_DESCRIPTION
79
+ return ext_describe
80
+ end
81
+
82
+ def ext_describe
83
+ hash = description_get(@req.base, @req.accept_language)
84
+ return c_nerror('No such description') if hash.nil?
85
+ content = "#{hash[:dd]}
86
+ #{hash[:dc]}
87
+ * #{_('Functions list')}
88
+ {{description_list}}
89
+ "
90
+ @req.base = 'FrontPage' # Fake.
91
+ w = c_res(content)
92
+ w = TDiaryResolver.resolve(@config, @site, self, w)
93
+ #title = "#{_('Function')} | #{hash[:dt]}"
94
+ title = hash[:dt]
95
+ return c_surface(title, true) { w }
96
+ end
97
+
98
+ def description_get(name, langs=nil)
99
+ langs = [] if langs.nil?
100
+ langs << '' if ! langs.include?('')
101
+ langs.each {|lang|
102
+ lang.gsub!(/-/, '_')
103
+ constname = "D_#{name}"
104
+ constname = "D_#{name}_#{lang}" if ! lang.empty?
105
+ if self.class.const_defined?(constname)
106
+ return self.class.const_get(constname)
107
+ end
108
+ }
109
+ return nil
110
+ end
111
+ end
112
+ end
113
+
114
+ if $0 == __FILE__
115
+ require 'qwik/test-common'
116
+ $test = true
117
+ end
118
+
119
+ if defined?($test) && $test
120
+ class TestActDescribe < Test::Unit::TestCase
121
+ include TestSession
122
+
123
+ def test_all
124
+ t_add_user
125
+ res = session '/test/QwikWeb.describe'
126
+ ok_title 'How to qwikWeb'
127
+ # ok_in [:p, 'You can see the description of each functions of qwikWeb.'],
128
+ # '//div[@class="section"]'
129
+
130
+ # test_description_list
131
+ list = @action.description_list
132
+ eq true, 0 < list.length
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,109 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/act-include'
7
+
8
+ module Qwik
9
+ class Action
10
+ D_PluginDiary = {
11
+ :dt => 'Diary plugin',
12
+ :dd => 'You can create a diary page.',
13
+ :dc => "* How to
14
+ TBD
15
+ "
16
+ }
17
+
18
+ D_PluginDiary_ja = {
19
+ :dt => '���L�v���O�C��',
20
+ :dd => '���L�y�[�W�����܂��B',
21
+ :dc => "* �g����
22
+ �Ⴆ�΁uUser�v�Ƃ����y�[�W���̃y�[�W�����܂��B
23
+ ���̃y�[�W�ɉ��L�̂悤�ɓ��L�v���O�C���𖄂ߍ��݂܂��B
24
+ {{diary}}
25
+
26
+ ���L�y�[�W�́uUser_20070417�v�Ƃ����悤�ɁuUser_�v�Ƃ���prefix�̌��
27
+ ���t���������悤�ȃy�[�W���ŋL�q���Ă��������B
28
+ �uUser�v�y�[�W�ɂ́A�����̓��L�̈ꗗ���\������܂��B
29
+ "
30
+ }
31
+
32
+ def plg_diary(include_days = 10)
33
+ keys = []
34
+ @site.each {|page|
35
+ if /\A#{@req.base}_(\d\d\d\d\d\d\d\d)\z/ =~ page.key
36
+ keys << page.key
37
+ end
38
+ }
39
+
40
+ recent_days = keys.sort.reverse[0, include_days]
41
+
42
+ div = []
43
+ recent_days.each {|key|
44
+ page = @site[key]
45
+ div << [:h2, [:a, {:href=>page.url}, page.get_title]]
46
+ div += plg_include(key)
47
+ }
48
+
49
+ return div
50
+ end
51
+ end
52
+ end
53
+
54
+ if $0 == __FILE__
55
+ require 'qwik/test-common'
56
+ $test = true
57
+ end
58
+
59
+ if defined?($test) && $test
60
+ class TestActDiary < Test::Unit::TestCase
61
+ include TestSession
62
+
63
+ def test_plg_diary
64
+ t_add_user
65
+
66
+ page = @site.create('Diary')
67
+ page.store("{{diary}}")
68
+ page1 = @site.create('Diary_20070417')
69
+ page1.store("d1")
70
+ page2 = @site.create('Diary_20070418')
71
+ page2.store("d2")
72
+
73
+ res = session('/test/Diary.html')
74
+ ok_in([[:div,
75
+ {:class=>"day"},
76
+ "",
77
+ [:div,
78
+ {:class=>"body"},
79
+ [:div, {:class=>"section"}, [[:p, "d2"]]],
80
+ [:"!--", "section"]],
81
+ [:"!--", "body"]],
82
+ [:"!--", "day"]],
83
+ "//div[@class='section']")
84
+
85
+ =begin
86
+ res = session('/test/Diary.html')
87
+ ok_in([[[:div,
88
+ {:class=>"day"},
89
+ "",
90
+ [:div,
91
+ {:class=>"body"},
92
+ [:div, {:class=>"section"}, [[:p, "d2"]]],
93
+ [:"!--", "section"]],
94
+ [:"!--", "body"]],
95
+ [:"!--", "day"]],
96
+ [[:div,
97
+ {:class=>"day"},
98
+ "",
99
+ [:div,
100
+ {:class=>"body"},
101
+ [:div, {:class=>"section"}, [[:p, "d1"]]],
102
+ [:"!--", "section"]],
103
+ [:"!--", "body"]],
104
+ [:"!--", "day"]]], "//div[@class='section']")
105
+ =end
106
+
107
+ end
108
+ end
109
+ end