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,613 @@
1
+ ;;; tdiary-mode.el -- Major mode for tDiary editing -*- coding: utf-8 -*-
2
+
3
+ ;; Copyright (C) 2002 Junichiro Kita
4
+
5
+ ;; Author: Junichiro Kita <kita@kitaj.no-ip.com>
6
+
7
+ ;; $Id: tdiary-mode.el,v 1.4 2005/08/19 08:36:43 tadatadashi Exp $
8
+ ;;
9
+ ;; This program is free software; you can redistribute it and/or
10
+ ;; modify it under the terms of the GNU General Public License as
11
+ ;; published by the Free Software Foundation; either version 2, or (at
12
+ ;; your option) any later version.
13
+
14
+ ;; This program is distributed in the hope that it will be useful, but
15
+ ;; WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ ;; General Public License for more details.
18
+
19
+ ;; You should have received a copy of the GNU General Public License
20
+ ;; along with this program; see the file COPYING. If not, write to the
21
+ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22
+ ;; Boston, MA 02111-1307, USA.
23
+
24
+ ;;; Commentary:
25
+
26
+ ;; usage:
27
+ ;;
28
+ ;; Put the following in your .emacs file:
29
+ ;;
30
+ ;; (setq tdiary-diary-list '(("my 1st diary" "http://example.com/tdiary/")
31
+ ;; ("my 2nd diary" "http://example.com/tdiary2/")))
32
+ ;; (setq tdiary-text-directory (expand-file-name "~/path-to-saved-diary"))
33
+ ;; (setq tdiary-browser-function 'browse-url)
34
+ ;; (autoload 'tdiary-mode "tdiary-mode" nil t)
35
+ ;; (autoload 'tdiary-new "tdiary-mode" nil t)
36
+ ;; (autoload 'tdiary-new-diary "tdiary-mode" nil t)
37
+ ;; (autoload 'tdiary-replace "tdiary-mode" nil t)
38
+ ;; (add-to-list 'auto-mode-alist
39
+ ;; '("\\.td$" . tdiary-mode))
40
+ ;;
41
+ ;; You can use your own plugin completion, keybindings:
42
+ ;;
43
+ ;; (setq tdiary-plugin-definition
44
+ ;; '(
45
+ ;; ("STRONG" ("<%=STRONG %Q|" (p "str: ") "| %>"))
46
+ ;; ("PRE" ("<%=PRE %Q|" (p "str: ") "| %>"))
47
+ ;; ("CITE" ("<%=CITE %Q|" (p "str: ") "| %>"))
48
+ ;; ))
49
+ ;;
50
+ ;; (add-hook 'tdiary-mode-hook
51
+ ;; '(lambda ()
52
+ ;; (local-set-key "\C-i" 'tdiary-complete-plugin)))
53
+ ;;
54
+ ;; If you want to save username and password cache to file:
55
+ ;;
56
+ ;; (setq tdiary-passwd-file (expand-file-name "~/.tdiary-pass"))
57
+ ;;
58
+ ;; then, M-x tdiary-passwd-cache-save. !!DANGEROUS!!
59
+ ;;
60
+ ;; see http://kitaj.no-ip.com/rw-cgi.rb?cmd=view;name=tdiary-mode
61
+ ;;
62
+
63
+ ;; ToDo:
64
+ ;; - find plugin definition automatically(needs modification for plugin)
65
+ ;; - bug fix
66
+ ;;
67
+
68
+ ;;; Variable:
69
+
70
+ (require 'http)
71
+ (require 'poe)
72
+ (require 'tempo)
73
+
74
+ (defvar tdiary-diary-list nil
75
+ "List of diary list.
76
+ Each element looks like (NAME URL) or (NAME URL INDEX-RB UPDATE-RB).")
77
+
78
+ (defvar tdiary-diary-name nil
79
+ "Identifier for diary to be updated.")
80
+
81
+ (defvar tdiary-diary-url nil
82
+ "tDiary-mode updates this URL. URL should end with '/'.")
83
+
84
+ (defvar tdiary-index-rb nil
85
+ "Name of the 'index.rb'.")
86
+
87
+ (defvar tdiary-update-rb "update.rb"
88
+ "Name of the 'update.rb'.")
89
+
90
+ (defvar tdiary-csrf-key nil
91
+ "CSRF protection key.")
92
+
93
+ (defvar tdiary-coding-system 'utf-8-dos)
94
+
95
+ (defvar tdiary-title nil
96
+ "Title of diary")
97
+
98
+ (defvar tdiary-style-mode 'html-mode
99
+ "Major mode to be used for tDiary editing.")
100
+
101
+ (defvar tdiary-date nil
102
+ "Date to be updated.")
103
+
104
+ (defvar tdiary-edit-mode nil)
105
+
106
+ (defvar tdiary-plugin-list nil
107
+ "A List of pairs of a plugin name and its completing command.
108
+ It is used in `tdiary-complete-plugin'.")
109
+
110
+ (defvar tdiary-tempo-tags nil
111
+ "Tempo tags for tDiary mode")
112
+
113
+ (defvar tdiary-completion-finder "\\(\\(<\\|&\\|<%=\\).*\\)\\="
114
+ "Regexp used to find tags to complete.")
115
+
116
+ (defvar tdiary-plugin-initial-definition
117
+ '(
118
+ ("my" ("<%=my %Q|" (p "a: ") "|, %Q|" (p "str: ") "| %>"))
119
+ ("fn" ("<%=fn %Q|" (p "footnote: ") "| %>"))
120
+ )
121
+ "Initial definition for tDiary tempo."
122
+ )
123
+
124
+ (defvar tdiary-edit-mode-list '(("append") ("replace")))
125
+
126
+ (defvar tdiary-plugin-definition nil
127
+ "A List of definitions for tDiary tempo.
128
+ Each element looks like (NAME ELEMENTS). NAME is a string that
129
+ contains the name of plugin, and ELEMENTS is a list of elements in the
130
+ template. See tempo.info for details.")
131
+
132
+ (defvar tdiary-complete-plugin-history nil
133
+ "Minibuffer history list for `tdiary-complete-plugin'.")
134
+
135
+ (defvar tdiary-passwd-file nil)
136
+ (defvar tdiary-passwd-file-mode 384) ;; == 0600
137
+ (defvar tdiary-text-directory-mode 448) ;; == 0700
138
+
139
+ (defvar tdiary-passwd-cache nil
140
+ "Cache for username and password.")
141
+
142
+ (defvar tdiary-hour-offset 0
143
+ "Offset to current-time.
144
+ `tdiary-today' returns (current-time + tdiary-hour-offset).")
145
+
146
+ (defvar tdiary-text-suffix ".td")
147
+
148
+ (defvar tdiary-text-directory nil
149
+ "Directory where diary is stored.")
150
+
151
+ (defvar tdiary-text-save-p nil
152
+ "Flag for saving text.
153
+ If non-nil, tdiary buffer is associated to a real file,
154
+ named `tdiary-date' + `tdiary-text-suffix'.")
155
+
156
+ (defvar tdiary-browser-function nil
157
+ "Function to call browser.
158
+ If non-nil, `tdiary-update' calls this function. The function
159
+ is expected to accept only one argument(URL).")
160
+
161
+ (defvar tdiary-mode-hook nil
162
+ "Hook run when entering tDiary mode.")
163
+
164
+ (defvar tdiary-init-file "~/.tdiary"
165
+ "Init file for tDiary-mode.")
166
+
167
+ ;(defvar tdiary-plugin-dir nil
168
+ ; "Path to plugins. It must be a mounted file system.")
169
+ ;(defvar tdiary-plugin-definition-regexp "^[ \t]*def[ \t]+\\(.+?\\)[ \t]*\\(?:$\\|;\\|([ \t]*\\(.*?\\)[ \t]*)\\)")
170
+
171
+
172
+ ;;; Code:
173
+ (defun tdiary-tempo-add-tag (def)
174
+ (let* ((plugin (car def))
175
+ (element (cadr def))
176
+ (name (concat "tdiary-" plugin))
177
+ (completer (concat "<%=" plugin))
178
+ (doc (concat "Insert `" plugin "'"))
179
+ (command (tempo-define-template name element completer doc
180
+ 'tdiary-tempo-tags)))
181
+ (add-to-list 'tdiary-plugin-list (list plugin command))))
182
+
183
+ (defun tdiary-tempo-define (l)
184
+ (mapcar 'tdiary-tempo-add-tag l))
185
+
186
+
187
+ ;(defun tdiary-parse-plugin-args (args)
188
+ ; (if (null args)
189
+ ; nil
190
+ ; (mapcar '(lambda (x)
191
+ ; (let ((l (split-string x "[ \t]*=[ \t]*")))
192
+ ; (if (eq (length l) 1)
193
+ ; (car l)
194
+ ; l)))
195
+ ; (split-string args "[ \t]*,[ \t]*"))))
196
+
197
+ ;(defun tdiary-update-plugin-definition ()
198
+ ; (interactive)
199
+ ; (let ((files (directory-files tdiary-plugin-dir t ".*\\.rb$" nil t))
200
+ ; (buf (generate-new-buffer "*update plugin*")))
201
+ ; (save-excursion
202
+ ; (save-window-excursion
203
+ ; (switch-to-buffer buf)
204
+ ; (mapc 'insert-file-contents files)
205
+ ; (setq tdiary-plugin-definition nil)
206
+ ; (while (re-search-forward tdiary-plugin-definition-regexp nil t)
207
+ ; (add-to-list 'tdiary-plugin-definition
208
+ ; (list (match-string 1)
209
+ ; (tdiary-parse-plugin-args (match-string 2)))))
210
+ ; (kill-buffer buf)))))
211
+
212
+ (defun tdiary-do-complete-plugin (&optional name)
213
+ "Complete function for plugin."
214
+ (let (command)
215
+ (when (null name)
216
+ (setq name
217
+ (completing-read "plugin: " tdiary-plugin-list nil nil nil
218
+ 'tdiary-complete-plugin-history)))
219
+ (setq command (cadr (assoc name tdiary-plugin-list)))
220
+ (when command
221
+ (funcall command))))
222
+
223
+ ;; derived from tempo.el
224
+ (defun tdiary-complete-plugin (&optional silent)
225
+ "Look for a HTML tag or plugin and expand it.
226
+ If there are no completable text, call `tdiary-do-complete-plugin'."
227
+ (interactive "*")
228
+ (let* ((collection (tempo-build-collection))
229
+ (match-info (tempo-find-match-string tempo-match-finder))
230
+ (match-string (car match-info))
231
+ (match-start (cdr match-info))
232
+ (exact (assoc match-string collection))
233
+ (compl (or (car exact)
234
+ (and match-info (try-completion match-string collection)))))
235
+ (if compl (delete-region match-start (point)))
236
+ (cond ((or (null match-info)
237
+ (null compl))
238
+ (tdiary-do-complete-plugin))
239
+ ((eq compl t) (tempo-insert-template
240
+ (cdr (assoc match-string
241
+ collection))
242
+ nil))
243
+ (t (if (setq exact (assoc compl collection))
244
+ (tempo-insert-template (cdr exact) nil)
245
+ (insert compl)
246
+ (or silent (ding))
247
+ (if tempo-show-completion-buffer
248
+ (tempo-display-completions match-string
249
+ collection)))))))
250
+
251
+ (defun tdiary-today ()
252
+ (let* ((offset-second (* tdiary-hour-offset 60 60))
253
+ (now (current-time))
254
+ (high (nth 0 now))
255
+ (low (+ (nth 1 now) offset-second))
256
+ (micro (nth 2 now)))
257
+ (setq high (+ high (/ low 65536))
258
+ low (% low 65536))
259
+ (when (< low 0)
260
+ (setq high (1- high)
261
+ low (+ low 65536)))
262
+ (list high low micro)))
263
+
264
+ (defun tdiary-read-username (url name)
265
+ (let ((username (tdiary-passwd-cache-read-username url)))
266
+ (or username
267
+ (read-string (concat "User Name for '" name "': ")))))
268
+
269
+ (defun tdiary-read-password (url name)
270
+ (let ((password (tdiary-passwd-cache-read-password url)))
271
+ (or password
272
+ (read-passwd (concat "Password for '" name "': ")))))
273
+
274
+ (defun tdiary-read-date (date)
275
+ (while (not (string-match
276
+ "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"
277
+ (setq date (read-string "Date: "
278
+ (or date
279
+ (format-time-string "%Y%m%d" (tdiary-today)))))))
280
+ nil)
281
+ date)
282
+
283
+ (defun tdiary-read-title (date)
284
+ (read-string (concat "Title for " date ": ") tdiary-title))
285
+
286
+ (defun tdiary-read-mode (mode)
287
+ (let ((default (caar tdiary-edit-mode-list)))
288
+ (completing-read "Editing mode: " tdiary-edit-mode-list
289
+ nil t (or mode default) nil default)))
290
+
291
+ (defun tdiary-passwd-file-load ()
292
+ "Load password alist."
293
+ (save-excursion
294
+ (let ((buf (get-buffer-create "*tdiary-passwd-cache*")))
295
+ (when (and tdiary-passwd-file
296
+ (file-readable-p tdiary-passwd-file))
297
+ (set-buffer buf)
298
+ (insert-file-contents tdiary-passwd-file)
299
+ (setq tdiary-passwd-cache (read buf)))
300
+ (kill-buffer buf))))
301
+
302
+ (defun tdiary-passwd-file-save ()
303
+ "Save password alist.
304
+ Dangerous!!!"
305
+ (interactive)
306
+ (save-excursion
307
+ (let ((buf (get-buffer-create "*tdiary-passwd-cache*")))
308
+ (set-buffer buf)
309
+ (erase-buffer)
310
+ (prin1 tdiary-passwd-cache buf)
311
+ (terpri buf)
312
+ (when (and tdiary-passwd-file
313
+ (file-writable-p tdiary-passwd-file))
314
+ (write-region (point-min) (point-max) tdiary-passwd-file)
315
+ (set-file-modes tdiary-passwd-file tdiary-passwd-file-mode))
316
+ (kill-buffer buf))))
317
+
318
+ (defun tdiary-passwd-cache-clear (url)
319
+ (setq tdiary-passwd-cache (remassoc url tdiary-passwd-cache)))
320
+
321
+ (defun tdiary-passwd-cache-save (url user pass)
322
+ (tdiary-passwd-cache-clear url)
323
+ (add-to-list 'tdiary-passwd-cache
324
+ (cons url (cons user (base64-encode-string pass)))))
325
+
326
+ (defun tdiary-passwd-cache-read-username (url)
327
+ (cadr (assoc url tdiary-passwd-cache)))
328
+
329
+ (defun tdiary-passwd-cache-read-password (url)
330
+ (let ((password (cddr (assoc url tdiary-passwd-cache))))
331
+ (and password
332
+ (base64-decode-string password))))
333
+
334
+ (defun tdiary-post (mode date data)
335
+ (let ((url (concat tdiary-diary-url tdiary-update-rb))
336
+ buf title user pass year month day post-data)
337
+ (when (not (equal mode "edit"))
338
+ (setq tdiary-edit-mode (setq mode (tdiary-read-mode mode)))
339
+ (setq tdiary-date (setq date (tdiary-read-date date)))
340
+ (setq tdiary-title (setq title (tdiary-read-title date))))
341
+ (setq user (tdiary-read-username url tdiary-diary-name))
342
+ (setq pass (tdiary-read-password url tdiary-diary-name))
343
+ (string-match "\\([0-9][0-9][0-9][0-9]\\)\\([0-9][0-9]\\)\\([0-9][0-9]\\)"
344
+ date)
345
+ (setq year (match-string 1 date)
346
+ month (match-string 2 date)
347
+ day (match-string 3 date))
348
+ (add-to-list 'post-data (cons "old" date))
349
+ (add-to-list 'post-data (cons "year" year))
350
+ (add-to-list 'post-data (cons "month" month))
351
+ (add-to-list 'post-data (cons "day" day))
352
+ (if tdiary-csrf-key (add-to-list 'post-data (cons "csrf_protection_key" tdiary-csrf-key)))
353
+ (or (equal mode "edit")
354
+ (add-to-list 'post-data
355
+ (cons "title" (http-url-hexify-string
356
+ title
357
+ tdiary-coding-system))))
358
+ (add-to-list 'post-data (cons mode mode))
359
+ (and data
360
+ (add-to-list 'post-data
361
+ (cons "body"
362
+ (http-url-hexify-string data tdiary-coding-system))))
363
+ (setq buf (http-fetch url 'post user pass post-data))
364
+ (if (bufferp buf)
365
+ (save-excursion
366
+ (tdiary-passwd-cache-save url user pass)
367
+ (set-buffer buf)
368
+ (decode-coding-region (point-min) (point-max) tdiary-coding-system)
369
+ (goto-char (point-min))
370
+ buf)
371
+ (tdiary-passwd-cache-clear url)
372
+ (error "tDiary POST: %s - %s" (car buf) (cdr buf)))))
373
+
374
+ (defun tdiary-post-text ()
375
+ (let* ((dirname (expand-file-name tdiary-diary-name
376
+ (or tdiary-text-directory
377
+ (expand-file-name "~/"))))
378
+ (filename (expand-file-name (concat tdiary-date tdiary-text-suffix)
379
+ dirname)))
380
+ (unless (file-directory-p dirname)
381
+ (make-directory dirname t)
382
+ (set-file-modes dirname tdiary-text-directory-mode))
383
+
384
+ ;; If buffer-file-name is tdiary-text-directory/tdiary-diary-name/yyyymmdd.td
385
+ ;; do nothing.
386
+ (unless (equal filename buffer-file-name)
387
+ (cond
388
+ ((equal tdiary-edit-mode "replace")
389
+ (write-region (point-min) (point-max) filename))
390
+ ((equal tdiary-edit-mode "append")
391
+ (write-region (point-min) (point-max) filename t))))))
392
+
393
+ (defun tdiary-update ()
394
+ "Update diary."
395
+ (interactive)
396
+ (unless (and (eq (char-before (point-max)) ?\n)
397
+ (eq (char-before (1- (point-max))) ?\n))
398
+ (save-excursion
399
+ (goto-char (point-max))
400
+ (insert "\n")))
401
+ (tdiary-post tdiary-edit-mode tdiary-date
402
+ (buffer-substring (point-min) (point-max)))
403
+ (when tdiary-text-save-p
404
+ (tdiary-post-text))
405
+ (if buffer-file-name
406
+ (save-buffer)
407
+ (set-buffer-modified-p nil))
408
+ (message "SUCCESS")
409
+ (and (functionp tdiary-browser-function)
410
+ (funcall tdiary-browser-function
411
+ (concat tdiary-diary-url tdiary-index-rb
412
+ "?date=" tdiary-date))))
413
+
414
+ (defun tdiary-do-replace-entity-ref (from to &optional str)
415
+ (save-excursion
416
+ (goto-char (point-min))
417
+ (if (stringp str)
418
+ (progn
419
+ (while (string-match from str)
420
+ (setq str (replace-match to nil nil str)))
421
+ str)
422
+ (while (search-forward from nil t)
423
+ (replace-match to nil nil)))))
424
+
425
+ (defun tdiary-replace-entity-refs (&optional str)
426
+ "Replace entity references.
427
+
428
+ If STR is a string, replace entity references within the string.
429
+ Otherwise replace all entity references within current buffer."
430
+ (tdiary-do-replace-entity-ref
431
+ "&amp;" "&"
432
+ (tdiary-do-replace-entity-ref
433
+ "&lt;" "<"
434
+ (tdiary-do-replace-entity-ref
435
+ "&gt;" ">"
436
+ (tdiary-do-replace-entity-ref "&quot;" "\"" str)))))
437
+
438
+ ;(defun tdiary-read-mode (mode)
439
+ ; (let ((default (caar tdiary-edit-mode-list)))
440
+ ; (completing-read "Editing mode: " tdiary-edit-mode-list
441
+ ; nil t (or mode default) nil default)))
442
+
443
+
444
+ (defun tdiary-obsolete-check ()
445
+ ;; setting tdiary-diary-url in tdiary-init-file is obsolete.
446
+ (when tdiary-diary-url
447
+ (message "tdiary-diary-url is OBSOLETE. Use tdiary-diary-list instead of tdiary-diary-url.")
448
+ (sit-for 5)))
449
+
450
+ ;(defun tdiary-setup-diary-url (select-url)
451
+ ; (interactive)
452
+ ; (if (interactive-p)
453
+ ; (setq select-url t))
454
+ (defun tdiary-setup-diary-url (select-url)
455
+ ;; setting tdiary-diary-url in tdiary-init-file is obsolete.
456
+ (tdiary-obsolete-check)
457
+ (unless tdiary-diary-url
458
+ (let* ((selected (car tdiary-diary-list))
459
+ (default (car selected)))
460
+ (when select-url
461
+ (setq selected (assoc (completing-read "Select SITE: " tdiary-diary-list
462
+ nil t default nil default)
463
+ tdiary-diary-list)))
464
+ (setq tdiary-diary-name (nth 0 selected)
465
+ tdiary-diary-url (nth 1 selected))
466
+ (and (eq (length selected) 4)
467
+ (setq tdiary-index-rb (nth 2 selected)
468
+ tdiary-update-rb (nth 3 selected))))))
469
+
470
+ (defun tdiary-new-or-replace (replacep select-url)
471
+ (let (buf)
472
+ (setq buf (generate-new-buffer "*tdiary tmp*"))
473
+ (switch-to-buffer buf)
474
+ (tdiary-mode)
475
+ (setq tdiary-edit-mode "append")
476
+ (let (start end body title csrf-key)
477
+ (save-excursion
478
+ (setq buf (tdiary-post "edit" tdiary-date nil))
479
+ (when (bufferp buf)
480
+ (save-excursion
481
+ (set-buffer buf)
482
+ (if (re-search-forward "<input [^>]+name=\"csrf_protection_key\" [^>]*value=\"\\([^>\"]*\\)\">" nil t nil)
483
+ (setq csrf-key (match-string 1)))
484
+ (re-search-forward "<input [^>]+name=\"title\" [^>]+value=\"\\([^>\"]*\\)\">" nil t nil)
485
+ (setq title (match-string 1))
486
+ (re-search-forward "<textarea [^>]+>" nil t nil)
487
+ (setq start (match-end 0))
488
+ (re-search-forward "</textarea>" nil t nil)
489
+ (setq end (match-beginning 0))
490
+ (setq body (buffer-substring start end))
491
+ )
492
+ (setq tdiary-csrf-key (and csrf-key (tdiary-replace-entity-refs csrf-key)))
493
+ (when replacep
494
+ (insert body)
495
+ (setq tdiary-edit-mode "replace")
496
+ (setq tdiary-title (tdiary-replace-entity-refs title))
497
+ (goto-char (point-min))
498
+ (tdiary-replace-entity-refs)
499
+ (set-buffer-modified-p nil)))))))
500
+
501
+ (defun tdiary-new (&optional select-url)
502
+ (interactive "P")
503
+ (tdiary-new-or-replace nil select-url))
504
+
505
+ (defun tdiary-replace (&optional select-url)
506
+ (interactive "P")
507
+ (tdiary-new-or-replace t select-url))
508
+
509
+ (defvar tdiary-mode-map (make-sparse-keymap)
510
+ "Set up keymap for tdiary-mode.
511
+ If you want to set up your own key bindings, use `tdiary-mode-hook'.")
512
+
513
+ (define-key tdiary-mode-map [(control return)] 'tdiary-complete-plugin)
514
+ (define-key tdiary-mode-map "\C-c\C-c" 'tdiary-update)
515
+
516
+ (push (cons 'tdiary-date tdiary-mode-map) minor-mode-map-alist)
517
+ (if (boundp 'minor-mode-list) (push 'tdiary-mode minor-mode-list))
518
+ (push '(tdiary-date " tDiary") minor-mode-alist)
519
+
520
+ (defun tdiary-load-init-file ()
521
+ "Load init file."
522
+ (let ((init-file (expand-file-name tdiary-init-file)))
523
+ (when (file-readable-p init-file)
524
+ (load init-file t t))))
525
+
526
+ (defun tdiary-make-temp-file-name ()
527
+ (let ((tmpdir (expand-file-name tdiary-diary-name
528
+ (expand-file-name (user-login-name)
529
+ temporary-file-directory))))
530
+ (unless (file-directory-p tmpdir)
531
+ (make-directory tmpdir t)
532
+ (set-file-modes tmpdir tdiary-text-directory-mode))
533
+ (expand-file-name tdiary-date tmpdir)))
534
+
535
+ (defun tdiary-html-mode-init ()
536
+ "Initialize tDiary for default style"
537
+ (tdiary-tempo-define (append tdiary-plugin-initial-definition
538
+ tdiary-plugin-definition))
539
+ (tempo-use-tag-list 'tdiary-tempo-tags tdiary-completion-finder))
540
+
541
+ (defun tdiary-rd-mode-init ()
542
+ "Initialize tDiary for RD style"
543
+ )
544
+
545
+ (defun tdiary-mode ()
546
+ "tDiary editing mode.
547
+ The value of `tdiary-style-mode' will be used as actual major mode.
548
+
549
+ \\{tdiary-mode-map}"
550
+ (interactive)
551
+ (funcall tdiary-style-mode)
552
+ (and (featurep 'font-lock)
553
+ (font-lock-set-defaults))
554
+ (tdiary-mode-setup))
555
+
556
+ (defun tdiary-mode-setup ()
557
+ "Set tDiary mode up."
558
+ (interactive)
559
+ (make-local-variable 'require-final-newline)
560
+ (make-local-variable 'tdiary-date)
561
+ (make-local-variable 'tdiary-title)
562
+ (make-local-variable 'tdiary-edit-mode)
563
+ (make-local-variable 'tdiary-diary-url)
564
+ (make-local-variable 'tdiary-index-rb)
565
+ (make-local-variable 'tdiary-update-rb)
566
+ (make-local-variable 'tdiary-csrf-key)
567
+ (setq require-final-newline t
568
+ indent-tabs-mode nil
569
+ tdiary-edit-mode "replace"
570
+ tdiary-date (format-time-string "%Y%m%d" (tdiary-today)))
571
+
572
+ (tdiary-load-init-file)
573
+
574
+ (tdiary-setup-diary-url (if (boundp 'select-url)
575
+ select-url
576
+ t))
577
+
578
+ (set-buffer-file-coding-system tdiary-coding-system)
579
+
580
+ (or tdiary-passwd-cache
581
+ (tdiary-passwd-file-load))
582
+
583
+ (if buffer-file-name
584
+ (let ((buf-name (file-name-nondirectory buffer-file-name)))
585
+ (when (string-match
586
+ "\\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\\)"
587
+ buf-name)
588
+ (setq tdiary-date (match-string 1 buf-name))))
589
+ (setq tdiary-date (tdiary-read-date nil))
590
+ (if tdiary-text-save-p
591
+ (set-visited-file-name (tdiary-make-temp-file-name))
592
+ (unless (string= (buffer-name) tdiary-date)
593
+ (rename-buffer tdiary-date t))))
594
+
595
+ (let ((init (intern (concat "tdiary-" (symbol-name tdiary-style-mode) "-init"))))
596
+ (if (fboundp init) (funcall init)))
597
+
598
+ (run-hooks 'tdiary-mode-hook))
599
+
600
+ (defun tdiary-mode-toggle (&optional arg)
601
+ (interactive "P")
602
+ (let ((in-tdiary (and (boundp 'tdiary-date) tdiary-date)))
603
+ (cond ((not arg)
604
+ (setq arg (not in-tdiary)))
605
+ ((or (eq arg '-) (and (numberp arg) (< arg 0)))
606
+ (setq arg nil)))
607
+ (cond (arg
608
+ (tdiary-mode-setup))
609
+ (in-tdiary
610
+ (setq tdiary-date nil)))))
611
+
612
+ (provide 'tdiary-mode)
613
+ ;;; tdiary-mode.el ends here
@@ -0,0 +1,25 @@
1
+ 2005-07-29 Fri UECHI Yasumasa <uechi@potaway.net>
2
+ * echo site name and url when select a diary site.
3
+ * allow to set update script each diary.
4
+ * use CSRF protection key if exits.
5
+
6
+ 2005-07-28 Thu UECHI Yasumasa <uechi@potaway.net>
7
+ * send referer when update a diary.
8
+
9
+ 2004-11-08 Mon UECHI Yasumasa <uechi@potaway.net>
10
+ * change substitution order of character entity in TdiaryReplace(). thanx やえもん.
11
+
12
+ 2004-02-25 Wed UECHI Yasumasa <uechi@potaway.net>
13
+ * support TrackBack
14
+
15
+ 2004-02-19 Thu UECHI Yasumasa <uechi@potaway.net>
16
+ * quote argument of curl's -u option.
17
+
18
+ 2004-02-17 Tue UECHI Yasumasa <uechi@potaway.net>
19
+ * use .netrc when g:tdiary_use_netrc = 1
20
+
21
+ 2004-02-16 Mon UECHI Yasumasa <uechi@potaway.net>
22
+ * change editing mode, date, title in diary buffer.
23
+
24
+ 2004-02-13 Fri UECHI Yasumasa <uechi@potaway.net>
25
+ * commit to CVS repository
@@ -0,0 +1,60 @@
1
+ = tdiary.vim
2
+ tdiary.vim は vim から日記を更新するための vimスクリプトです。
3
+
4
+ == 必要なもの
5
+ tdiary.vim を使用するには以下のものが必要です。
6
+
7
+ * cURL - コマンドラインから http や ftp で通信するためのツール
8
+ * iconv ライブラリ
9
+ * vim (+iconv でコンパイルしたもの)
10
+
11
+ cURL は ((<URL:http://curl.haxx.se/>)) から入手できます。
12
+
13
+ == インストール
14
+ tdiary.vim を $HOME/.vim/plugin ディレクトリにコピーするだけです。
15
+
16
+ == 設定
17
+ $HOME/.vimrc で次のように tDiary サイトの URL を設定します。
18
+
19
+ let tdiary_site1_url = "http://www.example.com/tdiary/"
20
+
21
+ 最低限必要な設定はこれだけですが、複数の日記を更新するなら以下のような設定を追加してください。
22
+
23
+ let tdiary_site1_name = "ほげほげ日記"
24
+ let tdiary_site2_url = "http://www.example.net/tdiary/"
25
+ let tdiary_site2_name = "foobar日記"
26
+
27
+ tDiary を設置するときに update.rb を update.cgi 等に変更している場合は以下も追加してください。
28
+
29
+ let tdiary_site1_updatescript = "update.cgi"
30
+ let tdiary_site2_updatescript = "update.cgi"
31
+
32
+ == パスワードの保存
33
+ cURL は $HOME/.netrc を読めるので、パスワードの保存にその機能を使います。ユーザ名とパスワードを .netrc に保存し、$HOME/.vimrc に
34
+
35
+ let tdiary_use_netrc = 1
36
+
37
+ と設定すると有効になります。
38
+
39
+ == 使い方
40
+ tdiary.vim では次のコマンドが使えます。
41
+
42
+ * :TDiaryNew - 日記を書くための空のバッファを開きます
43
+ * :TDiaryReplace - 指定した日付の日記を読み込んだバッファを開きます
44
+ * :TDiaryUpdate - 日記を更新します
45
+ * :TDiarySelect - 更新する tDiary サイトを選択するためのバッファを開きます
46
+ * :TDiaryTrackback - TrackBack の excerpt を編修するためのバッファを開きます
47
+
48
+ === 日記に追記
49
+ :TDiaryNew すると日付が YYYYMMDD 形式で表示されますので、適宜修正してリターンキーを押してください。日記を書いたら :TDiaryUpdate で更新してください。
50
+
51
+ === 日記を修正
52
+ :TDiaryReplace すると日付が YYYYMMDD 形式で表示されますので、修正したい日付に直してリターンキーを押してください。指定した日の日記が読み込まれます。修正後に :TDiaryUpdate で更新してください。
53
+
54
+ === tDiary サイトの選択
55
+ :TDiarySelect すると日記の一覧が表示されます。日記にカーソルを合わせてリターンキーを押すことで書き込み先が切り替わります。
56
+
57
+ === TrackBack
58
+ 日記の編修バッファに表示されている TrackBackURL: に TrackBack 先の URL を記
59
+ 入することで TrackBack が送られます。excerpt を編修する場合は :TDiaryTrackback
60
+ することで編修用のバッファが開きます。