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/lib/wgs2tky.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
#
|
2
|
+
# wgs2tky.rb
|
3
|
+
# -- GPS data converter
|
4
|
+
#
|
5
|
+
# kp<kp@mmho.no-ip.org>
|
6
|
+
# Destributed under the GPL
|
7
|
+
|
8
|
+
class Wgs2Tky
|
9
|
+
|
10
|
+
Pi = Math::PI
|
11
|
+
Rd = Pi/180
|
12
|
+
|
13
|
+
# WGS84
|
14
|
+
A = 6378137.0 # 赤道半径
|
15
|
+
F = 1/298.257223563 # 扁平率
|
16
|
+
E2 = F*2 - F*F # 第一離心率
|
17
|
+
|
18
|
+
# Tokyo
|
19
|
+
A_ = 6378137.0 - 739.845 # 6377397.155
|
20
|
+
F_ = 1/298.257223563 - 0.000010037483
|
21
|
+
# 1 / 299.152813
|
22
|
+
E2_ = F_*2 - F_*F_
|
23
|
+
|
24
|
+
Dx = +128
|
25
|
+
Dy = -481
|
26
|
+
Dz = -664
|
27
|
+
|
28
|
+
def Wgs2Tky.conv!(lat,lon,h = 0)
|
29
|
+
b = lat[0].to_f + lat[1].to_f/60 + lat[2].to_f/3600
|
30
|
+
l = lon[0].to_f + lon[1].to_f/60 + lon[2].to_f/3600
|
31
|
+
|
32
|
+
(x,y,z) = Wgs2Tky._llh2xyz(b,l,h,A,E2)
|
33
|
+
|
34
|
+
x+=Dx
|
35
|
+
y+=Dy
|
36
|
+
z+=Dz
|
37
|
+
|
38
|
+
(b,l,h) = Wgs2Tky._xyz2llh(x,y,z,A_,E2_)
|
39
|
+
|
40
|
+
lat[0..2]=Wgs2Tky._deg2gdms(b)
|
41
|
+
lon[0..2]=Wgs2Tky._deg2gdms(l)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
include Math
|
47
|
+
extend Math
|
48
|
+
|
49
|
+
def Wgs2Tky._llh2xyz(b,l,h,a,e2)
|
50
|
+
|
51
|
+
b *= Rd
|
52
|
+
l *= Rd
|
53
|
+
|
54
|
+
sb = sin(b)
|
55
|
+
cb = cos(b)
|
56
|
+
|
57
|
+
rn = a / Math.sqrt(1-e2*sb*sb)
|
58
|
+
|
59
|
+
x = (rn+h)*cb*cos(l)
|
60
|
+
y = (rn+h)*cb*sin(l)
|
61
|
+
z = (rn*(1-e2)+h) * sb
|
62
|
+
|
63
|
+
return x,y,z
|
64
|
+
end
|
65
|
+
|
66
|
+
def Wgs2Tky._xyz2llh(x,y,z,a,e2)
|
67
|
+
|
68
|
+
bda = sqrt(1-e2)
|
69
|
+
|
70
|
+
po = sqrt(x*x+y*y)
|
71
|
+
t = atan2(z,po*bda)
|
72
|
+
st = sin(t)
|
73
|
+
ct = cos(t)
|
74
|
+
b = atan2(z+e2*a/bda*st*st*st,po-e2*a*ct*ct*ct)
|
75
|
+
l = atan2(y,x)
|
76
|
+
|
77
|
+
sb = sin(b)
|
78
|
+
rn = a / sqrt(1-e2*sb*sb)
|
79
|
+
h = po / cos(b) - rn
|
80
|
+
|
81
|
+
return b/Rd,l/Rd,h
|
82
|
+
end
|
83
|
+
|
84
|
+
def Wgs2Tky._deg2gdms(deg)
|
85
|
+
sf = deg*3600
|
86
|
+
s = sf.to_i%60
|
87
|
+
m = (sf/60).to_i%60
|
88
|
+
d = (sf/3600).to_i
|
89
|
+
s += sf - sf.to_i
|
90
|
+
return d,m,s
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# add_bookmark.rb $Revision 1.3 $
|
2
|
+
#
|
3
|
+
# Copyright (c) 2005 SHIBATA Hiroshi <h-sbt@nifty.com>
|
4
|
+
# You can redistribute it and/or modify it under GPL2.
|
5
|
+
|
6
|
+
require 'uri'
|
7
|
+
|
8
|
+
def bookmark_init
|
9
|
+
@conf['add.bookmark.delicious'] ||= ''
|
10
|
+
@conf['add.bookmark.hatena'] ||= ''
|
11
|
+
@conf['add.bookmark.livedoor'] ||= ''
|
12
|
+
@conf['add.bookmark.buzzurl'] ||= ''
|
13
|
+
end
|
14
|
+
|
15
|
+
add_subtitle_proc do |date, index, subtitle|
|
16
|
+
bookmark_init
|
17
|
+
|
18
|
+
if @conf.mobile_agent? then
|
19
|
+
caption = %Q|#{subtitle}|
|
20
|
+
else
|
21
|
+
caption = %Q|#{subtitle} |
|
22
|
+
|
23
|
+
section_url = @conf.base_url + anchor(date.strftime('%Y%m%d')) + '#p' + ('%02d' % index)
|
24
|
+
|
25
|
+
if @conf['add.bookmark.delicious'] == 't' then
|
26
|
+
escaped_url = URI.escape(section_url, /[^-.!~*'()\w]/n)
|
27
|
+
caption += %Q|<a href="http://delicious.com/save?url=#{escaped_url}" onclick="window.open('http://delicious.com/save?v=5;noui;jump=close;url=#{escaped_url};title='+encodeURIComponent(document.title), 'delicious', 'toolbar=no,width=550,height=550'); return false">|
|
28
|
+
caption += %Q|<img src="http://static.delicious.com/img/delicious.small.gif" width="10" height="10" style="border: 0 none;vertical-align: middle;" alt="#{@caption_delicious}">|
|
29
|
+
caption += %Q|</a> |
|
30
|
+
end
|
31
|
+
|
32
|
+
if @conf['add.bookmark.hatena'] == 't' then
|
33
|
+
caption += %Q|<a href="http://b.hatena.ne.jp/append?#{h(section_url)}">|
|
34
|
+
caption += %Q|<img src="http://b.hatena.ne.jp/images/append.gif" width="16" height="12" style="border: 0 none;vertical-align: middle;" alt="#{@caption_hatena}" title="#{@caption_hatena}">|
|
35
|
+
caption += %Q|</a> |
|
36
|
+
end
|
37
|
+
|
38
|
+
if @conf['add.bookmark.livedoor'] == 't' then
|
39
|
+
caption += %Q|<a href="http://clip.livedoor.com/redirect?link=#{h(section_url)}" class="ldclip-redirect">|
|
40
|
+
caption += %Q|<img src="http://parts.blog.livedoor.jp/img/cmn/clip_16_16_w.gif" width="16" height="16" style="border: 0 none;vertical-align: middle;" alt="#{@caption_livedoor}" title="#{@caption_livedoor}">|
|
41
|
+
caption += %Q|</a> |
|
42
|
+
end
|
43
|
+
|
44
|
+
if @conf['add.bookmark.buzzurl'] == 't' then
|
45
|
+
caption += %Q|<a href="http://buzzurl.jp/entry/#{h(section_url)}">|
|
46
|
+
caption += %Q|<img src="http://buzzurl.jp/static/image/api/icon/add_icon_mini_10.gif" width="16" height="12" style="border: 0 none;vertical-align: middle;" title="#{@caption_buzzurl}" alt="#{@caption_buzzurl}" class="icon">|
|
47
|
+
caption += %Q|</a> |
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
<<-HTML
|
52
|
+
#{caption}
|
53
|
+
HTML
|
54
|
+
end
|
55
|
+
|
56
|
+
add_conf_proc( 'add_bookmark', @add_bookmark_label ) do
|
57
|
+
add_bookmark_conf_proc
|
58
|
+
end
|
59
|
+
|
60
|
+
def add_bookmark_conf_proc
|
61
|
+
bookmark_init
|
62
|
+
saveconf_add_bookmark
|
63
|
+
|
64
|
+
bookmark_categories = [
|
65
|
+
'add.bookmark.delicious',
|
66
|
+
'add.bookmark.hatena',
|
67
|
+
'add.bookmark.livedoor',
|
68
|
+
'add.bookmark.buzzurl'
|
69
|
+
]
|
70
|
+
|
71
|
+
r = ''
|
72
|
+
r << %Q|<h3 class="subtitle">#{@add_bookmark_label}</h3><p>#{@add_bookmark_desc}</p><ul>|
|
73
|
+
|
74
|
+
bookmark_categories.each_with_index do |idx,view|
|
75
|
+
checked = 't' == @conf[idx] ? ' checked' : ''
|
76
|
+
label = @bookmark_label[view]
|
77
|
+
r << %Q|<li><label for="#{idx}"><input id=#{idx} name=#{idx} type="checkbox" value="t"#{checked}>#{label}</label></li>|
|
78
|
+
end
|
79
|
+
r << %Q|</ul>|
|
80
|
+
end
|
81
|
+
|
82
|
+
if @mode == 'saveconf'
|
83
|
+
def saveconf_add_bookmark
|
84
|
+
@conf['add.bookmark.delicious'] = @cgi.params['add.bookmark.delicious'][0]
|
85
|
+
@conf['add.bookmark.hatena'] = @cgi.params['add.bookmark.hatena'][0]
|
86
|
+
@conf['add.bookmark.livedoor'] = @cgi.params['add.bookmark.livedoor'][0]
|
87
|
+
@conf['add.bookmark.buzzurl'] = @cgi.params['add.bookmark.buzzurl'][0]
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#
|
2
|
+
# apple_webclip.rb - Add icon information for Apple WebClip.
|
3
|
+
#
|
4
|
+
# Copyright (C) 2008, TADA Tadashi <sho@spc.gr.jp>
|
5
|
+
# You can redistribute it and/or modify it under GPL.
|
6
|
+
#
|
7
|
+
|
8
|
+
add_header_proc do
|
9
|
+
if @conf['apple_webclip.url'] and @conf['apple_webclip.url'].size > 0
|
10
|
+
%Q| <link rel="apple-touch-icon" href="#{h @conf['apple_webclip.url']}">\n|
|
11
|
+
else
|
12
|
+
''
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
add_conf_proc( 'apple_webclip', 'Apple WebClip' ) do
|
17
|
+
if @mode == 'saveconf' then
|
18
|
+
@conf['apple_webclip.url'] = @cgi.params['apple_webclip.url'][0]
|
19
|
+
end
|
20
|
+
|
21
|
+
<<-HTML
|
22
|
+
<h3 class="subtitle">Icon URL</h3>
|
23
|
+
<p><input name="apple_webclip.url" value="#{h @conf['apple_webclip.url']}" size="70"></p>
|
24
|
+
<p>Create and cpecify PNG file 60x60 pixels.</p>
|
25
|
+
HTML
|
26
|
+
end
|
data/plugin/appstore.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# appstore.rb - embeded AppStore data for tDiary,
|
4
|
+
# use App Store Affliate Resources Search API.
|
5
|
+
# http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html
|
6
|
+
#
|
7
|
+
# Copyright (C) 2011, tamoot <tamoot+tdiary@gmail.com>
|
8
|
+
# You can redistribute it and/or modify it under GPL2.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'uri'
|
12
|
+
|
13
|
+
if /\A(?:latest|day|month|nyear|preview)\z/ =~ @mode
|
14
|
+
enable_js('appstore.js')
|
15
|
+
end
|
16
|
+
|
17
|
+
def appstore_detail(url)
|
18
|
+
appstore_dom = ''
|
19
|
+
|
20
|
+
begin
|
21
|
+
appstore_dom = appstore_common(url, {:detail => true})
|
22
|
+
|
23
|
+
rescue
|
24
|
+
appstore_dom = "<b>Error. message=#{$!.message}.</b>"
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
def appstore_common(url, params)
|
31
|
+
return %Q|<a href="url">#{url}</a>| if feed?
|
32
|
+
|
33
|
+
appstore_uri = URI::parse(url)
|
34
|
+
id = appstore_uri.path.split('/').last.gsub('id', '')
|
35
|
+
raise StandardError.new("AppStore ID: not found from #{url}..") if id.nil? || id == ''
|
36
|
+
|
37
|
+
return %Q|<a class="appstore" data-appstoreid="#{id}" href="#{url}"></a>|
|
38
|
+
end
|
39
|
+
|
40
|
+
# Local Variables:
|
41
|
+
# mode: ruby
|
42
|
+
# indent-tabs-mode: t
|
43
|
+
# tab-width: 3
|
44
|
+
# ruby-indent-level: 3
|
45
|
+
# End:
|
46
|
+
# vim: ts=3
|
47
|
+
|
data/plugin/bigpresen.rb
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
# bigpresen.rb $Revision: 1.03 $
|
2
|
+
#
|
3
|
+
# bigpresen : ����å��ǿʹԤ���ֹⶶ��åɡ�������ʸ���ץ쥼��ơ�����������
|
4
|
+
#
|
5
|
+
# �ѥ� :
|
6
|
+
# str : ��ʸ��"|"�ϥ��饤�ɤζ��ڤꡢ"/"�ϥ��饤����β��ԤȤʤ롣
|
7
|
+
# "|"��"|"��ɽ��������ˤϡ�����"\"��Ĥ��ƥ��������ס�
|
8
|
+
# width : ���饤�ɤ������ԥ�����ǻ��ꡣ(�ǥե���� : 480)
|
9
|
+
# height : ���饤�ɤι⤵���ԥ�����ǻ��ꡣ(�ǥե���� : 320)
|
10
|
+
#
|
11
|
+
# ������ʸ�ˡ�<%= bigpresen 'str','width','height' %> �η����ǵ��Ҥ��ޤ���
|
12
|
+
# ʸ���Υ������ϡ�ɽ���ƥ����Ȥȥ��饤�ɤΥ������˹礦�褦��ưŪ��Ĵ������ޤ���
|
13
|
+
# JavaScript��DHTML���Ѥ���ư�����Τǡ������Ķ��ˤ�äƤ�ɽ������ʤ����Ȥ⤢��ޤ���
|
14
|
+
#
|
15
|
+
# Copyright (c) 2006 Maripo Goda
|
16
|
+
# mailto:madin@madin.jp
|
17
|
+
# Document URL http://www.madin.jp/works/plugin.html
|
18
|
+
# You can redistribute it and/or modify it under GPL2.
|
19
|
+
|
20
|
+
@bigPresenID = 0;
|
21
|
+
|
22
|
+
def bigpresen (str='', width='480',height='320')
|
23
|
+
scriptID = 'bp' + @bigPresenID.to_s
|
24
|
+
@bigPresenID += 1;
|
25
|
+
|
26
|
+
presen_ary = str.gsub("\\/",'⁄').gsub("\\|","&\#65073").split(/\|/);
|
27
|
+
presen_ary.collect!{|s|
|
28
|
+
s = '"' + s.gsub('/','<br>') + '"'
|
29
|
+
}
|
30
|
+
presen_str = presen_ary.join(',')
|
31
|
+
|
32
|
+
return <<HTML
|
33
|
+
<script type="text/javascript">
|
34
|
+
<!--
|
35
|
+
t#{scriptID} = 0;
|
36
|
+
w#{scriptID}=#{width};
|
37
|
+
h#{scriptID}="#{height}";
|
38
|
+
msg#{scriptID} = new Array(#{presen_str});
|
39
|
+
function #{scriptID} () {
|
40
|
+
if (t#{scriptID} < msg#{scriptID}.length) {
|
41
|
+
msgArr = msg#{scriptID}[t#{scriptID}].split('<br>');
|
42
|
+
maxPx = h#{scriptID} * 0.8;
|
43
|
+
for (t = 0; t < msgArr.length; t ++) {
|
44
|
+
maxPx = Math.min(maxPx, w#{scriptID} * 2 * 0.9 / countLength(msgArr[t]));
|
45
|
+
}
|
46
|
+
maxPx = Math.min(maxPx, Math.floor(h#{scriptID} * 0.8 / msgArr.length));
|
47
|
+
with (document.getElementById("#{scriptID}")) {
|
48
|
+
innerHTML = msg#{scriptID}[t#{scriptID}];
|
49
|
+
style.fontSize = maxPx+"px";
|
50
|
+
style.top = ((h#{scriptID}-(maxPx * msgArr.length)) / 2) + "px";
|
51
|
+
}
|
52
|
+
t#{scriptID} ++;
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
t#{scriptID} = 0;
|
56
|
+
with (document.getElementById("#{scriptID}")) {
|
57
|
+
innerHTML = "��REPLAY��";
|
58
|
+
style.fontSize = '100%';
|
59
|
+
style.top = '50%';
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
function countLength (str)
|
65
|
+
{
|
66
|
+
len = 0;
|
67
|
+
for (i = 0; i < str.length; i++) {
|
68
|
+
len ++;
|
69
|
+
if (escape(str.charAt(i)).length > 3) {
|
70
|
+
len ++
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return Math.max(len, 1);
|
74
|
+
}
|
75
|
+
-->
|
76
|
+
</script>
|
77
|
+
|
78
|
+
<noscript><p>JavaScript Required.</p></noscript>
|
79
|
+
<div class="bigpresen" style="text-align:center; position:relative; width:#{width}px; height:#{height}px; background:#fff;border:ridge 4px #ccc;" onclick="#{scriptID}()">
|
80
|
+
|
81
|
+
<span id="#{scriptID}" style="width:100%; position:absolute; top:50%; left:0; line-height:100%; color:black; font-family:'�ͣ� �Х����å�', sans-serif;">��START��</span>
|
82
|
+
|
83
|
+
</div>
|
84
|
+
|
85
|
+
HTML
|
86
|
+
end
|
data/plugin/bitly.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
#
|
2
|
+
# bitly.rb - shorten URL by bit.ly.
|
3
|
+
#
|
4
|
+
# usage: shorten_url_you_got = bitly( 'long_url' ) || long_url
|
5
|
+
# (because bitly returns nil sometime.)
|
6
|
+
#
|
7
|
+
# required some options below:
|
8
|
+
# @options['biyly.login'] : your login ID of bit.ly.
|
9
|
+
# @options['biyly.key'] : your API key of biy.ly.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2010, TADA Tadashi <t@tdtds.jp>
|
12
|
+
# You can redistribute it and/or modify it under GPL.
|
13
|
+
#
|
14
|
+
|
15
|
+
require 'json'
|
16
|
+
require 'net/http'
|
17
|
+
|
18
|
+
def bitly( long_url )
|
19
|
+
return nil if !long_url or long_url.empty?
|
20
|
+
|
21
|
+
@bitly_cache ||= {} # cached only on memory
|
22
|
+
return @bitly_cache[long_url] if @bitly_cache[long_url]
|
23
|
+
|
24
|
+
login = @conf['bitly.login']
|
25
|
+
key = @conf['bitly.key']
|
26
|
+
|
27
|
+
# proxy
|
28
|
+
px_host, px_port = (@conf['proxy'] || '').split( /:/ )
|
29
|
+
px_port = 80 if px_host and !px_port
|
30
|
+
|
31
|
+
query = "/v3/shorten?longUrl=#{CGI::escape long_url}&login=#{login}&apiKey=#{key}&format=json"
|
32
|
+
begin
|
33
|
+
Net::HTTP.version_1_2
|
34
|
+
res = Net::HTTP::Proxy(px_host, px_port).get('api.bit.ly', "#{query}")
|
35
|
+
@bitly_cache[long_url] = JSON::parse(res, &:read)['data']['url']
|
36
|
+
rescue TypeError => te# biy.ly returns an error.
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Show navi for twitter-bootstrap theme
|
2
|
+
#
|
3
|
+
# Copyright (c) KAOD Masanori <kdmsnr at gmail.com>
|
4
|
+
# You can redistribute it and/or modify it under GPL.
|
5
|
+
|
6
|
+
def bootstrap_navi(options = {})
|
7
|
+
default_options = {
|
8
|
+
:navbar_class => nil,
|
9
|
+
:site_name? => true,
|
10
|
+
:search_form? => true
|
11
|
+
}
|
12
|
+
options = default_options.merge(options)
|
13
|
+
|
14
|
+
body = ""
|
15
|
+
if options[:site_name?]
|
16
|
+
body += <<-EOS
|
17
|
+
<a class="brand" href="#{@conf.index}">#{h @conf.html_title}</a>
|
18
|
+
EOS
|
19
|
+
end
|
20
|
+
|
21
|
+
body += <<-EOS
|
22
|
+
<ul class="nav">
|
23
|
+
#{navi_user.gsub(/span/, "li")}
|
24
|
+
#{navi_admin.gsub(/span/, "li")}
|
25
|
+
</ul>
|
26
|
+
EOS
|
27
|
+
|
28
|
+
if options[:search_form?]
|
29
|
+
body += <<-EOS
|
30
|
+
<form class="navbar-search pull-left"
|
31
|
+
method="get" action="http://www.google.co.jp/search"
|
32
|
+
onsubmit="$('#sitesearch').val($(location).attr('host')+$(location).attr('pathname'))">
|
33
|
+
<input type="hidden" name="ie" value="UTF8">
|
34
|
+
<input type="hidden" name="oe" value="UTF8">
|
35
|
+
<input type="hidden" name="sitesearch" id="sitesearch">
|
36
|
+
<input type="text" class="search-query" placeholder="Search" name="q">
|
37
|
+
</form>
|
38
|
+
EOS
|
39
|
+
end
|
40
|
+
|
41
|
+
<<-EOS
|
42
|
+
<div class="navbar #{options[:navbar_class]}">
|
43
|
+
<div class="navbar-inner">
|
44
|
+
<div class="container">
|
45
|
+
#{body}
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
EOS
|
50
|
+
end
|
51
|
+
|
52
|
+
add_header_proc do
|
53
|
+
%Q|<meta name="viewport" content="width=device-width, initial-scale=1.0">|
|
54
|
+
end
|
data/plugin/canonical.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# category_similar.rb:
|
3
|
+
# * shows similar posts under the diary
|
4
|
+
# * depends on plugin/category.rb
|
5
|
+
# You can redistribute it and/or modify it under the same license as tDiary.
|
6
|
+
|
7
|
+
def category_similar(categories, max_item)
|
8
|
+
info = Category::Info.new(@cgi, @years, @conf)
|
9
|
+
months = [['01', '02', '03'], ['04', '05', '06'], ['07', '08', '09'], ['10', '11', '12']][@date.strftime("%m").to_i / (3 + 1)] # quarter
|
10
|
+
years = { @date.strftime("%Y") => months }
|
11
|
+
hash = @category_cache.categorize(info.category, years)
|
12
|
+
items = []
|
13
|
+
hash.values_at(*categories).inject({}){|r, i|
|
14
|
+
r.merge i if !r.nil? and !i.nil?
|
15
|
+
}.to_a.each do |ymd_ary|
|
16
|
+
ymd = ymd_ary[0]
|
17
|
+
ary = ymd_ary[1]
|
18
|
+
next if ymd == @date.strftime('%Y%m%d')
|
19
|
+
t = Time.local(ymd[0,4], ymd[4,2], ymd[6,2]).strftime(@conf.date_format)
|
20
|
+
ary.each do |idx, title, excerpt|
|
21
|
+
items << %Q|<a href="#{h @index}#{anchor "#{ymd}#p#{'%02d' % idx}"}" title="#{h excerpt}">#{t}#p#{'%02d' % idx}</a> #{apply_plugin(title)}|
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
unless items.empty?
|
26
|
+
'<div class="section">' +
|
27
|
+
"<h3 class='category-similar'>#{category_similar_label}</h3>" +
|
28
|
+
"<ul>" +
|
29
|
+
items.sort.reverse[0, max_item].map{|i| "<li>#{i}</i>" }.join("\n") +
|
30
|
+
"</ul>" +
|
31
|
+
"</div>"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
add_conf_proc('category_similar', category_similar_label, 'basic') do
|
36
|
+
if @mode == 'saveconf'
|
37
|
+
@conf["category_similar.excludes"] =
|
38
|
+
@cgi.params["category_similar.excludes"][0]
|
39
|
+
@conf["category_similar.section_amounts"] =
|
40
|
+
@cgi.params["category_similar.section_amounts"][0].to_i
|
41
|
+
end
|
42
|
+
|
43
|
+
<<-HTML
|
44
|
+
<h3 class="subtitle">#{category_similar_label}</h3>
|
45
|
+
<h4>#{category_similar_excludes}</h4>
|
46
|
+
<textarea name="category_similar.excludes" rows="5" cols="50">#{h @conf['category_similar.excludes']}</textarea>
|
47
|
+
|
48
|
+
<h4>#{category_similar_amounts}</h4>
|
49
|
+
<input type="text" name="category_similar.section_amounts" value="#{h @conf['category_similar.section_amounts']}" style="text-align:right;"/>
|
50
|
+
HTML
|
51
|
+
end
|
52
|
+
|
53
|
+
add_body_leave_proc do |date, idx|
|
54
|
+
diary = @diaries[date.strftime('%Y%m%d')]
|
55
|
+
if @mode =~ /day/ and diary.categorizable?
|
56
|
+
categories = []
|
57
|
+
diary.each_section do |s|
|
58
|
+
categories += s.categories unless s.categories.empty?
|
59
|
+
end
|
60
|
+
categories.delete_if do |i|
|
61
|
+
@conf['category_similar.excludes'].split(/\r?\n/).include? i
|
62
|
+
end
|
63
|
+
category_similar(categories, @conf['category_similar.section_amounts'])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Local Variables:
|
68
|
+
# mode: ruby
|
69
|
+
# indent-tabs-mode: t
|
70
|
+
# tab-width: 3
|
71
|
+
# ruby-indent-level: 3
|
72
|
+
# End:
|
73
|
+
# vim: ts=3
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#
|
2
|
+
# category_to_tag.rb - show categories list in end of each section
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005, TADA Tadashi <sho@spc.gr.jp>
|
5
|
+
# You can redistribute it and/or modify it under GPL2.
|
6
|
+
#
|
7
|
+
|
8
|
+
if respond_to?( :categorized_title_of_day ) then # BlogKit
|
9
|
+
def categorized_title_of_day( date, title )
|
10
|
+
@category_to_tag_list = {}
|
11
|
+
cats, stripped = title.scan( /^((?:\[[^\]]+\])+)\s*(.*)/ )[0]
|
12
|
+
if cats then
|
13
|
+
cats.scan( /\[([^\]]+)\]+/ ).flatten.each do |tag|
|
14
|
+
@category_to_tag_list[tag] = true # true when blog
|
15
|
+
end
|
16
|
+
else
|
17
|
+
stripped = title
|
18
|
+
end
|
19
|
+
stripped
|
20
|
+
end
|
21
|
+
add_body_leave_proc do |date|
|
22
|
+
feed? ? '' : category_to_tag_list
|
23
|
+
end
|
24
|
+
elsif respond_to?( :category_anchor ) # diary
|
25
|
+
add_section_enter_proc do |date, index|
|
26
|
+
@category_to_tag_list = {}
|
27
|
+
''
|
28
|
+
end
|
29
|
+
alias subtitle_link_original subtitle_link
|
30
|
+
def subtitle_link( date, index, subtitle )
|
31
|
+
s = ''
|
32
|
+
if subtitle then
|
33
|
+
s = subtitle.sub( /^(\[([^\[]+?)\])+/ ) do
|
34
|
+
$&.scan( /\[(.*?)\]/ ) do |tag|
|
35
|
+
@category_to_tag_list[CGI::unescapeHTML(tag[0])] = false # false when diary
|
36
|
+
end
|
37
|
+
''
|
38
|
+
end
|
39
|
+
end
|
40
|
+
subtitle_link_original( date, index, s.strip )
|
41
|
+
end
|
42
|
+
add_section_leave_proc do |date, index|
|
43
|
+
feed? ? '' : category_to_tag_list
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def category_to_tag_list
|
48
|
+
if @category_to_tag_list and not @category_to_tag_list.empty? then
|
49
|
+
r = '<div class="tags">Tags: '
|
50
|
+
@category_to_tag_list.each do |tag, blog|
|
51
|
+
if blog
|
52
|
+
r << %Q|<a href="#{h @index}?blogcategory=#{h tag}">#{tag}</a> |
|
53
|
+
else
|
54
|
+
r << category_anchor( "#{tag}" ).sub( /^\[/, '' ).sub( /\]$/, '' ) << ' '
|
55
|
+
end
|
56
|
+
end
|
57
|
+
r << "</div>\n"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|