tdiary-contrib 3.2.2.20130518

Sign up to get free protection for your applications and to get access to all the features.
Files changed (393) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +13 -0
  5. data/Gemfile.lock +35 -0
  6. data/README.en.md +12 -0
  7. data/README.md +13 -0
  8. data/Rakefile +41 -0
  9. data/doc/en/filter/spambayes.txt +3 -0
  10. data/doc/en/plugin.txt +1 -0
  11. data/doc/en/style/hatena.txt +10 -0
  12. data/doc/en/style/markdown.txt +16 -0
  13. data/doc/en/util.txt +1 -0
  14. data/doc/ja/filter/antirefspam.history.txt +59 -0
  15. data/doc/ja/filter/antirefspam.txt +86 -0
  16. data/doc/ja/filter/comment_key.ja.html +182 -0
  17. data/doc/ja/filter/spambayes.txt +3 -0
  18. data/doc/ja/plugin/add_bookmark.txt +50 -0
  19. data/doc/ja/plugin/category_to_tag.txt +21 -0
  20. data/doc/ja/plugin/cocoment.txt +31 -0
  21. data/doc/ja/plugin/google_adsense.txt +25 -0
  22. data/doc/ja/plugin/google_analytics.txt +7 -0
  23. data/doc/ja/plugin/image_detail.txt +69 -0
  24. data/doc/ja/plugin/image_gps.txt +36 -0
  25. data/doc/ja/plugin/image_gps2.txt +41 -0
  26. data/doc/ja/plugin/livedoor_weather.txt +105 -0
  27. data/doc/ja/plugin/opensearch_ad.txt +16 -0
  28. data/doc/ja/plugin/section_footer.txt +84 -0
  29. data/doc/ja/plugin/select_theme.txt +1 -0
  30. data/doc/ja/plugin.txt +13 -0
  31. data/doc/ja/style/hatena.txt +10 -0
  32. data/doc/ja/style/markdown.txt +13 -0
  33. data/doc/ja/util.txt +12 -0
  34. data/filter/antirefspam.rb +263 -0
  35. data/filter/commentkey.rb +29 -0
  36. data/filter/commentsize.rb +18 -0
  37. data/filter/hidecomment.rb +13 -0
  38. data/filter/iplookup.rb +55 -0
  39. data/filter/plugin/antirefspam.rb +59 -0
  40. data/filter/plugin/commentkey.rb +58 -0
  41. data/filter/plugin/commentsize.rb +12 -0
  42. data/filter/plugin/en/iplookup.rb +9 -0
  43. data/filter/plugin/en/spambayes.rb +123 -0
  44. data/filter/plugin/iplookup.rb +39 -0
  45. data/filter/plugin/ja/antirefspam.rb +91 -0
  46. data/filter/plugin/ja/commentkey.rb +17 -0
  47. data/filter/plugin/ja/commentsize.rb +6 -0
  48. data/filter/plugin/ja/iplookup.rb +9 -0
  49. data/filter/plugin/ja/spambayes.rb +124 -0
  50. data/filter/plugin/spambayes.rb +501 -0
  51. data/filter/plugin/zh/iplookup.rb +9 -0
  52. data/filter/rblcheck.rb +36 -0
  53. data/filter/spambayes.rb +535 -0
  54. data/filter/spamlookup.rb +37 -0
  55. data/io/dbi_io/ChangeLog +19 -0
  56. data/io/dbi_io/README.ja +39 -0
  57. data/io/dbi_io/dbi_io.rb +181 -0
  58. data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
  59. data/io/dbi_io/tdiary_table.sql +42 -0
  60. data/js/appstore.js +109 -0
  61. data/js/datepicker.js +69 -0
  62. data/js/editor.js +82 -0
  63. data/js/flickr.js +157 -0
  64. data/js/image_ex.js +79 -0
  65. data/js/jquery.socialbutton.js +842 -0
  66. data/js/nicovideo.js +17 -0
  67. data/js/picasa.js +322 -0
  68. data/js/plugin_checker.js +71 -0
  69. data/js/prettify/lang-apollo.js +2 -0
  70. data/js/prettify/lang-clj.js +18 -0
  71. data/js/prettify/lang-css.js +2 -0
  72. data/js/prettify/lang-go.js +1 -0
  73. data/js/prettify/lang-hs.js +2 -0
  74. data/js/prettify/lang-lisp.js +3 -0
  75. data/js/prettify/lang-lua.js +2 -0
  76. data/js/prettify/lang-ml.js +2 -0
  77. data/js/prettify/lang-n.js +4 -0
  78. data/js/prettify/lang-proto.js +1 -0
  79. data/js/prettify/lang-scala.js +2 -0
  80. data/js/prettify/lang-sql.js +2 -0
  81. data/js/prettify/lang-tex.js +1 -0
  82. data/js/prettify/lang-vb.js +2 -0
  83. data/js/prettify/lang-vhdl.js +3 -0
  84. data/js/prettify/lang-wiki.js +2 -0
  85. data/js/prettify/lang-xq.js +3 -0
  86. data/js/prettify/lang-yaml.js +2 -0
  87. data/js/prettify/prettify.css +1 -0
  88. data/js/prettify/prettify.js +28 -0
  89. data/js/referer.js +17 -0
  90. data/js/show_and_hide.js +39 -0
  91. data/js/socialbutton.js +126 -0
  92. data/js/twitter_anywhere.js +28 -0
  93. data/js/yahoo_kousei.js +21 -0
  94. data/lib/bayes/convert.rb +34 -0
  95. data/lib/bayes.rb +232 -0
  96. data/lib/exifparser/BUGS +1 -0
  97. data/lib/exifparser/ChangeLog +169 -0
  98. data/lib/exifparser/README +15 -0
  99. data/lib/exifparser/install.rb +1015 -0
  100. data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
  101. data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
  102. data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
  103. data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
  104. data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
  105. data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
  106. data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
  107. data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
  108. data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
  109. data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
  110. data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
  111. data/lib/exifparser/lib/exifparser/scan.rb +278 -0
  112. data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
  113. data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
  114. data/lib/exifparser/lib/exifparser/utils.rb +88 -0
  115. data/lib/exifparser/lib/exifparser.rb +265 -0
  116. data/lib/exifparser/sample/exifview.rb +279 -0
  117. data/lib/tdiary-contrib.rb +19 -0
  118. data/lib/wgs2tky.rb +93 -0
  119. data/misc/section_footer2/buzzurl.yaml +6 -0
  120. data/misc/section_footer2/fc2.yaml +6 -0
  121. data/misc/section_footer2/ldc.yaml +6 -0
  122. data/misc/section_footer2/retweet.yaml +7 -0
  123. data/misc/section_footer2/twitter.yaml +7 -0
  124. data/misc/section_footer2/yahoo.yaml +6 -0
  125. data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
  126. data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
  127. data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
  128. data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
  129. data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
  130. data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
  131. data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
  132. data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
  133. data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
  134. data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
  135. data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
  136. data/plugin/add_bookmark.rb +89 -0
  137. data/plugin/apple_webclip.rb +26 -0
  138. data/plugin/appstore.rb +47 -0
  139. data/plugin/bigpresen.rb +86 -0
  140. data/plugin/bitly.rb +39 -0
  141. data/plugin/bootstrap-navi.rb +54 -0
  142. data/plugin/canonical.rb +9 -0
  143. data/plugin/category_similar.rb +73 -0
  144. data/plugin/category_to_tag.rb +60 -0
  145. data/plugin/category_to_tagcloud.rb +172 -0
  146. data/plugin/cocomment.rb +37 -0
  147. data/plugin/code-prettify.rb +23 -0
  148. data/plugin/coderwall.rb +34 -0
  149. data/plugin/datepicker.rb +28 -0
  150. data/plugin/day2section.rb +20 -0
  151. data/plugin/del_footer.rb +111 -0
  152. data/plugin/description_from_body.rb +23 -0
  153. data/plugin/development.rb +16 -0
  154. data/plugin/editor.rb +11 -0
  155. data/plugin/en/add_bookmark.rb +20 -0
  156. data/plugin/en/del_footer.rb +10 -0
  157. data/plugin/en/git-register.rb +3 -0
  158. data/plugin/en/livedoor_weather.rb +25 -0
  159. data/plugin/en/microsummary.rb +18 -0
  160. data/plugin/en/nicovideo.rb +38 -0
  161. data/plugin/en/openid.rb +8 -0
  162. data/plugin/en/section_footer.rb +6 -0
  163. data/plugin/en/section_footer2.rb +3 -0
  164. data/plugin/en/socialbutton.rb +5 -0
  165. data/plugin/everytrail.rb +39 -0
  166. data/plugin/facebook_comments.rb +59 -0
  167. data/plugin/flickr.rb +209 -0
  168. data/plugin/gist.rb +16 -0
  169. data/plugin/git-register.rb +240 -0
  170. data/plugin/github_badge.rb +27 -0
  171. data/plugin/github_link.rb +9 -0
  172. data/plugin/goo_gl.rb +42 -0
  173. data/plugin/google_adsense.rb +132 -0
  174. data/plugin/google_analytics.rb +39 -0
  175. data/plugin/google_map.rb +168 -0
  176. data/plugin/google_sitemaps.rb +60 -0
  177. data/plugin/google_webmaster.rb +22 -0
  178. data/plugin/hatena_bookmark_nocomment.rb +9 -0
  179. data/plugin/hatena_star.rb +66 -0
  180. data/plugin/hb_footer.rb +255 -0
  181. data/plugin/hb_footer4sec.rb +244 -0
  182. data/plugin/hb_footer4sec_js.rb +30 -0
  183. data/plugin/hide_comment_form.rb +4 -0
  184. data/plugin/hide_sidebar_iphone.rb +21 -0
  185. data/plugin/iddy.rb +81 -0
  186. data/plugin/image_detail.rb +143 -0
  187. data/plugin/image_ex.rb +462 -0
  188. data/plugin/image_gps.rb +128 -0
  189. data/plugin/inline_wiki.rb +6 -0
  190. data/plugin/instagr.rb +64 -0
  191. data/plugin/ja/add_bookmark.rb +20 -0
  192. data/plugin/ja/del_footer.rb +10 -0
  193. data/plugin/ja/flickr.rb +62 -0
  194. data/plugin/ja/git-register.rb +3 -0
  195. data/plugin/ja/google_sitemaps.rb +35 -0
  196. data/plugin/ja/livedoor_weather.rb +25 -0
  197. data/plugin/ja/microsummary.rb +18 -0
  198. data/plugin/ja/nicovideo.rb +41 -0
  199. data/plugin/ja/openid.rb +7 -0
  200. data/plugin/ja/section_footer.rb +6 -0
  201. data/plugin/ja/section_footer2.rb +4 -0
  202. data/plugin/ja/socialbutton.rb +6 -0
  203. data/plugin/jdate.rb +20 -0
  204. data/plugin/jholiday.rb +16 -0
  205. data/plugin/jmonth.rb +20 -0
  206. data/plugin/jquery_ui_theme.rb +55 -0
  207. data/plugin/jroku.rb +28 -0
  208. data/plugin/jyear.rb +37 -0
  209. data/plugin/latlonglab_route.rb +25 -0
  210. data/plugin/lazy_referer.rb +38 -0
  211. data/plugin/livedoor_weather.rb +180 -0
  212. data/plugin/make_link.rb +44 -0
  213. data/plugin/makerss_category.rb +43 -0
  214. data/plugin/makerss_comment.rb +35 -0
  215. data/plugin/microsummary.rb +62 -0
  216. data/plugin/mm_footer.rb +215 -0
  217. data/plugin/monthly_autopagerize.rb +67 -0
  218. data/plugin/my_hotentry.rb +132 -0
  219. data/plugin/navi_day.rb +118 -0
  220. data/plugin/navi_this_month.rb +15 -0
  221. data/plugin/nicovideo.rb +115 -0
  222. data/plugin/notify_miniblog.rb +134 -0
  223. data/plugin/ogp.rb +55 -0
  224. data/plugin/ohmsha_estore.rb +71 -0
  225. data/plugin/openid.rb +90 -0
  226. data/plugin/opensearch_ad.rb +33 -0
  227. data/plugin/picasa.rb +56 -0
  228. data/plugin/plugin_checker.rb +41 -0
  229. data/plugin/popit.rb +22 -0
  230. data/plugin/prettify.rb +19 -0
  231. data/plugin/prezi.rb +10 -0
  232. data/plugin/profile.rb +222 -0
  233. data/plugin/puboo.rb +93 -0
  234. data/plugin/pygments_css.rb +76 -0
  235. data/plugin/rating.rb +419 -0
  236. data/plugin/recent_estraier.rb +50 -0
  237. data/plugin/recent_tweet.rb +71 -0
  238. data/plugin/retweet.rb +86 -0
  239. data/plugin/rubykaigi.rb +99 -0
  240. data/plugin/search-bing.rb +87 -0
  241. data/plugin/search-default.rb +264 -0
  242. data/plugin/search-google-custom.rb +60 -0
  243. data/plugin/search-yahoo-websearch.rb +121 -0
  244. data/plugin/search-yahoo.rb +109 -0
  245. data/plugin/section_footer.rb +195 -0
  246. data/plugin/section_footer2.rb +278 -0
  247. data/plugin/section_permalink.rb +73 -0
  248. data/plugin/section_permalink_anchor.rb +39 -0
  249. data/plugin/select_style.rb +42 -0
  250. data/plugin/select_theme.rb +90 -0
  251. data/plugin/show_and_hide.rb +77 -0
  252. data/plugin/slideshare.rb +10 -0
  253. data/plugin/socialbutton.rb +60 -0
  254. data/plugin/tatsu_zine.rb +93 -0
  255. data/plugin/tdiarygraph_flashstyle.rb +296 -0
  256. data/plugin/tdiarytimes.rb +166 -0
  257. data/plugin/tdiarytimes2.rb +406 -0
  258. data/plugin/tdiarytimes_flashstyle.rb +263 -0
  259. data/plugin/tdiarytimes_textstyle.rb +290 -0
  260. data/plugin/title_anchor.rb +16 -0
  261. data/plugin/tweet_quote.rb +106 -0
  262. data/plugin/twitpic.rb +10 -0
  263. data/plugin/twitter.rb +46 -0
  264. data/plugin/twitter_anywhere.rb +209 -0
  265. data/plugin/twitter_badge.rb +42 -0
  266. data/plugin/twitter_js.rb +59 -0
  267. data/plugin/ustream.rb +19 -0
  268. data/plugin/vimeo.rb +14 -0
  269. data/plugin/volatile.rb +89 -0
  270. data/plugin/vote.rb +100 -0
  271. data/plugin/wikiloc.rb +27 -0
  272. data/plugin/windex.rb +512 -0
  273. data/plugin/yahoo_kousei.rb +79 -0
  274. data/plugin/yahoo_map.rb +97 -0
  275. data/plugin/youtube.rb +33 -0
  276. data/plugin/yshop.rb +189 -0
  277. data/plugin/zenback.rb +46 -0
  278. data/spec/apple_webclip_spec.rb +46 -0
  279. data/spec/fixtures/friendfeed.xml +2 -0
  280. data/spec/fixtures/github.json +1 -0
  281. data/spec/fixtures/twitter.xml +73 -0
  282. data/spec/gist_spec.rb +16 -0
  283. data/spec/github_link_spec.rb +39 -0
  284. data/spec/google_analytics_spec.rb +60 -0
  285. data/spec/jdate_spec.rb +23 -0
  286. data/spec/jmonth_spec.rb +28 -0
  287. data/spec/jyear_spec.rb +21 -0
  288. data/spec/my_hotentry_spec.rb +78 -0
  289. data/spec/openid_spec.rb +246 -0
  290. data/spec/opensearch_ad_spec.rb +50 -0
  291. data/spec/profile_spec.rb +88 -0
  292. data/spec/rcov.opts +2 -0
  293. data/spec/spec_helper.rb +223 -0
  294. data/spec/title_anchor_spec.rb +39 -0
  295. data/spec/twitter_js_spec.rb +116 -0
  296. data/spec/youtube_spec.rb +20 -0
  297. data/style/hatena_style.rb +1011 -0
  298. data/style/markdown_style.rb +239 -0
  299. data/style/wikiext_style.rb +21 -0
  300. data/tdiary-contrib.gemspec +25 -0
  301. data/util/clean-spam/README.ja +1 -0
  302. data/util/clean-spam/tdiary-comment-clean +46 -0
  303. data/util/clean-spam/tdiary-comment-clean2 +81 -0
  304. data/util/clean-spam/tdiary-referer-clean +46 -0
  305. data/util/convert_pstore.rb +82 -0
  306. data/util/estraier-search/ChangeLog +36 -0
  307. data/util/estraier-search/README.ja +114 -0
  308. data/util/estraier-search/en/estraier-register.rb +3 -0
  309. data/util/estraier-search/estraier-register.rb +298 -0
  310. data/util/estraier-search/estraier-search.rb +273 -0
  311. data/util/estraier-search/estraier.rhtml +73 -0
  312. data/util/estraier-search/estraier.rxml +23 -0
  313. data/util/estraier-search/i.estraier.rhtml +31 -0
  314. data/util/estraier-search/ja/estraier-register.rb +3 -0
  315. data/util/image-gallery/README.ja +27 -0
  316. data/util/image-gallery/image-gallery.rb +523 -0
  317. data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
  318. data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
  319. data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
  320. data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
  321. data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
  322. data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
  323. data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
  324. data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
  325. data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
  326. data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
  327. data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
  328. data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
  329. data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
  330. data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
  331. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
  332. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
  333. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
  334. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
  335. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
  336. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
  337. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
  338. data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
  339. data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
  340. data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
  341. data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
  342. data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
  343. data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
  344. data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
  345. data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
  346. data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
  347. data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
  348. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
  349. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
  350. data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
  351. data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
  352. data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
  353. data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
  354. data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
  355. data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
  356. data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
  357. data/util/image-gallery/skel/gallery.rhtml +154 -0
  358. data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
  359. data/util/image-gallery/tdiary.conf.igsample +8 -0
  360. data/util/image-gallery/theme/image-gallery.css +85 -0
  361. data/util/image2flickr.rb +282 -0
  362. data/util/posttdiary/README.ja +12 -0
  363. data/util/posttdiary/posttdiary-ex.rb +1155 -0
  364. data/util/posttdiary/posttdiary.rb +245 -0
  365. data/util/rast-search/ChangeLog +55 -0
  366. data/util/rast-search/README.ja +99 -0
  367. data/util/rast-search/en/rast-register.rb +3 -0
  368. data/util/rast-search/i.rast.rhtml +33 -0
  369. data/util/rast-search/ja/rast-register.rb +3 -0
  370. data/util/rast-search/rast-register.rb +326 -0
  371. data/util/rast-search/rast-search.rb +249 -0
  372. data/util/rast-search/rast.rhtml +66 -0
  373. data/util/rast-search/rast.rxml +21 -0
  374. data/util/section_link/README +11 -0
  375. data/util/section_link/misc/plugin/section_link.rb +68 -0
  376. data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
  377. data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
  378. data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
  379. data/util/section_link/tdiary/wikiext_style.rb +36 -0
  380. data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
  381. data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
  382. data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
  383. data/util/tdiary-grep/README +4 -0
  384. data/util/tdiary-grep/grep.rb +445 -0
  385. data/util/tdiary-mode/http.el +130 -0
  386. data/util/tdiary-mode/tdiary-mode.el +613 -0
  387. data/util/tdiary-vim/ChangeLog +25 -0
  388. data/util/tdiary-vim/README +60 -0
  389. data/util/tdiary-vim/tdiary.vim +350 -0
  390. data/util/tdiarysearch/README.en +53 -0
  391. data/util/tdiarysearch/README.ja +99 -0
  392. data/util/tdiarysearch/search.rb +504 -0
  393. metadata +497 -0
@@ -0,0 +1,143 @@
1
+ # -*- coding: utf-8 -*-
2
+ # image_gps.rb $Revision: 1.1 $
3
+ #
4
+ # 概要:
5
+ #
6
+ #
7
+ # 使い方:
8
+ # 絵日記Plugin(image.rb)とおなじ
9
+ #
10
+ # Copyright (c) 2009,2010 kp <kp@mmho.no-ip.org>
11
+ # Distributed under the GPL
12
+ #
13
+
14
+ =begin ChangeLog
15
+ 2010-04-21 kp
16
+ * スマートフォン対応
17
+ * Google Maps API Keyが設定されていない場合はStaticMAPを生成しない
18
+ * リンク先をGoogle Mapsに統一
19
+ 2009-06-03 kp
20
+ * first version
21
+ * fork from image_gps2.rb
22
+ =end
23
+
24
+ require 'exifparser'
25
+
26
+ def tky2wgs lat,lon
27
+ lat_w = lat - lat*0.00010695 + lon*0.000017464 + 0.0046017
28
+ lon_w = lon - lat*0.000046038 - lon*0.000083043 + 0.010040
29
+ lat = lat_w
30
+ lon = lon_w
31
+ return lat,lon
32
+ end
33
+
34
+ def image( id, alt = 'image', thumbnail = nil, size = nil, place = 'photo' )
35
+ if @conf.secure then
36
+ image = "#{@image_date}_#{id}.jpg"
37
+ image_t = "#{@image_date}_#{thumbnail}.jpg" if thumbnail
38
+ else
39
+ image = image_list( @image_date )[id.to_i]
40
+ image_t = image_list( @image_date )[thumbnail.to_i] if thumbnail
41
+ end
42
+ if size then
43
+ if size.kind_of?(Array)
44
+ size = %Q[ width="#{size[0]}" height="#{size[1]}"]
45
+ else
46
+ size = %Q[ width="#{size.to_i}"]
47
+ end
48
+ else
49
+ size = ""
50
+ end
51
+
52
+ exif = ExifParser.new("#{@image_dir}/#{image}".untaint) rescue nil
53
+
54
+ google = "http://maps.google.co.jp"
55
+
56
+ if exif
57
+ #GPS Info
58
+ begin
59
+ lat = exif['GPSLatitude'].value
60
+ lat = lat[0].to_f + lat[1].to_f/60 + lat[2].to_f/3600
61
+ lat = -lat if exif['GPSLatitudeRef'].value == 'S'
62
+ lon = exif['GPSLongitude'].value
63
+ lon = lon[0].to_f + lon[1].to_f/60 + lon[2].to_f/3600
64
+ lon = -lon if exif['GPSLongitudeRef'].value == 'W'
65
+ datum = exif['GPSMapDatum'].value if exif.tag?('GPSMapDatum')
66
+ lat,lon = tky2wgs(lat,lon) if datum == 'TOKYO'
67
+ rescue
68
+ lat = nil
69
+ end
70
+ detail = "<ul>"
71
+ detail += "<li>#{exif['Model'].to_s}" if exif.tag?('Model')
72
+ detail += "<li>焦点距離:#{exif['FocalLength'].to_s}" if exif.tag?('FocalLength')
73
+ detail += "<li>F値:#{exif['FNumber'].to_s}" if exif.tag?('FNumber')
74
+ detail += "<li>露出時間:#{exif['ExposureTime'].to_s}" if exif.tag?('ExposureTime')
75
+ detail += "<li>露出補正:#{exif['ExposureBiasValue'].to_s}" if exif.tag?('ExposureBiasValue')
76
+ unless lat.nil?
77
+ unless (@conf['image_gps.google_maps_api_key'] == '' || @conf.smartphone?)
78
+ img_map = %Q["http://maps.google.com/staticmap?format=gif&amp;]
79
+ img_map += %Q[center=#{lat},#{lon}&amp;zoom=14&amp;size=200x200&amp;markers=#{lat},#{lon}&amp;]
80
+ img_map += %Q[key=#{@conf['image_gps.google_maps_api_key']}&amp;sensor=false"]
81
+ end
82
+ map_link = %Q[<a href="#{google}/maps?q=#{lat},#{lon}">]
83
+ map_link += "#{exif['GPSLatitude'].to_s},#{exif['GPSLatitudeRef'].value}"
84
+ map_link += " #{exif['GPSLongitude'].to_s},#{exif['GPSLongitudeRef'].value}"
85
+ map_link += %Q[<img class="map" src=#{img_map}>] if img_map
86
+ map_link += "</a>"
87
+ detail += "<li>"+map_link
88
+ end
89
+ detail += "</ul>"
90
+ end
91
+
92
+ img = %Q[<img class="#{place}" src="#{@image_url}/#{image}" alt="#{alt}" title="#{alt}" #{size}>]
93
+ img_t = %Q[<img class="#{place}" src="#{@image_url}/#{image_t}" alt="#{alt}" title="#{alt}" #{size}>]
94
+
95
+ url = ''
96
+ if @conf.mobile_agent?
97
+ url += %Q[<a href=#{google}/maps/m?q=#{lat},#{lon}>] unless lat.nil?
98
+ url += thumbnail ? img_t : img
99
+ url += %Q[</a>] unless lat.nil?
100
+ else
101
+ url += %Q[<div class="photo_detail"><p>#{alt}</p>] if detail
102
+ url += %Q[<a href="#{@image_url}/#{image}">]
103
+ url += thumbnail ? img_t : img
104
+ url +=%Q[</a>]
105
+ url += %Q[#{detail}</div>] if detail
106
+ end
107
+ url
108
+ end
109
+ add_header_proc do
110
+ if @mode !~ /conf$/ and not bot? then
111
+ <<-HTML
112
+ <style type="text/css"><!--
113
+ img.map{
114
+ display:none;
115
+ position:absolute;
116
+ border:none;
117
+ }
118
+ a:hover img.map{
119
+ display:inline;
120
+ }
121
+ --></style>
122
+ HTML
123
+ else
124
+ ''
125
+ end
126
+ end
127
+
128
+ add_conf_proc('image_gps','image_gpsの設定','etc') do
129
+ if @mode == 'saveconf' then
130
+ @conf['image_gps.add_info'] = @cgi.params['image_gps.add_info'][0]
131
+ @conf['image_gps.google_maps_api_key'] = @cgi.params['image_gps.google_maps_api_key'][0]
132
+ end
133
+
134
+ <<-HTML
135
+ <p>
136
+ <h3>撮影条件の表示</h3>
137
+ <input type="checkbox" name="image_gps.add_info" value="true" #{if @conf['image_gps.add_info'] then " checked" end}>タイトルに撮影条件を追加する
138
+ <h3>Google Maps API Key</h3>
139
+ <input type="text" name="image_gps.google_maps_api_key" value="#{@conf['image_gps.google_maps_api_key']}">
140
+ </p>
141
+ HTML
142
+
143
+ end
@@ -0,0 +1,462 @@
1
+ # image_plugin_ex.rb
2
+ # version 0.3
3
+ # -pv-
4
+ #
5
+ # 名称:
6
+ # 絵日記Plugin機能追加版
7
+ #
8
+ # 概要:
9
+ # 日記更新画面からの画像アップロード、サムネイル作成、本文への表示
10
+ #
11
+ # 使う場所:
12
+ # 本文
13
+ #
14
+ # 使い方:
15
+ # image( number, 'altword', thumbnail ) - 画像を表示します。
16
+ # number - 画像の番号0、1、2等
17
+ # altword - imgタグの altに入れる文字列
18
+ # thumbnail - サムネイル(小さな画像)を指定する(省略可)
19
+ #
20
+ # image_left( number, 'altword', thumbnail ) - imageにclass=leftを追加します。
21
+ # image_right( number, 'altword', thumbnail ) - imageにclass=rightを追加します。
22
+ #
23
+ # image_link( number, 'desc' ) - 画像へのリンクを生成します。
24
+ # number - 画像の番号0、1、2等
25
+ # desc - 画像の説明
26
+ #
27
+ # その他:
28
+ # tDiary version 1.5.4以降で動作します。
29
+ # tdiary.confで、
30
+ # 画像ファイルを保存するディレクトリ
31
+ # @options['image.dir']
32
+ # 画像ファイルのURL
33
+ # @options['image.url']
34
+ # 縮小画像の生成方法
35
+ # @options['image.url']
36
+ # 0 - 縮小画像を生成しない
37
+ # 1 - ImageMagickのconvertで縮小画王を生成
38
+ # 2 - netpbm群で縮小画王を生成
39
+ # を設定してください。
40
+ # また、@secure = trueな環境では動作しません。
41
+ #
42
+ # 詳しくは、
43
+ # http://shimoi.s26.xrea.com/hiki/hiki.xcg?TdiaryEnikkiEx
44
+ # をご覧下さい。
45
+ #
46
+ # ライセンスについて:
47
+ # Copyright (c) 2002 Daisuke Kato <dai@kato-agri.com>
48
+ # Copyright (c) 2002 Toshi Okada <toshi@neverland.to>
49
+ # Copyright (c) 2003 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
50
+ #
51
+ # You can redistribute it and/or modify it under GPL2.
52
+ #
53
+ =begin Changelog
54
+ 2003-05-16 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
55
+ * method 'image' is extended to show a thumbnail.
56
+ * new method: 'image_link'.
57
+ * version 0.3
58
+
59
+ 2003-05-16 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
60
+ * modify illegal option names.
61
+ * version 0.2.
62
+
63
+ 2003-05-16 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
64
+ * support manual upload of thumbnail when useresize == 0
65
+
66
+ 2003-04-27 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
67
+ * link element is removed when no thumbnail.
68
+
69
+ 2003-04-25 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
70
+ * add JavaScript for insert plugin tag into diary.
71
+ * upload/delete form style changed.
72
+
73
+ 2003-04-24 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
74
+ * upload/delete form style changed.
75
+
76
+ 2003-04-22 Yoshimi KURUMA <yoshimik@iris.dti.ne.jp>
77
+ * version 0.1 first form_proc version.
78
+ =end
79
+
80
+ @image_dir = @options && @options['image.dir'] || './images/'
81
+ @image_dir.chop! if /\/$/ =~ @image_dir
82
+ @image_url = @options && @options['image.url'] || './images/'
83
+ @image_url.chop! if /\/$/ =~ @image_url
84
+ @imageex_thumbnailsize = @options && @options['image_ex.previewsize'] || 120
85
+ @imageex_yearlydir = @options && @options['image_ex.yearlydir'] || 0
86
+
87
+ if @conf.smartphone?
88
+ enable_js("image_ex.js")
89
+ end
90
+
91
+
92
+ add_body_enter_proc(Proc.new do |date|
93
+ @image_date = date.strftime("%Y%m%d")
94
+ @image_year = date.strftime("%Y")
95
+ ""
96
+ end)
97
+
98
+
99
+ def image( id, alt = "image", id2 = nil, width = nil, place="none" )
100
+ @image_date ||= @date.strftime("%Y%m%d")
101
+ @image_year ||= @date.strftime("%Y")
102
+
103
+ if @imageex_yearlydir == 1
104
+ image_url = %Q[#{@image_url}/#{@image_year}/]
105
+ image_dir = %Q[#{@image_dir}/#{@image_year}/]
106
+ else
107
+ image_url = %Q[#{@image_url}/]
108
+ image_dir = %Q[#{@image_dir}/]
109
+ end
110
+
111
+ image_dir.untaint
112
+ Dir.mkdir(image_dir) unless File.directory?(image_dir)
113
+
114
+ list = imageList(@image_date, image_dir).untaint
115
+ slist = imageList(@image_date, image_dir, "s").untaint
116
+
117
+ if width
118
+ width_tag = %Q[width="#{h width}"]
119
+ else
120
+ width_tag = ""
121
+ end
122
+
123
+ if id2
124
+ %Q[<a href="#{h image_url}#{h list[id.to_i]}"><img class="image-ex #{h place}" src="#{h image_url}#{h list[id2.to_i]}" alt="#{h alt}"></a>]
125
+ else
126
+ if slist[id.to_i]
127
+ %Q[<a href="#{h image_url}#{h list[id.to_i]}"><img src="#{h image_url}#{h slist[id.to_i]}" alt="#{h alt}" title="#{h alt}" #{width_tag} class="image-ex #{h place}"></a>]
128
+ else
129
+ if list[id.to_i]
130
+ # %Q[<a href="#{h image_url}#{h list[id.to_i]}"><img src="#{h image_url}#{h list[id.to_i]}" alt="#{h alt}" #{width_tag} class="image-ex #{h place}"></a>]
131
+ %Q[<img src="#{h image_url}#{h list[id.to_i]}" alt="#{h alt}" title="#{h alt}" #{width_tag} class="image-ex #{h place}">]
132
+ end
133
+ end
134
+ end
135
+ end
136
+
137
+ def image_left( id, alt = "image", id2 = nil, width=nil )
138
+ image( id, alt, id2, width, "left" )
139
+ end
140
+
141
+ def image_right( id, alt = "image", id2 = nil, width=nil )
142
+ image( id, alt, id2, width, "right" )
143
+ end
144
+
145
+ def image_link( id, str )
146
+ @image_date ||= @date.strftime("%Y%m%d")
147
+ @image_year ||= @date.strftime("%Y")
148
+ if @imageex_yearlydir == 1
149
+ image_url = %Q[#{@image_url}/#{@image_year}/]
150
+ image_dir = %Q[#{@image_dir}/#{@image_year}/]
151
+ else
152
+ image_url = %Q[#{@image_url}/]
153
+ image_dir = %Q[#{@image_dir}/]
154
+ end
155
+ list = imageList(@image_date, image_dir).untaint
156
+ %Q[<a href="#{h image_url}#{h list[id.to_i]}">#{str}</a>]
157
+ end
158
+
159
+ ###
160
+
161
+ def imageList(date, image_dir='@image_dir', prefix="")
162
+ date = "#{prefix}"+date
163
+ image_path = []
164
+ Dir.foreach(image_dir){ |file|
165
+ if file =~ /(.*)\_(.*)\.(.*)/
166
+ if $1 == date
167
+ image_path[$2.to_i] = file
168
+ end
169
+ end
170
+ }
171
+ image_path
172
+ end
173
+
174
+
175
+ add_form_proc do |date|
176
+ begin
177
+ # ENV['PATH'] = nil
178
+
179
+ imageex_useresize = @options && @options['image_ex.useresize'] || 0
180
+ imageex_converttype = @options && @options['image_ex.converttype'] || 0
181
+ imageex_thresholdsize = @options && @options['image_ex.thresholdsize'] || 160
182
+ imageex_convertedwidth = @options && @options['image_ex.convertedwidth'] || 160
183
+ imageex_convertedheight = @options && @options['image_ex.convertedheight'] || 120
184
+
185
+ if imageex_useresize == 1 || imageex_useresize ==2
186
+ begin
187
+ require 'image_size.rb'
188
+ rescue LoadError
189
+ imageex_useresize = 0
190
+ end
191
+ end
192
+
193
+ if imageex_useresize == 1
194
+ def resize_image(orig, new, width, height, imageex_convertedwidth, imageex_convertedheight, orig_type, new_type)
195
+ imageex_convertpath = @options && @options['image_ex.convertpath'] || "convert"
196
+ imageex_convertpath
197
+
198
+ if width > height
199
+ imageex_convertedsize = %Q[#{imageex_convertedwidth}x#{imageex_convertedheight}]
200
+ imageex_convertedsize
201
+ else
202
+ imageex_convertedsize = %Q[#{imageex_convertedheight}x#{imageex_convertedwidth}]
203
+ imageex_convertedsize
204
+ end
205
+ system(imageex_convertpath , "-geometry", imageex_convertedsize , orig, new)
206
+ if FileTest::size?( new ) == 0
207
+ File::delete( new )
208
+ end
209
+ end
210
+ elsif imageex_useresize == 2
211
+ def resize_image(orig, new, width, height, imageex_convertedwidth, imageex_convertedheight, orig_type, new_type)
212
+ pnmscale = @options && @options['image_ex.pnmscalepath'] || "pnmscale"
213
+ jpegtopnm = @options && @options['image_ex.jpegtopnmpath'] || "jpegtopnm"
214
+ pnmtojpeg = @options && @options['image_ex.pnmtojpegpath'] || "pnmtojpeg"
215
+ pngtopnm = @options && @options['image_ex.pngtopnmpath'] || "pngtopnm"
216
+ pnmtopng = @options && @options['image_ex.pnmtopngpath'] || "pnmtopng"
217
+ giftopnm = @options && @options['image_ex.giftopnmpath'] || "giftopnm"
218
+ tifftopnm = @options && @options['image_ex.tifftopnmpath'] || "tifftopnm"
219
+ bmptopnm = @options && @options['image_ex.bmptopnmpath'] || "bmptopnm"
220
+
221
+ downtype = orig_type.downcase
222
+ topnm = eval("#{downtype}topnm")
223
+
224
+ if new_type == "jpg"
225
+ pnmto = pnmtojpeg
226
+ elsif new_type == "png"
227
+ pnmto = pnmtopng
228
+ end
229
+
230
+ if width > height
231
+ imageex_convertedsize ="#{imageex_convertedwidth}"
232
+ else
233
+ imageex_convertedsize ="#{imageex_convertedheight}"
234
+ end
235
+ com_line =%Q[#{topnm} #{orig} | #{pnmscale} --width #{imageex_convertedsize} | #{pnmto} > #{new}]
236
+ system( com_line )
237
+ if FileTest::size?( new ) == 0
238
+ File::delete( new )
239
+ end
240
+ end
241
+ end
242
+
243
+ def dayimagelist( image_dir, image_date, prefix="")
244
+ image_path = []
245
+ image_dir.untaint
246
+ Dir.foreach(image_dir){ |file|
247
+ if file=~ /(.*)\_(.*)\.(.*)/
248
+ if $1 == "#{prefix}" + image_date.to_s
249
+ image_path[$2.to_i] = file
250
+ end
251
+ end
252
+ }
253
+ return image_path
254
+ end
255
+
256
+ if @cgi.params['plugin_image_add'][0] && @cgi.params['plugin_image_file'][0].original_filename != ''
257
+ image_dir = @cgi.params['plugin_image_dir'][0].read.untaint
258
+ image_filename = ''
259
+ image_extension = ''
260
+ image_date = date.strftime("%Y%m%d")
261
+ image_filename = @cgi.params['plugin_image_file'][0].original_filename
262
+ if image_filename =~ /(\.jpg|\.jpeg|\.gif|\.png)\z/i
263
+ image_extension = $1
264
+
265
+ image_name = dayimagelist(image_dir, image_date)
266
+ image_file = image_dir+image_date+"_"+image_name.length.to_s+image_extension.downcase
267
+
268
+ image_file.untaint
269
+ File::umask( 022 )
270
+ File::open( image_file, "wb" ) {|f|
271
+ f.print @cgi.params['plugin_image_file'][0].read
272
+ }
273
+ end
274
+
275
+ if imageex_useresize == 1 or imageex_useresize == 2
276
+ open(image_file,"rb") do |fh|
277
+ img = ImageSize.new(fh.read)
278
+ width = img.get_width
279
+ height = img.get_height
280
+ orig_type = img.get_type
281
+ if imageex_converttype == 0
282
+ new_type = "jpg"
283
+ elsif imageex_converttype == 1
284
+ new_type = "png"
285
+ end
286
+
287
+ if width
288
+ if width > imageex_thresholdsize or height > imageex_thresholdsize
289
+ small_image_file = %Q[#{image_dir}s#{image_date}_#{image_name.length.to_s}.#{new_type}]
290
+ resize_image(image_file, small_image_file, width, height, imageex_convertedwidth, imageex_convertedheight, orig_type, new_type)
291
+ end
292
+ end
293
+ end
294
+ end
295
+
296
+ elsif @cgi.params['plugin_image_thumbnail'][0] && @cgi.params['plugin_image_file'][0].original_filename != ''
297
+ image_dir = @cgi.params['plugin_image_dir'][0].read.untaint
298
+ image_filename = ''
299
+ image_extension = ''
300
+ image_date = date.strftime("%Y%m%d")
301
+ image_filename = @cgi.params['plugin_image_file'][0].original_filename
302
+ if image_filename =~ /(\.jpg|\.jpeg|\.gif|\.png)\z/i
303
+ image_extension = $1
304
+ image_name = @cgi.params['plugin_image_name'][0].read.untaint
305
+ image_file=image_dir+"s"+image_name+image_extension.downcase
306
+
307
+ image_file.untaint
308
+ File::umask( 022 )
309
+ File::open( image_file, "wb" ) {|f|
310
+ f.print @cgi.params['plugin_image_file'][0].read
311
+ }
312
+ end
313
+
314
+ elsif @cgi.params['plugin_image_del'][0]
315
+ image_dir = @cgi.params['plugin_image_dir'][0]
316
+ image_date = date.strftime("%Y%m%d")
317
+ image_name = dayimagelist( image_dir, image_date)
318
+ image_name2= dayimagelist( image_dir, image_date, "s")
319
+
320
+ @cgi.params['plugin_image_id'].untaint.each do |id|
321
+ if image_name[id.to_i]
322
+ image_file=image_dir+image_name[id.to_i]
323
+ image_file.untaint
324
+ if File::exist?(image_file)
325
+ File::delete(image_file)
326
+ end
327
+ end
328
+ if image_name2[id.to_i]
329
+ image_file2=image_dir+image_name2[id.to_i]
330
+ image_file2.untaint
331
+ if File::exist?(image_file2)
332
+ File::delete(image_file2)
333
+ end
334
+ end
335
+ end
336
+ end
337
+ rescue Exception
338
+ puts "Content-Type: text/plain\n\n"
339
+ puts "#$! (#{$!.type})"
340
+ puts ""
341
+ puts $@.join( "\n" )
342
+ end
343
+
344
+ if @imageex_yearlydir == 1
345
+ image_dir = %Q[#{@image_dir}/#{@date.year}/]
346
+ else
347
+ image_dir = %Q[#{@image_dir}/]
348
+ end
349
+
350
+ if @imageex_yearlydir == 1
351
+ image_url = %Q[#{@image_url}/#{@date.year}/]
352
+ else
353
+ image_url = %Q[#{@image_url}/]
354
+ end
355
+
356
+ Dir.mkdir(image_dir) unless File.directory?(image_dir)
357
+
358
+
359
+ n_image = imageList(@date.strftime("%Y%m%d"), image_dir).length
360
+ list = imageList(@date.strftime("%Y%m%d"), image_dir)
361
+ slist = imageList(@date.strftime("%Y%m%d"), image_dir, "s")
362
+
363
+ pretable=""
364
+ posttable=""
365
+
366
+ if n_image > 0
367
+ pretable<< %Q[<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">]
368
+ posttable << %Q[</TR></TABLE>]
369
+ end
370
+
371
+ if @conf.respond_to?(:style) and @conf.style =~ /Wiki$/i
372
+ image_plugin_tag1 = "{{"
373
+ image_plugin_tag2 = "}}"
374
+ elsif @conf.respond_to?(:style) and @conf.style =~ /RD$/i
375
+ image_plugin_tag1 = "((%"
376
+ image_plugin_tag2 = "%))"
377
+ else
378
+ image_plugin_tag1 = "&lt;%="
379
+ image_plugin_tag2 = "%&gt;"
380
+ end
381
+
382
+ r = ''
383
+ r << %Q[
384
+ <script type="text/javascript">
385
+ <!--
386
+ var elem=null
387
+ function ins(val){
388
+ elem.value+=val
389
+ }
390
+ window.onload=function(){
391
+ for(var i=0;i<document.forms.length;i++){
392
+ for(var j=0;j<document.forms[i].elements.length;j++){
393
+ var e=document.forms[i].elements[j]
394
+ if(e.type&&e.type=="textarea"){
395
+ if(elem==null){
396
+ elem=e
397
+ }
398
+ e.onfocus=new Function("elem=this")
399
+ }
400
+ }
401
+ }
402
+ }
403
+ //-->
404
+ </script>
405
+ ]
406
+ i = ''
407
+ i << "<tr>"
408
+ nt=0
409
+ id=0
410
+
411
+ while id < n_image do
412
+ thumbnail_tag = ''
413
+ if slist[id.to_i]
414
+ src_tag = %Q[src="#{h image_url}#{h slist[id.to_i]}"]
415
+ alt_tag = %Q[alt="#{h slist[id.to_i]}"]
416
+ else
417
+ src_tag = %Q[src="#{h image_url}#{h list[id.to_i]}"]
418
+ alt_tag = %Q[alt="#{h list[id.to_i]}"]
419
+ thumbnail_tag = %Q[<form class="update" method="post" enctype="multipart/form-data" action="#{h @update}">#{csrf_protection}<input type="hidden" name="plugin_image_name" value="#{date.strftime( '%Y%m%d' )}_#{h id}"><input type="hidden" name="plugin_image_dir" value="#{h image_dir}"><input type="hidden" name="plugin_image_thumbnail" value="true"><input type="hidden" name="date" value="#{date.strftime( '%Y%m%d' )}"><input type="file" name="plugin_image_file"><input type="submit" name="plugin" value="サムネイル"></form>] if imageex_useresize == 0
420
+ end
421
+
422
+ ptag = "#{image_plugin_tag1}image #{id}, '画像の説明'#{image_plugin_tag2}"
423
+
424
+ i<< %Q[<td><table border="1" cellpadding="1" cellspacing="1"><tr><td style="text-align:center"><input type="button" onclick="ins(&quot;#{ptag}&quot;)" value="本文に追加"></td></tr><tr><td style="text-align:center">#{image_plugin_tag1}image #{h id},'title#{h id}'#{image_plugin_tag2}</td></tr><tr><td width="#{@imageex_thumbnailsize * 1.5}" height="#{@imageex_thumbnailsize * 1.3}" style="text-align:center">
425
+ <img class="form" #{src_tag} #{alt_tag} height="#{@imageex_thumbnailsize}" ></tr><tr><td>#{thumbnail_tag}<form class="update" method="post" action="#{h @update}">#{csrf_protection}<input type="hidden" name="plugin_image_del" value="true"><input type="hidden" name="date" value="#{date.strftime( '%Y%m%d' )}"><input type="hidden" name="plugin_image_id" value="#{h id}"><input type="submit" name="plugin" value="画像を削除"><input type="hidden" name="plugin_image_dir" value="#{h image_dir}"></form>
426
+ </tr></table></td>] if slist[id.to_i] || list[id.to_i]
427
+ nt += 1 if slist[id.to_i] || list[id.to_i]
428
+
429
+ if nt > 0 and nt%2 == 0
430
+ i<< %Q[</TR></TABLE><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD>]
431
+ end
432
+ id +=1
433
+ end
434
+
435
+ if n_image > 0
436
+ r << %Q[<div class="form">
437
+ <div class="caption">
438
+ 絵日記(一覧・削除)
439
+ </div>
440
+
441
+ #{pretable}
442
+ #{i}
443
+ #{posttable}
444
+
445
+ </div>]
446
+ end
447
+
448
+ r << %Q[<div class="form">
449
+ <div class="caption">
450
+ 絵日記(追加)
451
+ </div>
452
+ <form class="update" method="post" enctype="multipart/form-data" action="#{h @update}">
453
+ #{csrf_protection}
454
+ <input type="hidden" name="plugin_image_dir" value="#{h image_dir}">
455
+ <input type="hidden" name="plugin_image_add" value="true">
456
+ <input type="file" name="plugin_image_file">
457
+ <input type="hidden" name="date" value="#{date.strftime( '%Y%m%d' )}">
458
+ <input type="submit" name="plugin" value="画像の追加">
459
+ </form></div>]
460
+ end
461
+
462
+ # vim: set ts=3 sw=3 noexpandtab :