tdiary-contrib 3.2.2.20130518

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 (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,113 @@
1
+ <?php
2
+ /* ----------------------------------------------------------------
3
+ Script coming with JonDesign's SmoothGallery (http://smoothgallery.jondesign.net).
4
+
5
+ It is an adapted version of
6
+ http://sneak.co.nz/2006/10/27/dynamic-image-resizing/
7
+ which is itself an improvement of the original script from
8
+ Timothy Crowe's 'veryraw' website, with caching additions added by Trent Davies:
9
+ http://veryraw.com/history/2005/03/image-resizing-with-php/
10
+
11
+ Thanks to:
12
+ Tim Novinger for finding the image extension problem (fixed by an strtolower())
13
+ ---------------------------------------------------------------- */
14
+
15
+ $max_height = 1000;
16
+ $max_width = 2000;
17
+ if (isset($_GET["imgfile"]))
18
+ {
19
+ if (function_exists(get_magic_quotes_gpc) && get_magic_quotes_gpc())
20
+ {
21
+ $image = stripslashes( $_GET["imgfile"] );
22
+ } else $image = $_GET["imgfile"];
23
+ if (isset($_GET["max_width"])) { if($_GET["max_width"] < 2000) $max_width = $_GET["max_width"]; }
24
+ if (isset($_GET["max_height"])) { if($_GET["max_height"] < 1000) $max_height = $_GET["max_height"]; }
25
+
26
+ if (strrchr($image, '/')) {
27
+ $filename = substr(strrchr($image, '/'), 1); // remove folder references
28
+ } else {
29
+ $filename = $image;
30
+ }
31
+
32
+ $size = getimagesize($image);
33
+ $width = $size[0];
34
+ $height = $size[1];
35
+
36
+ // get the ratio needed
37
+ $x_ratio = $max_width / $width;
38
+ $y_ratio = $max_height / $height;
39
+
40
+ // if image already meets criteria, load current values in
41
+ // if not, use ratios to load new size info
42
+ if (($width <= $max_width) && ($height <= $max_height) ) {
43
+ $tn_width = $width;
44
+ $tn_height = $height;
45
+ } else if (($x_ratio * $height) < $max_height) {
46
+ $tn_height = ceil($x_ratio * $height);
47
+ $tn_width = $max_width;
48
+ } else {
49
+ $tn_width = ceil($y_ratio * $width);
50
+ $tn_height = $max_height;
51
+ }
52
+
53
+ /* Caching additions by Trent Davies */
54
+ // first check cache
55
+ // cache must be world-readable
56
+ $resized = 'cache/'.$tn_width.'x'.$tn_height.'-'.$filename;
57
+ $imageModified = @filemtime($image);
58
+ $thumbModified = @filemtime($resized);
59
+
60
+ header("Content-type: image/jpeg");
61
+
62
+ // if thumbnail is newer than image then output cached thumbnail and exit
63
+ if($imageModified<$thumbModified) {
64
+ header("Last-Modified: ".gmdate("D, d M Y H:i:s",$thumbModified)." GMT");
65
+ readfile($resized);
66
+ exit;
67
+ }
68
+
69
+ // read image
70
+ $ext = strtolower(substr(strrchr($image, '.'), 1)); // get the file extension
71
+ switch ($ext) {
72
+ case 'jpg': // jpg
73
+ $src = imagecreatefromjpeg($image) or notfound();
74
+ break;
75
+ case 'png': // png
76
+ $src = imagecreatefrompng($image) or notfound();
77
+ break;
78
+ case 'gif': // gif
79
+ $src = imagecreatefromgif($image) or notfound();
80
+ break;
81
+ default:
82
+ notfound();
83
+ }
84
+
85
+ // set up canvas
86
+ $dst = imagecreatetruecolor($tn_width,$tn_height);
87
+
88
+ imageantialias ($dst, true);
89
+
90
+ // copy resized image to new canvas
91
+ imagecopyresampled ($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
92
+
93
+ /* Sharpening adddition by Mike Harding */
94
+ // sharpen the image (only available in PHP5.1)
95
+ /*if (function_exists("imageconvolution")) {
96
+ $matrix = array( array( -1, -1, -1 ),
97
+ array( -1, 32, -1 ),
98
+ array( -1, -1, -1 ) );
99
+ $divisor = 24;
100
+ $offset = 0;
101
+
102
+ imageconvolution($dst, $matrix, $divisor, $offset);
103
+ }*/
104
+
105
+ // send the header and new image
106
+ imagejpeg($dst, null, 90);
107
+ imagejpeg($dst, $resized, 90); // write the thumbnail to cache as well...
108
+
109
+ // clear out the resources
110
+ imagedestroy($src);
111
+ imagedestroy($dst);
112
+ }
113
+ ?>
@@ -0,0 +1,406 @@
1
+ # recent_image.rb $Revision: 2.0.2 $
2
+ #
3
+ # Copyright (c) 2005-2010 N.KASHIJUKU <n-kashi[at]whi.m-net.ne.jp>
4
+ # You can redistribute it and/or modify it under GPL2.
5
+ #
6
+ # http://www1.whi.m-net.ne.jp/n-kashi/recent_image.htm
7
+ #
8
+
9
+ eval( <<MODIFY_CLASS, TOPLEVEL_BINDING )
10
+ module TDiary
11
+ class TDiaryMonth
12
+ attr_reader :diaries
13
+ end
14
+ end
15
+ MODIFY_CLASS
16
+
17
+ eval( <<MODIFY_CLASS, TOPLEVEL_BINDING )
18
+ module TDiary
19
+ class ImageData
20
+ attr_reader :file, :url, :title, :subtitle, :date, :width, :height, :type
21
+ attr_writer :file, :url, :title, :subtitle, :date, :width, :height, :type
22
+ end
23
+ end
24
+ MODIFY_CLASS
25
+
26
+ unless Array.respond_to?( 'randomize' )
27
+ eval( <<-MODIFY_CLASS, TOPLEVEL_BINDING )
28
+ class Array
29
+ def randomize
30
+ arr = dup
31
+ collect{ arr.slice!(rand(arr.length)) }
32
+ end
33
+ end
34
+ MODIFY_CLASS
35
+ end
36
+
37
+ @recent_image_dir = @options && @options['image.dir'] || './images/'
38
+ @recent_image_dir.chop! if /\/$/ =~ @recent_image_dir
39
+ @recent_image_url = @options && @options['image.url'] || './images/'
40
+ @recent_image_url.chop! if /\/$/ =~ @recent_image_url
41
+ @recent_imageex_yearlydir = @options && @options['image_ex.yearlydir'] || 0
42
+
43
+ @recent_image_hash = Hash[] # the Hash table. "<yyyymmdd>_<n>" => ImageData Objects
44
+ @recent_image_keys = [] # sorted keys of '@recent_image_hash'
45
+ @recent_image_rkeys = [] # reverse sorted keys of '@recent_image_hash'
46
+
47
+ @recent_image_use_cache = true
48
+ @recent_image_show_exif = @options['image-gallery.show_exif']
49
+ @recent_image_show_exif = false if @recent_image_show_exif == nil
50
+ @recent_image_cache = "#{@cache_path}/gallery/image-gallery2.dat"
51
+
52
+ @recent_image_imgre = /[^_]image(?:_left|_right|_gps)?\s*\(?\s*([0-9]*)\s*\,?\s*[\"']([^'\"]*)[\"']/
53
+
54
+ # Local Functions
55
+
56
+ # Search 'image' directory(s) and return a hash table.
57
+ # "yyyymmdd_nn" => "File name" (or Thmbnail's File name)
58
+ def get_filehash_rcimg(target)
59
+ f_imghash = Hash[]
60
+
61
+ f_list = Dir.glob(%Q[#{@recent_image_dir}/**/#{target}].untaint)
62
+ f_list = f_list + Dir.glob(%Q[#{@recent_image_dir}/**/s#{target}].untaint) if target != "*"
63
+ f_list.each do |f_name|
64
+ b_name = File.basename(f_name)
65
+ next unless b_name.match("^([0-9]{8}_[0-9]+)\..+")
66
+ tmb_name = %Q[#{File.dirname(f_name)}/s#{b_name}]
67
+ file = (f_list.include?(tmb_name) ? tmb_name : f_name)
68
+ f_imghash[$1] = (@recent_imageex_yearlydir == 1 ? %Q[#{$1[0,4]}/#{File.basename(file)}] : File.basename(file))
69
+ end
70
+
71
+ return f_imghash
72
+ end
73
+
74
+
75
+ def image_info_rcimg( filename )
76
+ image_type = nil
77
+ image_height = nil
78
+ image_width = nil
79
+
80
+ f = File.open(filename.untaint, "rb")
81
+ return image_type, image_height, image_width if f == nil
82
+
83
+ sig = f.read( 24 )
84
+ if /\A\x89PNG\x0D\x0A\x1A\x0A(....)IHDR(........)/on =~ sig
85
+ image_type = 'png'
86
+ image_width, image_height = $2.unpack( 'NN' )
87
+
88
+ elsif /\AGIF8[79]a(....)/on =~ sig
89
+ image_type = 'gif'
90
+ image_width, image_height = $1.unpack( 'vv' )
91
+
92
+ elsif /\A\xFF\xD8/on =~ sig
93
+ image_type = 'jpg'
94
+ data = $'
95
+
96
+ until data.empty?
97
+ if RUBY_VERSION >= '1.9.0'
98
+ break if data[0].unpack("C").first != 0xFF
99
+ break if data[1].unpack("C").first == 0xD9
100
+ else
101
+ break if data[0] != 0xFF
102
+ break if data[1] == 0xD9
103
+ end
104
+
105
+ data_size = data[2,2].unpack( 'n' ).first + 2
106
+ datax = data[1]
107
+ datax_s = [0xc0, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6, 0xc7, 0xc9, 0xca, 0xcb, 0xcd, 0xce, 0xcf]
108
+ if RUBY_VERSION >= '1.9.0'
109
+ datax = data[1].unpack("C").first
110
+ datax_s = [0xc0]
111
+ end
112
+
113
+ if datax_s.index(datax) != nil
114
+ image_height, image_width = data[5,4].unpack('nn')
115
+ break
116
+ else
117
+ if data.size < data_size
118
+ f.seek(data_size - data.size, IO::SEEK_CUR)
119
+ data = ''
120
+ else
121
+ data = data[data_size .. -1]
122
+ end
123
+ data << f.read( 128 ) if data.size <= 4
124
+ end
125
+ end
126
+ end
127
+
128
+ f.close
129
+ return image_type, image_height, image_width
130
+ end
131
+
132
+
133
+
134
+ # Make sorted keys of @recent_image_hash
135
+ def keysort_rcimg
136
+ sortproc = Proc.new {|a, b|
137
+ a.gsub(/_(\d+)/) {"_%05d" % $1.to_i} <=>
138
+ b.gsub(/_(\d+)/) {"_%05d" % $1.to_i}
139
+ }
140
+
141
+ @recent_image_keys = @recent_image_hash.keys.sort(&sortproc)
142
+ @recent_image_rkeys = @recent_image_keys.reverse
143
+ end
144
+
145
+
146
+ def load_cache_rcimg
147
+ db = PStore.new(@recent_image_cache)
148
+ db.transaction(true) do
149
+ @recent_image_hash = db["recent_image_hash"]
150
+ @recent_image_keys = db["recent_image_keys"]
151
+ @recent_image_rkeys= db["recent_image_rkeys"]
152
+ db.abort
153
+ end
154
+ end
155
+
156
+
157
+ def save_cache_rcimg
158
+ return if @recent_image_hash.length == 0
159
+
160
+ cache_dir = File.dirname( @recent_image_cache )
161
+ Dir.mkdir(cache_dir) unless File.directory?(cache_dir)
162
+
163
+ db = PStore.new(@recent_image_cache)
164
+ db.transaction do
165
+ db["recent_image_hash"] = @recent_image_hash
166
+ db["recent_image_keys"] = @recent_image_keys
167
+ db["recent_image_rkeys"] = @recent_image_rkeys
168
+ db["recent_image_dir"] = @recent_image_dir
169
+ db["recent_image_url"] = @recent_image_url
170
+ db.commit
171
+ db.abort
172
+ end
173
+ end
174
+
175
+
176
+ def make_image_hash_rcimg
177
+ f_imghash = Hash[]
178
+ f_imghash = get_filehash_rcimg("*")
179
+
180
+ cgi = CGI::new
181
+ def cgi.referer; nil;
182
+ end
183
+
184
+ @years.keys.sort.reverse_each do |year|
185
+ @years[year].sort.reverse_each do |month|
186
+ cgi.params['date'] = ["#{year}#{month}"]
187
+ m = TDiaryMonth::new(cgi, '', @conf)
188
+ m.diaries.keys.sort.reverse_each do |date|
189
+ next unless m.diaries[date].visible?
190
+ m.diaries[date].each_section do |section|
191
+ subtitle = ""
192
+ subtitle = section.subtitle.gsub(/[<{](.*?)[}>]/,'') if section.subtitle
193
+ search_img_rcimg(date, section.subtitle, subtitle, f_imghash)
194
+ search_img_rcimg(date, section.body, subtitle, f_imghash)
195
+ end
196
+ end
197
+ end
198
+ end
199
+ end
200
+
201
+ def search_img_rcimg(date, body, subtitle, f_imghash)
202
+ body.to_s.scan(@recent_image_imgre).each do |num, title| # Search "image plugin" in all diaries
203
+ f_name = f_imghash[%Q[#{date}_#{num}]] # and pick up params. -> image[0]=number, image[1]=title
204
+ next if f_name == nil
205
+ begin
206
+ type, height, width = image_info_rcimg(%Q[#{@recent_image_dir}/#{f_name.delete("s")}])
207
+ image = ImageData.new
208
+ image.url = f_name
209
+ image.file = f_name.delete("s")
210
+ image.date = date
211
+ image.title = title
212
+ image.subtitle = subtitle
213
+ image.type = type
214
+ image.height = height
215
+ image.width = width
216
+ @recent_image_hash[%Q[#{date}_#{num}]] = image
217
+ rescue
218
+ end
219
+ end
220
+ end
221
+
222
+ # Initial Function ... Make a hash table : "<yyyymmdd>_<n>" => ["Filename", "title"]
223
+ def init_rcimg
224
+ return if @recent_image_hash != nil and @recent_image_hash.length != 0
225
+ return unless @mode == 'day' or @mode == 'month' or @mode == 'latest' or @mode == 'preview' or @mode == 'nyear'
226
+
227
+ if @recent_image_use_cache and File.exist?(@recent_image_cache)
228
+ load_cache_rcimg
229
+ else
230
+ make_image_hash_rcimg
231
+ keysort_rcimg
232
+ if @recent_image_use_cache
233
+ save_cache_rcimg
234
+ end
235
+ end
236
+ end
237
+
238
+ # PLUGIN body
239
+ # recent_image()
240
+ #
241
+ def recent_image(items = 4, width = 80, link_mode = 1, name_filter = nil, title_filter = nil, reverse = false, random = false)
242
+ items = items.to_i
243
+ images = []
244
+ keys = []
245
+
246
+ init_rcimg
247
+
248
+ return ("") if items == -1
249
+
250
+ keys = (random ? @recent_image_keys.randomize : (reverse ? @recent_image_keys : @recent_image_rkeys))
251
+
252
+ catch(:exit) {
253
+ keys.each do |key|
254
+ image = @recent_image_hash[key]
255
+ next if name_filter != nil and image.file.match(name_filter) == nil
256
+ next if title_filter != nil and image.title.match(title_filter) == nil
257
+ images.push(image)
258
+ if items != 0
259
+ throw :exit if items == images.length
260
+ end
261
+ end
262
+ }
263
+
264
+ result = %Q[<div class="recentimage">\n]
265
+ images.each do |image|
266
+ if image.height.to_i > image.width.to_i
267
+ sizestr = %Q[width="#{width*image.width.to_i/image.height.to_i}" height="#{width}"]
268
+ else
269
+ sizestr = %Q[width="#{width}" height="#{width*image.height.to_i/image.width.to_i}"]
270
+ end
271
+ case link_mode
272
+ when 0
273
+ result << %Q[<a href="./image-gallery.rb?mode=viewer;key=#{File.basename(image.file, ".*")}"><img src="#{@recent_image_url}/#{image.url}" #{sizestr} alt="#{image.title}" title="#{image.title}"></a>\n]
274
+ when 1
275
+ result << %Q[<a href="./?date=#{image.date}"><img src="#{@recent_image_url}/#{image.url}" #{sizestr} alt="#{image.title}" title="#{image.title}"></a>\n]
276
+ when 2
277
+ result << %Q[<a href="#{@recent_image_url}/#{image.file}"><img src="#{@recent_image_url}/#{image.url}" #{sizestr} alt="#{image.title}" title="#{image.title}"></a>\n]
278
+ when 3
279
+ result << %Q[<a onclick="window.open(this.href, '_recent_image', 'scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="#{@recent_image_url}/#{image.file}"><img src="#{@recent_image_url}/#{image.url}" #{sizestr} alt="#{image.title}" title="#{image.title}"></a>\n]
280
+ when Array
281
+ result << %Q[<a onclick="window.open(this.href, '_recent_image', 'width=#{link_mode[1]},height=#{link_mode[2]},scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="#{@recent_image_url}/#{image.file}"><img src="#{@recent_image_url}/#{image.url}" #{sizestr} alt="#{image.title}" title="#{image.title}"></a>\n] if link_mode[0] == 3
282
+ else
283
+ end
284
+ end
285
+ result << "</div>"
286
+ end
287
+
288
+
289
+ # PLUGIN body
290
+ # count_image()
291
+ #
292
+ def count_image(name_filter = nil, title_filter = nil)
293
+ count = 0
294
+ init_rcimg
295
+
296
+ if name_filter == nil and title_filter == nil
297
+ count = @recent_image_keys.length
298
+ else
299
+ @recent_image_keys.each do |key|
300
+ image = @recent_image_hash[key]
301
+ next if name_filter != nil and image.file.match(name_filter) == nil
302
+ next if title_filter != nil and image.title.match(title_filter) == nil
303
+ count = count + 1
304
+ end
305
+ end
306
+
307
+ count.to_s.reverse.gsub(/\d\d\d/, '\0,').reverse.sub(/^([-]{0,1}),/, '\1')
308
+ end
309
+
310
+
311
+ # PLUGIN body
312
+ # view_exif() ... input EXIF datas of images in your diary.
313
+ #
314
+ def view_exif(id = 0, exifparam ="")
315
+ init_rcimg if @recent_image_hash == nil or @recent_image_hash.length == 0
316
+ begin
317
+ require 'exifparser'
318
+
319
+ @image_date_exif ||= @date.strftime("%Y%m%d")
320
+ @exifparser = ExifParser.new(%Q[#{@image_dir}/#{@recent_image_hash[@image_date_exif+"_"+id.to_s].file}].untaint)
321
+
322
+ if exifparam == "" # return a formatted string.
323
+ model = @exifparser['Model'].to_s
324
+ focallength = @exifparser['FocalLength'].to_s
325
+ fnumber = @exifparser['FNumber'].to_s
326
+ exposuretime = @exifparser['ExposureTime'].to_s
327
+ isospeedratings = @exifparser['ISOSpeedRatings'].to_s
328
+ exposurebiasvalue = @exifparser['ExposureBiasValue'].to_s
329
+ if @exifparser.tag?('LensParameters')
330
+ lensname = "("+ @exifparser['LensParameters'].to_s + ")"
331
+ else
332
+ lensname = ""
333
+ end
334
+ return %Q[<div class="exifdatastr"><p>#{model}, #{focallength}, #{fnumber}, #{exposuretime}, ISO#{isospeedratings}, #{exposurebiasvalue}EV #{lensname}</p></div>]
335
+ else # return the requested value.
336
+ return @exifparser[exifparam.untaint].to_s
337
+ end
338
+
339
+ rescue
340
+ exp = ($!).to_s + "<br>"
341
+ ($!).backtrace.each do |btinfo|
342
+ exp += btinfo
343
+ exp += "<br>"
344
+ end
345
+ return exp
346
+ end
347
+ end
348
+
349
+
350
+ # Callback Functions
351
+
352
+ # this is for view_exif().
353
+ add_body_enter_proc(Proc.new do |date|
354
+ @image_date_exif = date.strftime("%Y%m%d")
355
+ ""
356
+ end)
357
+
358
+ # Update Proc of the plugin
359
+ add_update_proc do
360
+ f_imghash = Hash[]
361
+
362
+ if @recent_image_hash.length == 0
363
+ if @recent_image_use_cache
364
+ load_cache_rcimg
365
+ else
366
+ make_image_hash_rcimg
367
+ end
368
+ end
369
+
370
+ date = @date.strftime('%Y%m%d')
371
+ @recent_image_hash.keys.each do |key| # Clear all data of the day in @recent_image_hash
372
+ if key.include?(date)
373
+ @recent_image_hash.delete(key)
374
+ end
375
+ end
376
+
377
+ diary = @diaries[date]
378
+ if diary.visible?
379
+ f_imghash = get_filehash_rcimg(%Q|#{date}_*|)
380
+ diary.each_section do |section|
381
+ subtitle = ""
382
+ subtitle = section.subtitle.gsub(/[<{](.*?)[}>]/,'') if section.subtitle
383
+ search_img_rcimg(date, section.subtitle, subtitle, f_imghash)
384
+ search_img_rcimg(date, section.body, subtitle, f_imghash)
385
+ end
386
+ end
387
+
388
+ keysort_rcimg
389
+ save_cache_rcimg if @recent_image_use_cache
390
+ end
391
+
392
+
393
+ # for SmoothGallery (SildeShow mode of 'tDiary Image Gallery')
394
+ if /image-gallery\.(?:cgi|rb)$/ =~ $0
395
+ add_header_proc do
396
+ <<EOS
397
+ <link rel="stylesheet" href="js/SmoothGallery/css/jd.gallery.css" type="text/css" media="screen" charset="utf-8" />
398
+ <link rel="stylesheet" href="js/SmoothGallery/css/ReMooz.css" type="text/css" media="screen" charset="utf-8" />
399
+ <link rel="stylesheet" href="#{theme_url}/image-gallery.css" type="text/css" media="all">
400
+ <script src="js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js" type="text/javascript"></script>
401
+ <script src="js/SmoothGallery/scripts/mootools-1.2-more.js" type="text/javascript"></script>
402
+ <script src="js/SmoothGallery/scripts/ReMooz.js" type="text/javascript"></script>
403
+ <script src="js/SmoothGallery/scripts/jd.gallery.js" type="text/javascript"></script>
404
+ EOS
405
+ end
406
+ end
@@ -0,0 +1,154 @@
1
+ <%# gallery.rhtml $Revision: 2.0.1 $ %>
2
+ <%# Copyright (c) 2005-2012 N.KASHIJUKU <n-kashi[at]whi.m-net.ne.jp> %>
3
+ <%# You can redistribute it and/or modify it under GPL2. %>
4
+
5
+ <div class="adminmenu"><%%=navi_user%></div><h1><%= CGI::escapeHTML( @conf.html_title ) %> [Image Gallery]</h1>
6
+
7
+ <% if @images.length == 0 %>
8
+ <p>該当するファイルはありません</p>
9
+ <%= format_links_date %>
10
+ <% else %>
11
+ <% if @mode == "list" or @mode == "slide" or @mode == "fslide" %>
12
+ <%= format_links_date %>
13
+ <div class="day">
14
+ <% if @images.length != 0 %>
15
+ <h2><span class="date"><%= _(@conf.to_native(@t_page_title)) %>&nbsp;&nbsp;Page&nbsp;<%=@start / @num + 1 %></span>&nbsp;<span class="nyear">[<%= @image_num %> 枚中 <%= @start + 1 %> - <%= @start + @images.length %> 枚目]&nbsp;&nbsp;<%= get_other_mode_link %></span></h2>
16
+ <% end %>
17
+ <div class="body">
18
+ <div class="section">
19
+ <div class="categorylink"><%= format_link_list_category(@images) %></div>
20
+ <% if @mode == "list" %>
21
+ <table class="imagelist">
22
+ <% @line.times do |line|%>
23
+ <tr>
24
+ <% @column.times do |column| %>
25
+ <% i = line * @column + column %>
26
+ <td>
27
+ <% if @images[i] != nil %>
28
+ <% if @images[i].width.to_i > @images[i].height.to_i %>
29
+ <p><a href="<%= format_link_viewer_image(@image_hash.index(@images[i])) %>"><img src="<%= @image_url %>/<%= @images[i].url %>" width="<%= @width %>" height="<%= (@width.to_i*@images[i].height.to_i/@images[i].width.to_i).to_s %>" alt="<%= @images[i].file %>" title="<%= @images[i].file %>" class="imagebody"></a></p>
30
+ <% else %>
31
+ <p><a href="<%= format_link_viewer_image(@image_hash.index(@images[i])) %>"><img src="<%= @image_url %>/<%= @images[i].url %>" width="<%= (@width.to_i*@images[i].width.to_i/@images[i].height.to_i).to_s %>" height="<%= @width %>" alt="<%= @images[i].file %>" title="<%= @images[i].file %>" class="imagebody"></a></p>
32
+ <% end %>
33
+ <p class="imagetitle"><%= CGI::escapeHTML(@images[i].title) %></p>
34
+ <p class="imagedate"><a href="./?date=<%= @images[i].date %>" title="<%= CGI::escapeHTML(@images[i].subtitle) %>"><%= @images[i].date.sub(/(\d{4})(\d{2})(\d{2})/, '\1-\2-\3') %></a></p>
35
+ <% end %>
36
+ </td>
37
+ <% end %>
38
+ </tr>
39
+ <% break if @images[(line + 1) * @column] == nil %>
40
+ <% end %>
41
+ </table>
42
+ <% elsif @mode == "slide" or @mode == "fslide" %>
43
+ <%= js_start_gallery %>
44
+ <div class="content">
45
+ <div id="myGallery">
46
+ <% (@line * @column).times do |i| %>
47
+ <div class="imageElement">
48
+ <h3><%= CGI::escapeHTML(@images[i].title) %>[<%= @images[i].date.sub(/(\d{4})(\d{2})(\d{2})/, '\1-\2-\3') %>]</h3>
49
+ <p><%= CGI::escapeHTML(@images[i].subtitle) %></p>
50
+ <a href="./?date=<%= @images[i].date %>" title="to Diary" class="open"></a>
51
+ <% image_file = @images[i].file.dup %>
52
+ <% if @use_mid_image && @mode == "slide" %>
53
+ <% if image_file[4] == ?/ %>
54
+ <% image_file[4] = "/m" %>
55
+ <% else %>
56
+ <% image_file = "m" + image_file %>
57
+ <% end %>
58
+ <% end %>
59
+ <img src="<%= @image_url %>/<%= image_file %>" class="full" />
60
+ <img src="<%= @image_url %>/<%= @images[i].url %>" class="thumbnail" />
61
+ </div>
62
+ <% break if @images[i+1] == nil %>
63
+ <% end %>
64
+ </div>
65
+ </div>
66
+ <% end %>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <div class="referer">
71
+ <% if @image_num > 0 %>
72
+ <%= format_links(@image_num) %>
73
+ <% end %>
74
+ </div>
75
+
76
+ <% elsif @mode == "viewer" %>
77
+ <%= format_links_viewer %>
78
+ <div class="day">
79
+ <h2><span class="date">&nbsp;<a href="./?date=<%= @images[0].date %>" title="<%= CGI::escapeHTML(@images[0].subtitle) %>"><%= @images[0].date.sub(/(\d{4})(\d{2})(\d{2})/, '\1-\2-\3') %></a></span>&nbsp;&nbsp;<span class="title"><%= CGI::escapeHTML(@images[0].title) %></span>&nbsp;&nbsp;<span class="nyear">[<%= @images[0].file %>:<%= @images[0].width %>(w)×<%= @images[0].height %>(h)]</span></h2>
80
+ <div class="body">
81
+ <% image_file = @images[0].file.dup %>
82
+ <% month_filter = ((image_file[4] == ?/) ? %Q[^#{image_file[0,4]}/#{image_file[5,6]}] : %Q[^#{image_file[0,6]}]) %>
83
+ <div class="categorylink">&raquo;<%= format_link_viewer_date(@images[0].date[0,4], "^"+@images[0].date[0,4]) %>-<%= format_link_viewer_date(@images[0].date[4,2], month_filter) %>-<%= format_link_viewer_date(@images[0].date[6,2], @images[0].date[0,8]) %>&nbsp;|&nbsp;<%= format_link_viewer_category(@images[0].subtitle) %></div>
84
+ <div class="section">
85
+ <table class="imageview">
86
+ <tr>
87
+ <td colspan="2">
88
+ <% image_file = @images[0].file.dup %>
89
+ <% if @use_mid_image %>
90
+ <% if image_file[4] == ?/ %>
91
+ <% image_file[4] = "/m" %>
92
+ <% else %>
93
+ <% image_file = "m" + image_file %>
94
+ <% end %>
95
+ <% end %>
96
+ <a href="<%= @image_url %>/<%= @images[0].file %>"><img src="<%= @image_url %>/<%= image_file %>" <%= @sizestr %> alt="<%= CGI::escapeHTML(@images[0].title) %>" title="<%= CGI::escapeHTML(@images[0].title) %>" class="imagebody"></a>
97
+ </td>
98
+ </tr>
99
+ <tr>
100
+ <td>
101
+ <% if @show_exif and @exifstr.length != 0 %>
102
+ <strong><p class="infobar"> - EXIF Data -</p></strong>
103
+ <strong><p class="exiftitle"><%= @exifstr[0] %></p></strong>
104
+ <ul class="exifdata">
105
+ <% i = 1 %>
106
+ <% while i < @exifstr.length %>
107
+ <% if @exifstr.length > 5 and i == @exifstr.length / 2 %>
108
+ </ul>
109
+ </td>
110
+ <td>
111
+ <ul class="exifdata">
112
+ <% end %>
113
+ <% if @exifstr[i][0,2] == "--" %>
114
+ </ul>
115
+ <strong><p class="exiftitle"><%= @exifstr[i] %></p></strong>
116
+ <ul class="exifdata">
117
+ <% else %>
118
+ <li><%= @exifstr[i] %></li>
119
+ <% end %>
120
+ <% i = i + 1 %>
121
+ <% end %>
122
+ </ul>
123
+ </td>
124
+ <% end %>
125
+ </tr>
126
+ </table>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ <% end %>
131
+ <% end %>
132
+
133
+ <% if @show_inputfield %>
134
+ <form action="<%= @cgi.script_name ? _(@cgi.script_name) : '' %>">
135
+ <p>
136
+ 画像の選択:&nbsp;ファイル名:<input type="text" name="name" value="<%= _(@conf.to_native(@name_filter)) %>" size="16" />
137
+ &nbsp;日記のサブタイトル:<input type="text" name="subtitle" value="<%= _(@conf.to_native(@subtitle_filter)) %>" size="16" />
138
+ &nbsp;画像のタイトル:<input type="text" name="title" value="<%= _(@conf.to_native(@title_filter)) %>" size="16" />
139
+ </p>
140
+ <p>
141
+ 並べ替え:
142
+ <select name="order">
143
+ <%= @order_options %>
144
+ </select>&nbsp;&nbsp;
145
+ 表示形式:
146
+ <select name="mode">
147
+ <%= @mode_options %>
148
+ </select>
149
+ <input type="submit" value="表示" />
150
+ </p>
151
+ </form>
152
+ <div class="footer">
153
+ Generated by <a href="http://www1.whi.m-net.ne.jp/n-kashi/image-gallery2.html">tDiary Image Gallery</a> version <%= @img_version %></div>
154
+ <% end %>