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
@@ -0,0 +1,75 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ = ここだけ検索プラグイン((-$Id: search_control.rb,v 1.4 2008-03-02 09:01:46 kazuhiko Exp $-))
4
+ 日本語リソース
5
+
6
+ == 概要
7
+ 一日表示、最新表示などそれぞれについてGoogleなどの検索エンジンにインデッ
8
+ クスしてもらうかどうかを制御します。
9
+
10
+ == 使い方
11
+ このプラグインをplugin/ディレクトリに配置するか、プラグイン選択プラグイ
12
+ ンを使ってこのプラグインを有効にしてください。
13
+
14
+ 設定画面から「ここだけ検索」をクリックすることで、どの表示モードでどのよ
15
+ うな動作を期待するか設定することができます。デフォルトでは、一日分の表示
16
+ のみ、検索エンジンに登録されるようになっています。
17
+
18
+ 実際に効果があるかどうかは、検索エンジンのロボットがメタタグを解釈して
19
+ くれるかどうかにかかっています。
20
+
21
+ secure==trueな日記でも使えます。
22
+
23
+ == License
24
+ Copyright (C) 2003, 2004 zunda <zunda at freeshell.org>
25
+
26
+ Permission is granted for use, copying, modification, distribution, and
27
+ distribution of modified versions of this work under the terms of GPL
28
+ version 2 or later.
29
+ =end
30
+
31
+ =begin ChangeLog
32
+ See ../ChangeLog for changes after this.
33
+
34
+ * Aug 28, 2003 zunda <zunda at freeshell.org>
35
+ - 1.3
36
+ - simpler configuration display
37
+
38
+ * Aug 26, 2003 zunda <zunda at freeshell.org>
39
+ - 1.2
40
+ - no table in configuration view, thanks to Tada-san.
41
+
42
+ * Aug 26, 2003 zunda <zunda at freeshell.org>
43
+ - no nofollow
44
+ - English translation
45
+ =end ChangeLog
46
+
47
+ # configuration
48
+ unless defined?( Search_control_plugin_name ) then
49
+ Search_control_plugin_name = 'ここだけ検索'
50
+ Search_control_description_html = <<'_HTML'
51
+ <p>メタタグを使って、検索エンジンのロボットに、
52
+ 余分なページのインデックスを作らないようにお願いしてみます。
53
+ インデックスを作って欲しい表示だけにチェックをしてください。</p>
54
+ <p>User agent(検索エンジンのロボットの名前)が指定されていると、
55
+ そのagentについて指定された動作をします。
56
+ 一致するUser agentが無い場合はデフォルトの動作をします。</p>
57
+ _HTML
58
+ Search_control_delete_label = 'このagentを削除'
59
+ Search_control_new_label = '記入したagentを追加'
60
+ Search_control_default_label = 'デフォルト'
61
+ Search_control_categories = [
62
+ [ '最新', 'latest' ],
63
+ [ '一日分', 'day' ],
64
+ [ '一月分', 'month' ],
65
+ [ '長年', 'nyear' ],
66
+ [ 'カテゴリー', 'category' ]
67
+ ]
68
+ end
69
+
70
+ # Local Variables:
71
+ # mode: ruby
72
+ # indent-tabs-mode: t
73
+ # tab-width: 3
74
+ # ruby-indent-level: 3
75
+ # End:
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ # search_form.rb japanese resource.
3
+
4
+ def googlej_form( button_name = "Google 検索", size = 20, default_text = "" )
5
+ first = %Q[<a href="http://www.google.com/">
6
+ <img src="http://www.google.com/logos/Logo_40wht.gif"
7
+ style="border-width: 0px; vertical-align: middle;" alt="Google"></a>]
8
+ last = %Q[<input type="hidden" name="hl" value="ja"><input type="hidden" name="ie" value="utf-8">]
9
+ search_form( "http://www.google.com/search", "q", button_name, size, default_text, first, last )
10
+ end
11
+
12
+ def google_form( button_name = "Google 検索", size = 20, default_text = "" )
13
+ googlej_form( button_name, size, default_text )
14
+ end
15
+
16
+ def yahooj_form( button_name = "Yahoo! 検索", size = 20, default_text = "" )
17
+ first = %Q[<a href="http://www.yahoo.co.jp/">
18
+ <img src="http://img.yahoo.co.jp/images/yahoojp_sm.gif"
19
+ style="border-width: 0px; vertical-align: middle;" alt="Yahoo! JAPAN"></a>]
20
+ search_form( "http://search.yahoo.co.jp/bin/search", "p", button_name, size, default_text, first, "" )
21
+ end
22
+
23
+ def yahoo_form( button_name = "Yahoo! 検索", size = 20, default_text = "" )
24
+ yahooj_form( button_name, size, default_text )
25
+ end
26
+
27
+ # Local Variables:
28
+ # mode: ruby
29
+ # indent-tabs-mode: t
30
+ # tab-width: 3
31
+ # ruby-indent-level: 3
32
+ # End:
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Japanese resource of tb-show.rb
3
+ #
4
+
5
+ def tb_show_conf_html
6
+ <<-"HTML"
7
+ <h3 class="subtitle">TrackBack アンカー</h3>
8
+ #{"<p>他のweblogからのTrackBackの先頭に挿入される、リンク用のアンカー文字列を指定します。なお「&lt;span class=\"tanchor\"&gt;_&lt;/span&gt;」を指定すると、テーマによっては自動的に画像アンカーがつくようになります。</p>" unless @cgi.mobile_agent?}
9
+ <p><input name="trackback_anchor" value="#{ h(@conf['trackback_anchor'] || @conf.comment_anchor ) }" size="40"></p>
10
+ <h3 class="subtitle">TrackBack 表示方法</h3>
11
+ #{"<p>最新もしくは月別時の表示方法を指定します。</p>" unless @cgi.mobile_agent?}
12
+ <p><select name="trackback_shortview_mode">
13
+ #{ [["num_in_reflist", "リンク元一欄に数を表示(常に)"],
14
+ ["num_in_reflist_if_exists",
15
+ "リンク元一欄に数を表示(1件以上のみ)"],
16
+ ["shortlist", "短い一覧を表示"]
17
+ ].map{ |op|
18
+ "<option value='#{op[0]}' #{'selected' if @conf['trackback_shortview_mode'] == op[0]}>#{op[1]}</option>\n"
19
+ }.to_s }
20
+ </select></p>
21
+ <h3 class="subtitle">TrackBack リスト表示数</h3>
22
+ #{"<p>最新もしくは月別表示時に表示する、TrackBackの最大件数を指定します。なお、日別表示時にはここの指定にかかわらず最大100件のTrackBackが表示されます。</p>" unless @cgi.mobile_agent?}
23
+ <p>最大<input name="trackback_limit" value="#{ h( @conf['trackback_limit'] || @conf.comment_limit )}" size="3">件</p>
24
+ <h3 class="subtitle">TrackBack URL の表示設定</h3>
25
+ #{"<p>最新もしくは月別表示時に TrackBackURL を表示するかどうかを指定します。</p>" unless @cgi.mobile_agent?}
26
+ <p><select name="trackback_disp_pingurl">
27
+ <option value="true" #{'selected' if @conf['trackback_disp_pingurl']}>表示</options>
28
+ <option value="false" #{'selected' if !@conf['trackback_disp_pingurl']}>非表示</options>
29
+ </select></p>
30
+ HTML
31
+ end
32
+
33
+ # Local Variables:
34
+ # mode: ruby
35
+ # indent-tabs-mode: t
36
+ # tab-width: 3
37
+ # ruby-indent-level: 3
38
+ # End:
@@ -0,0 +1,46 @@
1
+ # -*- coding: utf-8 -*-
2
+ # ja/todo.rb
3
+ #
4
+ # Japanese resources for todo.rb
5
+ #
6
+ # Copyright (c) 2001,2002,2003 Junichiro KITA <kita@kitaj.no-ip.com>
7
+ # Distributed under the GPL
8
+ #
9
+
10
+ def todo_msg_today; "今日"; end
11
+ def todo_msg_in_time(days); "あと#{days}日"; end
12
+ def todo_msg_late(days); "#{days}日遅れ"; end
13
+ def todo_config_label; "ToDo編集"; end
14
+
15
+ add_conf_proc('ToDo', 'ToDoプラグイン') do
16
+ saveconf_todo
17
+ todo_init
18
+
19
+ <<-HTML
20
+ <h3 class="subtitle">使い方</h3>
21
+ <p><a href="#{h @update}?conf=header">ヘッダ・フッタ</a>に'&lt;%=todo%&gt;'を追加して下さい.</p>
22
+ <h3 class="subtitle">ToDo編集</h3>
23
+ <p>一行に一つずつToDoを記述します.ToDoの形式は</p>
24
+ <pre>優先度[期限] すること</pre>
25
+ <p>です.「優先度」と「すること」の間は1つ以上のスペースで区切ります.</p>
26
+ <p>優先度は省略可能です。優先度を指定する場合は1〜99の整数を指定します.それ以外の優先度を指定した場合,そのToDoは無視されます.</p>
27
+ <p>期限は省略可能です.期限を指定する場合は'['と']'で囲むようにしてください.期限で指定した文字列をrubyの<a href="http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=ParseDate">ParseDateモジュール</a>で解析できれば,期限までの日数もあわせて表示します.</p>
28
+ <p><textarea name="todo.todos" cols="70" rows="15">#{@todos.join("\n")}</textarea></p>
29
+
30
+ <h3 class="subtitle">ToDoリストのタイトル</h3>
31
+ <p>ToDoリストのタイトルを指定します。何も指定しないと、&quot;ToDo:&quot;が利用されます。</p>
32
+ <p><input name="todo.title" value="#{h(@conf['todo.title']) if @conf['todo.title']}"></p>
33
+
34
+ <h3 class="subtitle">表示するToDoの件数</h3>
35
+ <p>表示するToDoの件数を表示します。何も指定しないと、10件が設定されます。</p>
36
+ <p>最大<input name="todo.n" value="#{h @conf['todo.n']}" size="3">件</p>
37
+ HTML
38
+ end
39
+
40
+ # Local Variables:
41
+ # mode: ruby
42
+ # indent-tabs-mode: t
43
+ # tab-width: 3
44
+ # ruby-indent-level: 3
45
+ # End:
46
+ # vim: ts=3
@@ -0,0 +1,402 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ = その日の天気プラグイン((-$Id: weather.rb,v 1.13 2008-03-02 09:01:46 kazuhiko Exp $-))
4
+ その日の天気を、その日の日記を最初に更新する時に取得して保存し、それぞれ
5
+ の日の日記の上部に表示します。
6
+
7
+ == 入手方法
8
+ このファイルの最新版は、
9
+ ((<URL:http://zunda.freeshell.org/d/plugin/weather.rb>))
10
+ にあります。
11
+
12
+ == 使い方
13
+ === インストールと設定の方法
14
+ このファイルをpluginディレクトリにコピーしてください。漢字コードは
15
+ EUC-JPです。
16
+
17
+ 次に、tdiary.confを編集するか、WWWブラウザからtDiaryの設定画面から「その
18
+ 日の天気」を選んで、天気データをいただいてくるURLを設定してください。
19
+ tdiary.confを編集する場合には、@options['weather.url']に設定してくださ
20
+ い。両方で設定をした場合には、tDiaryの設定画面での設定が優先されます。
21
+
22
+ 例えば、 NOAA National Weather Serviceを利用する場合には、
23
+ ((<URL:http://weather.noaa.gov/>))から、Select a country...で国名を選ん
24
+ でGo!ボタンを押し、次に観測地点を選んでください。その時表示されたページ
25
+ のURLを、例えば、
26
+ @options['weather.url'] = 'http://weather.noaa.gov/weather/current/RJTI.html'
27
+ と書いてください。この例では東京ヘリポート((-どこにあるんだろ?-))の天気
28
+ が記録されます。情報の二次利用が制限されている場合がありますので、そのよ
29
+ うなWWWページから情報を取得しないように注意してください。
30
+
31
+ さらに、将来日記のタイムゾーンが変化する可能性がある方は、今のタイムゾー
32
+ ンを、@options['weather.tz']か、環境変数TZに設定しておくことをお勧めし
33
+ ます。これによって、日記が引越した後も、天気データ取得時のタイムゾーン
34
+ で天気を表示し続けることができます。tdiary.confに設定する場合は、例えば
35
+ 日本標準時の場合は、
36
+ @options['weather.tz'] = 'Japan'
37
+ と設定してください。
38
+
39
+ これで、新しい日の日記を書く度に、設定したURLから天候データを取得して、
40
+ 表示するようになるはずです。天気は、
41
+ <div class="weather"><span class="weather">hh:mm現在<a href="取得元URL">天気(温度)</a></span></div>
42
+ という形式でそれぞれの日の日記の上に表示されます。必要ならば、CSSを編集
43
+ してください。
44
+ div.weather {
45
+ text-align: right;
46
+ font-size: 75%;
47
+ }
48
+ などとしておけばいいでしょう。
49
+
50
+ 日記に使用しているWWWサーバーからサーバーの権限でWWWページの閲覧ができる
51
+ 必要があります。環境変数TZを変更する場合がありますので、secureモードでは
52
+ 使えません。mod_rubyでの動作は今のところ確認していません。
53
+
54
+ デフォルトでは、携帯端末から閲覧された場合には天気を表示しないようになっ
55
+ ています。携帯からでも天気を表示したい場合には、設定画面から設定するか、
56
+ tdiary.confに
57
+ @options['weather.show_mobile'] = true
58
+ を指定してください。
59
+
60
+ === 保存される天気データについて
61
+ 天気データは、
62
+ * 書いてる日記の日付と現在の日付が一致し、
63
+ * その日の天気データがまだ取得されていないか、前回の取得時にエラーがあった
64
+ 場合に、取得されます。
65
+
66
+ 天気データは、@options['weather.dir']に設定したディレクトリか、
67
+ @cache_path/weather/ ディレクトリ以下に、年/年月.weather というファイ ル
68
+ 名で保存されます。タブ区切りのテキストファイルですので必要に応じて編集
69
+ することができます。タブの数を変えてしまわないように気をつけて編集してく
70
+ ださい。フォーマットの詳細は、Weather.to_sメソッドを参照してください。
71
+
72
+ 天気データには、データの取得時刻が記録されています。また、データの取得元
73
+ から得られた、天気の更新時刻が記録されていることもあります。これらの時刻
74
+ は、世界標準時(UNIX時刻)に直されて記録されていて、日記に表示する時に現地
75
+ 時刻に直しています。このため、天気を記録した時のタイムゾーンと、天気を表
76
+ 示する時のタイムゾーンが異なってしまうと、例えば朝の天気だったものが夕方
77
+ の天気として表示されてしまうことになります。これを防ぐには、例えば、
78
+ @options['weather.tz'] = 'Japan'
79
+ というオプションを設定して、データにタイムゾーンを記録するようにしてくだ
80
+ さい。tdiary.confなどで、
81
+ ENV['TZ'] = 'Japan'
82
+ などとして環境変数TZを設定することでも同様の効果が得られます。環境変数を
83
+ 設定した場合は、tDiary全体の動作に影響がありますので留意してください。
84
+
85
+ なお、1.1.2.19かそれ以前のバージョンのweather.rbではタイムゾーンの情報が
86
+ 天気データに記録されていません。お手数ですが、必要ならば、ファイルを編集
87
+ して、タイムゾーン情報を追加してください。記録ファイルは、デフォルトでは、
88
+ .../cache/weather/2003/200301.weather
89
+ などにあります。取得元URLの次の数字がUNIX時刻ですので、それに続けて、空
90
+ 白を一つと、Japanなどタイムゾーンを示す文字列を入力してください。データ
91
+ 取得時にエラーがなければ、その後2つのタブに続いて、天気のデータが記録さ
92
+ れているはずです。
93
+
94
+ === オプション
95
+ ==== 必ず指定が必要な項目
96
+ : @options['weather.url']
97
+ 天気データを得られるWWWページのURL。
98
+ @options['weather.url'] = 'http://weather.noaa.gov/weather/current/RJTI.html'
99
+ など。情報の二次利用が制限されている場合がありますので、そのようなWWW
100
+ ページから情報を取得しないように注意してください。ブラウザから設定した
101
+ 場合はそちらが優先されます。
102
+
103
+ ==== 指定しなくてもいい項目
104
+ : @options['weather.show_mobile'] = false
105
+ trueの場合は、携帯端末からのアクセスの場合に、i_html_stringで生成され
106
+ たCHTMLを表示します。falseの場合は、携帯端末からのアクセスの場合には天
107
+ 気を表示しません。ブラウザから設定した場合はそちらが優先されます。
108
+
109
+ : @options['weather.tz']
110
+ データを取得した場所のタイムゾーン。コマンドライン上で例えば、
111
+ TZ=Japan date
112
+ を実行して正しい時刻が表示される文字列を設定してください。Linuxでは、
113
+ /usr/share/zoneinfo以下のファイル名を指定すればいいはずです。ブラウザ
114
+ から設定した場合はそちらが優先されます。このオプションが指定されてい
115
+ ない場合、環境変数TZが設定されていればその値を使用します。そうでなけ
116
+ ればタイムゾーンは記録しません。
117
+
118
+ 天気データにタイムゾーンが記録されていない場合は、もし将来日記のタイム
119
+ ゾーンが変更された場合に違う時刻を表示することになります。
120
+
121
+ 日付の判定など、天気データの記録以外の時刻の管理には、日記全体のタイム
122
+ ゾーンが用いられます。
123
+
124
+ : @options['weather.oldest'] = 21600
125
+ 得られたデータが、このオプション(秒)より古い場合には、天気の取得エラー
126
+ になり、次の日記の更新で再びデータを取得しようとします。デフォルトは6
127
+ 時間(21600秒)です。このオプションがnilに設定されている場合には、どんな
128
+ に古いデータでも受け入れます。
129
+
130
+ : @options['weather.show_error']
131
+ データ取得時にエラーがあった場合にそれを日記に表示したい場合にはtrueに
132
+ します。デフォルトでは表示しません。
133
+
134
+ : @options['weather.dir']
135
+ データの保存場所。デフォルトは以下の通り。
136
+ "#{@cache_path}/weather/"
137
+ この下に、年/年月.weather というファイルが作られます。これを、
138
+ @data_pathと同じにすると、日記のデータと同じディレクトリに天気のデータ
139
+ を保存できるかもしれません。
140
+
141
+ : @options['weather.items']
142
+ WWWページから取得する項目。デフォルトは、ソースをご覧ください。
143
+ parse_htmlで得られる項目名をキー、記録する項目名を値としたハッシュです。
144
+ www.nws.noaa.govのフォーマットに合わせて、多少の単位の変動には耐えられ
145
+ るようにしてあります。これを変更する場合には、parse_htmlメソッドも編
146
+ 集する必要があるかもしれません。
147
+
148
+ : @options['weather.header']
149
+ HTTPリクエストヘッダに追加する項目のハッシュ
150
+ @options['weather.header'] = {'Accept-language' => 'ja'}
151
+ など。((-Accept-languageによって取得する言語を選べるサイトもあります。-))
152
+ デフォルトでは追加のヘッダは送信しません。
153
+
154
+ == 天候の翻訳について
155
+ NWSからのデータは英語ですので、適当に日本語に直してから出力するようにし
156
+ てあります。翻訳は、WeatherTranslatorモジュールによっていて、変換表は、
157
+ Weatherクラスに、Words_jaという配列定数として与えてあります。
158
+
159
+ 語彙はまだまだ充分ではないと思います。知らない単語は英語のまま表示されま
160
+ すので、Words_jaに適宜追加してください。
161
+ ((<URL:http://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?weather%2Erb>))
162
+ に書いておくと、そのうち配布元で追加されるかもしれません。
163
+
164
+ == 細かい設定
165
+ 天気データ取得元や好みに合わて、以下のメソッドを変更することで、より柔
166
+ 軟な設定ができます。
167
+
168
+ === 表示に関するもの
169
+ : Weather.html_string
170
+ @data[item]を参照して、天気を表示するHTML断片を作ってください。
171
+
172
+ : Weather.error_html_string
173
+ データ取得エラーがあった場合に、@errorを参照してエラーを表示するHTML断
174
+ 片を作ってください。
175
+
176
+ 携帯端末からの閲覧の際には、Weather.i_html_stringが使われます。エラーの
177
+ 表示はできません。
178
+
179
+ === 天気データの取得に関するもの
180
+ : Weather.parse_html( html, items )
181
+ ((|html|))文字列を解析して、((|items|))ハッシュに従って@data[item]を定
182
+ 義してください。((|items|))には@optins['weather.items']または
183
+ Weather_default_itemsが代入されます。返り値は利用されません。テーブル
184
+ を用いた天気情報源ならば、このメソッドをあまり改造しないで使えるかも
185
+ しれません。
186
+
187
+ == まだやるべきこと
188
+ * 天気に応じたアイコンの表示 -どうやろうか?
189
+
190
+ == 謝辞
191
+ その日の天気プラグインのアイディアを提供してくださったhsbtさん、実装のヒ
192
+ ントを提供してくださったzoeさんに感謝します。また、NOAAの情報を提供して
193
+ くださったkotakさんに感謝します。
194
+
195
+ The author appreciates National Weather Service
196
+ ((<URL:http://weather.noaa.gov/>)) making such valuable data available
197
+ in public domain as described in ((<URL:http://www.noaa.gov/wx.html>)).
198
+
199
+ == Copyright
200
+ Copyright 2003 zunda <zunda at freeshell.org>
201
+
202
+ Permission is granted for use, copying, modification, distribution,
203
+ and distribution of modified versions of this work under the terms
204
+ of GPL version 2 or later.
205
+ =end
206
+
207
+ =begin
208
+ == Instance variables
209
+ =end
210
+ @weather_plugin_name = 'その日の天気'
211
+
212
+ =begin
213
+ == Classes and methods
214
+ === WeatherTranslator module
215
+ We want Japanese displayed in a diary written in Japanese.
216
+
217
+ --- Weather::Words_ja
218
+ Array of arrays of a Regexp and a Statement to be executed.
219
+ WeatherTranslator::S.tr accepts this kind of hash to translate a
220
+ given string.
221
+ =end
222
+ require 'erb'
223
+
224
+ class Weather
225
+ Words_ja = [
226
+ [%r[\A(.*)/(.*)], '"#{S.new( $1 ).translate( table )}/#{S.new( $2 ).translate( table )}"'],
227
+ [%r[\s*\b(greater|more) than (-?[\d.]+\s*\S*)\s*]i, '"#{S.new( $2 ).translate( table )}以上"'],
228
+ [%r[^(.*?) with (.*)$]i, '"#{S.new( $2 ).translate( table )}ありの#{S.new( $1 ).translate( table )}"'],
229
+ [%r[^(.*?) during the past hours?$]i, '"直前まで#{S.new( $1 ).translate( table )}"'],
230
+ #[%r[\s*\b([\w\s]+?) in the vicinity]i, '"近辺で#{S.new( $1).translate( table )}"'],
231
+ [%r[\s*\bin the vicinity\b\s*]i, '""'],
232
+ # ... in the vicinityは無視されるようになっています。訳語が欲しい方は、
233
+ # 上のコメントアウトされている行のコメントを外してください。
234
+ [%r[\s*\bpatches of\b\s*]i, '""'],
235
+ [%r[\s*\bdirection variable\b\s*]i, '"不定"'],
236
+ [%r[\s*(-?[\d.]+)\s*\(?F\)?], '"華氏#{$1}度"'],
237
+ [%r[\s*\bmile(\(?s\)?)?\s*]i, '"マイル"'],
238
+ [%r[\s*\b(mostly |partly )clear\b\s*]i, '"晴"'],
239
+ [%r[\s*\bclear\b\s*]i, '"快晴"'],
240
+ [%r[\s*\b(mostly |partly )?cloudy\b\s*]i, '"曇"'],
241
+ [%r[\s*\bovercast\b\s*]i, '"曇"'],
242
+ [%r[\s*\blight snow showers?\b\s*]i, '"にわか雪"'],
243
+ [%r[\s*\blight snow\b\s*]i, '"小雪"'],
244
+ [%r[\s*\blight drizzle\b\s*]i, '"小雨"'],
245
+ [%r[\s*\blight rain showers?\b\s*]i, '"弱いにわか雨"'],
246
+ [%r[\s*\bheavy rain showers?\b\s*]i, '"強いにわか雨"'],
247
+ [%r[\s*\bheavy rain\b\s*]i, '"豪雨"'],
248
+ [%r[\s*\b(rain )?showers?\b\s*]i, '"にわか雨"'],
249
+ [%r[\s*\bdrizzle\b\s*]i, '"こぬか雨"'],
250
+ [%r[\s*\blight rain\b\s*]i, '"霧雨"'],
251
+ [%r[\s*\brain\b\s*]i, '"雨"'],
252
+ [%r[\s*\bmist\b\s*]i, '"靄"'],
253
+ [%r[\s*\bhaze\b\s*]i, '"霞"'],
254
+ [%r[\s*\b(partial )?(freezing )?fog\b\s*]i, '"霧"'],
255
+ [%r[\s*\bsnow\b\s*]i, '"雪"'],
256
+ [%r[\s*\bthunder( storm)?\b\s*]i, '"雷"'],
257
+ [%r[\s*\blightning\b\s*]i, '"稲光"'],
258
+ [%r[\s*\bsand\b\s*]i, '"黄砂"'],
259
+ [%r[\s*\bcumulonimbus clouds\b\s*]i, '"積乱雲"'],
260
+ [%r[\s*\bcumulus clouds\b\s*]i, '"積雲"'],
261
+ [%r[\s*\btowering\b\s*]i, '""'],
262
+ [%r[\s*\bobserved\b\s*]i, '""'],
263
+ [%r[\s*\bC\b\s*], '"℃"'],
264
+ ].freeze
265
+ end
266
+
267
+ =begin
268
+ === Weather class
269
+ Weather of a date.
270
+ --- Weather.html_string
271
+ --- Weather.error_html_string
272
+ Returns an HTML fragment showing data or error, called from
273
+ Weather.to_html.
274
+
275
+ --- Weather.i_html_string
276
+ Returns a CHTML fragment to be shown on a mobile browser.
277
+ =end
278
+ class Weather
279
+ include ERB::Util
280
+
281
+ def error_html_string
282
+ %Q|<span class="weather">お天気エラー:<a href="#{h(@url)}">#{h( @error )}</a></span>|
283
+ end
284
+
285
+ # edit this method to define how you show the weather
286
+ def html_string
287
+ has_data = false
288
+ r = '<span class="weather">'
289
+
290
+ # time stamp
291
+ if @tz then
292
+ tzbak = ENV['TZ']
293
+ ENV['TZ'] = @tz # this is not thread safe...
294
+ end
295
+ if @data['timestamp'] then
296
+ r << Time::at( @data['timestamp'].to_i ).strftime( '%H:%M' ).sub( /^0/, '' )
297
+ else
298
+ r << Time::at( @time.to_i ).strftime( '%H:%M' ).sub( /^0/, '' )
299
+ end
300
+ r << '現在'
301
+ if @tz then
302
+ ENV['TZ'] = tzbak
303
+ end
304
+
305
+ # weather
306
+ r << %Q|<a href="#{h(@url)}">|
307
+ if @data['weather'] then
308
+ r << %Q|<span class="weather">#{h( WeatherTranslator::S.new( @data['weather']).translate( Words_ja ).compact )}</span>|
309
+ has_data = true
310
+ elsif @data['condition'] then
311
+ r << %Q|<span class="condition">#{h( WeatherTranslator::S.new( @data['condition']).translate( Words_ja ).compact )}</span>|
312
+ has_data = true
313
+ end
314
+
315
+ # temperature
316
+ if @data['temperature(C)'] and t = @data['temperature(C)'].scan(/-?[\d.]+/)[-1] then
317
+ r << %Q| <span class="temperature">#{sprintf( '%.0f', t )}℃</span>|
318
+ has_data = true
319
+ end
320
+
321
+ r << "</a></span>"
322
+ return has_data ? r : ''
323
+ end
324
+
325
+ # edit this method to define how you show the weather for a mobile agent
326
+ def i_html_string
327
+ r = ''
328
+
329
+ # weather
330
+ if @data['weather'] then
331
+ r << %Q|<A HREF="#{u(@url)}">|
332
+ r << h( WeatherTranslator::S.new( @data['weather']).translate( Words_ja ).compact )
333
+ r << "</A>"
334
+ elsif @data['condition'] then
335
+ r << %Q|<A HREF="#{u(@url)}">|
336
+ r << h( WeatherTranslator::S.new( @data['condition']).translate( Words_ja ).compact )
337
+ r << "</A>"
338
+ end
339
+
340
+ return r
341
+ end
342
+ end
343
+
344
+ # www configuration interface
345
+ def weather_configure_html( conf )
346
+ <<-HTML
347
+ <h3 class="subtitle">その日の天気プラグイン</h3>
348
+ <p>その日の天気を、その日の日記を最初に更新する時に取得して保存し、
349
+ それぞれの日の日記の上部に表示します。</p>
350
+ <h4>天気データ</h4>
351
+ <p>その日の天気を、例えばNOAA National Weather Serviceを利用する場合には、
352
+ <a href="http://weather.noaa.gov/">NOAA National Weather Service</a>
353
+ から、Select a country...で国名を選んでGo!ボタンを押し、
354
+ 次に観測地点を選んでください。
355
+ そして、その時表示されたページのURLを、以下に記入してください。</p>
356
+ <p><input name="weather.url" value="#{conf['weather.url']}" size="60"></p>
357
+ <p>将来日記のタイムゾーンが変化する可能性がある方は、
358
+ 今のタイムゾーンを記録しておくことをお勧めします。
359
+ これによって、日記が引越した後も、
360
+ 天気データ取得時のタイムゾーンで天気を表示し続けることができます。</p>
361
+ <p>タイムゾーンを記録するには、例えば日本標準時の場合には、
362
+ tdiary.rbと同じディレクトリにあるtdiary.confに、
363
+ ENV['TZ'] = 'Japan'などと書き足すか、
364
+ 以下に、Japanと記入してください。</p>
365
+ <p><input name="weather.tz" value="#{conf['weather.tz']}"></p>
366
+ <h4>WWWブラウザへの表示</h4>
367
+ <p>下記から選んでください。</p>
368
+ <p><select name="weather.in_title">
369
+ <option value="false"#{' selected'unless conf['weather.in_title']}>
370
+ 本文の上に表示する
371
+ <option value="true"#{' selected'if conf['weather.in_title']}>
372
+ タイトルの横に表示する
373
+ </select></p>
374
+ <h4>携帯電話への表示</h4>
375
+ <p>下記から選んでください。</p>
376
+ <p><select name="weather.show_mobile">
377
+ <option value="true"#{' selected'if conf['weather.show_mobile']}>
378
+ 携帯電話にも今日の天気を表示する
379
+ <option value="false"#{' selected'unless conf['weather.show_mobile']}>
380
+ 携帯電話には今日の天気を表示しない
381
+ </select></p>
382
+ <h4>検索エンジンなどのロボットへの表示</h4>
383
+ <p>下記から選んでください。</p>
384
+ <p><select name="weather.show_robot">
385
+ <option value="true"#{' selected'if conf['weather.show_robot']}>
386
+ 検索エンジンなどのロボットにも今日の天気を知らせる
387
+ <option value="false"#{' selected'unless conf['weather.show_robot']}>
388
+ 検索エンジンなどのロボットには今日の天気を知らせない
389
+ </select></p>
390
+ <h4>その他の設定</h4>
391
+ <p>この他にもいくつかtdiary.confから設定できる項目があります。
392
+ 詳しくは、プラグインのファイル(weather.rb)をご覧ください。</p>
393
+ HTML
394
+ end
395
+
396
+
397
+ # Local Variables:
398
+ # mode: ruby
399
+ # indent-tabs-mode: t
400
+ # tab-width: 3
401
+ # ruby-indent-level: 3
402
+ # End: