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,143 @@
1
+ * 書式一覧
2
+ * 見出し
3
+ - 「*」を行の先頭に書くと見出しになります。
4
+ - 「*」は1つから5つまで記述することができます。
5
+ それぞれ<H2>〜<H6>に変換されます。
6
+ * 見出し1
7
+ ** 見出し2
8
+ *** 見出し3
9
+ **** 見出し4
10
+ ***** 見出し5
11
+ * 見出し1
12
+ ** 見出し2
13
+ *** 見出し3
14
+ **** 見出し4
15
+ ***** 見出し5
16
+ * ページタイトル
17
+ ページの一番最初の行に「*」を一つで見出しを書くと、その見出しはページ
18
+ タイトルとして機能します。他のページからは、そのページタイトルを使って
19
+ リンクすることができます。
20
+ - [[TextFormat]]をご覧下さい。
21
+ - [[書式一覧詳細版]]をご覧下さい。
22
+ - [[TextFormat]]をご覧下さい。
23
+ - [[書式一覧詳細版]]をご覧下さい。
24
+ というように、同じ一つのページへのリンクにおいて、ページIDによるリンク
25
+ と、ページタイトルによるリンクを選ぶことができます。
26
+
27
+ 前者のページIDを使ったリンクの場合、そのページのページタイトルが変更さ
28
+ れた場合、自動的にそのタイトルが反映されます。しかし、後者のページタイ
29
+ トルでリンクした場合、リンク先のページタイトルが変更された場合、リンク
30
+ 切れになってしまいます。そのため、通常はページIDを用いたリンク方法をお
31
+ 勧めします。
32
+
33
+ * 箇条書き
34
+ - 「-」を行の先頭に書くと箇条書きになります。
35
+ - 「-」は1つから3つまで記述することが可能で入れ子にすることもできます。
36
+ - 「+」を行の先頭に書くと番号付きの箇条書きになります。
37
+ - 箇条書レベル1
38
+ -- 箇条書レベル2
39
+ --- 箇条書レベル3
40
+ + 順序リスト1
41
+ ++ 順序リスト2
42
+ +++ 順序リスト3
43
+ - 箇条書レベル1
44
+ -- 箇条書レベル2
45
+ --- 箇条書レベル3
46
+ + 順序リスト1
47
+ ++ 順序リスト2
48
+ +++ 順序リスト3
49
+ * パラグラフ
50
+ - 連続した複数行は連結されて1つのパラグラフになります。
51
+ - 空行(改行のみ、またはスペース、タブだけの行)はパラグラフの区切りになります。
52
+ 例えば、
53
+ こういう風に記述すると、これらの行は
54
+ 1つのパラグラフとして整形されます。
55
+ 例えば、
56
+ こういう風に記述すると、これらの行は
57
+ 1つのパラグラフとして整形されます。
58
+ * 水平線
59
+ - 「=」を行の先頭から4つ書くと水平線(区切り線)になります。
60
+ この文章と、
61
+ ====
62
+ この文章は、区切られています。
63
+ この文章と、
64
+ ====
65
+ この文章は、区切られています。
66
+ * 整形済みテキスト
67
+ - 行の先頭がスペースまたはタブで始まっていると、その行は整形済みとして扱われます。
68
+ これは、
69
+ 整形済み
70
+ テキストです。
71
+ 大量の整形済みテキストを表示したい場合は「{{{」と
72
+ 「}}}」で囲みます。こんな感じです。
73
+ {{{
74
+ void main()
75
+ {
76
+ printf(\"hello, world\\n\");
77
+ }
78
+ }}}
79
+ {{{
80
+ void main()
81
+ {
82
+ printf(\"hello, world\\n\");
83
+ }
84
+ }}}
85
+ * 引用
86
+ 「>」を行の先頭から書くと引用になります。
87
+ > これは引用です。
88
+ > これは引用です。
89
+ * 用語解説
90
+ コロン「:」を行の先頭に書き、続けて用語:解説文とすると用語解説になります。
91
+ :Wiki:書き込み可能なWebページ
92
+ :QuickML:簡単に作れるメーリングリストシステム
93
+ :Wiki:書き込み可能なWebページ
94
+ :QuickML:簡単に作れるメーリングリストシステム
95
+ * 表
96
+ 表(テーブル)は「,」または「|」で始め、コラム毎にその記号で区切ります。
97
+ ,項目1-1,項目1-2,項目1-3
98
+ ,項目2-1,項目2-2,項目2-3
99
+ ,項目1-1,項目1-2,項目1-3
100
+ ,項目2-1,項目2-2,項目2-3
101
+ * 文字要素の指定
102
+ 文章中の一部分の文字要素を変化させます。
103
+ - 「\'」2個ではさんだ部分は強調されます。
104
+ - 「\'」3個ではさんだ部分はさらに強調されます。
105
+ - 「=」2個ではさんだ部分は取消線になります。
106
+ このようにすると\'\'強調\'\'になります。
107
+ そして、このようにすると\'\'\'さらに強調\'\'\'されます。
108
+ ==なんとなく==取り消し線もサポートしています。
109
+ このようにすると\'\'強調\'\'になります。
110
+ そして、このようにすると\'\'\'さらに強調\'\'\'されます。
111
+ ==なんとなく==取り消し線もサポートしています。
112
+ * リンク
113
+ - リンクしたいページ名を2つのカギカッコで囲むと、そのページへのリンクになります。
114
+ 例えば[[FrontPage]]とすると、入口ページへのリンクになります。
115
+ 例えば[[FrontPage]]とすると、入口ページへのリンクになります。
116
+ * 新規ページの作成
117
+ 「新規作成」をたどると、ページを作成できます。
118
+ * ページの削除
119
+ テキストを全部消去して保存すると、そのページを削除します。
120
+ * 任意のURLへのリンク
121
+ 単語|URLを2つのカギカッコで囲むとを任意のURLへのリンクになります。
122
+ [[qwik|http://qwik.jp/]]とかもできます。
123
+ [[qwik|http://qwik.jp/]]とかもできます。
124
+
125
+ このときURLの末尾がjpg,jpeg,png,gifだと、画像がページ中に埋め込まれます。
126
+ (指定した単語がALT要素に設定されます。)
127
+ [[New!|http://img.yahoo.co.jp/images/new2.gif]]
128
+ [[New!|http://img.yahoo.co.jp/images/new2.gif]]
129
+
130
+ パラグラフ中にURLのようなものがあると、自動的にリンクとなります。
131
+ qwikWebのホームページはhttp://qwik.jp/です。
132
+ qwikWebのホームページはhttp://qwik.jp/です。
133
+
134
+ * InterWiki
135
+ InterWikiとは、他のWikiページへ簡単にリンクをはる機能です。
136
+ またその拡張として、GoogleやAmazonなどに簡単にリンクをはる機能も提供します。
137
+ - [[google:qwikWeb]]
138
+ - [[isbn:4797318325]]
139
+ - [[amazon:Wiki]]
140
+ - [[google:qwikWeb]]
141
+ - [[isbn:4797318325]]
142
+ - [[amazon:Wiki]]
143
+
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lib = File.expand_path(File.dirname(__FILE__) + '/../lib')
4
+ $LOAD_PATH.unshift(lib) if File.directory?(lib) && !$LOAD_PATH.include?(lib)
5
+ require 'qwik_doc'
6
+ require 'erb'
7
+
8
+ HTML_TEMPLATE = <<EOS
9
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
10
+ <html xmlns:v="urn:schemas-microsoft-com:vml">
11
+ <head>
12
+ <meta charset="utf-8">
13
+ <title><%= title %></title>
14
+ </head>
15
+ <body>
16
+ <%= body %>
17
+ </body>
18
+ </html>
19
+ EOS
20
+
21
+ def result(title, body, text)
22
+ erb = ERB.new(HTML_TEMPLATE)
23
+ erb.result(binding)
24
+ end
25
+
26
+ case ARGV.size
27
+ when 0
28
+ title, text = '-', $stdin.read
29
+ when 1
30
+ title, text = ARGV[0], File.read(ARGV[0])
31
+ end
32
+
33
+ body = QwikDoc.to_xhtml(text)
34
+ puts result(title, body, text)
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift File.join(File.dirname(__FILE__), "..", "vendor")
3
+
4
+ require 'qwik/wabisabi-format-xml'
5
+ require 'qwik/parser'
6
+ require 'qwik_doc/hack'
7
+
8
+ module QwikDoc
9
+ VERSION = "0.0.1"
10
+
11
+ def to_xhtml(src)
12
+ Qwik::TextParser.make_tree(Qwik::TextTokenizer.tokenize(src)).rb_format_xml
13
+ end
14
+ module_function :to_xhtml
15
+ end
@@ -0,0 +1,184 @@
1
+ #coding: utf-8
2
+ module Qwik
3
+ class InlineTokenizer
4
+ #Parse a line into tokens using strscan.
5
+ def self.tokenize(str)
6
+ line_ar = []
7
+
8
+ s = StringScanner.new(str)
9
+
10
+ while ! s.eos?
11
+ if s.scan(/'''(?!:')/)
12
+ line_ar << :"'''"
13
+ elsif s.scan(/''(?!:')/)
14
+ line_ar << :"''"
15
+ elsif s.scan(/==/)
16
+ line_ar << :'=='
17
+ elsif s.scan(/\[\[(.+?)\]\]/) # [[title|url]] format
18
+ line_ar << [:ref, s[1]]
19
+ elsif s.scan(/\[([^\[\]\s]+?) ([^\[\]\s]+?)\]/) # [url title] format
20
+ line_ar << [:ref, s[2]+'|'+s[1]]
21
+ elsif s.scan(/\{\{([^\(\)]+?)(?:\((.*?)\))?\s*\}\}/) # {{t(a)}}
22
+ ar = [:plugin, s[1]]
23
+ ar << s[2] if s[2]
24
+ line_ar << ar
25
+ elsif s.scan(/#{URL}/)
26
+ href = s.matched
27
+ line_ar << [:url, href]
28
+ elsif s.scan(/[^#{SPECIAL}]+/)
29
+ m = s.matched
30
+ if /([^a-zA-Z\d]+)(#{URL})/ =~ m
31
+ ss = $` + $1
32
+ line_ar << ss
33
+ skip_str = ss
34
+ s.unscan
35
+ s.pos = s.pos + skip_str.bytesize
36
+ else
37
+ line_ar << m
38
+ end
39
+ elsif s.scan(/(.+?)([^#{SPECIAL}])/)
40
+ ss = s[1]
41
+ line_ar << ss
42
+ s.unscan
43
+ s.pos = s.pos + ss.length
44
+ else
45
+ ss = s.string
46
+ line_ar << ss[s.pos..ss.bytesize]
47
+ s.terminate
48
+ end
49
+ end
50
+ line_ar
51
+ end
52
+ end
53
+
54
+ class InlineParser
55
+ def self.parse_ref(uri)
56
+ text, uri = $1, $2 if /\A([^|]*)\|(.+)\z/ =~ uri
57
+ if text.nil? or text.empty?
58
+ text = uri
59
+ end
60
+
61
+ case uri
62
+ when /\A#{URL}/o
63
+ if /\.(?:jpg|jpeg|png|gif)\z/i =~ uri
64
+ [:img, {:src=>uri, :alt=>text}]
65
+ else
66
+ [:a, {:href=>uri}, text]
67
+ end
68
+ when /\A(.+?):(.+)\z/
69
+ [:plugin, {:method=>'interwiki', :param=>uri}, text]
70
+ else
71
+ uri = "#{uri}.html" unless uri.include?('.')
72
+ [:a, {:href=>uri}, text]
73
+ end
74
+ end
75
+ end
76
+
77
+ class TextTokenizer
78
+ # Tokenize a text.
79
+ def self.tokenize(str, br_mode=false)
80
+ tokens = []
81
+ in_multiline = {}
82
+
83
+ scanner = StringScanner.new(str)
84
+ while ! scanner.eos?
85
+ line = scanner.scan(/.*$/)
86
+ newline = scanner.scan(/\n/)
87
+
88
+ line.chomp!
89
+
90
+ # At the first, check if it is in a multiline block.
91
+ last_token = tokens.last
92
+ if last_token
93
+ last_tag = last_token[0]
94
+ if in_multiline[last_tag]
95
+ if MULTILINE[last_tag][1] =~ line
96
+ in_multiline[last_tag] = nil
97
+ else
98
+ last_token[-1] += "#{line.chomp}\n"
99
+ end
100
+ next
101
+ end
102
+ end
103
+
104
+ line.chomp!
105
+
106
+ # preprocess
107
+ #line.gsub!(/&my-([0-9]+);/) {|m| "{{my_char(#{$1})}}" }
108
+
109
+ case line
110
+ when MULTILINE[:plugin][0]
111
+ in_multiline[:plugin] = true
112
+ tokens << [:plugin, $1.to_s, $2.to_s, '']
113
+ when MULTILINE[:pre][0]
114
+ in_multiline[:pre] = true
115
+ tokens << [:pre, '']
116
+ when MULTILINE[:html][0]
117
+ tokens << [:html, '']
118
+ in_multiline[:html] = true
119
+ when /\A====+\z/, '-- ', /\A----+\z/ # hr
120
+ tokens << [:hr]
121
+ when /\A(\-{1,3})(.+)\z/ # ul
122
+ tokens << [:ul, $1.size, $2.to_s.strip]
123
+ when /\A(\+{1,3})(.+)\z/ # ol
124
+ tokens << [:ol, $1.size, $2.to_s.strip]
125
+ when /\A>(.*)\z/ # blockquote
126
+ tokens << [:blockquote, $1.strip]
127
+ when /\A[ \t](.*)\z/ # pre
128
+ tokens << [:pre, $1]
129
+ when /\A\{\{([^\(\)\{\}]+?)(?:\(([^\(\)\{\}]*?)\))?\}\}\z/ # plugin
130
+ tokens << [:plugin, $1.to_s, $2.to_s]
131
+ when '', /\A#/ # '', or comment.
132
+ tokens << [:empty] # empty line
133
+ when /\A([,|])(.*)\z/ # pre
134
+ #re = Regexp.new(Regexp.quote($1), nil, 's')
135
+ re = Regexp.new(Regexp.quote($1), nil)
136
+ ar = [:table] + $2.split(re).map {|a| a.to_s }
137
+ tokens << ar
138
+ when /\A:(.*)\z/ # dl
139
+ rest = $1
140
+ dt, dd = rest.split(':', 2)
141
+ if dt && dt.include?('(')
142
+ if /\A(.*?\(.*\)[^:]*):(.*)\z/ =~ rest # FIXME: Bad hack.
143
+ dt, dd = $1, $2
144
+ end
145
+ end
146
+ ar = [:dl]
147
+ ar << ((dt && ! dt.empty?) ? dt.to_s.strip : nil)
148
+ ar << ((dd && ! dd.empty?) ? dd.to_s.strip : nil)
149
+ tokens << ar
150
+ when /\A([*!]{1,5})\s*(.+)\s*\z/ # h
151
+ h = $1
152
+ s = $2
153
+ s = s.strip
154
+ if s.empty? # '* '
155
+ inline(tokens, line, br_mode)
156
+ else
157
+ tokens << [("h#{h.size+1}").intern, s]
158
+ end
159
+ else
160
+ inline(tokens, line, br_mode)
161
+ end
162
+ end
163
+
164
+ return tokens
165
+ end
166
+
167
+ private
168
+ def self.inline(tokens, line, br_mode)
169
+ if /~\z/ =~ line
170
+ line = line.sub(/~\z/, '{{br}}')
171
+ elsif br_mode
172
+ line = "#{line}{{br}}"
173
+ end
174
+ tokens << [:text, line]
175
+ end
176
+ end
177
+ end
178
+
179
+ class String
180
+ def escapeHTML
181
+ string = self
182
+ return string.gsub(/[&"<>]/) {|x| EscapeTable[x] }
183
+ end
184
+ end
@@ -0,0 +1,26 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "qwik_doc"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "qwikdoc"
6
+ s.version = QwikDoc::VERSION
7
+ s.authors = ["Koji Shimada"]
8
+ s.email = ["koji.shimada@enishi-tech.com"]
9
+ s.homepage = "https://github.com/snoozer05/qwikdoc"
10
+ s.summary = %q{text-to-HTML conversion tool for qwikWeb users}
11
+ s.description = %q{text-to-HTML conversion tool for qwikWeb users}
12
+
13
+ s.rubyforge_project = "qwikdoc"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ s.required_ruby_version = '>= 1.9.2'
21
+
22
+ s.add_runtime_dependency 'bundler', ['>= 1.0']
23
+
24
+ s.add_development_dependency 'rake'
25
+ s.add_development_dependency 'rspec'
26
+ end
@@ -0,0 +1,305 @@
1
+ require File.join(File.dirname(__FILE__), "spec_helper")
2
+ require 'qwik_doc'
3
+
4
+ describe QwikDoc do
5
+ describe "Qwik::WikiFormat" do
6
+ def compile(src)
7
+ QwikDoc.to_xhtml(src)
8
+ end
9
+
10
+ describe "header" do
11
+ describe "* t" do
12
+ subject { compile("* t") }
13
+ it { should == "<h2\n>t</h2\n>" }
14
+ end
15
+
16
+ describe "** t" do
17
+ subject { compile("** t") }
18
+ it { should == "<h3\n>t</h3\n>" }
19
+ end
20
+
21
+ describe "*** t" do
22
+ subject { compile("*** t") }
23
+ it { should == "<h4\n>t</h4\n>" }
24
+ end
25
+
26
+ describe "**** t" do
27
+ subject { compile("**** t") }
28
+ it { should == "<h5\n>t</h5\n>" }
29
+ end
30
+
31
+ describe "***** t" do
32
+ subject { compile("***** t") }
33
+ it { should == "<h6\n>t</h6\n>" }
34
+ end
35
+
36
+ describe "! t" do
37
+ subject { compile("! t") }
38
+ it { should == "<h2\n>t</h2\n>" }
39
+ end
40
+ end
41
+
42
+ describe "ul" do
43
+ describe "- t" do
44
+ subject { compile("- t") }
45
+ it { should == "<ul\n><li\n>t</li\n></ul\n>" }
46
+ end
47
+
48
+ describe "-- t" do
49
+ subject { compile("-- t") }
50
+ it { should == "<ul\n><ul\n><li\n>t</li\n></ul\n></ul\n>" }
51
+ end
52
+
53
+ describe "--- t" do
54
+ subject { compile("--- t") }
55
+ it { should == "<ul\n><ul\n><ul\n><li\n>t</li\n></ul\n></ul\n></ul\n>" }
56
+ end
57
+
58
+ describe "- t\\n-t" do
59
+ subject { compile("- t\n-t") }
60
+ it { should == "<ul\n><li\n>t</li\n><li\n>t</li\n></ul\n>" }
61
+ end
62
+
63
+ describe "- t\\n\\n- t" do
64
+ subject { compile("- t\n\n- t") }
65
+ it { should == "<ul\n><li\n>t</li\n></ul\n>\n<ul\n><li\n>t</li\n></ul\n>" }
66
+ end
67
+
68
+ describe "- t\\n--t" do
69
+ subject { compile("- t\n--t") }
70
+ it { should == "<ul\n><li\n>t</li\n><ul\n><li\n>t</li\n></ul\n></ul\n>" }
71
+ end
72
+ end
73
+
74
+ describe "ol" do
75
+ describe "+ t" do
76
+ subject { compile("+ t") }
77
+ it { should == "<ol\n><li\n>t</li\n></ol\n>" }
78
+ end
79
+
80
+ describe "++ t" do
81
+ subject { compile("++ t") }
82
+ it { should == "<ol\n><ol\n><li\n>t</li\n></ol\n></ol\n>" }
83
+ end
84
+
85
+ describe "+++ t" do
86
+ subject { compile("+++ t") }
87
+ it { should == "<ol\n><ol\n><ol\n><li\n>t</li\n></ol\n></ol\n></ol\n>" }
88
+ end
89
+ end
90
+
91
+ describe "hr" do
92
+ describe "-- " do
93
+ subject { compile("-- ") }
94
+ it { should == "<hr\n/>" }
95
+ end
96
+
97
+ describe "----" do
98
+ subject { compile("----") }
99
+ it { should == "<hr\n/>" }
100
+ end
101
+
102
+ describe "====" do
103
+ subject { compile("====") }
104
+ it { should == "<hr\n/>" }
105
+ end
106
+ end
107
+
108
+ describe "blockquote" do
109
+ describe ">t" do
110
+ subject { compile(">t") }
111
+ it { should == "<blockquote\n><p\n>t</p\n></blockquote\n>" }
112
+ end
113
+
114
+ describe "> t" do
115
+ subject { compile("> t") }
116
+ it { should == "<blockquote\n><p\n>t</p\n></blockquote\n>" }
117
+ end
118
+ end
119
+
120
+ describe "table" do
121
+ describe ",a" do
122
+ subject { compile(",a") }
123
+ it { should == "<table\n><tr\n><td\n>a</td\n></tr\n></table\n>" }
124
+ end
125
+
126
+ describe ", a" do
127
+ subject { compile(", a") }
128
+ it { should == "<table\n><tr\n><td\n> a</td\n></tr\n></table\n>" }
129
+ end
130
+
131
+ describe ",a,b" do
132
+ subject { compile(",a,b") }
133
+ it { should == "<table\n><tr\n><td\n>a</td\n><td\n>b</td\n></tr\n></table\n>" }
134
+ end
135
+
136
+ describe ",,b" do
137
+ subject { compile(",,b") }
138
+ it { should == "<table\n><tr\n><td\n></td\n><td\n>b</td\n></tr\n></table\n>" }
139
+ end
140
+
141
+ describe "|a" do
142
+ subject { compile("|a") }
143
+ it { should == "<table\n><tr\n><td\n>a</td\n></tr\n></table\n>" }
144
+ end
145
+
146
+ describe "|a|" do
147
+ subject { compile("|a|") }
148
+ it { should == "<table\n><tr\n><td\n>a</td\n></tr\n></table\n>" }
149
+ end
150
+
151
+ describe "|a|b|" do
152
+ subject { compile("|a|b|") }
153
+ it { should == "<table\n><tr\n><td\n>a</td\n><td\n>b</td\n></tr\n></table\n>" }
154
+ end
155
+ end
156
+
157
+ describe "p" do
158
+ describe "hello" do
159
+ subject { compile("hello") }
160
+ it { should == "<p\n>hello</p\n>" }
161
+ end
162
+
163
+ describe "hello,\\nqwik" do
164
+ subject { compile("hello,\nqwik") }
165
+ it { should == "<p\n>hello,\nqwik</p\n>" }
166
+ end
167
+
168
+ describe "hello,\\n\\nqwik" do
169
+ subject { compile("hello,\n\nqwik") }
170
+ it { should == "<p\n>hello,</p\n>\n<p\n>qwik</p\n>" }
171
+ end
172
+ end
173
+
174
+ describe "pre" do
175
+ describe " t" do
176
+ subject { compile(" t") }
177
+ it { should == "<pre\n>t</pre\n>" }
178
+ end
179
+
180
+ describe "\\tt" do
181
+ subject { compile("\tt") }
182
+ it { should == "<pre\n>t</pre\n>" }
183
+ end
184
+
185
+ describe "{{{\\nt\\n}}}" do
186
+ subject { compile("{{{\nt\n}}}") }
187
+ it { should == "<pre\n>t\n</pre\n>" }
188
+ end
189
+
190
+ describe "{{{\\nhello,\\n qwik\\n}}}" do
191
+ subject { compile("{{{\nhello,\n qwik\n}}}") }
192
+ it { should == "<pre\n>hello,\n qwik\n</pre\n>" }
193
+ end
194
+ end
195
+
196
+ describe "ref" do
197
+ describe "[[t]]" do
198
+ subject { compile("[[t]]") }
199
+ it { should == "<p\n><a href=\"t.html\"\n>t</a\n></p\n>" }
200
+ end
201
+
202
+ describe "[[title|t]]" do
203
+ subject { compile("[[title|t]]") }
204
+ it { should == "<p\n><a href=\"t.html\"\n>title</a\n></p\n>" }
205
+ end
206
+
207
+ describe "[[qwik|http://qwik.jp/]]" do
208
+ subject { compile("[[qwik|http://qwik.jp/]]") }
209
+ it { should == "<p\n><a href=\"http://qwik.jp/\"\n>qwik</a\n></p\n>" }
210
+ end
211
+
212
+ describe "[[New!|http://img.yahoo.co.jp/images/new2.gif]]" do
213
+ subject { compile("[[New!|http://img.yahoo.co.jp/images/new2.gif]]") }
214
+ it { should == "<p\n><img alt=\"New!\" src=\"http://img.yahoo.co.jp/images/new2.gif\"\n/></p\n>" }
215
+ end
216
+
217
+ describe "official website for qwik is http://qwik.jp/" do
218
+ subject { compile("official website for qwik is http://qwik.jp/") }
219
+ it { should == "<p\n>official website for qwik is <a href=\"http://qwik.jp/\"\n>http://qwik.jp/</a\n></p\n>" }
220
+ end
221
+ end
222
+
223
+ describe "em" do
224
+ describe "''t''" do
225
+ subject { compile("''t''") }
226
+ it { should == "<p\n><em\n>t</em\n></p\n>" }
227
+ end
228
+ end
229
+
230
+ describe "strong" do
231
+ describe "'''t'''" do
232
+ subject { compile("'''t'''") }
233
+ it { should == "<p\n><strong\n>t</strong\n></p\n>" }
234
+ end
235
+ end
236
+
237
+ describe "del" do
238
+ describe "==t==" do
239
+ subject { compile("==t==") }
240
+ it { should == "<p\n><del\n>t</del\n></p\n>" }
241
+ end
242
+ end
243
+
244
+ describe "dl" do
245
+ describe ":dt:dd" do
246
+ subject { compile(":dt:dd") }
247
+ it { should == "<dl\n><dt\n>dt</dt\n><dd\n>dd</dd\n></dl\n>" }
248
+ end
249
+
250
+ describe ":dt:ddi\\n:dt2:dd2" do
251
+ subject { compile(":dt:dd\n:dt2:dd2") }
252
+ it { should == "<dl\n><dt\n>dt</dt\n><dd\n>dd</dd\n><dt\n>dt2</dt\n><dd\n>dd2</dd\n></dl\n>" }
253
+ end
254
+
255
+ describe ":dt" do
256
+ subject { compile(":dt") }
257
+ it { should == "<dl\n><dt\n>dt</dt\n></dl\n>" }
258
+ end
259
+
260
+ describe ":" do
261
+ subject { compile(":") }
262
+ it { should == "<dl\n/>" }
263
+ end
264
+
265
+ describe "::" do
266
+ subject { compile("::") }
267
+ it { should == "<dl\n/>" }
268
+ end
269
+
270
+ describe "::dd" do
271
+ subject { compile("::dd") }
272
+ it { should == "<dl\n><dd\n>dd</dd\n></dl\n>" }
273
+ end
274
+ end
275
+
276
+ describe "plugin" do
277
+ describe "{{t}}" do
278
+ subject { compile("{{t}}") }
279
+ it { should == "<plugin method=\"t\" param=\"\"\n/>" }
280
+ end
281
+
282
+ describe "{{t(a)}}" do
283
+ subject { compile("{{t(a)}}") }
284
+ it { should == "<plugin method=\"t\" param=\"a\"\n/>" }
285
+ end
286
+
287
+ describe "{{t(a, b)}}" do
288
+ subject { compile("{{t(a, b)}}") }
289
+ it { should == "<plugin method=\"t\" param=\"a, b\"\n/>" }
290
+ end
291
+
292
+ describe "{{t\\ns\\n)}}" do
293
+ subject { compile("{{t\ns\n}}") }
294
+ it { should == "<plugin method=\"t\" param=\"\"\n>s\n</plugin\n>" }
295
+ end
296
+ end
297
+
298
+ describe "comment" do
299
+ describe "# t" do
300
+ subject { compile("# t") }
301
+ it { should == "\n" }
302
+ end
303
+ end
304
+ end
305
+ end