tdiary-contrib 3.2.2.20130518
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +35 -0
- data/README.en.md +12 -0
- data/README.md +13 -0
- data/Rakefile +41 -0
- data/doc/en/filter/spambayes.txt +3 -0
- data/doc/en/plugin.txt +1 -0
- data/doc/en/style/hatena.txt +10 -0
- data/doc/en/style/markdown.txt +16 -0
- data/doc/en/util.txt +1 -0
- data/doc/ja/filter/antirefspam.history.txt +59 -0
- data/doc/ja/filter/antirefspam.txt +86 -0
- data/doc/ja/filter/comment_key.ja.html +182 -0
- data/doc/ja/filter/spambayes.txt +3 -0
- data/doc/ja/plugin/add_bookmark.txt +50 -0
- data/doc/ja/plugin/category_to_tag.txt +21 -0
- data/doc/ja/plugin/cocoment.txt +31 -0
- data/doc/ja/plugin/google_adsense.txt +25 -0
- data/doc/ja/plugin/google_analytics.txt +7 -0
- data/doc/ja/plugin/image_detail.txt +69 -0
- data/doc/ja/plugin/image_gps.txt +36 -0
- data/doc/ja/plugin/image_gps2.txt +41 -0
- data/doc/ja/plugin/livedoor_weather.txt +105 -0
- data/doc/ja/plugin/opensearch_ad.txt +16 -0
- data/doc/ja/plugin/section_footer.txt +84 -0
- data/doc/ja/plugin/select_theme.txt +1 -0
- data/doc/ja/plugin.txt +13 -0
- data/doc/ja/style/hatena.txt +10 -0
- data/doc/ja/style/markdown.txt +13 -0
- data/doc/ja/util.txt +12 -0
- data/filter/antirefspam.rb +263 -0
- data/filter/commentkey.rb +29 -0
- data/filter/commentsize.rb +18 -0
- data/filter/hidecomment.rb +13 -0
- data/filter/iplookup.rb +55 -0
- data/filter/plugin/antirefspam.rb +59 -0
- data/filter/plugin/commentkey.rb +58 -0
- data/filter/plugin/commentsize.rb +12 -0
- data/filter/plugin/en/iplookup.rb +9 -0
- data/filter/plugin/en/spambayes.rb +123 -0
- data/filter/plugin/iplookup.rb +39 -0
- data/filter/plugin/ja/antirefspam.rb +91 -0
- data/filter/plugin/ja/commentkey.rb +17 -0
- data/filter/plugin/ja/commentsize.rb +6 -0
- data/filter/plugin/ja/iplookup.rb +9 -0
- data/filter/plugin/ja/spambayes.rb +124 -0
- data/filter/plugin/spambayes.rb +501 -0
- data/filter/plugin/zh/iplookup.rb +9 -0
- data/filter/rblcheck.rb +36 -0
- data/filter/spambayes.rb +535 -0
- data/filter/spamlookup.rb +37 -0
- data/io/dbi_io/ChangeLog +19 -0
- data/io/dbi_io/README.ja +39 -0
- data/io/dbi_io/dbi_io.rb +181 -0
- data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
- data/io/dbi_io/tdiary_table.sql +42 -0
- data/js/appstore.js +109 -0
- data/js/datepicker.js +69 -0
- data/js/editor.js +82 -0
- data/js/flickr.js +157 -0
- data/js/image_ex.js +79 -0
- data/js/jquery.socialbutton.js +842 -0
- data/js/nicovideo.js +17 -0
- data/js/picasa.js +322 -0
- data/js/plugin_checker.js +71 -0
- data/js/prettify/lang-apollo.js +2 -0
- data/js/prettify/lang-clj.js +18 -0
- data/js/prettify/lang-css.js +2 -0
- data/js/prettify/lang-go.js +1 -0
- data/js/prettify/lang-hs.js +2 -0
- data/js/prettify/lang-lisp.js +3 -0
- data/js/prettify/lang-lua.js +2 -0
- data/js/prettify/lang-ml.js +2 -0
- data/js/prettify/lang-n.js +4 -0
- data/js/prettify/lang-proto.js +1 -0
- data/js/prettify/lang-scala.js +2 -0
- data/js/prettify/lang-sql.js +2 -0
- data/js/prettify/lang-tex.js +1 -0
- data/js/prettify/lang-vb.js +2 -0
- data/js/prettify/lang-vhdl.js +3 -0
- data/js/prettify/lang-wiki.js +2 -0
- data/js/prettify/lang-xq.js +3 -0
- data/js/prettify/lang-yaml.js +2 -0
- data/js/prettify/prettify.css +1 -0
- data/js/prettify/prettify.js +28 -0
- data/js/referer.js +17 -0
- data/js/show_and_hide.js +39 -0
- data/js/socialbutton.js +126 -0
- data/js/twitter_anywhere.js +28 -0
- data/js/yahoo_kousei.js +21 -0
- data/lib/bayes/convert.rb +34 -0
- data/lib/bayes.rb +232 -0
- data/lib/exifparser/BUGS +1 -0
- data/lib/exifparser/ChangeLog +169 -0
- data/lib/exifparser/README +15 -0
- data/lib/exifparser/install.rb +1015 -0
- data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
- data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
- data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
- data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
- data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
- data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
- data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
- data/lib/exifparser/lib/exifparser/scan.rb +278 -0
- data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
- data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
- data/lib/exifparser/lib/exifparser/utils.rb +88 -0
- data/lib/exifparser/lib/exifparser.rb +265 -0
- data/lib/exifparser/sample/exifview.rb +279 -0
- data/lib/tdiary-contrib.rb +19 -0
- data/lib/wgs2tky.rb +93 -0
- data/misc/section_footer2/buzzurl.yaml +6 -0
- data/misc/section_footer2/fc2.yaml +6 -0
- data/misc/section_footer2/ldc.yaml +6 -0
- data/misc/section_footer2/retweet.yaml +7 -0
- data/misc/section_footer2/twitter.yaml +7 -0
- data/misc/section_footer2/yahoo.yaml +6 -0
- data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
- data/plugin/add_bookmark.rb +89 -0
- data/plugin/apple_webclip.rb +26 -0
- data/plugin/appstore.rb +47 -0
- data/plugin/bigpresen.rb +86 -0
- data/plugin/bitly.rb +39 -0
- data/plugin/bootstrap-navi.rb +54 -0
- data/plugin/canonical.rb +9 -0
- data/plugin/category_similar.rb +73 -0
- data/plugin/category_to_tag.rb +60 -0
- data/plugin/category_to_tagcloud.rb +172 -0
- data/plugin/cocomment.rb +37 -0
- data/plugin/code-prettify.rb +23 -0
- data/plugin/coderwall.rb +34 -0
- data/plugin/datepicker.rb +28 -0
- data/plugin/day2section.rb +20 -0
- data/plugin/del_footer.rb +111 -0
- data/plugin/description_from_body.rb +23 -0
- data/plugin/development.rb +16 -0
- data/plugin/editor.rb +11 -0
- data/plugin/en/add_bookmark.rb +20 -0
- data/plugin/en/del_footer.rb +10 -0
- data/plugin/en/git-register.rb +3 -0
- data/plugin/en/livedoor_weather.rb +25 -0
- data/plugin/en/microsummary.rb +18 -0
- data/plugin/en/nicovideo.rb +38 -0
- data/plugin/en/openid.rb +8 -0
- data/plugin/en/section_footer.rb +6 -0
- data/plugin/en/section_footer2.rb +3 -0
- data/plugin/en/socialbutton.rb +5 -0
- data/plugin/everytrail.rb +39 -0
- data/plugin/facebook_comments.rb +59 -0
- data/plugin/flickr.rb +209 -0
- data/plugin/gist.rb +16 -0
- data/plugin/git-register.rb +240 -0
- data/plugin/github_badge.rb +27 -0
- data/plugin/github_link.rb +9 -0
- data/plugin/goo_gl.rb +42 -0
- data/plugin/google_adsense.rb +132 -0
- data/plugin/google_analytics.rb +39 -0
- data/plugin/google_map.rb +168 -0
- data/plugin/google_sitemaps.rb +60 -0
- data/plugin/google_webmaster.rb +22 -0
- data/plugin/hatena_bookmark_nocomment.rb +9 -0
- data/plugin/hatena_star.rb +66 -0
- data/plugin/hb_footer.rb +255 -0
- data/plugin/hb_footer4sec.rb +244 -0
- data/plugin/hb_footer4sec_js.rb +30 -0
- data/plugin/hide_comment_form.rb +4 -0
- data/plugin/hide_sidebar_iphone.rb +21 -0
- data/plugin/iddy.rb +81 -0
- data/plugin/image_detail.rb +143 -0
- data/plugin/image_ex.rb +462 -0
- data/plugin/image_gps.rb +128 -0
- data/plugin/inline_wiki.rb +6 -0
- data/plugin/instagr.rb +64 -0
- data/plugin/ja/add_bookmark.rb +20 -0
- data/plugin/ja/del_footer.rb +10 -0
- data/plugin/ja/flickr.rb +62 -0
- data/plugin/ja/git-register.rb +3 -0
- data/plugin/ja/google_sitemaps.rb +35 -0
- data/plugin/ja/livedoor_weather.rb +25 -0
- data/plugin/ja/microsummary.rb +18 -0
- data/plugin/ja/nicovideo.rb +41 -0
- data/plugin/ja/openid.rb +7 -0
- data/plugin/ja/section_footer.rb +6 -0
- data/plugin/ja/section_footer2.rb +4 -0
- data/plugin/ja/socialbutton.rb +6 -0
- data/plugin/jdate.rb +20 -0
- data/plugin/jholiday.rb +16 -0
- data/plugin/jmonth.rb +20 -0
- data/plugin/jquery_ui_theme.rb +55 -0
- data/plugin/jroku.rb +28 -0
- data/plugin/jyear.rb +37 -0
- data/plugin/latlonglab_route.rb +25 -0
- data/plugin/lazy_referer.rb +38 -0
- data/plugin/livedoor_weather.rb +180 -0
- data/plugin/make_link.rb +44 -0
- data/plugin/makerss_category.rb +43 -0
- data/plugin/makerss_comment.rb +35 -0
- data/plugin/microsummary.rb +62 -0
- data/plugin/mm_footer.rb +215 -0
- data/plugin/monthly_autopagerize.rb +67 -0
- data/plugin/my_hotentry.rb +132 -0
- data/plugin/navi_day.rb +118 -0
- data/plugin/navi_this_month.rb +15 -0
- data/plugin/nicovideo.rb +115 -0
- data/plugin/notify_miniblog.rb +134 -0
- data/plugin/ogp.rb +55 -0
- data/plugin/ohmsha_estore.rb +71 -0
- data/plugin/openid.rb +90 -0
- data/plugin/opensearch_ad.rb +33 -0
- data/plugin/picasa.rb +56 -0
- data/plugin/plugin_checker.rb +41 -0
- data/plugin/popit.rb +22 -0
- data/plugin/prettify.rb +19 -0
- data/plugin/prezi.rb +10 -0
- data/plugin/profile.rb +222 -0
- data/plugin/puboo.rb +93 -0
- data/plugin/pygments_css.rb +76 -0
- data/plugin/rating.rb +419 -0
- data/plugin/recent_estraier.rb +50 -0
- data/plugin/recent_tweet.rb +71 -0
- data/plugin/retweet.rb +86 -0
- data/plugin/rubykaigi.rb +99 -0
- data/plugin/search-bing.rb +87 -0
- data/plugin/search-default.rb +264 -0
- data/plugin/search-google-custom.rb +60 -0
- data/plugin/search-yahoo-websearch.rb +121 -0
- data/plugin/search-yahoo.rb +109 -0
- data/plugin/section_footer.rb +195 -0
- data/plugin/section_footer2.rb +278 -0
- data/plugin/section_permalink.rb +73 -0
- data/plugin/section_permalink_anchor.rb +39 -0
- data/plugin/select_style.rb +42 -0
- data/plugin/select_theme.rb +90 -0
- data/plugin/show_and_hide.rb +77 -0
- data/plugin/slideshare.rb +10 -0
- data/plugin/socialbutton.rb +60 -0
- data/plugin/tatsu_zine.rb +93 -0
- data/plugin/tdiarygraph_flashstyle.rb +296 -0
- data/plugin/tdiarytimes.rb +166 -0
- data/plugin/tdiarytimes2.rb +406 -0
- data/plugin/tdiarytimes_flashstyle.rb +263 -0
- data/plugin/tdiarytimes_textstyle.rb +290 -0
- data/plugin/title_anchor.rb +16 -0
- data/plugin/tweet_quote.rb +106 -0
- data/plugin/twitpic.rb +10 -0
- data/plugin/twitter.rb +46 -0
- data/plugin/twitter_anywhere.rb +209 -0
- data/plugin/twitter_badge.rb +42 -0
- data/plugin/twitter_js.rb +59 -0
- data/plugin/ustream.rb +19 -0
- data/plugin/vimeo.rb +14 -0
- data/plugin/volatile.rb +89 -0
- data/plugin/vote.rb +100 -0
- data/plugin/wikiloc.rb +27 -0
- data/plugin/windex.rb +512 -0
- data/plugin/yahoo_kousei.rb +79 -0
- data/plugin/yahoo_map.rb +97 -0
- data/plugin/youtube.rb +33 -0
- data/plugin/yshop.rb +189 -0
- data/plugin/zenback.rb +46 -0
- data/spec/apple_webclip_spec.rb +46 -0
- data/spec/fixtures/friendfeed.xml +2 -0
- data/spec/fixtures/github.json +1 -0
- data/spec/fixtures/twitter.xml +73 -0
- data/spec/gist_spec.rb +16 -0
- data/spec/github_link_spec.rb +39 -0
- data/spec/google_analytics_spec.rb +60 -0
- data/spec/jdate_spec.rb +23 -0
- data/spec/jmonth_spec.rb +28 -0
- data/spec/jyear_spec.rb +21 -0
- data/spec/my_hotentry_spec.rb +78 -0
- data/spec/openid_spec.rb +246 -0
- data/spec/opensearch_ad_spec.rb +50 -0
- data/spec/profile_spec.rb +88 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec_helper.rb +223 -0
- data/spec/title_anchor_spec.rb +39 -0
- data/spec/twitter_js_spec.rb +116 -0
- data/spec/youtube_spec.rb +20 -0
- data/style/hatena_style.rb +1011 -0
- data/style/markdown_style.rb +239 -0
- data/style/wikiext_style.rb +21 -0
- data/tdiary-contrib.gemspec +25 -0
- data/util/clean-spam/README.ja +1 -0
- data/util/clean-spam/tdiary-comment-clean +46 -0
- data/util/clean-spam/tdiary-comment-clean2 +81 -0
- data/util/clean-spam/tdiary-referer-clean +46 -0
- data/util/convert_pstore.rb +82 -0
- data/util/estraier-search/ChangeLog +36 -0
- data/util/estraier-search/README.ja +114 -0
- data/util/estraier-search/en/estraier-register.rb +3 -0
- data/util/estraier-search/estraier-register.rb +298 -0
- data/util/estraier-search/estraier-search.rb +273 -0
- data/util/estraier-search/estraier.rhtml +73 -0
- data/util/estraier-search/estraier.rxml +23 -0
- data/util/estraier-search/i.estraier.rhtml +31 -0
- data/util/estraier-search/ja/estraier-register.rb +3 -0
- data/util/image-gallery/README.ja +27 -0
- data/util/image-gallery/image-gallery.rb +523 -0
- data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
- data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
- data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
- data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
- data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
- data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
- data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
- data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
- data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
- data/util/image-gallery/skel/gallery.rhtml +154 -0
- data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
- data/util/image-gallery/tdiary.conf.igsample +8 -0
- data/util/image-gallery/theme/image-gallery.css +85 -0
- data/util/image2flickr.rb +282 -0
- data/util/posttdiary/README.ja +12 -0
- data/util/posttdiary/posttdiary-ex.rb +1155 -0
- data/util/posttdiary/posttdiary.rb +245 -0
- data/util/rast-search/ChangeLog +55 -0
- data/util/rast-search/README.ja +99 -0
- data/util/rast-search/en/rast-register.rb +3 -0
- data/util/rast-search/i.rast.rhtml +33 -0
- data/util/rast-search/ja/rast-register.rb +3 -0
- data/util/rast-search/rast-register.rb +326 -0
- data/util/rast-search/rast-search.rb +249 -0
- data/util/rast-search/rast.rhtml +66 -0
- data/util/rast-search/rast.rxml +21 -0
- data/util/section_link/README +11 -0
- data/util/section_link/misc/plugin/section_link.rb +68 -0
- data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
- data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
- data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
- data/util/section_link/tdiary/wikiext_style.rb +36 -0
- data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
- data/util/tdiary-grep/README +4 -0
- data/util/tdiary-grep/grep.rb +445 -0
- data/util/tdiary-mode/http.el +130 -0
- data/util/tdiary-mode/tdiary-mode.el +613 -0
- data/util/tdiary-vim/ChangeLog +25 -0
- data/util/tdiary-vim/README +60 -0
- data/util/tdiary-vim/tdiary.vim +350 -0
- data/util/tdiarysearch/README.en +53 -0
- data/util/tdiarysearch/README.ja +99 -0
- data/util/tdiarysearch/search.rb +504 -0
- metadata +497 -0
data/io/dbi_io/dbi_io.rb
ADDED
@@ -0,0 +1,181 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# dbi_io.rb: DBI IO for tDiary 2.x.
|
4
|
+
#
|
5
|
+
# NAME dbi_io
|
6
|
+
#
|
7
|
+
# DESCRIPTION tDiary向けDBI用IOクラス
|
8
|
+
# 詳細は、README.jaを参照してください
|
9
|
+
#
|
10
|
+
# Copyright (C) 2003 ma2tak <ma2tak@ma2tak.dyndns.org>
|
11
|
+
# (C) 2004 moonwolf <moonwolf@mooonwolf.com>
|
12
|
+
# (C) 2005 Kazuhiko <kazuhiko@fdiary.net>
|
13
|
+
# (C) 2012 hsbt <shibata.hiroshi@gmail.com>
|
14
|
+
#
|
15
|
+
# You can distribute this under GPL.
|
16
|
+
require 'tdiary/io/base'
|
17
|
+
require 'tempfile'
|
18
|
+
require 'dbi'
|
19
|
+
|
20
|
+
module TDiary
|
21
|
+
module CommentIO
|
22
|
+
def restore_comment(diaries)
|
23
|
+
begin
|
24
|
+
diaries.each do |date, diary_object|
|
25
|
+
@dbh.select_all("SELECT diary_id, name, mail, last_modified, visible, no, author, comment FROM commentdata WHERE author=? AND diary_id=? ORDER BY no;", @dbi_author, date) do |diary_id, name, mail, last_modified, visible, no, author, comment|
|
26
|
+
comment = Comment.new(name, mail, comment, Time.at(last_modified.to_i))
|
27
|
+
comment.show = visible
|
28
|
+
diary_object.add_comment(comment)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
rescue Errno::ENOENT
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def store_comment(diaries)
|
36
|
+
begin
|
37
|
+
diaries.each do |date, diary|
|
38
|
+
no = 0
|
39
|
+
diary.each_comment(diary.count_comments(true)) do |com|
|
40
|
+
no += 1
|
41
|
+
param = [com.name, com.mail, com.date.to_i, com.visible?, com.body, @dbi_author, date, no]
|
42
|
+
sth = @dbh.execute("UPDATE commentdata SET name=?, mail=?, last_modified=?, visible=?, comment=? WHERE author=? AND diary_id=? AND no=?;", *param)
|
43
|
+
if sth.rows == 0
|
44
|
+
@dbh.execute("INSERT INTO commentdata (name, mail, last_modified, visible, comment, author, diary_id, no) VALUES (?,?,?,?,?,?,?,?);", *param)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
@dbh.execute("DELETE FROM commentdata where author=? AND diary_id=? AND no>?", @dbi_author, date, no)
|
48
|
+
end
|
49
|
+
rescue Errno::ENOENT
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
module RefererIO
|
55
|
+
def restore_referer(diaries)
|
56
|
+
return
|
57
|
+
end
|
58
|
+
|
59
|
+
def store_referer(diaries)
|
60
|
+
return
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
class DbiIO < BaseIO
|
66
|
+
include CommentIO
|
67
|
+
include RefererIO
|
68
|
+
|
69
|
+
def initialize(tdiary)
|
70
|
+
@tdiary = tdiary
|
71
|
+
@dbi_url = tdiary.conf.dbi_driver_url
|
72
|
+
@dbi_user = tdiary.conf.dbi_user
|
73
|
+
@dbi_passwd = tdiary.conf.dbi_passwd
|
74
|
+
@dbi_author = tdiary.conf.dbi_author || 'default'
|
75
|
+
@dbh = DBI.connect(@dbi_url, @dbi_user, @dbi_passwd)
|
76
|
+
load_styles
|
77
|
+
end
|
78
|
+
|
79
|
+
class << self
|
80
|
+
def load_cgi_conf(conf)
|
81
|
+
end
|
82
|
+
|
83
|
+
def save_cgi_conf(conf, result)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
#
|
88
|
+
# block must be return boolean which dirty diaries.
|
89
|
+
#
|
90
|
+
def transaction(date)
|
91
|
+
File.open("#{Dir.tmpdir}/dbi_io.lock", 'w') do |file|
|
92
|
+
file.flock(File::LOCK_EX)
|
93
|
+
@dbh.transaction do
|
94
|
+
date_string = date.strftime("%Y%m%d")
|
95
|
+
diaries = {}
|
96
|
+
cache = @tdiary.restore_parser_cache(date, 'defaultio')
|
97
|
+
if cache
|
98
|
+
diaries.update(cache)
|
99
|
+
else
|
100
|
+
restore(date_string, diaries)
|
101
|
+
restore_comment(diaries)
|
102
|
+
restore_referer(diaries)
|
103
|
+
end
|
104
|
+
@old_referers = {}
|
105
|
+
diaries.each_pair{|k,v| @old_referers[k] = v.instance_variable_get('@referers').dup}
|
106
|
+
dirty = yield(diaries) if iterator?
|
107
|
+
store(diaries) if dirty & TDiary::TDiaryBase::DIRTY_DIARY != 0
|
108
|
+
store_comment(diaries) if dirty & TDiary::TDiaryBase::DIRTY_COMMENT != 0
|
109
|
+
store_referer(diaries) if dirty & TDiary::TDiaryBase::DIRTY_REFERER != 0
|
110
|
+
if dirty or not cache
|
111
|
+
@tdiary.store_parser_cache(date, 'defaultio', diaries)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def calendar
|
118
|
+
calendar = Hash.new{|hash, key| hash[key] = []}
|
119
|
+
sql = "SELECT year, month FROM diarydata WHERE author=? GROUP BY year, month ORDER BY year, month;"
|
120
|
+
@dbh.select_all(sql, @dbi_author) do |year, month|
|
121
|
+
calendar[year] << month
|
122
|
+
end
|
123
|
+
calendar
|
124
|
+
end
|
125
|
+
|
126
|
+
def diary_factory(date, title, body, style = 'tDiary')
|
127
|
+
styled_diary_factory(date, title, body, style)
|
128
|
+
end
|
129
|
+
|
130
|
+
# HNF移行ツールのため、作成
|
131
|
+
def restore_diary(date)
|
132
|
+
diaries = {}
|
133
|
+
restore(date, diaries, false)
|
134
|
+
diaries
|
135
|
+
end
|
136
|
+
|
137
|
+
private
|
138
|
+
|
139
|
+
def restore(date, diaries, month=true)
|
140
|
+
sql = "SELECT diary_id, title, last_modified, visible, body, style FROM DiaryData WHERE author='#{@dbi_author}' and diary_id='#{date}';"
|
141
|
+
if month == true
|
142
|
+
if /(\d\d\d\d)(\d\d)(\d\d)/ =~ date
|
143
|
+
sql = "SELECT diary_id, title, last_modified, visible, body, style FROM DiaryData WHERE author='#{@dbi_author}' AND year='#{$1}' AND month='#{$2}';"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
@dbh.select_all(sql) do |diary_id, title, last_modified, visible, body, style|
|
147
|
+
style = 'tdiary' if style.nil? || style.empty?
|
148
|
+
style = style.downcase
|
149
|
+
diary = eval("#{style(style)}::new(diary_id, title, body, Time::at(last_modified.to_i))")
|
150
|
+
diary.show(visible)
|
151
|
+
diaries[diary_id] = diary
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def store(diaries)
|
156
|
+
diaries.each do |date, diary|
|
157
|
+
# save diaries
|
158
|
+
if /(\d\d\d\d)(\d\d)(\d\d)/ =~ date
|
159
|
+
year = $1
|
160
|
+
month = $2
|
161
|
+
day = $3
|
162
|
+
end
|
163
|
+
visible = (diary.visible? ? "true" : "false")
|
164
|
+
|
165
|
+
param = [year, month, day, diary.title, diary.last_modified.to_i, visible, diary.to_src, diary.style, @dbi_author, date]
|
166
|
+
sth = @dbh.execute("UPDATE diarydata SET year=?, month=?, day=?, title=?, last_modified=?, visible=?, body=?, style=? WHERE author=? AND diary_id=?", *param)
|
167
|
+
if sth.rows == 0
|
168
|
+
@dbh.execute("INSERT INTO diarydata (year, month, day, title, last_modified, visible, body, style, author, diary_id) VALUES (?,?,?,?,?,?,?,?,?,?);", *param)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
# 追加メソッド for test
|
174
|
+
def delete(diaries)
|
175
|
+
diaries.each do |date, diary|
|
176
|
+
sql = "DELETE FROM diarydata WHERE author=#{@dbi_author} AND diary_id=#{date};"
|
177
|
+
@dbh.execute(sql)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#
|
2
|
+
# refererDbiIO.rb: load/save and show today's referer for DBI IO
|
3
|
+
# $Revision: 1.1 $
|
4
|
+
#
|
5
|
+
# Copyright (C) 2003 ma2tak <ma2tak@ma2tak.dyndns.org>
|
6
|
+
# (C) 2004 moonwolf <moonwolf@mooonwolf.com>
|
7
|
+
# (C) 2005 Kazuhiko <kazuhiko@fdiary.net>
|
8
|
+
# (C) 2007 sasasin <sasasin@sasasin.net>
|
9
|
+
#
|
10
|
+
# You can distribute this under GPL.
|
11
|
+
#
|
12
|
+
def referer_transaction( diary = nil, save = false )
|
13
|
+
return if @conf.io_class.to_s != 'TDiary::DbiIO'
|
14
|
+
|
15
|
+
File.open("#{@conf.data_path}/dbi_io_ref.lock", 'w') {|file|
|
16
|
+
file.flock(File::LOCK_EX)
|
17
|
+
dbh = DBI.connect(@conf.dbi_driver_url, @conf.dbi_user, @conf.dbi_passwd)
|
18
|
+
dbh.transaction{
|
19
|
+
if diary.respond_to?( :date ) then
|
20
|
+
table = 'refererdata'
|
21
|
+
ymd = diary.date.strftime('%Y%m%d')
|
22
|
+
begin
|
23
|
+
sql = "SELECT diary_id, count, ref FROM " + table + " WHERE author=? AND diary_id=?;"
|
24
|
+
dbh.select_all(sql, @conf.dbi_author || 'default', ymd) {|diary_id, count, ref|
|
25
|
+
yield(ref.chomp, count.to_i)
|
26
|
+
}
|
27
|
+
rescue Errno::ENOENT
|
28
|
+
end
|
29
|
+
else
|
30
|
+
table = 'referervolatile'
|
31
|
+
ymd = nil
|
32
|
+
begin
|
33
|
+
sql = "SELECT diary_id, count, ref FROM " + table + " WHERE author=?;"
|
34
|
+
dbh.select_all(sql, @conf.dbi_author || 'default') {|diary_id, count, ref|
|
35
|
+
yield(ref.chomp, count.to_i)
|
36
|
+
ymd = diary_id
|
37
|
+
}
|
38
|
+
rescue Errno::ENOENT
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
if @mode =~ /^(append|replace)$/ and !diary.respond_to?( :date ) then
|
43
|
+
if !ymd or (@date.strftime( '%Y%m%d' ) > ymd) then
|
44
|
+
ymd = nil
|
45
|
+
diary.clear_referers
|
46
|
+
begin
|
47
|
+
dbh.execute("TRUNCATE TABLE " + table + ";")
|
48
|
+
rescue Errno::ENOENT
|
49
|
+
end
|
50
|
+
save = false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
if save then
|
55
|
+
unless ymd then
|
56
|
+
ymd = (@date ? @date : Time::now).strftime( '%Y%m%d' )
|
57
|
+
end
|
58
|
+
no = 0
|
59
|
+
diary.each_referer(diary.count_referers) {|count,ref|
|
60
|
+
no += 1
|
61
|
+
param = [count, @conf.dbi_author, ymd, ref]
|
62
|
+
begin
|
63
|
+
sth = dbh.execute("UPDATE " + table + " SET count=? WHERE author=? AND diary_id=? AND ref=?;", *param)
|
64
|
+
if sth.rows==0
|
65
|
+
no = dbh.select_one("SELECT MAX(no) FROM " + table + " WHERE author=? AND diary_id=?", @conf.dbi_author, ymd).first.to_i + 1
|
66
|
+
param << no
|
67
|
+
dbh.execute("INSERT INTO " + table + " (count, author, diary_id, ref, no ) VALUES (?,?,?,?,?);", *param)
|
68
|
+
end
|
69
|
+
rescue DBI::ProgrammingError
|
70
|
+
$stderr.puts "invalid referer:#{ref}"
|
71
|
+
end
|
72
|
+
}
|
73
|
+
end
|
74
|
+
}
|
75
|
+
}
|
76
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
CREATE TABLE diarydata (
|
2
|
+
author TEXT NOT NULL,
|
3
|
+
diary_id VARCHAR(8) NOT NULL,
|
4
|
+
year VARCHAR(4) NOT NULL,
|
5
|
+
month VARCHAR(2) NOT NULL,
|
6
|
+
day VARCHAR(2) NOT NULL,
|
7
|
+
title TEXT NULL,
|
8
|
+
last_modified INTEGER NOT NULL,
|
9
|
+
visible BOOLEAN NOT NULL,
|
10
|
+
body TEXT NOT NULL,
|
11
|
+
style TEXT NULL,
|
12
|
+
CONSTRAINT diarydata_pkey PRIMARY KEY (author, diary_id)
|
13
|
+
);
|
14
|
+
|
15
|
+
CREATE TABLE commentdata (
|
16
|
+
author TEXT NOT NULL,
|
17
|
+
diary_id VARCHAR(8) NOT NULL,
|
18
|
+
no INTEGER NOT NULL,
|
19
|
+
name TEXT NULL,
|
20
|
+
mail TEXT NULL,
|
21
|
+
last_modified INTEGER NOT NULL,
|
22
|
+
visible BOOLEAN NOT NULL,
|
23
|
+
comment TEXT NULL,
|
24
|
+
CONSTRAINT commentdata_pkey PRIMARY KEY (author, diary_id, no)
|
25
|
+
);
|
26
|
+
|
27
|
+
CREATE TABLE refererdata (
|
28
|
+
author TEXT NOT NULL,
|
29
|
+
diary_id VARCHAR(8) NOT NULL,
|
30
|
+
no INTEGER NOT NULL,
|
31
|
+
count INTEGER NOT NULL,
|
32
|
+
ref TEXT NOT NULL,
|
33
|
+
CONSTRAINT refererdata_pkey PRIMARY KEY (author, diary_id, no)
|
34
|
+
);
|
35
|
+
CREATE TABLE referervolatile (
|
36
|
+
author TEXT NOT NULL,
|
37
|
+
diary_id VARCHAR(8) NOT NULL,
|
38
|
+
no INTEGER NOT NULL,
|
39
|
+
count INTEGER NOT NULL,
|
40
|
+
ref TEXT NOT NULL,
|
41
|
+
CONSTRAINT referervolatile_pkey PRIMARY KEY (author, diary_id, no)
|
42
|
+
);
|
data/js/appstore.js
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
/*
|
2
|
+
* appstore.js : embeded iTunes information
|
3
|
+
*
|
4
|
+
* Copyright (C) 2011 by tamoot <tamoot+tdiary@gmail.com>
|
5
|
+
* You can distribute it under GPL.
|
6
|
+
*/
|
7
|
+
|
8
|
+
$( function() {
|
9
|
+
|
10
|
+
function appstore_desc(text) {
|
11
|
+
return jQuery('<span><span/>').addClass("amazon-price").text(text).append("<br>");
|
12
|
+
};
|
13
|
+
|
14
|
+
function appstore_detail(app_url, app_id, appstore_a) {
|
15
|
+
var params = {
|
16
|
+
output : 'json',
|
17
|
+
id : app_id
|
18
|
+
};
|
19
|
+
|
20
|
+
var price = "$";
|
21
|
+
if($('html').attr('lang') == 'ja-JP') {
|
22
|
+
$.extend(params, {
|
23
|
+
lang : 'ja_jp',
|
24
|
+
country : 'JP'
|
25
|
+
});
|
26
|
+
price = "\\"
|
27
|
+
};
|
28
|
+
|
29
|
+
|
30
|
+
$.ajax({
|
31
|
+
type : 'GET',
|
32
|
+
url : 'http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsLookup?',
|
33
|
+
data : params,
|
34
|
+
dataType : 'jsonp',
|
35
|
+
//
|
36
|
+
// callback on error..
|
37
|
+
//
|
38
|
+
error : function() {
|
39
|
+
var itunes_a = jQuery('<a>').attr({
|
40
|
+
target : "_blank",
|
41
|
+
href : app_url
|
42
|
+
}).addClass("amazon-detail");
|
43
|
+
|
44
|
+
$(appstore_a).prepend(itunes_a);
|
45
|
+
},
|
46
|
+
//
|
47
|
+
// append dom
|
48
|
+
//
|
49
|
+
success : function(data) {
|
50
|
+
app = data["results"][0];
|
51
|
+
|
52
|
+
if(app == null) {
|
53
|
+
appstore_a.text('Search Error: ' + app_url);
|
54
|
+
return
|
55
|
+
};
|
56
|
+
$(appstore_a).addClass("amazon-detail");
|
57
|
+
|
58
|
+
var appstore_spand = jQuery('<span></span>').addClass("amazon-detail");
|
59
|
+
$(appstore_a).append(appstore_spand);
|
60
|
+
|
61
|
+
appstore_spand.prepend(jQuery('<img />').attr({
|
62
|
+
src : app["artworkUrl100"],
|
63
|
+
width : 128,
|
64
|
+
height : 128
|
65
|
+
}).addClass("amazon-detail").addClass("left"));
|
66
|
+
|
67
|
+
var appstore_spandd = jQuery('<span></span>');
|
68
|
+
appstore_spandd.addClass("amazon-detail-desc");
|
69
|
+
appstore_spand.append(appstore_spandd);
|
70
|
+
|
71
|
+
appstore_spandd.append(jQuery('<span><span/>').addClass("amazon-title").text(app["trackCensoredName"] + " "));
|
72
|
+
appstore_spandd.append(appstore_desc(app["version"]));
|
73
|
+
appstore_spandd.append(appstore_desc(app["releaseDate"]));
|
74
|
+
appstore_spandd.append(appstore_desc(app["sellerName"]));
|
75
|
+
appstore_spandd.append(appstore_desc(price + app["price"]));
|
76
|
+
appstore_spandd.append(appstore_desc(app["supportedDevices"].join(', ')));
|
77
|
+
appstore_spand.append('<br style="clear: left;">');
|
78
|
+
}
|
79
|
+
});
|
80
|
+
};
|
81
|
+
|
82
|
+
function appstore(target) {
|
83
|
+
$('.appstore', target).each( function() {
|
84
|
+
var appstore_url = $(this).attr('href');
|
85
|
+
var appstore_id = $(this).attr('data-appstoreid')
|
86
|
+
appstore_detail(appstore_url, appstore_id, this);
|
87
|
+
});
|
88
|
+
};
|
89
|
+
|
90
|
+
// for AutoPagerize
|
91
|
+
$(window).bind('AutoPagerize_DOMNodeInserted', function(event) {
|
92
|
+
appstore(event.target);
|
93
|
+
});
|
94
|
+
|
95
|
+
// for AuthPatchWork
|
96
|
+
// NOTE: jQuery.bind() cannot handle an event that include a dot charactor.
|
97
|
+
// see http://todayspython.blogspot.com/2011/06/autopager-autopagerize.html
|
98
|
+
if(window.addEventListener) {
|
99
|
+
window.addEventListener('AutoPatchWork.DOMNodeInserted', function(event) {
|
100
|
+
appstore(event.target);
|
101
|
+
}, false);
|
102
|
+
} else if(window.attachEvent) {
|
103
|
+
window.attachEvent('onAutoPatchWork.DOMNodeInserted', function(event) {
|
104
|
+
appstore(event.target);
|
105
|
+
});
|
106
|
+
};
|
107
|
+
|
108
|
+
appstore(document);
|
109
|
+
});
|
data/js/datepicker.js
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
/*
|
2
|
+
* datepicker.js : datepicker using jQuery-UI
|
3
|
+
* http://jqueryui.com/demos/datepicker/
|
4
|
+
*
|
5
|
+
* Copyright (C) 2012 by tamoot <tamoot+tdiary@gmail.com>
|
6
|
+
* You can redistribute it and/or modify it under GPL.
|
7
|
+
*/
|
8
|
+
|
9
|
+
|
10
|
+
$( function() {
|
11
|
+
|
12
|
+
function setDateText(date) {
|
13
|
+
var dates = date.split("/");
|
14
|
+
$("#year" ).val(dates[0]);
|
15
|
+
$("#month").val(dates[1]);
|
16
|
+
$("#day" ).val(dates[2]);
|
17
|
+
}
|
18
|
+
|
19
|
+
function dateTextFromField() {
|
20
|
+
var y = parseInt( $("#year" ).val() );
|
21
|
+
var m = parseInt( $("#month").val() );
|
22
|
+
var d = parseInt( $("#day" ).val() );
|
23
|
+
if( y > 0 && 13 > m && m > 0 && 32 > d && d > 0 ){
|
24
|
+
$("#datepicker-input").val(y + "/" + m + "/" + d);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
var datepicker_dom = $("<span>");
|
29
|
+
|
30
|
+
var datepicker_trigger = $("<span>")
|
31
|
+
.addClass("ui-icon")
|
32
|
+
.addClass("ui-icon-calendar")
|
33
|
+
.addClass("datepicker-trigger");
|
34
|
+
|
35
|
+
var datepicker_input = $("<input>", {
|
36
|
+
id: "datepicker-input",
|
37
|
+
name: "datepicker",
|
38
|
+
style: "display: none;",
|
39
|
+
type: "text"
|
40
|
+
}
|
41
|
+
);
|
42
|
+
|
43
|
+
datepicker_dom.append(datepicker_input);
|
44
|
+
datepicker_dom.append(datepicker_trigger);
|
45
|
+
datepicker_dom.insertAfter("span.day");
|
46
|
+
|
47
|
+
$("#datepicker-input").datepicker({
|
48
|
+
onSelect: function(dateText, inst){
|
49
|
+
setDateText(dateText);
|
50
|
+
},
|
51
|
+
beforeShow: function(input ,inst){
|
52
|
+
dateTextFromField();
|
53
|
+
},
|
54
|
+
dateFormat: "yy/m/d"
|
55
|
+
});
|
56
|
+
|
57
|
+
$(".datepicker-trigger").click(function() {
|
58
|
+
$("#datepicker-input").datepicker("show");
|
59
|
+
});
|
60
|
+
|
61
|
+
|
62
|
+
var icon = $(".ui-icon-calendar");
|
63
|
+
icon.css({"display":"inline","position":"absolute","margin-top":"5px"});
|
64
|
+
icon.after($("<span></span>").css({"margin-left":"16px"}));
|
65
|
+
icon.hover(function(){
|
66
|
+
$(this).css({"cursor":"pointer"});
|
67
|
+
});
|
68
|
+
});
|
69
|
+
|
data/js/editor.js
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
/**
|
2
|
+
* editor.js - support writing using wiki/gfm notation.
|
3
|
+
*
|
4
|
+
* Copyright (C) 2012 by MATSUOKA Kohei <kmachu@gmail.com>
|
5
|
+
* You can distribute it under GPL.
|
6
|
+
*/
|
7
|
+
|
8
|
+
/*
|
9
|
+
utility functions
|
10
|
+
*/
|
11
|
+
$.fn.extend({
|
12
|
+
insertAtCaret2: function(beforeText, afterText){
|
13
|
+
var elem = this.get(0);
|
14
|
+
elem.focus();
|
15
|
+
|
16
|
+
if(jQuery.browser.msie){
|
17
|
+
this.insertAtCaret(beforeText + afterText);
|
18
|
+
}else{
|
19
|
+
var orig = elem.value;
|
20
|
+
var posStart = elem.selectionStart;
|
21
|
+
var posEnd = posStart + beforeText.length;
|
22
|
+
elem.value = orig.substr(0, posStart) + beforeText + afterText + orig.substr(posStart);
|
23
|
+
elem.setSelectionRange(posEnd, posEnd);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
});
|
27
|
+
|
28
|
+
$(function() {
|
29
|
+
var form = $("textarea");
|
30
|
+
var targetArea = $("div.update > div.form").first();
|
31
|
+
var notations = {
|
32
|
+
wiki: {
|
33
|
+
h3: function(){ form.insertAtCaret("! ") },
|
34
|
+
h4: function(){ form.insertAtCaret("!! ") },
|
35
|
+
a: function(){ form.insertAtCaret2("", "[[|]]") },
|
36
|
+
em: function(){ form.insertAtCaret2("''", "''") },
|
37
|
+
strong: function(){ form.insertAtCaret2("'''", "'''") },
|
38
|
+
del: function(){ form.insertAtCaret2("==", "=='") },
|
39
|
+
pre: function(){ form.insertAtCaret2("\n<<<\n", "\n>>>\n") },
|
40
|
+
bq: function(){ form.insertAtCaret("\"\" ") },
|
41
|
+
ul: function(){ form.insertAtCaret("* ") },
|
42
|
+
ol: function(){ form.insertAtCaret("# ") },
|
43
|
+
table: function(){ form.insertAtCaret(
|
44
|
+
"\n||body1||body2\n||body3||body4\n") },
|
45
|
+
plugin: function(){ form.insertAtCaret2(
|
46
|
+
"", $.makePluginTag("plugin_name")) }
|
47
|
+
},
|
48
|
+
|
49
|
+
gfm: {
|
50
|
+
h3: function(){ form.insertAtCaret("# ") },
|
51
|
+
h4: function(){ form.insertAtCaret("## ") },
|
52
|
+
a: function(){ form.insertAtCaret2("", "[]()") },
|
53
|
+
em: function(){ form.insertAtCaret2("*", "*") },
|
54
|
+
strong: function(){ form.insertAtCaret2("**", "**") },
|
55
|
+
pre: function(){ form.insertAtCaret2("\n```\n", "\n```\n") },
|
56
|
+
code: function(){ form.insertAtCaret2("`", "`") },
|
57
|
+
bq: function(){ form.insertAtCaret("> ") },
|
58
|
+
ul: function(){ form.insertAtCaret("* ") },
|
59
|
+
ol: function(){ form.insertAtCaret("1. ") },
|
60
|
+
table: function(){ form.insertAtCaret(
|
61
|
+
"\nhead1|head2\n----|----\nbody1|body2\nbody3|body4\n") },
|
62
|
+
plugin: function(){ form.insertAtCaret2(
|
63
|
+
"", $.makePluginTag("plugin_name")) }
|
64
|
+
}
|
65
|
+
};
|
66
|
+
|
67
|
+
var toolbox = $("<ul></ul>");
|
68
|
+
$.each(notations[$tDiary.style], function(key, callback) {
|
69
|
+
var button = $("<button>")
|
70
|
+
.attr("type", "button")
|
71
|
+
.attr("name", key)
|
72
|
+
.css("margin", "3px")
|
73
|
+
.css("padding", "5px")
|
74
|
+
.append(key)
|
75
|
+
.click(callback);
|
76
|
+
$("<li></li>")
|
77
|
+
.css("display", "inline")
|
78
|
+
.append(button)
|
79
|
+
.appendTo(toolbox);
|
80
|
+
});
|
81
|
+
form.before(toolbox);
|
82
|
+
});
|