tdiary 3.2.2.20130507

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 (509) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +16 -0
  4. data/.travis.yml +29 -0
  5. data/Capfile +2 -0
  6. data/ChangeLog +3173 -0
  7. data/Gemfile +58 -0
  8. data/Gemfile.lock +201 -0
  9. data/LICENSE +340 -0
  10. data/Procfile +1 -0
  11. data/README.md +33 -0
  12. data/Rakefile +26 -0
  13. data/bin/tdiary +7 -0
  14. data/config.ru +61 -0
  15. data/data/.htaccess +2 -0
  16. data/doc/HOWTO-authenticate-in-rack.md +89 -0
  17. data/doc/HOWTO-make-io.md +305 -0
  18. data/doc/HOWTO-make-plugin.md +279 -0
  19. data/doc/HOWTO-make-theme.md +67 -0
  20. data/doc/HOWTO-testing-tDiary.md +44 -0
  21. data/doc/HOWTO-use-plugin.md +148 -0
  22. data/doc/HOWTO-write-tDiary.en.md +131 -0
  23. data/doc/HOWTO-write-tDiary.md +136 -0
  24. data/doc/INSTALL-paas.md +202 -0
  25. data/doc/INSTALL.md +160 -0
  26. data/doc/README.en.md +174 -0
  27. data/doc/README.md +56 -0
  28. data/doc/UPGRADE.md +164 -0
  29. data/doc/doc.css +115 -0
  30. data/dot.htaccess +27 -0
  31. data/index.fcgi +45 -0
  32. data/index.rb +57 -0
  33. data/js/00default.js +60 -0
  34. data/js/01conf.js +62 -0
  35. data/js/02edit.coffee +5 -0
  36. data/js/02edit.js +15 -0
  37. data/js/amazon.js +43 -0
  38. data/js/calendar3.js +130 -0
  39. data/js/caretposition.js +170 -0
  40. data/js/category.js +29 -0
  41. data/js/category_autocomplete.js +96 -0
  42. data/js/comment_ajax.js +27 -0
  43. data/js/draft.js +149 -0
  44. data/js/highlight.js +36 -0
  45. data/js/image.js +181 -0
  46. data/misc/convert2.rb +123 -0
  47. data/misc/filter/antispamservice.rb +101 -0
  48. data/misc/filter/limitdays.rb +40 -0
  49. data/misc/filter/linkcheck.rb +81 -0
  50. data/misc/filter/plugin/antispamservice.rb +82 -0
  51. data/misc/filter/plugin/en/antispamservice.rb +21 -0
  52. data/misc/filter/plugin/ja/antispamservice.rb +20 -0
  53. data/misc/lib/README +4 -0
  54. data/misc/lib/compatible.rb +1 -0
  55. data/misc/lib/fcgi_patch.rb +90 -0
  56. data/misc/migrate.rb +157 -0
  57. data/misc/paas/cloudfoundry/Gemfile +26 -0
  58. data/misc/paas/cloudfoundry/Gemfile.lock +85 -0
  59. data/misc/paas/heroku/Gemfile +22 -0
  60. data/misc/paas/heroku/Gemfile.lock +85 -0
  61. data/misc/paas/sqale/Gemfile +19 -0
  62. data/misc/paas/sqale/Gemfile.lock +85 -0
  63. data/misc/paas/sqale/Procfile +1 -0
  64. data/misc/paas/sqale/dot.env +1 -0
  65. data/misc/plugin/ChangeLog.DO_NOT_UPDATE +2333 -0
  66. data/misc/plugin/a.rb +211 -0
  67. data/misc/plugin/amazon.rb +403 -0
  68. data/misc/plugin/amazon/README.en +17 -0
  69. data/misc/plugin/amazon/README.ja +29 -0
  70. data/misc/plugin/amazon/amazonimg.rb +113 -0
  71. data/misc/plugin/amazon/large.png +0 -0
  72. data/misc/plugin/amazon/medium.png +0 -0
  73. data/misc/plugin/amazon/small.png +0 -0
  74. data/misc/plugin/append-css.rb +51 -0
  75. data/misc/plugin/bq.rb +48 -0
  76. data/misc/plugin/calendar2.rb +184 -0
  77. data/misc/plugin/calendar3.rb +256 -0
  78. data/misc/plugin/category.rb +779 -0
  79. data/misc/plugin/category_autocomplete.rb +33 -0
  80. data/misc/plugin/comment_ajax.rb +11 -0
  81. data/misc/plugin/comment_mail-qmail.rb +57 -0
  82. data/misc/plugin/comment_mail-sendmail.rb +56 -0
  83. data/misc/plugin/comment_mail-smtp.rb +59 -0
  84. data/misc/plugin/comment_rank.rb +36 -0
  85. data/misc/plugin/counter.rb +631 -0
  86. data/misc/plugin/daily_theme.rb +55 -0
  87. data/misc/plugin/disp_referrer.rb +1486 -0
  88. data/misc/plugin/doctype-html401tr.rb +16 -0
  89. data/misc/plugin/draft.rb +20 -0
  90. data/misc/plugin/dropdown_calendar.rb +32 -0
  91. data/misc/plugin/edit_today.rb +50 -0
  92. data/misc/plugin/en/a.rb +10 -0
  93. data/misc/plugin/en/amazon.rb +71 -0
  94. data/misc/plugin/en/append-css.rb +17 -0
  95. data/misc/plugin/en/bq.rb +12 -0
  96. data/misc/plugin/en/calendar2.rb +12 -0
  97. data/misc/plugin/en/category.rb +204 -0
  98. data/misc/plugin/en/counter.rb +48 -0
  99. data/misc/plugin/en/daily_theme.rb +14 -0
  100. data/misc/plugin/en/disp_referrer.rb +387 -0
  101. data/misc/plugin/en/dropdown_calendar.rb +14 -0
  102. data/misc/plugin/en/edit_today.rb +22 -0
  103. data/misc/plugin/en/hide-mail-field.rb +19 -0
  104. data/misc/plugin/en/highlight.rb +29 -0
  105. data/misc/plugin/en/image.rb +54 -0
  106. data/misc/plugin/en/kw.rb +22 -0
  107. data/misc/plugin/en/makerss.rb +47 -0
  108. data/misc/plugin/en/pb-show.rb +21 -0
  109. data/misc/plugin/en/ping.rb +16 -0
  110. data/misc/plugin/en/recent_comment.rb +44 -0
  111. data/misc/plugin/en/recent_comment3.rb +56 -0
  112. data/misc/plugin/en/recent_rss.rb +33 -0
  113. data/misc/plugin/en/referer_scheme.rb +48 -0
  114. data/misc/plugin/en/search_control.rb +74 -0
  115. data/misc/plugin/en/search_form.rb +22 -0
  116. data/misc/plugin/en/speed_comment.rb +19 -0
  117. data/misc/plugin/en/tb-show.rb +37 -0
  118. data/misc/plugin/en/todo.rb +43 -0
  119. data/misc/plugin/en/weather.rb +185 -0
  120. data/misc/plugin/en/xmlrpc.rb +14 -0
  121. data/misc/plugin/footnote.rb +92 -0
  122. data/misc/plugin/gradation.rb +39 -0
  123. data/misc/plugin/gradient.rb +36 -0
  124. data/misc/plugin/hide-mail-field.rb +50 -0
  125. data/misc/plugin/highlight.rb +22 -0
  126. data/misc/plugin/html_anchor.rb +34 -0
  127. data/misc/plugin/image.rb +290 -0
  128. data/misc/plugin/ja/amazon.rb +89 -0
  129. data/misc/plugin/ja/bq.rb +13 -0
  130. data/misc/plugin/ja/calendar2.rb +12 -0
  131. data/misc/plugin/ja/category.rb +212 -0
  132. data/misc/plugin/ja/daily_theme.rb +15 -0
  133. data/misc/plugin/ja/disp_referrer.rb +644 -0
  134. data/misc/plugin/ja/edit_today.rb +23 -0
  135. data/misc/plugin/ja/hide-mail-field.rb +20 -0
  136. data/misc/plugin/ja/highlight.rb +30 -0
  137. data/misc/plugin/ja/makerss.rb +44 -0
  138. data/misc/plugin/ja/my-sequel.rb +52 -0
  139. data/misc/plugin/ja/pb-show.rb +23 -0
  140. data/misc/plugin/ja/ping.rb +17 -0
  141. data/misc/plugin/ja/recent_comment.rb +45 -0
  142. data/misc/plugin/ja/recent_comment3.rb +57 -0
  143. data/misc/plugin/ja/recent_rss.rb +34 -0
  144. data/misc/plugin/ja/referer_scheme.rb +86 -0
  145. data/misc/plugin/ja/search_control.rb +75 -0
  146. data/misc/plugin/ja/search_form.rb +32 -0
  147. data/misc/plugin/ja/tb-show.rb +38 -0
  148. data/misc/plugin/ja/todo.rb +46 -0
  149. data/misc/plugin/ja/weather.rb +402 -0
  150. data/misc/plugin/ja/xmlrpc.rb +15 -0
  151. data/misc/plugin/kw.rb +150 -0
  152. data/misc/plugin/list.rb +40 -0
  153. data/misc/plugin/makelirs.rb +89 -0
  154. data/misc/plugin/makerss.rb +744 -0
  155. data/misc/plugin/my-ex.rb +68 -0
  156. data/misc/plugin/my-sequel.rb +539 -0
  157. data/misc/plugin/navi_user.rb +19 -0
  158. data/misc/plugin/number_anchor.rb +47 -0
  159. data/misc/plugin/pb-show.rb +165 -0
  160. data/misc/plugin/ping.rb +99 -0
  161. data/misc/plugin/pre_wrap.rb +19 -0
  162. data/misc/plugin/random_google.rb +165 -0
  163. data/misc/plugin/recent_comment.rb +82 -0
  164. data/misc/plugin/recent_comment3.rb +192 -0
  165. data/misc/plugin/recent_list.rb +91 -0
  166. data/misc/plugin/recent_namazu.rb +50 -0
  167. data/misc/plugin/recent_rss.rb +305 -0
  168. data/misc/plugin/referer-antibot.rb +53 -0
  169. data/misc/plugin/referer-utf8.rb +12 -0
  170. data/misc/plugin/referer_scheme.rb +87 -0
  171. data/misc/plugin/search_control.rb +227 -0
  172. data/misc/plugin/search_form.rb +53 -0
  173. data/misc/plugin/sn.rb +107 -0
  174. data/misc/plugin/speed_comment.rb +68 -0
  175. data/misc/plugin/squeeze.rb +272 -0
  176. data/misc/plugin/src.rb +30 -0
  177. data/misc/plugin/tb-show.rb +212 -0
  178. data/misc/plugin/title_list.rb +41 -0
  179. data/misc/plugin/title_tag.rb +80 -0
  180. data/misc/plugin/tlink.rb +163 -0
  181. data/misc/plugin/todo.rb +182 -0
  182. data/misc/plugin/weather.rb +505 -0
  183. data/misc/plugin/whatsnew.rb +100 -0
  184. data/misc/plugin/xmlrpc.rb +80 -0
  185. data/misc/plugin/xmlrpc/README +20 -0
  186. data/misc/plugin/xmlrpc/xmlrpc.rb +575 -0
  187. data/misc/style/emptdiary/README.rd +83 -0
  188. data/misc/style/emptdiary/README.rd.en +78 -0
  189. data/misc/style/emptdiary/emptdiary_style.rb +199 -0
  190. data/misc/style/etdiary/README.rd +83 -0
  191. data/misc/style/etdiary/etdiary_style.rb +446 -0
  192. data/misc/style/gfm/gfm_style.rb +194 -0
  193. data/misc/style/rd/README.rd +71 -0
  194. data/misc/style/rd/rd_style.rb +366 -0
  195. data/misc/style/wiki/README +116 -0
  196. data/misc/style/wiki/README.en +101 -0
  197. data/misc/style/wiki/wiki_parser.rb +273 -0
  198. data/misc/style/wiki/wiki_style.rb +478 -0
  199. data/misc/theme_convert/Readme.rd +21 -0
  200. data/misc/theme_convert/append.rcss +150 -0
  201. data/misc/theme_convert/theme_convert.rb +453 -0
  202. data/plugin/00default.rb +1015 -0
  203. data/plugin/05referer.rb +298 -0
  204. data/plugin/10spamfilter.rb +183 -0
  205. data/plugin/50sp.rb +146 -0
  206. data/plugin/60sf.rb +152 -0
  207. data/plugin/90migrate.rb +109 -0
  208. data/plugin/en/00default.rb +390 -0
  209. data/plugin/en/05referer.rb +49 -0
  210. data/plugin/en/10spamfilter.rb +81 -0
  211. data/plugin/en/50sp.rb +56 -0
  212. data/plugin/en/60sf.rb +60 -0
  213. data/plugin/ja/00default.rb +401 -0
  214. data/plugin/ja/05referer.rb +47 -0
  215. data/plugin/ja/10spamfilter.rb +79 -0
  216. data/plugin/ja/50sp.rb +66 -0
  217. data/plugin/ja/60sf.rb +73 -0
  218. data/public/.gitkeep +0 -0
  219. data/public/images/.gitkeep +0 -0
  220. data/public/javascripts/.gitkeep +0 -0
  221. data/public/stylesheets/.gitkeep +0 -0
  222. data/skel/category.rhtml +9 -0
  223. data/skel/conf.rhtml +23 -0
  224. data/skel/day.rhtml +33 -0
  225. data/skel/diary.rhtml +83 -0
  226. data/skel/footer.rhtml +8 -0
  227. data/skel/header.rhtml +10 -0
  228. data/skel/i.category.rhtml +6 -0
  229. data/skel/i.conf.rhtml +14 -0
  230. data/skel/i.day.rhtml +28 -0
  231. data/skel/i.diary.rhtml +17 -0
  232. data/skel/i.footer.rhtml +2 -0
  233. data/skel/i.header.rhtml +3 -0
  234. data/skel/i.latest.rhtml +24 -0
  235. data/skel/i.month.rhtml +39 -0
  236. data/skel/i.search.rhtml +5 -0
  237. data/skel/i.update.rhtml +40 -0
  238. data/skel/i.update.rhtml.en +40 -0
  239. data/skel/latest.rhtml +27 -0
  240. data/skel/mail.rtxt +18 -0
  241. data/skel/mail.rtxt.en +18 -0
  242. data/skel/month.rhtml +27 -0
  243. data/skel/plugin_error.rhtml +27 -0
  244. data/skel/preview.rhtml +85 -0
  245. data/skel/preview.rhtml.en +72 -0
  246. data/skel/referer.rhtml +24 -0
  247. data/skel/search.rhtml +14 -0
  248. data/skel/tdiary.rconf +76 -0
  249. data/skel/update.rhtml +103 -0
  250. data/skel/update.rhtml.en +83 -0
  251. data/spec/acceptance/append_comment_spec.rb +94 -0
  252. data/spec/acceptance/append_diary_spec.rb +98 -0
  253. data/spec/acceptance/bugfix/encoding_error_spec.rb +27 -0
  254. data/spec/acceptance/save_conf_comment_spec.rb +87 -0
  255. data/spec/acceptance/save_conf_default_spec.rb +169 -0
  256. data/spec/acceptance/save_conf_dnsbl_spec.rb +152 -0
  257. data/spec/acceptance/save_conf_filter_spec.rb +50 -0
  258. data/spec/acceptance/save_conf_plugin_spec.rb +69 -0
  259. data/spec/acceptance/save_conf_referer_spec.rb +60 -0
  260. data/spec/acceptance/save_conf_security_spec.rb +280 -0
  261. data/spec/acceptance/support/helpers.rb +49 -0
  262. data/spec/acceptance/support/paths.rb +7 -0
  263. data/spec/acceptance/update_diary_spec.rb +113 -0
  264. data/spec/acceptance/view_category_spec.rb +38 -0
  265. data/spec/acceptance/view_comment_spec.rb +67 -0
  266. data/spec/acceptance/view_diary_spec.rb +126 -0
  267. data/spec/acceptance/view_referer_spec.rb +31 -0
  268. data/spec/acceptance_helper.rb +101 -0
  269. data/spec/core/compatible_spec.rb +54 -0
  270. data/spec/core/core_ext_spec.rb +59 -0
  271. data/spec/core/plugin_spec.rb +389 -0
  272. data/spec/core/rack/assets/precompile_spec.rb +76 -0
  273. data/spec/core/rack/html_anchor_spec.rb +57 -0
  274. data/spec/core/rack/valid_request_path_spec.rb +67 -0
  275. data/spec/core/style/emptdiary_style_spec.rb +165 -0
  276. data/spec/core/style/etdiary_style_spec.rb +512 -0
  277. data/spec/core/style/gfm_style_spec.rb +334 -0
  278. data/spec/core/style/rd_style_spec.rb +202 -0
  279. data/spec/core/style/tdiary_style_spec.rb +240 -0
  280. data/spec/core/style/wiki_style_spec.rb +441 -0
  281. data/spec/fixtures/ascii8bit-pstore.db +0 -0
  282. data/spec/fixtures/invalid-sequence-volatile.tdr +9 -0
  283. data/spec/fixtures/just_installed.conf +1 -0
  284. data/spec/fixtures/plugin/ja/sample.rb +4 -0
  285. data/spec/fixtures/plugin/sample.rb +6 -0
  286. data/spec/fixtures/sample.rb +12 -0
  287. data/spec/fixtures/tdiary.conf.gem +212 -0
  288. data/spec/fixtures/tdiary.conf.rack +212 -0
  289. data/spec/fixtures/tdiary.conf.rdb +227 -0
  290. data/spec/fixtures/tdiary.conf.secure +204 -0
  291. data/spec/fixtures/tdiary.conf.webrick +212 -0
  292. data/spec/javascripts/00default_spec.js +35 -0
  293. data/spec/javascripts/fixtures/00default.html +1 -0
  294. data/spec/javascripts/support/jasmine.yml +76 -0
  295. data/spec/plugin/bq_spec.rb +24 -0
  296. data/spec/plugin/plugin_helper.rb +203 -0
  297. data/spec/spec_helper.rb +32 -0
  298. data/tdiary.conf.beginner +244 -0
  299. data/tdiary.conf.sample +345 -0
  300. data/tdiary.conf.sample-en +333 -0
  301. data/tdiary.gemspec +26 -0
  302. data/tdiary.rb +151 -0
  303. data/tdiary/admin.rb +236 -0
  304. data/tdiary/application.rb +57 -0
  305. data/tdiary/author_only_base.rb +171 -0
  306. data/tdiary/base.rb +220 -0
  307. data/tdiary/cli.rb +116 -0
  308. data/tdiary/comment.rb +40 -0
  309. data/tdiary/comment_manager.rb +94 -0
  310. data/tdiary/compatible.rb +72 -0
  311. data/tdiary/config.rb +270 -0
  312. data/tdiary/core_ext.rb +122 -0
  313. data/tdiary/deploy.rb +50 -0
  314. data/tdiary/dispatcher.rb +77 -0
  315. data/tdiary/dispatcher/index_main.rb +122 -0
  316. data/tdiary/dispatcher/update_main.rb +101 -0
  317. data/tdiary/environment.rb +15 -0
  318. data/tdiary/filter.rb +48 -0
  319. data/tdiary/filter/default.rb +54 -0
  320. data/tdiary/filter/spam.rb +304 -0
  321. data/tdiary/io/base.rb +70 -0
  322. data/tdiary/io/cache/file.rb +123 -0
  323. data/tdiary/io/cache/memcached.rb +88 -0
  324. data/tdiary/io/cache/redis.rb +100 -0
  325. data/tdiary/io/default.rb +297 -0
  326. data/tdiary/io/pstore.rb +252 -0
  327. data/tdiary/io/rdb.rb +213 -0
  328. data/tdiary/lang/en.rb +79 -0
  329. data/tdiary/lang/ja.rb +72 -0
  330. data/tdiary/plugin.rb +375 -0
  331. data/tdiary/rack/assets/precompile.rb +37 -0
  332. data/tdiary/rack/auth/basic.rb +38 -0
  333. data/tdiary/rack/auth/omniauth.rb +51 -0
  334. data/tdiary/rack/html_anchor.rb +31 -0
  335. data/tdiary/rack/valid_request_path.rb +36 -0
  336. data/tdiary/referer_manager.rb +80 -0
  337. data/tdiary/request.rb +217 -0
  338. data/tdiary/response.rb +29 -0
  339. data/tdiary/server.rb +85 -0
  340. data/tdiary/style.rb +194 -0
  341. data/tdiary/style/tdiary_style.rb +198 -0
  342. data/tdiary/style/wiki_style.rb +213 -0
  343. data/tdiary/tasks.rb +1 -0
  344. data/tdiary/tasks/assets.rake +31 -0
  345. data/tdiary/tasks/auth.rake +28 -0
  346. data/tdiary/tasks/db.rake +110 -0
  347. data/tdiary/tasks/doc.rake +31 -0
  348. data/tdiary/tasks/heroku.rake +37 -0
  349. data/tdiary/tasks/jasmine.rake +16 -0
  350. data/tdiary/tasks/rdoc.rake +24 -0
  351. data/tdiary/tasks/release.rake +122 -0
  352. data/tdiary/tasks/rspec.rake +51 -0
  353. data/tdiary/tasks/server.rake +33 -0
  354. data/tdiary/tasks/test.rake +17 -0
  355. data/tdiary/version.rb +3 -0
  356. data/tdiary/view.rb +468 -0
  357. data/tdiary/view_helper.rb +15 -0
  358. data/test/disp_referrer_test.rb +93 -0
  359. data/test/my-sequel_test.rb +238 -0
  360. data/test/test_helper.rb +7 -0
  361. data/test/test_plugin_helper.rb +64 -0
  362. data/test/test_plugin_helper_test.rb +28 -0
  363. data/test/weather_test.rb +33 -0
  364. data/theme/base.css +268 -0
  365. data/theme/conf.block.png +0 -0
  366. data/theme/conf.css +254 -0
  367. data/theme/default/README +11 -0
  368. data/theme/default/body.png +0 -0
  369. data/theme/default/default.css +743 -0
  370. data/theme/help.png +0 -0
  371. data/theme/loading.gif +0 -0
  372. data/theme/tdiary1/README +7 -0
  373. data/theme/tdiary1/tdiary1.css +394 -0
  374. data/theme/tdiary2/README +19 -0
  375. data/theme/tdiary2/tdiary2.css +624 -0
  376. data/update.fcgi +45 -0
  377. data/update.rb +57 -0
  378. data/vendor/hikidoc-0.0.6/COPYING +28 -0
  379. data/vendor/hikidoc-0.0.6/NEWS +30 -0
  380. data/vendor/hikidoc-0.0.6/NEWS.ja +30 -0
  381. data/vendor/hikidoc-0.0.6/README +86 -0
  382. data/vendor/hikidoc-0.0.6/README.ja +83 -0
  383. data/vendor/hikidoc-0.0.6/Rakefile +68 -0
  384. data/vendor/hikidoc-0.0.6/TextFormattingRules +320 -0
  385. data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +318 -0
  386. data/vendor/hikidoc-0.0.6/bin/hikidoc +66 -0
  387. data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +914 -0
  388. data/vendor/hikidoc-0.0.6/setup.rb +1360 -0
  389. data/vendor/hikidoc-0.0.6/test/run-test.rb +13 -0
  390. data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +506 -0
  391. data/vendor/imagesize-0.1.1/Manifest.txt +19 -0
  392. data/vendor/imagesize-0.1.1/README.txt +49 -0
  393. data/vendor/imagesize-0.1.1/lib/image_size.rb +305 -0
  394. data/vendor/imagesize-0.1.1/lib/image_size/version.rb +9 -0
  395. data/vendor/imagesize-0.1.1/setup.rb +1585 -0
  396. data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
  397. data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
  398. data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
  399. data/vendor/imagesize-0.1.1/test/cursor.xbm +6 -0
  400. data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
  401. data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
  402. data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
  403. data/vendor/imagesize-0.1.1/test/pgm.pgm +5 -0
  404. data/vendor/imagesize-0.1.1/test/test.xpm +38 -0
  405. data/vendor/imagesize-0.1.1/test/test_helper.rb +2 -0
  406. data/vendor/imagesize-0.1.1/test/test_image_size.rb +71 -0
  407. data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
  408. data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
  409. data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
  410. data/vendor/jasmine-jquery-1.4.2/jasmine-jquery.js +548 -0
  411. data/vendor/jquery-1.8/jquery.js +9227 -0
  412. data/vendor/rdtool-0.6.38/COPYING.txt +339 -0
  413. data/vendor/rdtool-0.6.38/Gemfile +3 -0
  414. data/vendor/rdtool-0.6.38/HISTORY +318 -0
  415. data/vendor/rdtool-0.6.38/LGPL-2.1 +502 -0
  416. data/vendor/rdtool-0.6.38/LICENSE.txt +58 -0
  417. data/vendor/rdtool-0.6.38/README.html +66 -0
  418. data/vendor/rdtool-0.6.38/README.ja.html +73 -0
  419. data/vendor/rdtool-0.6.38/README.rd +76 -0
  420. data/vendor/rdtool-0.6.38/README.rd.ja +85 -0
  421. data/vendor/rdtool-0.6.38/Rakefile +152 -0
  422. data/vendor/rdtool-0.6.38/TODO +22 -0
  423. data/vendor/rdtool-0.6.38/bin/rd2 +283 -0
  424. data/vendor/rdtool-0.6.38/bin/rdswap.rb +207 -0
  425. data/vendor/rdtool-0.6.38/doc/rd-draft.html +456 -0
  426. data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +466 -0
  427. data/vendor/rdtool-0.6.38/doc/rd-draft.rd +479 -0
  428. data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +487 -0
  429. data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +114 -0
  430. data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +65 -0
  431. data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +55 -0
  432. data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +46 -0
  433. data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +18 -0
  434. data/vendor/rdtool-0.6.38/lib/rd/element.rb +160 -0
  435. data/vendor/rdtool-0.6.38/lib/rd/filter.rb +255 -0
  436. data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +14 -0
  437. data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +233 -0
  438. data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +14 -0
  439. data/vendor/rdtool-0.6.38/lib/rd/list.rb +57 -0
  440. data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +11 -0
  441. data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +57 -0
  442. data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +30 -0
  443. data/vendor/rdtool-0.6.38/lib/rd/package.rb +4 -0
  444. data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +14 -0
  445. data/vendor/rdtool-0.6.38/lib/rd/post-install +1 -0
  446. data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +18 -0
  447. data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +69 -0
  448. data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +37 -0
  449. data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +86 -0
  450. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +266 -0
  451. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +34 -0
  452. data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +490 -0
  453. data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +67 -0
  454. data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +251 -0
  455. data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +19 -0
  456. data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +32 -0
  457. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +518 -0
  458. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +1061 -0
  459. data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +15 -0
  460. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +503 -0
  461. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +1243 -0
  462. data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +214 -0
  463. data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +114 -0
  464. data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +14 -0
  465. data/vendor/rdtool-0.6.38/lib/rd/tree.rb +103 -0
  466. data/vendor/rdtool-0.6.38/lib/rd/version.rb +41 -0
  467. data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +86 -0
  468. data/vendor/rdtool-0.6.38/rdtool.gemspec +125 -0
  469. data/vendor/rdtool-0.6.38/setup.rb +1596 -0
  470. data/vendor/rdtool-0.6.38/test/data/includee1.html +1 -0
  471. data/vendor/rdtool-0.6.38/test/data/includee2.html +1 -0
  472. data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +1 -0
  473. data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
  474. data/vendor/rdtool-0.6.38/test/data/label.rbl +2 -0
  475. data/vendor/rdtool-0.6.38/test/data/label2.rbl +2 -0
  476. data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +1 -0
  477. data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
  478. data/vendor/rdtool-0.6.38/test/dummy-observer.rb +6 -0
  479. data/vendor/rdtool-0.6.38/test/dummy.rb +33 -0
  480. data/vendor/rdtool-0.6.38/test/temp-dir.rb +19 -0
  481. data/vendor/rdtool-0.6.38/test/test-block-parser.rb +46 -0
  482. data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +219 -0
  483. data/vendor/rdtool-0.6.38/test/test-document-element.rb +46 -0
  484. data/vendor/rdtool-0.6.38/test/test-document-struct.rb +66 -0
  485. data/vendor/rdtool-0.6.38/test/test-element.rb +46 -0
  486. data/vendor/rdtool-0.6.38/test/test-headline.rb +80 -0
  487. data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +46 -0
  488. data/vendor/rdtool-0.6.38/test/test-list-item.rb +54 -0
  489. data/vendor/rdtool-0.6.38/test/test-list.rb +53 -0
  490. data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +73 -0
  491. data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +170 -0
  492. data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +33 -0
  493. data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +48 -0
  494. data/vendor/rdtool-0.6.38/test/test-parser-util.rb +41 -0
  495. data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +156 -0
  496. data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +43 -0
  497. data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +496 -0
  498. data/vendor/rdtool-0.6.38/test/test-rdtree.rb +17 -0
  499. data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +29 -0
  500. data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +202 -0
  501. data/vendor/rdtool-0.6.38/test/test-reference.rb +132 -0
  502. data/vendor/rdtool-0.6.38/test/test-search-file.rb +22 -0
  503. data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +41 -0
  504. data/vendor/rdtool-0.6.38/test/test-textblock.rb +44 -0
  505. data/vendor/rdtool-0.6.38/test/test-tree.rb +82 -0
  506. data/vendor/rdtool-0.6.38/test/test-version.rb +57 -0
  507. data/vendor/rdtool-0.6.38/test/test-visitor.rb +230 -0
  508. data/vendor/rdtool-0.6.38/utils/rd-mode.el +464 -0
  509. metadata +666 -0
data/tdiary/lang/en.rb ADDED
@@ -0,0 +1,79 @@
1
+ # -*- coding: utf-8; -*-
2
+ #
3
+ # tDiary language setup: English(en)
4
+ #
5
+ # Copyright (C) 2001-2011, TADA Tadashi <t@tdtds.jp>
6
+ # You can redistribute it and/or modify it under GPL2.
7
+ #
8
+
9
+ #
10
+ # 'html_lang' method returns String of HTML language attribute.
11
+ #
12
+ def html_lang
13
+ 'en-US'
14
+ end
15
+
16
+ #
17
+ # 'encoding' method returns String of HTTP or HTML charactor encoding.
18
+ #
19
+ def encoding
20
+ 'UTF-8'
21
+ end
22
+
23
+ def encoding_old
24
+ 'UTF-8'
25
+ end
26
+
27
+ #
28
+ # 'mobile_encoding' method returns charactor encoding in mobile mode.
29
+ #
30
+ def mobile_encoding
31
+ 'UTF-8'
32
+ end
33
+
34
+ #
35
+ # 'migrate_to_utf8' method converts string to UTF-8, but dummy in en.
36
+ #
37
+ def migrate_to_utf8( str )
38
+ str.dup
39
+ end
40
+
41
+ #
42
+ # 'to_mobile' method converts string automatically to mobile mode encoding.
43
+ #
44
+ def to_mobile( str )
45
+ str.dup
46
+ end
47
+
48
+ #
49
+ # 'to_mail' method converts string automatically to E-mail encoding.
50
+ #
51
+ def to_mail( str )
52
+ str.dup
53
+ end
54
+
55
+ #
56
+ # 'shorten' method cuts string length.
57
+ #
58
+ def shorten( str, length = 120 )
59
+ matched = str.gsub( /\n/, ' ' ).scan( /^.{0,#{length - 2}}/u )[0]
60
+ unless $'.empty?
61
+ matched + '..'
62
+ else
63
+ matched
64
+ end
65
+ end
66
+
67
+ #
68
+ # 'comment_length' returns length of shorten comment on recent or monthly view.
69
+ #
70
+ def comment_length
71
+ 120
72
+ end
73
+
74
+ # Local Variables:
75
+ # mode: ruby
76
+ # indent-tabs-mode: t
77
+ # tab-width: 3
78
+ # ruby-indent-level: 3
79
+ # End:
data/tdiary/lang/ja.rb ADDED
@@ -0,0 +1,72 @@
1
+ # -*- coding: utf-8; -*-
2
+ #
3
+ # tDiary language setup: Japanese(ja)
4
+ #
5
+ # Copyright (C) 2001-2011, TADA Tadashi <t@tdtds.jp>
6
+ # You can redistribute it and/or modify it under GPL2.
7
+ #
8
+
9
+ def html_lang
10
+ 'ja-JP'
11
+ end
12
+
13
+ def encoding
14
+ 'UTF-8'
15
+ end
16
+
17
+ def encoding_old
18
+ 'EUC-JP'
19
+ end
20
+
21
+ def mobile_encoding
22
+ 'Shift_JIS'
23
+ end
24
+
25
+ if String.method_defined?(:encode)
26
+ def to_mobile( str )
27
+ str.encode(mobile_encoding, {:invalid => :replace, :undef => :replace})
28
+ end
29
+
30
+ def to_mail( str )
31
+ str.encode('iso-2022-jp', {:invalid => :replace, :undef => :replace})
32
+ end
33
+ else
34
+ require 'nkf'
35
+ require 'iconv'
36
+
37
+ def to_mobile( str )
38
+ NKF::nkf( '-m0 -W -s', str )
39
+ end
40
+
41
+ def to_mail( str )
42
+ begin
43
+ Iconv.conv('iso-2022-jp', 'utf-8', str)
44
+ rescue
45
+ NKF::nkf('-m0 -W -j', str)
46
+ end
47
+ end
48
+ end
49
+
50
+ def migrate_to_utf8( str )
51
+ to_native( str, encoding_old )
52
+ end
53
+
54
+ def shorten( str, len = 120 )
55
+ matched = str.gsub( /\n/, ' ' ).scan( /^.{0,#{len - 2}}/u )[0]
56
+ if $'.nil? || $'.empty?
57
+ matched
58
+ else
59
+ matched + '..'
60
+ end
61
+ end
62
+
63
+ def comment_length
64
+ 60
65
+ end
66
+
67
+ # Local Variables:
68
+ # mode: ruby
69
+ # indent-tabs-mode: t
70
+ # tab-width: 3
71
+ # ruby-indent-level: 3
72
+ # End:
data/tdiary/plugin.rb ADDED
@@ -0,0 +1,375 @@
1
+ # -*- coding: utf-8; -*-
2
+ #
3
+ # class Plugin
4
+ # plugin management class
5
+ #
6
+ require 'erb'
7
+
8
+ module TDiary
9
+ class Plugin
10
+ include ERB::Util
11
+ include ViewHelper
12
+
13
+ attr_reader :cookies
14
+ attr_writer :comment, :date, :diaries, :last_modified
15
+
16
+ def initialize( params )
17
+ @header_procs = []
18
+ @footer_procs = []
19
+ @update_procs = []
20
+ @title_procs = []
21
+ @body_enter_procs = []
22
+ @body_leave_procs = []
23
+ @section_index = {}
24
+ @section_enter_procs = []
25
+ @comment_leave_procs = []
26
+ @subtitle_procs = []
27
+ @section_leave_procs = []
28
+ @edit_procs = []
29
+ @form_procs = []
30
+ @conf_keys = []
31
+ @conf_procs = {}
32
+ @conf_genre_label = {}
33
+ @content_procs = {}
34
+ @cookies = []
35
+ @javascripts = []
36
+ @javascript_setting = []
37
+
38
+ params.each do |key, value|
39
+ instance_variable_set( "@#{key}", value )
40
+ end
41
+
42
+ # for 1.4 compatibility
43
+ @index = @conf.index
44
+ @update = @conf.update
45
+ @author_name = @conf.author_name || ''
46
+ @author_mail = @conf.author_mail || ''
47
+ @index_page = @conf.index_page || ''
48
+ @html_title = @conf.html_title || ''
49
+ @theme = @conf.theme
50
+ @css = @conf.css
51
+ @date_format = @conf.date_format
52
+ @referer_table = @conf.referer_table
53
+ @options = @conf.options
54
+
55
+ # loading plugins
56
+ @plugin_files = []
57
+ plugin_path = @conf.plugin_path || "#{PATH}/plugin"
58
+ plugin_file = ''
59
+ begin
60
+ Dir::glob( "#{plugin_path}/*.rb" ).sort.each do |file|
61
+ plugin_file = file
62
+ load_plugin( file )
63
+ @plugin_files << plugin_file
64
+ end
65
+ rescue ::TDiary::ForceRedirect
66
+ raise
67
+ rescue Exception
68
+ raise PluginError::new( "Plugin error in '#{File::basename( plugin_file )}'.\n#{$!}\n#{$!.backtrace[0]}" )
69
+ end
70
+ end
71
+
72
+ def load_plugin( file )
73
+ @resource_loaded = false
74
+ begin
75
+ res_file = File::dirname( file ) + "/#{@conf.lang}/" + File::basename( file )
76
+ open( res_file.untaint ) do |src|
77
+ instance_eval( src.read.untaint, "(plugin/#{@conf.lang}/#{File::basename( res_file )})", 1 )
78
+ end
79
+ @resource_loaded = true
80
+ rescue IOError, Errno::ENOENT
81
+ end
82
+ File::open( file.untaint ) do |src|
83
+ instance_eval( src.read.untaint, "(plugin/#{File::basename( file )})", 1 )
84
+ end
85
+ end
86
+
87
+ def eval_src( src, secure )
88
+ self.taint
89
+ @conf.taint
90
+ @title_procs.taint
91
+ @body_enter_procs.taint
92
+ @body_leave_procs.taint
93
+ @section_index.taint
94
+ @section_enter_procs.taint
95
+ @comment_leave_procs.taint
96
+ @subtitle_procs.taint
97
+ @section_leave_procs.taint
98
+ return Safe::safe( secure ? 4 : 1 ) do
99
+ eval( src, binding, "(TDiary::Plugin#eval_src)", 1 )
100
+ end
101
+ end
102
+
103
+ private
104
+ def add_header_proc( block = Proc::new )
105
+ @header_procs << block
106
+ end
107
+
108
+ def header_proc
109
+ r = []
110
+ @header_procs.each do |proc|
111
+ r << proc.call
112
+ end
113
+ r.join.chomp
114
+ end
115
+
116
+ def add_footer_proc( block = Proc::new )
117
+ @footer_procs << block
118
+ end
119
+
120
+ def footer_proc
121
+ r = []
122
+ @footer_procs.each do |proc|
123
+ r << proc.call
124
+ end
125
+ r.join.chomp
126
+ end
127
+
128
+ def add_update_proc( block = Proc::new )
129
+ @update_procs << block
130
+ end
131
+
132
+ def update_proc
133
+ @update_procs.each do |proc|
134
+ proc.call
135
+ end
136
+ ''
137
+ end
138
+
139
+ def add_title_proc( block = Proc::new )
140
+ @title_procs << block
141
+ end
142
+
143
+ def title_proc( date, title )
144
+ @title_procs.each do |proc|
145
+ title = proc.call( date, title )
146
+ end
147
+ apply_plugin( title )
148
+ end
149
+
150
+ def add_body_enter_proc( block = Proc::new )
151
+ @body_enter_procs << block
152
+ end
153
+
154
+ def body_enter_proc( date )
155
+ r = []
156
+ @body_enter_procs.each do |proc|
157
+ r << proc.call( date )
158
+ end
159
+ r.join
160
+ end
161
+
162
+ def add_body_leave_proc( block = Proc::new )
163
+ @body_leave_procs << block
164
+ end
165
+
166
+ def body_leave_proc( date )
167
+ r = []
168
+ @body_leave_procs.each do |proc|
169
+ r << proc.call( date )
170
+ end
171
+ r.join
172
+ end
173
+
174
+ def add_section_enter_proc( block = Proc::new )
175
+ @section_enter_procs << block
176
+ end
177
+
178
+ def section_enter_proc( date )
179
+ @section_index[date] = (@section_index[date] || 0) + 1
180
+ r = []
181
+ @section_enter_procs.each do |proc|
182
+ r << proc.call( date, @section_index[date] )
183
+ end
184
+ r.join
185
+ end
186
+
187
+ def add_subtitle_proc( block = Proc::new )
188
+ @subtitle_procs << block
189
+ end
190
+
191
+ def subtitle_proc( date, subtitle )
192
+ @subtitle_procs.each do |proc|
193
+ subtitle = proc.call( date, @section_index[date], subtitle )
194
+ end
195
+ apply_plugin( subtitle )
196
+ end
197
+
198
+ def add_section_leave_proc( block = Proc::new )
199
+ @section_leave_procs << block
200
+ end
201
+
202
+ def section_leave_proc( date )
203
+ r = []
204
+ @section_leave_procs.each do |proc|
205
+ r << proc.call( date, @section_index[date] )
206
+ end
207
+ r.join
208
+ end
209
+
210
+ def add_comment_leave_proc( block = Proc::new )
211
+ @comment_leave_procs << block
212
+ end
213
+
214
+ def comment_leave_proc( date )
215
+ r = []
216
+ @comment_leave_procs.each do |proc|
217
+ r << proc.call( date )
218
+ end
219
+ r.join
220
+ end
221
+
222
+ def add_edit_proc( block = Proc::new )
223
+ @edit_procs << block
224
+ end
225
+
226
+ def edit_proc( date )
227
+ r = []
228
+ @edit_procs.each do |proc|
229
+ r << proc.call( date )
230
+ end
231
+ r.join
232
+ end
233
+
234
+ def add_form_proc( block = Proc::new )
235
+ @form_procs << block
236
+ end
237
+
238
+ def form_proc( date )
239
+ r = []
240
+ @form_procs.each do |proc|
241
+ r << proc.call( date )
242
+ end
243
+ r.join
244
+ end
245
+
246
+ def add_conf_proc( key, label, genre = 'etc', block = Proc::new )
247
+ return unless @mode =~ /^(conf|saveconf)$/
248
+ genre_and_key = "#{genre}:#{key}"
249
+ @conf_keys << genre_and_key unless @conf_keys.index( genre_and_key )
250
+ @conf_procs[key] = [label, block]
251
+ end
252
+
253
+ def each_conf_genre
254
+ genres = {}
255
+ @conf_keys.each do |genre_and_key|
256
+ genre, key = genre_and_key.split( /:/, 2 )
257
+ next if genres[genre]
258
+ yield genre
259
+ genres[genre] = key
260
+ end
261
+ end
262
+
263
+ def each_conf_key( genre )
264
+ re = /^#{genre}:/
265
+ @conf_keys.each do |genre_and_key|
266
+ if re =~ genre_and_key then
267
+ genre, key = genre_and_key.split( /:/, 2 )
268
+ yield key
269
+ end
270
+ end
271
+ end
272
+
273
+ def conf_proc( key )
274
+ r = ''
275
+ label, block = @conf_procs[key]
276
+ r = block.call if block
277
+ r
278
+ end
279
+
280
+ def conf_genre_label( genre )
281
+ label = @conf_genre_label[genre]
282
+ label ? label : genre
283
+ end
284
+
285
+ def conf_label( key )
286
+ label, = @conf_procs[key]
287
+ label
288
+ end
289
+
290
+ def conf_current_style( key )
291
+ if key == @cgi.params['conf'][0] then
292
+ 'selected'
293
+ else
294
+ 'other'
295
+ end
296
+ end
297
+
298
+ def add_cookie( cookie )
299
+ begin
300
+ @cookies << cookie
301
+ rescue SecurityError
302
+ raise SecurityError, "can't use cookies in plugin when secure mode"
303
+ end
304
+ end
305
+
306
+ def enable_js( script )
307
+ @javascripts << script unless @javascripts.index( script )
308
+ end
309
+
310
+ def add_js_setting( var, val = 'new Object()' )
311
+ @javascript_setting << [var, val]
312
+ end
313
+
314
+ def add_content_proc( key, block = Proc::new )
315
+ @content_procs[key] = block
316
+ end
317
+
318
+ def content_proc( key, date )
319
+ unless @content_procs.key?( key )
320
+ raise PluginError::new( "Plugin error: #{key} is not found." )
321
+ end
322
+ @content_procs[key].call( date )
323
+ end
324
+
325
+ def remove_tag( str )
326
+ str.gsub( /<[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$)/, '' )
327
+ end
328
+
329
+ def apply_plugin( str, remove_tag = false )
330
+ return '' unless str
331
+ r = str.dup
332
+ if @conf.options['apply_plugin'] and str.index( '<%' ) then
333
+ r = str.untaint if $SAFE < 3
334
+ Safe::safe( @conf.secure ? 4 : 1 ) do
335
+ begin
336
+ r = ERB::new( r ).result( binding )
337
+ rescue Exception
338
+ r = %Q|<p class="message">Invalid Text</p>#{r}|
339
+ end
340
+ end
341
+ end
342
+ r = remove_tag( r ) if remove_tag
343
+ r
344
+ end
345
+
346
+ def disp_referer( table, ref )
347
+ ref = @conf.to_native( CGI::unescape( ref ) )
348
+ str = nil
349
+ table.each do |url, name|
350
+ if /#{url}/iu =~ ref then
351
+ str = ref.gsub( /#{url}/iu, name )
352
+ break
353
+ end
354
+ end
355
+ str ? str : ref
356
+ end
357
+
358
+ def help( name )
359
+ %Q[<span class="help-icon"><a href="http://docs.tdiary.org/#{h @conf.lang}/?#{h name}" target="_blank"><img src="#{theme_url}/help.png" width="19" height="19" alt="Help"></a></span>]
360
+ end
361
+
362
+ def method_missing( *m )
363
+ super if @debug
364
+ # ignore when no plugin
365
+ end
366
+ end
367
+ end
368
+
369
+ # Local Variables:
370
+ # mode: ruby
371
+ # indent-tabs-mode: t
372
+ # tab-width: 3
373
+ # ruby-indent-level: 3
374
+ # End:
375
+ # vim: ts=3