qwik2md 0.1.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 (335) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/README.md +36 -0
  6. data/Rakefile +10 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/exe/qwik2md +17 -0
  10. data/lib/qwik2md/version.rb +3 -0
  11. data/lib/qwik2md.rb +39 -0
  12. data/qwik2md.gemspec +30 -0
  13. data/vendor/qwik/AUTHORS +10 -0
  14. data/vendor/qwik/COPYING +340 -0
  15. data/vendor/qwik/COPYRIGHT +346 -0
  16. data/vendor/qwik/lib/qwik/Makefile +63 -0
  17. data/vendor/qwik/lib/qwik/Rakefile +17 -0
  18. data/vendor/qwik/lib/qwik/act-aa.rb +83 -0
  19. data/vendor/qwik/lib/qwik/act-archive.rb +386 -0
  20. data/vendor/qwik/lib/qwik/act-attach.rb +304 -0
  21. data/vendor/qwik/lib/qwik/act-backup.rb +236 -0
  22. data/vendor/qwik/lib/qwik/act-basic.rb +325 -0
  23. data/vendor/qwik/lib/qwik/act-book.rb +161 -0
  24. data/vendor/qwik/lib/qwik/act-calc.rb +371 -0
  25. data/vendor/qwik/lib/qwik/act-charset.rb +251 -0
  26. data/vendor/qwik/lib/qwik/act-christel.rb +112 -0
  27. data/vendor/qwik/lib/qwik/act-chronology.rb +149 -0
  28. data/vendor/qwik/lib/qwik/act-code.rb +155 -0
  29. data/vendor/qwik/lib/qwik/act-comment.rb +554 -0
  30. data/vendor/qwik/lib/qwik/act-config.rb +49 -0
  31. data/vendor/qwik/lib/qwik/act-counter.rb +125 -0
  32. data/vendor/qwik/lib/qwik/act-day.rb +96 -0
  33. data/vendor/qwik/lib/qwik/act-describe.rb +135 -0
  34. data/vendor/qwik/lib/qwik/act-diary.rb +109 -0
  35. data/vendor/qwik/lib/qwik/act-edit.rb +317 -0
  36. data/vendor/qwik/lib/qwik/act-embed-html.rb +296 -0
  37. data/vendor/qwik/lib/qwik/act-emode.rb +150 -0
  38. data/vendor/qwik/lib/qwik/act-event.rb +187 -0
  39. data/vendor/qwik/lib/qwik/act-file.rb +303 -0
  40. data/vendor/qwik/lib/qwik/act-files.rb +771 -0
  41. data/vendor/qwik/lib/qwik/act-getpass.rb +295 -0
  42. data/vendor/qwik/lib/qwik/act-history.rb +136 -0
  43. data/vendor/qwik/lib/qwik/act-html.rb +204 -0
  44. data/vendor/qwik/lib/qwik/act-httpauth.rb +147 -0
  45. data/vendor/qwik/lib/qwik/act-include.rb +142 -0
  46. data/vendor/qwik/lib/qwik/act-interwiki.rb +189 -0
  47. data/vendor/qwik/lib/qwik/act-isearch.rb +109 -0
  48. data/vendor/qwik/lib/qwik/act-keywords.rb +137 -0
  49. data/vendor/qwik/lib/qwik/act-lang.rb +81 -0
  50. data/vendor/qwik/lib/qwik/act-license.rb +63 -0
  51. data/vendor/qwik/lib/qwik/act-list.rb +287 -0
  52. data/vendor/qwik/lib/qwik/act-login.rb +410 -0
  53. data/vendor/qwik/lib/qwik/act-logout.rb +60 -0
  54. data/vendor/qwik/lib/qwik/act-mail.rb +159 -0
  55. data/vendor/qwik/lib/qwik/act-map.rb +292 -0
  56. data/vendor/qwik/lib/qwik/act-md5.rb +42 -0
  57. data/vendor/qwik/lib/qwik/act-mdlb.rb +741 -0
  58. data/vendor/qwik/lib/qwik/act-media.rb +416 -0
  59. data/vendor/qwik/lib/qwik/act-member.rb +157 -0
  60. data/vendor/qwik/lib/qwik/act-menu.rb +142 -0
  61. data/vendor/qwik/lib/qwik/act-metadata.rb +323 -0
  62. data/vendor/qwik/lib/qwik/act-mlsubmitform.rb +49 -0
  63. data/vendor/qwik/lib/qwik/act-monitor.rb +167 -0
  64. data/vendor/qwik/lib/qwik/act-new.rb +418 -0
  65. data/vendor/qwik/lib/qwik/act-pagelist.rb +248 -0
  66. data/vendor/qwik/lib/qwik/act-password.rb +145 -0
  67. data/vendor/qwik/lib/qwik/act-plan.rb +210 -0
  68. data/vendor/qwik/lib/qwik/act-povray.rb +230 -0
  69. data/vendor/qwik/lib/qwik/act-presen.rb +380 -0
  70. data/vendor/qwik/lib/qwik/act-redirect.rb +133 -0
  71. data/vendor/qwik/lib/qwik/act-ring.rb +1071 -0
  72. data/vendor/qwik/lib/qwik/act-rrefs.rb +255 -0
  73. data/vendor/qwik/lib/qwik/act-ruby.rb +116 -0
  74. data/vendor/qwik/lib/qwik/act-sample.rb +170 -0
  75. data/vendor/qwik/lib/qwik/act-save.rb +295 -0
  76. data/vendor/qwik/lib/qwik/act-schedule.rb +374 -0
  77. data/vendor/qwik/lib/qwik/act-search.rb +180 -0
  78. data/vendor/qwik/lib/qwik/act-searchwords.rb +51 -0
  79. data/vendor/qwik/lib/qwik/act-sendpass.rb +83 -0
  80. data/vendor/qwik/lib/qwik/act-site.rb +89 -0
  81. data/vendor/qwik/lib/qwik/act-sitebackup.rb +419 -0
  82. data/vendor/qwik/lib/qwik/act-sitelog.rb +118 -0
  83. data/vendor/qwik/lib/qwik/act-smil.rb +299 -0
  84. data/vendor/qwik/lib/qwik/act-status.rb +220 -0
  85. data/vendor/qwik/lib/qwik/act-style.rb +608 -0
  86. data/vendor/qwik/lib/qwik/act-table.rb +263 -0
  87. data/vendor/qwik/lib/qwik/act-tableform.rb +241 -0
  88. data/vendor/qwik/lib/qwik/act-tag.rb +103 -0
  89. data/vendor/qwik/lib/qwik/act-text.rb +70 -0
  90. data/vendor/qwik/lib/qwik/act-textarea.rb +164 -0
  91. data/vendor/qwik/lib/qwik/act-theme.rb +346 -0
  92. data/vendor/qwik/lib/qwik/act-toc.rb +112 -0
  93. data/vendor/qwik/lib/qwik/act-typekey.rb +198 -0
  94. data/vendor/qwik/lib/qwik/act-under-const.rb +94 -0
  95. data/vendor/qwik/lib/qwik/act-webservice.rb +321 -0
  96. data/vendor/qwik/lib/qwik/act-wema.rb +558 -0
  97. data/vendor/qwik/lib/qwik/act-wysiwyg.rb +238 -0
  98. data/vendor/qwik/lib/qwik/action.rb +325 -0
  99. data/vendor/qwik/lib/qwik/autoreload.rb +98 -0
  100. data/vendor/qwik/lib/qwik/bench-bench.rb +28 -0
  101. data/vendor/qwik/lib/qwik/bench-emode.rb +47 -0
  102. data/vendor/qwik/lib/qwik/bench-format-xml.rb +70 -0
  103. data/vendor/qwik/lib/qwik/bench-large-table.rb +62 -0
  104. data/vendor/qwik/lib/qwik/bench-md5.rb +14 -0
  105. data/vendor/qwik/lib/qwik/bench-module-session.rb +19 -0
  106. data/vendor/qwik/lib/qwik/bench-page.rb +50 -0
  107. data/vendor/qwik/lib/qwik/bench-s-md5.rb +28 -0
  108. data/vendor/qwik/lib/qwik/bench-session.rb +25 -0
  109. data/vendor/qwik/lib/qwik/bench-textformat.rb +31 -0
  110. data/vendor/qwik/lib/qwik/catalog-factory.rb +91 -0
  111. data/vendor/qwik/lib/qwik/catalog-ja.rb +479 -0
  112. data/vendor/qwik/lib/qwik/catalog-ml-ja.rb +145 -0
  113. data/vendor/qwik/lib/qwik/check-act-monitor.rb +112 -0
  114. data/vendor/qwik/lib/qwik/check-act-monitor2.rb +46 -0
  115. data/vendor/qwik/lib/qwik/check-act-theme.rb +27 -0
  116. data/vendor/qwik/lib/qwik/check-event.rb +112 -0
  117. data/vendor/qwik/lib/qwik/check-event2.rb +55 -0
  118. data/vendor/qwik/lib/qwik/check-htree-rexml.rb +77 -0
  119. data/vendor/qwik/lib/qwik/check-htree.rb +51 -0
  120. data/vendor/qwik/lib/qwik/check-libxml.rb +135 -0
  121. data/vendor/qwik/lib/qwik/check-many-pages.rb +47 -0
  122. data/vendor/qwik/lib/qwik/check-monitor.rb +33 -0
  123. data/vendor/qwik/lib/qwik/check-observer.rb +67 -0
  124. data/vendor/qwik/lib/qwik/check-server.rb +61 -0
  125. data/vendor/qwik/lib/qwik/check-uuencode.rb +33 -0
  126. data/vendor/qwik/lib/qwik/check-webdav.rb +65 -0
  127. data/vendor/qwik/lib/qwik/check-xml-xpath.rb +27 -0
  128. data/vendor/qwik/lib/qwik/common-backtrace.rb +94 -0
  129. data/vendor/qwik/lib/qwik/common-basic.rb +111 -0
  130. data/vendor/qwik/lib/qwik/common-condition.rb +142 -0
  131. data/vendor/qwik/lib/qwik/common-error.rb +48 -0
  132. data/vendor/qwik/lib/qwik/common-gettext.rb +50 -0
  133. data/vendor/qwik/lib/qwik/common-javascript.rb +45 -0
  134. data/vendor/qwik/lib/qwik/common-notice.rb +132 -0
  135. data/vendor/qwik/lib/qwik/common-plain.rb +105 -0
  136. data/vendor/qwik/lib/qwik/common-plugin.rb +111 -0
  137. data/vendor/qwik/lib/qwik/common-res.rb +76 -0
  138. data/vendor/qwik/lib/qwik/common-resolve.rb +92 -0
  139. data/vendor/qwik/lib/qwik/common-send.rb +171 -0
  140. data/vendor/qwik/lib/qwik/common-session.rb +139 -0
  141. data/vendor/qwik/lib/qwik/common-surface.rb +261 -0
  142. data/vendor/qwik/lib/qwik/common-url.rb +90 -0
  143. data/vendor/qwik/lib/qwik/compat/Makefile +12 -0
  144. data/vendor/qwik/lib/qwik/compat/add_load_path.rb +1 -0
  145. data/vendor/qwik/lib/qwik/config.rb +299 -0
  146. data/vendor/qwik/lib/qwik/db-b-backup.rb +142 -0
  147. data/vendor/qwik/lib/qwik/db-backup.rb +184 -0
  148. data/vendor/qwik/lib/qwik/db-berkeley.rb +306 -0
  149. data/vendor/qwik/lib/qwik/db-filesystem.rb +305 -0
  150. data/vendor/qwik/lib/qwik/db-indexer.rb +154 -0
  151. data/vendor/qwik/lib/qwik/db-searchwords.rb +238 -0
  152. data/vendor/qwik/lib/qwik/description-ja.rb +267 -0
  153. data/vendor/qwik/lib/qwik/description.rb +256 -0
  154. data/vendor/qwik/lib/qwik/dev-add-copyright.rb +23 -0
  155. data/vendor/qwik/lib/qwik/dev-backup.rb +24 -0
  156. data/vendor/qwik/lib/qwik/dev-bench.rb +175 -0
  157. data/vendor/qwik/lib/qwik/dev-calctime.rb +52 -0
  158. data/vendor/qwik/lib/qwik/dev-css-compressor.rb +60 -0
  159. data/vendor/qwik/lib/qwik/dev-extract-catalog.rb +102 -0
  160. data/vendor/qwik/lib/qwik/dev-js-compressor.rb +73 -0
  161. data/vendor/qwik/lib/qwik/dev-release.rb +235 -0
  162. data/vendor/qwik/lib/qwik/dev-replace.rb +353 -0
  163. data/vendor/qwik/lib/qwik/dev-sendmail.rb +25 -0
  164. data/vendor/qwik/lib/qwik/farm.rb +283 -0
  165. data/vendor/qwik/lib/qwik/gettext.rb +56 -0
  166. data/vendor/qwik/lib/qwik/group-cond.rb +157 -0
  167. data/vendor/qwik/lib/qwik/group-config.rb +247 -0
  168. data/vendor/qwik/lib/qwik/group-confirm.rb +147 -0
  169. data/vendor/qwik/lib/qwik/group-db.rb +326 -0
  170. data/vendor/qwik/lib/qwik/group-mail.rb +195 -0
  171. data/vendor/qwik/lib/qwik/group-member.rb +307 -0
  172. data/vendor/qwik/lib/qwik/group-sendmail.rb +231 -0
  173. data/vendor/qwik/lib/qwik/group-site.rb +374 -0
  174. data/vendor/qwik/lib/qwik/group-sweep.rb +63 -0
  175. data/vendor/qwik/lib/qwik/group.rb +157 -0
  176. data/vendor/qwik/lib/qwik/helper.rb +6 -0
  177. data/vendor/qwik/lib/qwik/html-generator.rb +104 -0
  178. data/vendor/qwik/lib/qwik/html-to-wabisabi.rb +148 -0
  179. data/vendor/qwik/lib/qwik/htree-diff.rb +87 -0
  180. data/vendor/qwik/lib/qwik/htree-format-xml.rb +57 -0
  181. data/vendor/qwik/lib/qwik/htree-generator.rb +144 -0
  182. data/vendor/qwik/lib/qwik/htree-get.rb +251 -0
  183. data/vendor/qwik/lib/qwik/htree-html-generator.rb +179 -0
  184. data/vendor/qwik/lib/qwik/htree-template.rb +263 -0
  185. data/vendor/qwik/lib/qwik/htree-to-wabisabi.rb +171 -0
  186. data/vendor/qwik/lib/qwik/loadlib.rb +79 -0
  187. data/vendor/qwik/lib/qwik/logger.rb +115 -0
  188. data/vendor/qwik/lib/qwik/mail-body.rb +171 -0
  189. data/vendor/qwik/lib/qwik/mail-header.rb +474 -0
  190. data/vendor/qwik/lib/qwik/mail-multipart.rb +193 -0
  191. data/vendor/qwik/lib/qwik/mail-parse.rb +147 -0
  192. data/vendor/qwik/lib/qwik/mail.rb +341 -0
  193. data/vendor/qwik/lib/qwik/mailaddress.rb +83 -0
  194. data/vendor/qwik/lib/qwik/mdlb-model.rb +81 -0
  195. data/vendor/qwik/lib/qwik/mdlb-sample.rb +324 -0
  196. data/vendor/qwik/lib/qwik/ml-catalog-factory.rb +27 -0
  197. data/vendor/qwik/lib/qwik/ml-exception.rb +15 -0
  198. data/vendor/qwik/lib/qwik/ml-generator.rb +28 -0
  199. data/vendor/qwik/lib/qwik/ml-gettext.rb +137 -0
  200. data/vendor/qwik/lib/qwik/ml-logger.rb +82 -0
  201. data/vendor/qwik/lib/qwik/ml-memory.rb +65 -0
  202. data/vendor/qwik/lib/qwik/ml-msg-validator.rb +86 -0
  203. data/vendor/qwik/lib/qwik/ml-processor.rb +609 -0
  204. data/vendor/qwik/lib/qwik/ml-quickml-server.rb +122 -0
  205. data/vendor/qwik/lib/qwik/ml-sendmail.rb +0 -0
  206. data/vendor/qwik/lib/qwik/ml-server.rb +107 -0
  207. data/vendor/qwik/lib/qwik/ml-session.rb +348 -0
  208. data/vendor/qwik/lib/qwik/ml-sweeper.rb +101 -0
  209. data/vendor/qwik/lib/qwik/mock-logger.rb +65 -0
  210. data/vendor/qwik/lib/qwik/mock-sendmail.rb +78 -0
  211. data/vendor/qwik/lib/qwik/mock-socket.rb +82 -0
  212. data/vendor/qwik/lib/qwik/modulobe.rb +406 -0
  213. data/vendor/qwik/lib/qwik/mongrel-server.rb +72 -0
  214. data/vendor/qwik/lib/qwik/page-files.rb +249 -0
  215. data/vendor/qwik/lib/qwik/page-generate.rb +82 -0
  216. data/vendor/qwik/lib/qwik/page-get.rb +262 -0
  217. data/vendor/qwik/lib/qwik/page-images.rb +168 -0
  218. data/vendor/qwik/lib/qwik/page-put.rb +128 -0
  219. data/vendor/qwik/lib/qwik/page-rrefs.rb +154 -0
  220. data/vendor/qwik/lib/qwik/page-title.rb +0 -0
  221. data/vendor/qwik/lib/qwik/page-wikidb.rb +234 -0
  222. data/vendor/qwik/lib/qwik/page.rb +67 -0
  223. data/vendor/qwik/lib/qwik/pages.rb +444 -0
  224. data/vendor/qwik/lib/qwik/parse-plugin.rb +249 -0
  225. data/vendor/qwik/lib/qwik/parser-emode.rb +116 -0
  226. data/vendor/qwik/lib/qwik/parser-inline.rb +272 -0
  227. data/vendor/qwik/lib/qwik/parser.rb +349 -0
  228. data/vendor/qwik/lib/qwik/password.rb +183 -0
  229. data/vendor/qwik/lib/qwik/periodic.rb +79 -0
  230. data/vendor/qwik/lib/qwik/qp.rb +56 -0
  231. data/vendor/qwik/lib/qwik/qwik-service.rb +341 -0
  232. data/vendor/qwik/lib/qwik/qwik.rb +5 -0
  233. data/vendor/qwik/lib/qwik/qwikweb-adduser.rb +34 -0
  234. data/vendor/qwik/lib/qwik/qwikweb-catalog-validator.rb +110 -0
  235. data/vendor/qwik/lib/qwik/qwikweb-incgen.rb +28 -0
  236. data/vendor/qwik/lib/qwik/qwikweb-makesite.rb +41 -0
  237. data/vendor/qwik/lib/qwik/qwikweb-server.rb +44 -0
  238. data/vendor/qwik/lib/qwik/qwikweb-showpassword.rb +26 -0
  239. data/vendor/qwik/lib/qwik/qwikweb-watchlog.rb +67 -0
  240. data/vendor/qwik/lib/qwik/request-path.rb +304 -0
  241. data/vendor/qwik/lib/qwik/request-ua.rb +76 -0
  242. data/vendor/qwik/lib/qwik/request-webrick.rb +81 -0
  243. data/vendor/qwik/lib/qwik/request.rb +91 -0
  244. data/vendor/qwik/lib/qwik/resolve-tdiary.rb +292 -0
  245. data/vendor/qwik/lib/qwik/resolve.rb +121 -0
  246. data/vendor/qwik/lib/qwik/response.rb +228 -0
  247. data/vendor/qwik/lib/qwik/server-memory.rb +57 -0
  248. data/vendor/qwik/lib/qwik/server-webrick.rb +102 -0
  249. data/vendor/qwik/lib/qwik/server.rb +252 -0
  250. data/vendor/qwik/lib/qwik/site-config.rb +149 -0
  251. data/vendor/qwik/lib/qwik/site-db.rb +136 -0
  252. data/vendor/qwik/lib/qwik/site-event.rb +162 -0
  253. data/vendor/qwik/lib/qwik/site-files.rb +86 -0
  254. data/vendor/qwik/lib/qwik/site-group.rb +103 -0
  255. data/vendor/qwik/lib/qwik/site-index.rb +47 -0
  256. data/vendor/qwik/lib/qwik/site-log.rb +64 -0
  257. data/vendor/qwik/lib/qwik/site-member.rb +230 -0
  258. data/vendor/qwik/lib/qwik/site-monitor.rb +97 -0
  259. data/vendor/qwik/lib/qwik/site-pages.rb +62 -0
  260. data/vendor/qwik/lib/qwik/site-plan.rb +139 -0
  261. data/vendor/qwik/lib/qwik/site-report.rb +282 -0
  262. data/vendor/qwik/lib/qwik/site-resolve.rb +230 -0
  263. data/vendor/qwik/lib/qwik/site-rrefs.rb +18 -0
  264. data/vendor/qwik/lib/qwik/site-search.rb +180 -0
  265. data/vendor/qwik/lib/qwik/site-timeline.rb +153 -0
  266. data/vendor/qwik/lib/qwik/site-url.rb +189 -0
  267. data/vendor/qwik/lib/qwik/site.rb +76 -0
  268. data/vendor/qwik/lib/qwik/smil-time.rb +105 -0
  269. data/vendor/qwik/lib/qwik/smtp-session.rb +331 -0
  270. data/vendor/qwik/lib/qwik/template-generator.rb +149 -0
  271. data/vendor/qwik/lib/qwik/template.rb +85 -0
  272. data/vendor/qwik/lib/qwik/test-common.rb +10 -0
  273. data/vendor/qwik/lib/qwik/test-ml-info.rb +225 -0
  274. data/vendor/qwik/lib/qwik/test-module-ml.rb +142 -0
  275. data/vendor/qwik/lib/qwik/test-module-path.rb +110 -0
  276. data/vendor/qwik/lib/qwik/test-module-public.rb +70 -0
  277. data/vendor/qwik/lib/qwik/test-module-server.rb +98 -0
  278. data/vendor/qwik/lib/qwik/test-module-session.rb +264 -0
  279. data/vendor/qwik/lib/qwik/test-module-suite.rb +91 -0
  280. data/vendor/qwik/lib/qwik/test-ms-applemail.rb +59 -0
  281. data/vendor/qwik/lib/qwik/test-ms-attach.rb +174 -0
  282. data/vendor/qwik/lib/qwik/test-ms-basic.rb +40 -0
  283. data/vendor/qwik/lib/qwik/test-ms-close.rb +35 -0
  284. data/vendor/qwik/lib/qwik/test-ms-confirm.rb +75 -0
  285. data/vendor/qwik/lib/qwik/test-ms-ignore-spam.rb +57 -0
  286. data/vendor/qwik/lib/qwik/test-ms-japanese.rb +97 -0
  287. data/vendor/qwik/lib/qwik/test-ms-jfilename.rb +82 -0
  288. data/vendor/qwik/lib/qwik/test-ms-large.rb +58 -0
  289. data/vendor/qwik/lib/qwik/test-ms-member.rb +103 -0
  290. data/vendor/qwik/lib/qwik/test-ms-multipart.rb +84 -0
  291. data/vendor/qwik/lib/qwik/test-ms-org.rb +129 -0
  292. data/vendor/qwik/lib/qwik/test-ms-plan.rb +130 -0
  293. data/vendor/qwik/lib/qwik/test-ms-post.rb +53 -0
  294. data/vendor/qwik/lib/qwik/test-ms-quopri.rb +76 -0
  295. data/vendor/qwik/lib/qwik/test-sub-quopri.rb +45 -0
  296. data/vendor/qwik/lib/qwik/test-submit-base64.rb +59 -0
  297. data/vendor/qwik/lib/qwik/test-submit-forward.rb +61 -0
  298. data/vendor/qwik/lib/qwik/test-submit-html-mail.rb +52 -0
  299. data/vendor/qwik/lib/qwik/test-submit-japanese.rb +135 -0
  300. data/vendor/qwik/lib/qwik/test-submit-jfilename.rb +144 -0
  301. data/vendor/qwik/lib/qwik/test-submit-uuencode.rb +71 -0
  302. data/vendor/qwik/lib/qwik/test-suite-all.rb +8 -0
  303. data/vendor/qwik/lib/qwik/test-suite-basic.rb +9 -0
  304. data/vendor/qwik/lib/qwik/test-suite-ml.rb +9 -0
  305. data/vendor/qwik/lib/qwik/test-typekey.rb +64 -0
  306. data/vendor/qwik/lib/qwik/testunit.rb +45 -0
  307. data/vendor/qwik/lib/qwik/tokenizer-inline.rb +288 -0
  308. data/vendor/qwik/lib/qwik/tokenizer.rb +331 -0
  309. data/vendor/qwik/lib/qwik/typekey.rb +160 -0
  310. data/vendor/qwik/lib/qwik/util-basic.rb +135 -0
  311. data/vendor/qwik/lib/qwik/util-charset.rb +331 -0
  312. data/vendor/qwik/lib/qwik/util-css.rb +56 -0
  313. data/vendor/qwik/lib/qwik/util-csv-tokenizer.rb +113 -0
  314. data/vendor/qwik/lib/qwik/util-filename.rb +112 -0
  315. data/vendor/qwik/lib/qwik/util-pathname.rb +202 -0
  316. data/vendor/qwik/lib/qwik/util-pid.rb +58 -0
  317. data/vendor/qwik/lib/qwik/util-safe.rb +67 -0
  318. data/vendor/qwik/lib/qwik/util-sendmail.rb +273 -0
  319. data/vendor/qwik/lib/qwik/util-string.rb +202 -0
  320. data/vendor/qwik/lib/qwik/util-time.rb +125 -0
  321. data/vendor/qwik/lib/qwik/util-webrick.rb +176 -0
  322. data/vendor/qwik/lib/qwik/version.rb +11 -0
  323. data/vendor/qwik/lib/qwik/wabisabi-basic.rb +163 -0
  324. data/vendor/qwik/lib/qwik/wabisabi-diff.rb +130 -0
  325. data/vendor/qwik/lib/qwik/wabisabi-format-xml.rb +310 -0
  326. data/vendor/qwik/lib/qwik/wabisabi-generator.rb +262 -0
  327. data/vendor/qwik/lib/qwik/wabisabi-index.rb +174 -0
  328. data/vendor/qwik/lib/qwik/wabisabi-table.rb +212 -0
  329. data/vendor/qwik/lib/qwik/wabisabi-template.rb +295 -0
  330. data/vendor/qwik/lib/qwik/wabisabi-to-htree.rb +111 -0
  331. data/vendor/qwik/lib/qwik/wabisabi-to-wiki.rb +690 -0
  332. data/vendor/qwik/lib/qwik/wabisabi-traverse.rb +207 -0
  333. data/vendor/qwik/lib/qwik/wabisabi-validator.rb +116 -0
  334. data/vendor/qwik/lib/qwik/wabisabi.rb +5 -0
  335. metadata +492 -0
@@ -0,0 +1,323 @@
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
+ def plg_rss
10
+ return rss_button('rss.xml', 'RSS')
11
+ end
12
+
13
+ def plg_atom
14
+ return rss_button('atom.xml', 'ATOM')
15
+ end
16
+
17
+ def rss_button(href, msg)
18
+ return [:a, {:class=>'rss-button', :href=>href},
19
+ [:span, msg]]
20
+ end
21
+
22
+ def metadata_clear_cache
23
+ path = @site.cache_path + "rss.xml"
24
+ path.unlink if path.exist?
25
+ path = @site.cache_path + "atom.xml"
26
+ path.unlink if path.exist?
27
+ end
28
+
29
+ def pre_ext_xml
30
+ method = "metadata_#{@req.base}_#{@req.ext}"
31
+ return c_nerror(_('Error')) if ! self.respond_to?(method)
32
+
33
+ site_cache_path = @site.cache_path
34
+ site_cache_path.check_directory
35
+ feed_filename = "#{@req.base}.#{@req.ext}"
36
+ feed_path = site_cache_path + feed_filename
37
+
38
+ if ! feed_path.exist?
39
+ feed = self.send(method)
40
+ feed_string = feed.format_xml.page_to_xml
41
+ feed_path.write(feed_string)
42
+ end
43
+
44
+ return c_simple_send(feed_path, 'application/xml')
45
+ end
46
+
47
+ def metadata_rss_xml
48
+ return @site.metadata.generate_rss20
49
+ end
50
+
51
+ def metadata_atom_xml
52
+ return @site.metadata.generate_atom
53
+ end
54
+ end
55
+
56
+ class Site
57
+ def metadata
58
+ return SiteMetaData.new(@config, self)
59
+ end
60
+ end
61
+
62
+ class SiteMetaData
63
+ def initialize(config, site)
64
+ @config = config
65
+ @site = site
66
+ init_internal
67
+ end
68
+ attr_reader :title, :site_url, :last_build_date
69
+ attr_reader :description
70
+ attr_reader :last_build_date
71
+ attr_reader :pub_date
72
+ attr_reader :generator
73
+
74
+ def generate_rss20
75
+ init_internal
76
+
77
+ xml = []
78
+ xml << [:'?xml', '1.0', 'utf-8']
79
+ rss = [:rss, {:version=>'2.0'}]
80
+
81
+ channel = [:channel,
82
+ [:title, @title],
83
+ [:link, @site_url],
84
+ [:description, @description],
85
+ [:language, @language],
86
+ [:pubdate, @pub_date],
87
+ [:lastbuilddate, @last_build_date],
88
+ [:generator, @generator]]
89
+
90
+ each {|page, title, url, description, pub_date, updated|
91
+ channel << [:item,
92
+ [:title, title],
93
+ [:link, url],
94
+ [:description, description],
95
+ [:pubdate, pub_date],
96
+ [:guid, url]]
97
+ }
98
+
99
+ rss << channel
100
+ xml << rss
101
+
102
+ return xml
103
+ end
104
+
105
+ def generate_atom
106
+ init_internal
107
+
108
+ xml = []
109
+ xml << [:'?xml', '1.0', 'utf-8']
110
+
111
+ gen_attr = {:uri=>'http://qwik.jp/'}
112
+ gen_attr[:version] = VERSION if ! @config.test
113
+
114
+ feed = [:feed, {:xmlns=>'http://www.w3.org/2005/atom'},
115
+ [:title, @title],
116
+ [:link, {:rel=>'alternate', :type=>'text/html', :href=>@site_url}],
117
+ [:link, {:rel=>'self', :type=>'application/atom+xml',
118
+ :href=>"#{@site_url}atom.xml"}],
119
+ [:generator, gen_attr, @generator],
120
+ [:updated, @updated]]
121
+
122
+ each {|page, title, url, description, pub_date, updated|
123
+ feed << [:entry,
124
+ [:title, title],
125
+ [:link, {:rel=>'alternate', :type=>'text/html', :href=>url}],
126
+ [:updated, updated],
127
+ [:summary, description],
128
+ ]
129
+ }
130
+
131
+ xml << feed
132
+
133
+ return xml
134
+ end
135
+
136
+ private
137
+
138
+ def without_testmode
139
+ org_test = @config.test
140
+ org_debug = @config.debug
141
+ @config[:test] = false
142
+ @config[:debug] = false
143
+ yield
144
+ @config[:test] = org_test
145
+ @config[:debug] = org_debug
146
+ end
147
+
148
+ def init_internal
149
+ @public = @site.is_open?
150
+
151
+ # Site data.
152
+ without_testmode {
153
+ @title = @site.title
154
+ @site_url = @site.site_url
155
+ @description = 'a private qwikWeb site.
156
+ Since this site is in private mode, the feed includes minimum data.'
157
+ @language = 'ja' # FIXME: should be configurable?
158
+ @pub_date = @site.last_page_time.rfc1123_date
159
+ }
160
+
161
+ if @public
162
+ @description = 'a public qwikWeb site.'
163
+ end
164
+
165
+ # Icon image.
166
+ @image_url = 'http://qwik.jp/.theme/i/favicon.png'
167
+
168
+ # Config data.
169
+ @last_build_date = Time.now.rfc1123_date
170
+ # @last_build_date = @req.start_time.rfc1123_date # No @req here.
171
+ @last_build_date = Time.at(0).rfc1123_date if @config.test
172
+
173
+ @updated = Time.now.rfc_date
174
+ @updated = Time.at(0).rfc_date if @config.test
175
+ @updated += 'Z'
176
+
177
+ @generator = Server.server_name
178
+ @generator = 'qwikWeb' if @config.test
179
+ end
180
+
181
+ def each
182
+ # Limit the pages to 10 pages.
183
+ @site.date_list.reverse[0..10].each {|page|
184
+ title = page.key
185
+ url = @site.page_url(page.key)
186
+ description = page.mtime.rfc1123_date
187
+ pub_date = page.mtime.rfc1123_date
188
+ updated = page.mtime.rfc_date+'Z'
189
+
190
+ yield(page, title, url, description, pub_date, updated)
191
+ }
192
+ end
193
+ end
194
+ end
195
+
196
+ if $0 == __FILE__
197
+ require 'qwik/test-common'
198
+ $test = true
199
+ end
200
+
201
+ if defined?($test) && $test
202
+ class TestActMetadata < Test::Unit::TestCase
203
+ include TestSession
204
+
205
+ def test_rss_button
206
+ res = session
207
+ ok_eq([:a, {:class=>'rss-button', :href=>'href'}, [:span, 'msg']],
208
+ @action.rss_button('href', 'msg'))
209
+ end
210
+
211
+ def test_plg_rss
212
+ ok_wi([:a, {:class=>'rss-button', :href=>'rss.xml'}, [:span, 'RSS']],
213
+ '{{rss}}')
214
+ ok_wi([:p, [:a, {:href=>'test.rss'}, 'test.rss']], '[[test.rss]]')
215
+ end
216
+
217
+ def test_plg_atom
218
+ ok_wi([:p, [:a, {:href=>'atom.xml'}, 'atom.xml']], '[[atom.xml]]')
219
+ ok_wi([:p, [:a, {:href=>'atom.xml'}, 'a']], '[[a|atom.xml]]')
220
+ ok_wi([:a, {:class=>'rss-button', :href=>'atom.xml'}, [:span, 'ATOM']],
221
+ '{{atom}}')
222
+ end
223
+
224
+ def test_all
225
+ page = @site.create_new
226
+ page.put_with_time('* t', 0)
227
+
228
+ # test_get_rss20
229
+ res = session('/test/rss.xml')
230
+ ok_eq('application/xml', res['Content-Type'])
231
+ result = HTree(res.body).to_wabisabi
232
+ ok_eq(
233
+ [[:'?xml', '1.0', 'utf-8'],
234
+ [:rss,
235
+ {:version=>'2.0'},
236
+ [:channel,
237
+ [:title, 'example.com/test'],
238
+ [:link, 'http://example.com/test/'],
239
+ [:description,
240
+ 'a private qwikWeb site.
241
+ Since this site is in private mode, the feed includes minimum data.'],
242
+ [:language, 'ja'],
243
+ [:pubdate, 'Thu, 01 Jan 1970 09:00:00 GMT'],
244
+ [:lastbuilddate, 'Thu, 01 Jan 1970 09:00:00 GMT'],
245
+ [:generator, 'qwikWeb'],
246
+ [:item,
247
+ [:title, '1'],
248
+ [:link, 'http://example.com/test/1.html'],
249
+ [:description, 'Thu, 01 Jan 1970 09:00:00 GMT'],
250
+ [:pubdate, 'Thu, 01 Jan 1970 09:00:00 GMT'],
251
+ [:guid, 'http://example.com/test/1.html']]]]], result)
252
+
253
+ # test_get_atom
254
+ res = session('/test/atom.xml')
255
+ ok_eq('application/xml', res['Content-Type'])
256
+ is "<?xml version=\"1.0\" encoding=\"utf-8\"?><feed xmlns=\"http://www.w3.org/2005/atom\"\n><title\n>example.com/test</title\n><link href=\"http://example.com/test/\" rel=\"alternate\" type=\"text/html\"\n/><link href=\"http://example.com/test/atom.xml\" rel=\"self\" type=\"application/atom+xml\"\n/><generator uri=\"http://qwik.jp/\"\n>qwikWeb</generator\n><updated\n>1970-01-01T09:00:00Z</updated\n><entry\n><title\n>1</title\n><link href=\"http://example.com/test/1.html\" rel=\"alternate\" type=\"text/html\"\n/><updated\n>1970-01-01T09:00:00Z</updated\n><summary\n>Thu, 01 Jan 1970 09:00:00 GMT</summary\n></entry\n></feed\n>", res.body
257
+
258
+ t_site_open # Public site.
259
+
260
+ # test_get_public_rss20
261
+ res = session('/test/rss.xml')
262
+ ok_eq('application/xml', res['Content-Type'])
263
+ result = HTree(res.body).to_wabisabi
264
+ assert_not_equal(
265
+ [[:'?xml', '1.0', 'utf-8'],
266
+ [:rss,
267
+ {:version=>'2.0'},
268
+ [:channel,
269
+ [:title, 'example.com/test'],
270
+ [:link, 'http://example.com/test/'],
271
+ [:description, 'a public qwikWeb site.'],
272
+ [:language, 'ja'],
273
+ [:pubdate, 'Thu, 01 Jan 1970 09:00:00 GMT'],
274
+ [:lastbuilddate, 'Thu, 01 Jan 1970 09:00:00 GMT'],
275
+ [:generator, 'qwikWeb'],
276
+ [:item,
277
+ [:title, 't'],
278
+ [:link, 'http://example.com/test/1.html'],
279
+ [:description, '* t'],
280
+ [:pubdate, 'Thu, 01 Jan 1970 09:00:00 GMT'],
281
+ [:guid, 'http://example.com/test/1.html']]]]], result)
282
+
283
+ # test_get_public_atom
284
+ res = session('/test/atom.xml')
285
+ ok_eq('application/xml', res['Content-Type'])
286
+ result = HTree(res.body).to_wabisabi
287
+ assert_not_equal(
288
+ [[:'?xml', '1.0', 'utf-8'],
289
+ [:feed,
290
+ {:xmlns=>'http://www.w3.org/2005/atom'},
291
+ [:title, 'example.com/test'],
292
+ [:link,
293
+ {:href=>'http://example.com/test/', :type=>'text/html', :rel=>'alternate'}],
294
+ [:link,
295
+ {:href=>'http://example.com/test/atom.xml',
296
+ :type=>'application/atom+xml',
297
+ :rel=>'self'}],
298
+ [:generator, {:uri=>'http://qwik.jp/', :version=>'0.5.2'}, 'qwikWeb'],
299
+ [:updated, '1970-01-01T09:00:00Z'],
300
+ [:entry,
301
+ [:title, 't'],
302
+ [:link,
303
+ {:href=>'http://example.com/test/1.html',
304
+ :type=>'text/html',
305
+ :rel=>'alternate'}],
306
+ [:updated, '1970-01-01T09:00:00Z'],
307
+ [:summary, '* t']]]], result)
308
+ end
309
+
310
+ def test_many_pages
311
+ (1..20).each {|n|
312
+ page = @site.create_new
313
+ page.put_with_time("* t#{n}", n)
314
+ }
315
+
316
+ # The RSS contains only 10 items.
317
+ res = session('/test/rss.xml')
318
+ ok_eq('application/xml', res['Content-Type'])
319
+ result = HTree(res.body).to_wabisabi
320
+ eq 19, result[1][2].length
321
+ end
322
+ end
323
+ end
@@ -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
+ def plg_thissitename
10
+ return @site.title
11
+ end
12
+
13
+ def plg_thislist
14
+ return @site.ml_address
15
+ end
16
+
17
+ # Thanks to Mr. Shuhei Yamamoto.
18
+ def plg_ml_submit_form
19
+ href = "/formmail.php?user=#{@req.user}&site=#{@site.sitename}"
20
+ return [:a, {:href=>href, :target=>'_new'}, _('Mlcommit')]
21
+ end
22
+ end
23
+ end
24
+
25
+ if $0 == __FILE__
26
+ require 'qwik/test-common'
27
+ $test = true
28
+ end
29
+
30
+ if defined?($test) && $test
31
+ class TestActMLSubmitForm < Test::Unit::TestCase
32
+ include TestSession
33
+
34
+ def test_all
35
+ res = session
36
+
37
+ # test_plg_thissitename
38
+ eq '', @action.plg_thissitename
39
+
40
+ # test_plg_thislist
41
+ eq 'test@q.example.com', @action.plg_thislist
42
+
43
+ # test_plg_ml_submit_form
44
+ eq [:a, {:href=>"/formmail.php?user=user@e.com&site=test",
45
+ :target=>'_new'}, 'Mlcommit'],
46
+ @action.plg_ml_submit_form
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,167 @@
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/site-monitor'
7
+
8
+ module Qwik
9
+ class Action
10
+ # ============================== shout to monitor
11
+ def c_monitor(cmd)
12
+ ev = {}
13
+ ev[:title] = 'Event occured.'
14
+ ev[:cmd] = cmd.to_s
15
+ ev[:pagename] = @req.base
16
+ @site.sitemonitor.shout(ev)
17
+ end
18
+
19
+ # ============================== monitor plugin
20
+ def plg_monitor(pagename=@req.base)
21
+ return if defined?(@monitor_defined)
22
+ @monitor_defined = true
23
+ script = "
24
+ g_monitor_env.add('#{pagename}');
25
+ g_monitor_env.start();
26
+ "
27
+ div = [:div, {:id=>'monitor'}]
28
+ div << "monitor(#{pagename})" if defined?($test) && $test
29
+ div << [:script, {:type=>'text/javascript',
30
+ :src=>'.theme/js/monitor.js'}, '']
31
+ div << [:script, {:type=>'text/javascript'}, script]
32
+ return div
33
+ end
34
+
35
+ # ============================== monitor connection
36
+ def ext_monitor
37
+ mon = @site.sitemonitor # Connect to site monitor.
38
+ mon.listen(self) {|ev| # Wait for update.
39
+ next if ev[:pagename] != @req.base
40
+ if ev[:cmd] == 'save'
41
+ return monitor_save
42
+ end
43
+ }
44
+ return monitor_disconnect
45
+ end
46
+
47
+ def monitor_save
48
+ c_set_status
49
+ c_set_html
50
+ c_set_no_cache('no-cache', 'no-cache, must-revalidate')
51
+ page = @site[@req.base]
52
+ str = page.get_body
53
+ w = c_res(str)
54
+ w = c_tdiary_resolve(w)
55
+ w = w.format_xml.page_to_xml if ! $test
56
+ c_set_body(w)
57
+ end
58
+
59
+ def monitor_disconnect
60
+ monitor_message('disconnect')
61
+ end
62
+
63
+ def monitor_message(title)
64
+ c_set_status
65
+ c_set_html
66
+ c_set_no_cache('no-cache', 'no-cache, must-revalidate')
67
+ w = [:msg, title]
68
+ w = w.format_xml.page_to_xml if ! $test
69
+ c_set_body(w)
70
+ end
71
+
72
+ end
73
+ end
74
+
75
+ if $0 == __FILE__
76
+ require 'qwik/test-common'
77
+ $test = true
78
+ end
79
+
80
+ if defined?($test) && $test
81
+ #class TestActMonitor < Test::Unit::TestCase
82
+ class TestActMonitor
83
+ include TestSession
84
+
85
+ def setup_monitor
86
+ #Thread.abort_on_exception = true
87
+ t_add_user
88
+ page = @site.create_new
89
+ page.store('*t')
90
+ end
91
+
92
+ def test_act_monitor_1st
93
+ setup_monitor
94
+
95
+ t = Thread.new {
96
+ tres = session('/test/1.save?contents=t2')
97
+ ok_in(['Page is saved.'], 'title', tres)
98
+ }
99
+
100
+ res = session('/test/1.monitor') # Wait for update.
101
+ ok_in([:p, 't2'], "//div[@class='section']", res)
102
+
103
+ t.join # Wait for the thread.
104
+ end
105
+
106
+ def test_act_monitor
107
+ setup_monitor
108
+
109
+ t = Thread.new {
110
+ res = session('/test/1.monitor') # Wait for update.
111
+ ok_in([:p, 't2'], "//div[@class='section']", res)
112
+ }
113
+
114
+ tres = session('/test/1.save?contents=t2')
115
+ ok_in(['Page is saved.'], 'title', tres)
116
+
117
+ t.join # Wait for the thread.
118
+ end
119
+
120
+ def test_several_monitors
121
+ setup_monitor
122
+
123
+ # FIXME: This test sometimes fails.
124
+ t1 = Thread.new {
125
+ t1res = session('/test/1.monitor') # Wait for update.
126
+ ok_in([:p, 't3'], "//div[@class='section']", t1res)
127
+ }
128
+
129
+ # FIXME: Sometimes fails.
130
+ t2 = Thread.new {
131
+ t2res = session('/test/1.monitor') # Wait for update.
132
+ ok_in([:p, 't3'], "//div[@class='section']", t2res)
133
+ }
134
+
135
+ #sleep 0.5
136
+ #sleep 0.1
137
+ tres = session('/test/1.save?contents=t3')
138
+ ok_in(['Page is saved.'], 'title', tres)
139
+
140
+ t1.join # Wait for the thread.
141
+ t2.join # Wait for the thread.
142
+ end
143
+
144
+ def nutest_many_monitors
145
+ setup_monitor
146
+
147
+ ts = []
148
+ res = []
149
+ max = 15
150
+
151
+ (0..max).each {|i|
152
+ ts[i] = Thread.new {
153
+ res[i] = session('/test/1.monitor') # Wait for update.
154
+ ok_in([:p, 't3'], "//div[@class='section']", res[i])
155
+ }
156
+ }
157
+
158
+ #sleep 0.1
159
+ tres = session('/test/1.save?contents=t3')
160
+ assert_text('Page is saved.', 'title', tres)
161
+
162
+ (0..max).each {|i|
163
+ ts[i].join # Wait for the thread.
164
+ }
165
+ end
166
+ end
167
+ end