diff -Nru tdiary-contrib-3.1.20120506/.travis.yml tdiary-contrib-3.2.2/.travis.yml
--- tdiary-contrib-3.1.20120506/.travis.yml 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/.travis.yml 2013-04-25 22:33:04.000000000 +0000
@@ -1,8 +1,7 @@
rvm:
- - 1.8.7
+ - ree
- 1.9.2
- 1.9.3
- ruby-head
- - ree
script: bundle exec rake spec
diff -Nru tdiary-contrib-3.1.20120506/Gemfile tdiary-contrib-3.2.2/Gemfile
--- tdiary-contrib-3.1.20120506/Gemfile 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/Gemfile 2013-04-25 22:33:04.000000000 +0000
@@ -2,5 +2,10 @@
gem 'rake'
gem 'rspec'
-gem 'rcov', :platforms => :ruby_18
+
+platforms :ruby_18 do
+ gem 'json'
+ gem 'rcov'
+end
+
gem 'simplecov', :platforms => :ruby_19
diff -Nru tdiary-contrib-3.1.20120506/Gemfile.lock tdiary-contrib-3.2.2/Gemfile.lock
--- tdiary-contrib-3.1.20120506/Gemfile.lock 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/Gemfile.lock 2013-04-25 22:33:04.000000000 +0000
@@ -1,27 +1,29 @@
GEM
remote: http://rubygems.org/
specs:
- diff-lcs (1.1.3)
- multi_json (1.0.4)
- rake (0.9.2.2)
+ diff-lcs (1.2.1)
+ json (1.7.7)
+ multi_json (1.7.1)
+ rake (10.0.3)
rcov (1.0.0)
- rspec (2.8.0)
- rspec-core (~> 2.8.0)
- rspec-expectations (~> 2.8.0)
- rspec-mocks (~> 2.8.0)
- rspec-core (2.8.0)
- rspec-expectations (2.8.0)
- diff-lcs (~> 1.1.2)
- rspec-mocks (2.8.0)
- simplecov (0.5.4)
- multi_json (~> 1.0.3)
- simplecov-html (~> 0.5.3)
- simplecov-html (0.5.3)
+ rspec (2.13.0)
+ rspec-core (~> 2.13.0)
+ rspec-expectations (~> 2.13.0)
+ rspec-mocks (~> 2.13.0)
+ rspec-core (2.13.1)
+ rspec-expectations (2.13.0)
+ diff-lcs (>= 1.1.3, < 2.0)
+ rspec-mocks (2.13.0)
+ simplecov (0.7.1)
+ multi_json (~> 1.0)
+ simplecov-html (~> 0.7.1)
+ simplecov-html (0.7.1)
PLATFORMS
ruby
DEPENDENCIES
+ json
rake
rcov
rspec
diff -Nru tdiary-contrib-3.1.20120506/README.en.md tdiary-contrib-3.2.2/README.en.md
--- tdiary-contrib-3.1.20120506/README.en.md 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/README.en.md 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,12 @@
+# tDiary contrib package
+
+This package include some utilities and plugins for tDiary.
+See documents in each directories.
+
+See licenses and copyrights in each theme files. If no license
+or copyright, it can be distoributed by GPL2, and it has a
+copyright below:
+
+```
+Copyright (c) 2005 TADA Tadashi
+```
diff -Nru tdiary-contrib-3.1.20120506/README.md tdiary-contrib-3.2.2/README.md
--- tdiary-contrib-3.1.20120506/README.md 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/README.md 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,13 @@
+# tDiary contrib パッケージ
+
+このパッケージには、tDiaryに関係したいくつかのユーティリティやプラグ
+インが収録されています。ドキュメントはそれぞれのツールのディレクトリ
+に含まれています。
+
+著作権およびライセンスは各テーマのファイルに記述してあるものに従いま
+すが、特に明記されていない場合、配布条件はGPL2、著作権は以下になりま
+す。
+
+```
+Copyright (c) 2005 TADA Tadashi
+```
diff -Nru tdiary-contrib-3.1.20120506/Rakefile tdiary-contrib-3.2.2/Rakefile
--- tdiary-contrib-3.1.20120506/Rakefile 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/Rakefile 2013-04-25 22:33:04.000000000 +0000
@@ -1,7 +1,12 @@
require 'rubygems'
require 'rake'
+require 'rake/clean'
require 'rspec/core/rake_task'
+CLOBBER.include(
+ "coverage"
+)
+
task :default => [:spec]
desc 'Run the code in specs'
diff -Nru tdiary-contrib-3.1.20120506/debian/changelog tdiary-contrib-3.2.2/debian/changelog
--- tdiary-contrib-3.1.20120506/debian/changelog 2012-05-19 15:56:00.000000000 +0000
+++ tdiary-contrib-3.2.2/debian/changelog 2013-06-12 22:59:51.000000000 +0000
@@ -1,3 +1,15 @@
+tdiary-contrib (3.2.2-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/control
+ - add me as Uploaders
+ - set Standards-Vesrion: 3.9.4
+ - fix "vcs-field-not-canonical" lintian warning
+ - adjust Dependency for tdiary, not restrict to << 3.2 but >= 3.2.2
+ * add debian/watch file, thanks to Bart Martens
+
+ -- Hideki Yamane Thu, 13 Jun 2013 07:49:48 +0900
+
tdiary-contrib (3.1.20120506-3) unstable; urgency=low
* tdiary-mode: create .el symlink to beside the flavored elcs
diff -Nru tdiary-contrib-3.1.20120506/debian/control tdiary-contrib-3.2.2/debian/control
--- tdiary-contrib-3.1.20120506/debian/control 2012-05-19 15:56:00.000000000 +0000
+++ tdiary-contrib-3.2.2/debian/control 2013-06-12 22:59:03.000000000 +0000
@@ -2,16 +2,16 @@
Section: web
Priority: extra
Maintainer: Debian Ruby Extras Maintainers
-Uploaders: Daigo Moriwaki , Taku YASUI
+Uploaders: Daigo Moriwaki , Taku YASUI , Hideki Yamane
Build-Depends: debhelper (>= 8), cdbs, quilt, rsync
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
Homepage: http://www.tdiary.org/
-Vcs-Git: git://git.debian.org/pkg-ruby-extras/tdiary-contrib.git
-Vcs-Browser: http://git.debian.org/?p=pkg-ruby-extras/tdiary-contrib.git;a=summary
+Vcs-Git: git://anonscm.debian.org/pkg-ruby-extras/tdiary-contrib.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-ruby-extras/tdiary-contrib.git;a=summary
Package: tdiary-contrib
Architecture: all
-Depends: ${misc:Depends}, ruby | ruby-interpreter, tdiary (>= 3.1), tdiary (<< 3.2), curl
+Depends: ${misc:Depends}, ruby | ruby-interpreter, tdiary (>= 3.2.2), curl
Suggests: libestraier-ruby1.8, hyperestraier
Description: Plugins of tDiary to add functionalities
This package includes optional utilities and plugins for tDiary. They are
diff -Nru tdiary-contrib-3.1.20120506/debian/watch tdiary-contrib-3.2.2/debian/watch
--- tdiary-contrib-3.1.20120506/debian/watch 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/debian/watch 2013-06-12 22:52:24.000000000 +0000
@@ -0,0 +1,3 @@
+version=3
+opts=uversionmangle=s/_/./g \
+https://github.com/tdiary/tdiary-contrib/tags .*/(?:v||tdiary-contrib[_\-])(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))
diff -Nru tdiary-contrib-3.1.20120506/doc/en/README.txt tdiary-contrib-3.2.2/doc/en/README.txt
--- tdiary-contrib-3.1.20120506/doc/en/README.txt 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/doc/en/README.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-== tDiary contrib package ==
-
-This package include some utilities and plugins for tDiary.
-See documents in each directories.
-
-See licenses and copyrights in each theme files. If no license
-or copyright, it can be distoributed by GPL2, and it has a
-copyright below:
-
- Copyright (c) 2005 TADA Tadashi
diff -Nru tdiary-contrib-3.1.20120506/doc/ja/README.txt tdiary-contrib-3.2.2/doc/ja/README.txt
--- tdiary-contrib-3.1.20120506/doc/ja/README.txt 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/doc/ja/README.txt 1970-01-01 00:00:00.000000000 +0000
@@ -1,12 +0,0 @@
-== tDiary contrib パッケージ ==
-
-このパッケージには、tDiaryに関係したいくつかのユーティリティやプラグ
-インが収録されています。ドキュメントはそれぞれのツールのディレクトリ
-に含まれています。
-
-著作権およびライセンスは各テーマのファイルに記述してあるものに従いま
-すが、特に明記されていない場合、配布条件はGPL2、著作権は以下になりま
-す。
-
- Copyright (c) 2005 TADA Tadashi
-
diff -Nru tdiary-contrib-3.1.20120506/io/dbi_io/dbi_io.rb tdiary-contrib-3.2.2/io/dbi_io/dbi_io.rb
--- tdiary-contrib-3.1.20120506/io/dbi_io/dbi_io.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/io/dbi_io/dbi_io.rb 2013-04-25 22:33:04.000000000 +0000
@@ -1,5 +1,6 @@
+# -*- coding: utf-8 -*-
#
-# dbi_io.rb: DBI IO for tDiary 2.x. $Revision: 1.6 $
+# dbi_io.rb: DBI IO for tDiary 2.x.
#
# NAME dbi_io
#
@@ -9,85 +10,87 @@
# Copyright (C) 2003 ma2tak
# (C) 2004 moonwolf
# (C) 2005 Kazuhiko
+# (C) 2012 hsbt
#
# You can distribute this under GPL.
+require 'tdiary/io/base'
+require 'tempfile'
require 'dbi'
module TDiary
-
- class DbiIO < IOBase
- module CommentIO
- def restore_comment(diaries)
- begin
- diaries.each {|date, diary_object|
- @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) {|diary_id, name, mail, last_modified, visible, no, author, comment|
- comment = Comment::new(name, mail, comment, Time::at(last_modified.to_i))
- comment.show = visible
- diary_object.add_comment(comment)
- }
- }
- rescue Errno::ENOENT
+ module CommentIO
+ def restore_comment(diaries)
+ begin
+ diaries.each do |date, diary_object|
+ @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|
+ comment = Comment.new(name, mail, comment, Time.at(last_modified.to_i))
+ comment.show = visible
+ diary_object.add_comment(comment)
+ end
end
+ rescue Errno::ENOENT
end
+ end
- def store_comment(diaries)
- begin
- diaries.each {|date, diary|
- no = 0
- diary.each_comment(diary.count_comments(true)) {|com|
- no += 1
- param = [com.name, com.mail, com.date.to_i, com.visible?, com.body, @dbi_author, date, no]
- sth = @dbh.execute("UPDATE commentdata SET name=?, mail=?, last_modified=?, visible=?, comment=? WHERE author=? AND diary_id=? AND no=?;", *param)
- if sth.rows == 0
- @dbh.execute("INSERT INTO commentdata (name, mail, last_modified, visible, comment, author, diary_id, no) VALUES (?,?,?,?,?,?,?,?);", *param)
- end
- }
- @dbh.execute("DELETE FROM commentdata where author=? AND diary_id=? AND no>?", @dbi_author, date, no)
- }
- rescue Errno::ENOENT
+ def store_comment(diaries)
+ begin
+ diaries.each do |date, diary|
+ no = 0
+ diary.each_comment(diary.count_comments(true)) do |com|
+ no += 1
+ param = [com.name, com.mail, com.date.to_i, com.visible?, com.body, @dbi_author, date, no]
+ sth = @dbh.execute("UPDATE commentdata SET name=?, mail=?, last_modified=?, visible=?, comment=? WHERE author=? AND diary_id=? AND no=?;", *param)
+ if sth.rows == 0
+ @dbh.execute("INSERT INTO commentdata (name, mail, last_modified, visible, comment, author, diary_id, no) VALUES (?,?,?,?,?,?,?,?);", *param)
+ end
+ end
+ @dbh.execute("DELETE FROM commentdata where author=? AND diary_id=? AND no>?", @dbi_author, date, no)
end
+ rescue Errno::ENOENT
end
end
+ end
- module RefererIO
- def restore_referer(diaries)
- return
- end
+ module RefererIO
+ def restore_referer(diaries)
+ return
+ end
- def store_referer(diaries)
- return
- end
+ def store_referer(diaries)
+ return
end
-
+ end
+
+
+ class DbiIO < BaseIO
include CommentIO
include RefererIO
-
+
def initialize(tdiary)
- @tdiary = tdiary
+ @tdiary = tdiary
@dbi_url = tdiary.conf.dbi_driver_url
@dbi_user = tdiary.conf.dbi_user
@dbi_passwd = tdiary.conf.dbi_passwd
@dbi_author = tdiary.conf.dbi_author || 'default'
- @dbh = DBI.connect(@dbi_url, @dbi_user, @dbi_passwd)
+ @dbh = DBI.connect(@dbi_url, @dbi_user, @dbi_passwd)
load_styles
end
-
- def calendar
- calendar = Hash.new{|hash, key| hash[key] = []}
- sql = "SELECT year, month FROM diarydata WHERE author=? GROUP BY year, month ORDER BY year, month;"
- @dbh.select_all(sql, @dbi_author) {|year, month|
- calendar[year] << month
- }
- calendar
+
+ class << self
+ def load_cgi_conf(conf)
+ end
+
+ def save_cgi_conf(conf, result)
+ end
end
-
+
#
# block must be return boolean which dirty diaries.
#
def transaction(date)
- File.open("#{@tdiary.conf.data_path}/dbi_io.lock", 'w') {|file|
+ File.open("#{Dir.tmpdir}/dbi_io.lock", 'w') do |file|
file.flock(File::LOCK_EX)
- @dbh.transaction {
+ @dbh.transaction do
date_string = date.strftime("%Y%m%d")
diaries = {}
cache = @tdiary.restore_parser_cache(date, 'defaultio')
@@ -107,22 +110,32 @@
if dirty or not cache
@tdiary.store_parser_cache(date, 'defaultio', diaries)
end
- }
- }
+ end
+ end
+ end
+
+ def calendar
+ calendar = Hash.new{|hash, key| hash[key] = []}
+ sql = "SELECT year, month FROM diarydata WHERE author=? GROUP BY year, month ORDER BY year, month;"
+ @dbh.select_all(sql, @dbi_author) do |year, month|
+ calendar[year] << month
+ end
+ calendar
end
-
+
def diary_factory(date, title, body, style = 'tDiary')
styled_diary_factory(date, title, body, style)
end
-
+
# HNF移行ツールのため、作成
def restore_diary(date)
diaries = {}
restore(date, diaries, false)
diaries
end
-
- private
+
+ private
+
def restore(date, diaries, month=true)
sql = "SELECT diary_id, title, last_modified, visible, body, style FROM DiaryData WHERE author='#{@dbi_author}' and diary_id='#{date}';"
if month == true
@@ -130,17 +143,17 @@
sql = "SELECT diary_id, title, last_modified, visible, body, style FROM DiaryData WHERE author='#{@dbi_author}' AND year='#{$1}' AND month='#{$2}';"
end
end
- @dbh.select_all(sql) {|diary_id, title, last_modified, visible, body, style|
+ @dbh.select_all(sql) do |diary_id, title, last_modified, visible, body, style|
style = 'tdiary' if style.nil? || style.empty?
style = style.downcase
diary = eval("#{style(style)}::new(diary_id, title, body, Time::at(last_modified.to_i))")
diary.show(visible)
diaries[diary_id] = diary
- }
+ end
end
-
+
def store(diaries)
- diaries.each {|date, diary|
+ diaries.each do |date, diary|
# save diaries
if /(\d\d\d\d)(\d\d)(\d\d)/ =~ date
year = $1
@@ -154,17 +167,15 @@
if sth.rows == 0
@dbh.execute("INSERT INTO diarydata (year, month, day, title, last_modified, visible, body, style, author, diary_id) VALUES (?,?,?,?,?,?,?,?,?,?);", *param)
end
- }
+ end
end
-
+
# 追加メソッド for test
def delete(diaries)
- diaries.each {|date, diary|
+ diaries.each do |date, diary|
sql = "DELETE FROM diarydata WHERE author=#{@dbi_author} AND diary_id=#{date};"
@dbh.execute(sql)
- }
+ end
end
-
end
-
end
diff -Nru tdiary-contrib-3.1.20120506/js/comment_emoji_autocomplete.js tdiary-contrib-3.2.2/js/comment_emoji_autocomplete.js
--- tdiary-contrib-3.1.20120506/js/comment_emoji_autocomplete.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/comment_emoji_autocomplete.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,139 @@
+/*
+ * emoji_autocomplete.js : Support the automatic input of the emoji,
+ * using jQuery UI autocomplete.
+ *
+ * Copyright (C) 2013 by tamoot
+ * You can distribute it under GPL.
+ */
+
+$(function() {
+ var config = new Object();
+ config.candidates = [":blush:",":scream:",":smirk:",":smiley:",":stuck_out_tongue_closed_eyes:",":stuck_out_tongue_winking_eye:",":rage:",":disappointed:",":sob:",":kissing_heart:",":wink:",":pensive:",":confounded:",":flushed:",":relaxed:",":mask:",":heart:",":broken_heart:",":sunny:",":umbrella:",":cloud:",":snowflake:",":snowman:",":zap:",":cyclone:",":foggy:",":ocean:",":cat:",":dog:",":mouse:",":hamster:",":rabbit:",":wolf:",":frog:",":tiger:",":koala:",":bear:",":pig:",":pig_nose:",":cow:",":boar:",":monkey_face:",":monkey:",":horse:",":racehorse:",":camel:",":sheep:",":elephant:",":panda_face:",":snake:",":bird:",":baby_chick:",":hatched_chick:",":hatching_chick:",":chicken:",":penguin:",":turtle:",":bug:",":honeybee:",":ant:",":beetle:",":snail:",":octopus:",":tropical_fish:",":fish:",":whale:",":whale2:",":dolphin:",":cow2:",":ram:",":rat:",":water_buffalo:",":tiger2:",":rabbit2:",":dragon:",":goat:",":rooster:",":dog2:",":pig2:",":mouse2:",":ox:",":dragon_face:",":blowfish:",":crocodile:",":dromedary_camel:",":leopard:",":cat2:",":poodle:",":paw_prints:",":bouquet:",":cherry_blossom:",":tulip:",":four_leaf_clover:",":rose:",":sunflower:",":hibiscus:",":maple_leaf:",":leaves:",":fallen_leaf:",":herb:",":mushroom:",":cactus:",":palm_tree:",":evergreen_tree:",":deciduous_tree:",":chestnut:",":seedling:",":blossom:",":ear_of_rice:",":shell:",":globe_with_meridians:",":sun_with_face:",":full_moon_with_face:",":new_moon_with_face:",":new_moon:",":waxing_crescent_moon:",":first_quarter_moon:",":waxing_gibbous_moon:",":full_moon:",":waning_gibbous_moon:",":last_quarter_moon:",":waning_crescent_moon:",":last_quarter_moon_with_face:",":first_quarter_moon_with_face:",":moon:",":earth_africa:",":earth_americas:",":earth_asia:",":volcano:",":milky_way:",":partly_sunny:",":octocat:",":squirrel:",":bamboo:",":gift_heart:",":dolls:",":school_satchel:",":mortar_board:",":flags:",":fireworks:",":sparkler:",":wind_chime:",":rice_scene:",":jack_o_lantern:",":ghost:",":santa:",":christmas_tree:",":gift:",":bell:",":no_bell:",":tanabata_tree:",":tada:",":confetti_ball:",":balloon:",":crystal_ball:",":cd:",":dvd:",":floppy_disk:",":camera:",":video_camera:",":movie_camera:",":computer:",":tv:",":iphone:",":phone:",":telephone:",":telephone_receiver:",":pager:",":fax:",":minidisc:",":vhs:",":sound:",":speaker:",":mute:",":loudspeaker:",":mega:",":hourglass:",":hourglass_flowing_sand:",":alarm_clock:",":watch:",":radio:",":satellite:",":loop:",":mag:",":mag_right:",":unlock:",":lock:",":lock_with_ink_pen:",":closed_lock_with_key:",":key:",":bulb:",":flashlight:",":high_brightness:",":low_brightness:",":electric_plug:",":battery:",":calling:",":email:",":mailbox:",":postbox:",":bath:",":bathtub:",":shower:",":toilet:",":wrench:",":nut_and_bolt:",":hammer:",":seat:",":moneybag:",":yen:",":dollar:",":pound:",":euro:",":credit_card:",":money_with_wings:",":e-mail:",":inbox_tray:",":outbox_tray:",":envelope:",":incoming_envelope:",":postal_horn:",":mailbox_closed:",":mailbox_with_mail:",":mailbox_with_no_mail:",":door:",":smoking:",":bomb:",":gun:",":hocho:",":pill:",":syringe:",":page_facing_up:",":page_with_curl:",":bookmark_tabs:",":bar_chart:",":chart_with_upwards_trend:",":chart_with_downwards_trend:",":scroll:",":clipboard:",":calendar:",":date:",":card_index:",":file_folder:",":open_file_folder:",":scissors:",":pushpin:",":paperclip:",":black_nib:",":pencil2:",":straight_ruler:",":triangular_ruler:",":closed_book:",":green_book:",":blue_book:",":orange_book:",":notebook:",":notebook_with_decorative_cover:",":ledger:",":books:",":bookmark:",":name_badge:",":microscope:",":telescope:",":newspaper:",":football:",":basketball:",":soccer:",":baseball:",":tennis:",":8ball:",":rugby_football:",":bowling:",":golf:",":mountain_bicyclist:",":bicyclist:",":horse_racing:",":snowboarder:",":swimmer:",":surfer:",":ski:",":spades:",":hearts:",":clubs:",":diamonds:",":gem:",":ring:",":trophy:",":musical_score:",":musical_keyboard:",":violin:",":space_invader:",":video_game:",":black_joker:",":flower_playing_cards:",":game_die:",":dart:",":mahjong:",":clapper:",":memo:",":pencil:",":book:",":art:",":microphone:",":headphones:",":trumpet:",":saxophone:",":guitar:",":shoe:",":sandal:",":high_heel:",":lipstick:",":boot:",":shirt:",":tshirt:",":necktie:",":womans_clothes:",":dress:",":running_shirt_with_sash:",":jeans:",":kimono:",":bikini:",":ribbon:",":tophat:",":crown:",":womans_hat:",":mans_shoe:",":closed_umbrella:",":briefcase:",":handbag:",":pouch:",":purse:",":eyeglasses:",":fishing_pole_and_fish:",":coffee:",":tea:",":sake:",":baby_bottle:",":beer:",":beers:",":cocktail:",":tropical_drink:",":wine_glass:",":fork_and_knife:",":pizza:",":hamburger:",":fries:",":poultry_leg:",":meat_on_bone:",":spaghetti:",":curry:",":fried_shrimp:",":bento:",":sushi:",":fish_cake:",":rice_ball:",":rice_cracker:",":rice:",":ramen:",":stew:",":oden:",":dango:",":egg:",":bread:",":doughnut:",":custard:",":icecream:",":ice_cream:",":shaved_ice:",":birthday:",":cake:",":cookie:",":chocolate_bar:",":candy:",":lollipop:",":honey_pot:",":apple:",":green_apple:",":tangerine:",":lemon:",":cherries:",":grapes:",":watermelon:",":strawberry:",":peach:",":melon:",":banana:",":pear:",":pineapple:",":sweet_potato:",":eggplant:",":tomato:",":corn:",":alien:",":angel:",":anger:",":angry:",":anguished:",":astonished:",":baby:",":blue_heart:",":blush:",":boom:",":bow:",":bowtie:",":boy:",":bride_with_veil:",":broken_heart:",":bust_in_silhouette:",":busts_in_silhouette:",":clap:",":cold_sweat:",":collision:",":confounded:",":confused:",":construction_worker:",":cop:",":couple_with_heart:",":couple:",":couplekiss:",":cry:",":crying_cat_face:",":cupid:",":dancer:",":dancers:",":dash:",":disappointed:",":dizzy_face:",":dizzy:",":droplet:",":ear:",":exclamation:",":expressionless:",":eyes:",":facepunch:",":family:",":fearful:",":feelsgood:",":feet:",":finnadie:",":fire:",":fist:",":flushed:",":frowning:",":girl:",":goberserk:",":godmode:",":green_heart:",":grey_exclamation:",":grey_question:",":grimacing:",":grin:",":grinning:",":guardsman:",":haircut:",":hand:",":hankey:",":hear_no_evil:",":heart_eyes_cat:",":heart_eyes:",":heart:",":heartbeat:",":heartpulse:",":hurtrealbad:",":hushed:",":imp:",":information_desk_person:",":innocent:",":japanese_goblin:",":japanese_ogre:",":joy_cat:",":joy:",":kiss:",":kissing_cat:",":kissing_closed_eyes:",":kissing_heart:",":kissing_smiling_eyes:",":kissing:",":laughing:",":lips:",":love_letter:",":man_with_gua_pi_mao:",":man_with_turban:",":man:",":mask:",":massage:",":metal:",":muscle:",":musical_note:",":nail_care:",":neckbeard:",":neutral_face:",":no_good:",":no_mouth:",":nose:",":notes:",":ok_hand:",":ok_woman:",":older_man:",":older_woman:",":open_hands:",":open_mouth:",":pensive:",":persevere:",":person_frowning:",":person_with_blond_hair:",":person_with_pouting_face:",":point_down:",":point_left:",":point_right:",":point_up_2:",":point_up:",":poop:",":pouting_cat:",":pray:",":princess:",":punch:",":purple_heart:",":question:",":rage:",":rage1:",":rage2:",":rage3:",":rage4:",":raised_hand:",":raised_hands:",":relaxed:",":relieved:",":revolving_hearts:",":runner:",":running:",":satisfied:",":scream_cat:",":scream:",":see_no_evil:",":shit:",":skull:",":sleeping:",":sleepy:",":smile_cat:",":smile:",":smiley_cat:",":smiley:",":smiling_imp:",":smirk_cat:",":smirk:",":sob:",":sparkling_heart:",":sparkles:",":speak_no_evil:",":speech_balloon:",":star:",":star2:",":stuck_out_tongue_closed_eyes:",":stuck_out_tongue_winking_eye:",":stuck_out_tongue:",":sunglasses:",":suspect:",":sweat_drops:",":sweat_smile:",":sweat:",":thought_balloon:",":-1:",":thumbsdown:",":thumbsup:",":+1:",":tired_face:",":tongue:",":triumph:",":trollface:",":two_hearts:",":two_men_holding_hands:",":two_women_holding_hands:",":unamused:",":v:",":walking:",":wave:",":weary:",":wink2:",":wink:",":woman:",":worried:",":yellow_heart:",":yum:",":zzz:",":109:",":house:",":house_with_garden:",":school:",":office:",":post_office:",":hospital:",":bank:",":convenience_store:",":love_hotel:",":hotel:",":wedding:",":church:",":department_store:",":european_post_office:",":city_sunrise:",":city_sunset:",":japanese_castle:",":european_castle:",":tent:",":factory:",":tokyo_tower:",":japan:",":mount_fuji:",":sunrise_over_mountains:",":sunrise:",":stars:",":statue_of_liberty:",":bridge_at_night:",":carousel_horse:",":rainbow:",":ferris_wheel:",":fountain:",":roller_coaster:",":ship:",":speedboat:",":boat:",":sailboat:",":rowboat:",":anchor:",":rocket:",":airplane:",":helicopter:",":steam_locomotive:",":tram:",":mountain_railway:",":bike:",":aerial_tramway:",":suspension_railway:",":mountain_cableway:",":tractor:",":blue_car:",":oncoming_automobile:",":car:",":red_car:",":taxi:",":oncoming_taxi:",":articulated_lorry:",":bus:",":oncoming_bus:",":rotating_light:",":police_car:",":oncoming_police_car:",":fire_engine:",":ambulance:",":minibus:",":truck:",":train:",":station:",":train2:",":bullettrain_front:",":bullettrain_side:",":light_rail:",":monorail:",":railway_car:",":trolleybus:",":ticket:",":fuelpump:",":vertical_traffic_light:",":traffic_light:",":warning:",":construction:",":beginner:",":atm:",":slot_machine:",":busstop:",":barber:",":hotsprings:",":checkered_flag:",":crossed_flags:",":izakaya_lantern:",":moyai:",":circus_tent:",":performing_arts:",":round_pushpin:",":triangular_flag_on_post:",":jp:",":kr:",":cn:",":us:",":fr:",":es:",":it:",":ru:",":gb:",":uk:",":de:",":100:",":1234:",":one:",":two:",":three:",":four:",":five:",":six:",":seven:",":eight:",":nine:",":keycap_ten:",":zero:",":hash:",":symbols:",":arrow_backward:",":arrow_down:",":arrow_forward:",":arrow_left:",":capital_abcd:",":abcd:",":abc:",":arrow_lower_left:",":arrow_lower_right:",":arrow_right:",":arrow_up:",":arrow_upper_left:",":arrow_upper_right:",":arrow_double_down:",":arrow_double_up:",":arrow_down_small:",":arrow_heading_down:",":arrow_heading_up:",":leftwards_arrow_with_hook:",":arrow_right_hook:",":left_right_arrow:",":arrow_up_down:",":arrow_up_small:",":arrows_clockwise:",":arrows_counterclockwise:",":rewind:",":fast_forward:",":information_source:",":ok:",":twisted_rightwards_arrows:",":repeat:",":repeat_one:",":new:",":top:",":up:",":cool:",":free:",":ng:",":cinema:",":koko:",":signal_strength:",":u5272:",":u5408:",":u55b6:",":u6307:",":u6708:",":u6709:",":u6e80:",":u7121:",":u7533:",":u7a7a:",":u7981:",":sa:",":restroom:",":mens:",":womens:",":baby_symbol:",":no_smoking:",":parking:",":wheelchair:",":metro:",":baggage_claim:",":accept:",":wc:",":potable_water:",":put_litter_in_its_place:",":secret:",":congratulations:",":m:",":passport_control:",":left_luggage:",":customs:",":ideograph_advantage:",":cl:",":sos:",":id:",":no_entry_sign:",":underage:",":no_mobile_phones:",":do_not_litter:",":non-potable_water:",":no_bicycles:",":no_pedestrians:",":children_crossing:",":no_entry:",":eight_spoked_asterisk:",":eight_pointed_black_star:",":heart_decoration:",":vs:",":vibration_mode:",":mobile_phone_off:",":chart:",":currency_exchange:",":aries:",":taurus:",":gemini:",":cancer:",":leo:",":virgo:",":libra:",":scorpius:",":sagittarius:",":capricorn:",":aquarius:",":pisces:",":ophiuchus:",":six_pointed_star:",":negative_squared_cross_mark:",":a:",":b:",":ab:",":o2:",":diamond_shape_with_a_dot_inside:",":recycle:",":end:",":on:",":soon:",":clock1:",":clock130:",":clock10:",":clock1030:",":clock11:",":clock1130:",":clock12:",":clock1230:",":clock2:",":clock230:",":clock3:",":clock330:",":clock4:",":clock430:",":clock5:",":clock530:",":clock6:",":clock630:",":clock7:",":clock730:",":clock8:",":clock830:",":clock9:",":clock930:",":heavy_dollar_sign:",":copyright:",":registered:",":tm:",":x:",":heavy_exclamation_mark:",":bangbang:",":interrobang:",":o:",":heavy_multiplication_x:",":heavy_plus_sign:",":heavy_minus_sign:",":heavy_division_sign:",":white_flower:",":heavy_check_mark:",":ballot_box_with_check:",":radio_button:",":link:",":curly_loop:",":wavy_dash:",":part_alternation_mark:",":trident:",":black_square:",":white_square:",":white_check_mark:",":black_square_button:",":white_square_button:",":black_circle:",":white_circle:",":red_circle:",":large_blue_circle:",":large_blue_diamond:",":large_orange_diamond:",":small_blue_diamond:",":small_orange_diamond:",":small_red_triangle:",":small_red_triangle_down:",":shipit:"];
+ var regrep = ":.+$";
+
+ function widgetPosition(){
+ var caretPosition = Measurement.caretPos($("textarea[name=body]"));
+ return {
+ left: caretPosition.left + "px",
+ top: caretPosition.top + 20 + "px",
+ width: "auto"
+ };
+
+ }
+
+ function matchedEmoji(val){
+ terms = val.split("\n");
+ term = terms[ terms.length - 1];
+
+ var matched = term.match(regrep);
+
+ if( matched == null ){
+ return false;
+
+ }
+
+ return true;
+
+ }
+
+ function typedEmoji( term ) {
+ var array = term.split(":");
+ return array[ array.length - 1 ];
+ }
+
+ $( "textarea[name=body]" )
+ .bind( "keydown", function( event ) {
+ if ( event.keyCode === $.ui.keyCode.TAB &&
+ $( this ).data( "autocomplete" ).menu.active ) {
+ event.preventDefault();
+
+ }
+ })
+ .autocomplete({
+ delay: 500,
+
+ //filtering
+ source: function( request, response ) {
+ if(matchedEmoji(request.term)){
+ response( $.ui.autocomplete.filter(
+ config.candidates, typedEmoji( request.term ) ) );
+ }
+ },
+
+ // prevent value inserted on focus
+ focus: function() {
+ return false;
+ },
+
+ // replace textarea
+ select: function( event, ui ) {
+ // no match data ...
+ if (ui.item.value == null){
+ return false;
+ }
+
+ var terms = this.value.split(":");
+ // remove the current typed emoji
+ terms.pop();
+ // add the selected item
+ terms.push( ui.item.value.replace(/:/g, "") );
+ this.value = terms.join( ":" ) + ":";
+
+ return false;
+ },
+
+ // re-positioning supports excluding IE.
+ open: function(){
+ if (! document.uniqueID) {
+ $(".ui-autocomplete").css(widgetPosition())
+
+ }
+ }
+
+ })
+
+ // customize autocomplate item
+ $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
+ var icon_img = null;
+
+ if (item.value != null){
+ png_basename = item.value.replace(/:/g, "");
+
+ if (png_basename == '+1'){ png_basename = 'plus1' }
+
+ icon_img = $(" ").attr('src', 'http://www.emoji-cheat-sheet.com/graphics/emojis/' + png_basename + '.png')
+ .css('width', '20').css('height', '20');
+
+ }
+
+ var label_a = $(" ")
+ .append(icon_img)
+ .append(item.label)
+
+ return $( " " )
+ .data( "item.autocomplete", item )
+ .append(label_a)
+ .appendTo( ul );
+ };
+
+ // customize filter and result
+ $.ui.autocomplete.filter = function(array, term) {
+ var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
+
+ var aryMatches = $.grep( array, function(value) {
+ return matcher.test(value.label || value.value || value);
+
+ });
+
+ if (aryMatches.length == 0){
+ aryMatches.push({
+ label: 'no match found ',
+ value: null
+ });
+
+ }
+
+ return aryMatches;
+ };
+});
+
diff -Nru tdiary-contrib-3.1.20120506/js/datepicker.js tdiary-contrib-3.2.2/js/datepicker.js
--- tdiary-contrib-3.1.20120506/js/datepicker.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/datepicker.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,69 @@
+/*
+ * datepicker.js : datepicker using jQuery-UI
+ * http://jqueryui.com/demos/datepicker/
+ *
+ * Copyright (C) 2012 by tamoot
+ * You can redistribute it and/or modify it under GPL.
+*/
+
+
+$( function() {
+
+ function setDateText(date) {
+ var dates = date.split("/");
+ $("#year" ).val(dates[0]);
+ $("#month").val(dates[1]);
+ $("#day" ).val(dates[2]);
+ }
+
+ function dateTextFromField() {
+ var y = parseInt( $("#year" ).val() );
+ var m = parseInt( $("#month").val() );
+ var d = parseInt( $("#day" ).val() );
+ if( y > 0 && 13 > m && m > 0 && 32 > d && d > 0 ){
+ $("#datepicker-input").val(y + "/" + m + "/" + d);
+ }
+ }
+
+ var datepicker_dom = $("");
+
+ var datepicker_trigger = $("")
+ .addClass("ui-icon")
+ .addClass("ui-icon-calendar")
+ .addClass("datepicker-trigger");
+
+ var datepicker_input = $(" ", {
+ id: "datepicker-input",
+ name: "datepicker",
+ style: "display: none;",
+ type: "text"
+ }
+ );
+
+ datepicker_dom.append(datepicker_input);
+ datepicker_dom.append(datepicker_trigger);
+ datepicker_dom.insertAfter("span.day");
+
+ $("#datepicker-input").datepicker({
+ onSelect: function(dateText, inst){
+ setDateText(dateText);
+ },
+ beforeShow: function(input ,inst){
+ dateTextFromField();
+ },
+ dateFormat: "yy/m/d"
+ });
+
+ $(".datepicker-trigger").click(function() {
+ $("#datepicker-input").datepicker("show");
+ });
+
+
+ var icon = $(".ui-icon-calendar");
+ icon.css({"display":"inline","position":"absolute","margin-top":"5px"});
+ icon.after($(" ").css({"margin-left":"16px"}));
+ icon.hover(function(){
+ $(this).css({"cursor":"pointer"});
+ });
+});
+
diff -Nru tdiary-contrib-3.1.20120506/js/editor.js tdiary-contrib-3.2.2/js/editor.js
--- tdiary-contrib-3.1.20120506/js/editor.js 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/js/editor.js 2013-04-25 22:33:04.000000000 +0000
@@ -58,7 +58,7 @@
ul: function(){ form.insertAtCaret("* ") },
ol: function(){ form.insertAtCaret("1. ") },
table: function(){ form.insertAtCaret(
- "\nhead1|head2\n---------\nbody1|body2\nbody3|body4\n") },
+ "\nhead1|head2\n----|----\nbody1|body2\nbody3|body4\n") },
plugin: function(){ form.insertAtCaret2(
"", $.makePluginTag("plugin_name")) }
}
diff -Nru tdiary-contrib-3.1.20120506/js/flickr.js tdiary-contrib-3.2.2/js/flickr.js
--- tdiary-contrib-3.1.20120506/js/flickr.js 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/js/flickr.js 2013-04-25 22:33:04.000000000 +0000
@@ -39,7 +39,7 @@
.attr({id: photo.id, src: src, title: photo.title})
.css({margin: "2px", border: "1px solid #999", cursor: "pointer"})
.click(function(event) {
- var size = $('input[@name=flickr_to_blog_photo_size]:checked').val();
+ var size = $('input[name=flickr_photo_size]:checked').val();
var tag = $.makePluginTag("flickr '" + event.target.id + "', '" + size + "'");
$('#body').insertAtCaret(tag);
})
diff -Nru tdiary-contrib-3.1.20120506/js/jquery.socialbutton.js tdiary-contrib-3.2.2/js/jquery.socialbutton.js
--- tdiary-contrib-3.1.20120506/js/jquery.socialbutton.js 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/js/jquery.socialbutton.js 2013-04-25 22:33:04.000000000 +0000
@@ -160,6 +160,16 @@
* count: true
* });
*
+ *
+ * Pintarest Button
+ * http://pinterest.com/about/goodies/
+ *
+ * $('#pinterest').socialbutton('pinterest', {
+ * button: 'horizontal', // or 'vertical', 'none'
+ * url: 'http://itra.jp',
+ * media: 'http://itra.jp/image.jpg',
+ * description: 'This is an image.',
+ * });
*/
(function($) {
@@ -274,7 +284,13 @@
parsetags: '', // none(onload), explicit
callback: '',
count: true // true, false
- }
+ },
+ pinterest: {
+ button: 'horizontal', // horizontal, vertical, none
+ url: '',
+ media: '',
+ description: ''
+ },
};
var max_index = this.size() - 1;
@@ -322,6 +338,10 @@
socialbutton_google_plusone(this, options, defaults.google_plusone, index, max_index);
break;
+ case 'pinterest':
+ socialbutton_pinterest(this, options, defaults.pinterest, index, max_index);
+ break;
+
default:
break;
}
@@ -740,6 +760,32 @@
}
}
+function socialbutton_pinterest(target, options, defaults, index, max_index)
+{
+ var url = options.url || defaults.url;
+ var button = options.button || defaults.button;
+ var media = options.media != undefined ? options.media : defaults.media;
+ var description = options.description != undefined ? options.description : defaults.description;
+
+ url = url_encode_rfc3986(decodeURIComponent(url));
+ media = url_encode_rfc3986(decodeURIComponent(media));
+ description = decodeURIComponent(description);
+
+ var params = merge_parameters({
+ 'url': url,
+ 'media': media,
+ 'description': description
+ });
+
+ var tag = ' '
+
+ $(target).html(tag);
+
+ if (index == max_index) {
+ $('body').append('');
+ }
+}
+
function merge_attributes(attr)
{
var merged = '';
diff -Nru tdiary-contrib-3.1.20120506/js/plugin_checker.js tdiary-contrib-3.2.2/js/plugin_checker.js
--- tdiary-contrib-3.1.20120506/js/plugin_checker.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/plugin_checker.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,71 @@
+/**
+ * plugin_checker.js - Notify plugin updates
+ *
+ * Copyright (C) 2012 by MATSUOKA Kohei
+ * You can distribute it under GPL.
+ */
+
+$(function() {
+ var url = 'http://tdiary-plugin-checker.herokuapp.com/t_diary_plugin_files.json';
+
+ function saveCheckedDate(date) {
+ if (!localStorage) { return; }
+ var pluginChecker = localStorage.pluginChecker ? JSON.parse(localStorage.pluginChecker) : {};
+ pluginChecker.checkedDate = date;
+ localStorage.pluginChecker = JSON.stringify(pluginChecker);
+ }
+
+ function loadCheckedDate() {
+ if (!localStorage || !localStorage.pluginChecker) {
+ return null;
+ }
+ return (JSON.parse(localStorage.pluginChecker)).checkedDate;
+ }
+
+ function createNotify(plugins) {
+ var ul = $('');
+ $.each(plugins, function(i, plugin) {
+ var path = $('')
+ .attr('href', 'https://github.com/tdiary/tdiary-contrib/tree/master/' + plugin.path)
+ .append(plugin.path);
+ var message = $(' ')
+ .attr('href', 'https://github.com/tdiary/tdiary-contrib/commit/' + plugin.commit.sha)
+ .append(plugin.commit.message);
+ ul.append(
+ $('')
+ .append(path).append(': ').append(message)
+ );
+ });
+ var close = $('')
+ .append(
+ $('
閉じる ')
+ .click(function() {
+ saveCheckedDate(plugins[0].commit.date);
+ notify.hide();
+ })
+ );
+ var notify = $('
プラグインの更新が見つかりました。
')
+ .append(close)
+ .append(ul);
+
+ return notify;
+ }
+
+ $.get(url, function(plugins) {
+ var now = new Date();
+ var checkedDate = loadCheckedDate();
+ var updates = $.grep(plugins, function(plugin) {
+ // TODO: 条件を追加する(使用中プラグイン)
+ if (checkedDate) {
+ return (checkedDate < plugin.commit.date);
+ } else {
+ var age = parseInt((now - new Date(plugin.commit.date)) / 1000 / 3600 / 24);
+ return (age < 7);
+ }
+ });
+ if (updates.length > 0) {
+ $('form.update').before(createNotify(updates));
+ }
+ $tDiary.updates = updates;
+ });
+});
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-apollo.js tdiary-contrib-3.2.2/js/prettify/lang-apollo.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-apollo.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-apollo.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
+null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-clj.js tdiary-contrib-3.2.2/js/prettify/lang-clj.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-clj.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-clj.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,18 @@
+/*
+ Copyright (C) 2011 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+var a=null;
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a],
+["typ",/^:[\dA-Za-z-]+/]]),["clj"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-css.js tdiary-contrib-3.2.2/js/prettify/lang-css.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-css.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-css.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
+/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-go.js tdiary-contrib-3.2.2/js/prettify/lang-go.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-go.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-go.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-hs.js tdiary-contrib-3.2.2/js/prettify/lang-hs.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-hs.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-hs.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n\r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/,
+null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-lisp.js tdiary-contrib-3.2.2/js/prettify/lang-lisp.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-lisp.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-lisp.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,3 @@
+var a=null;
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a],
+["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-lua.js tdiary-contrib-3.2.2/js/prettify/lang-lua.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-lua.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-lua.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],
+["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-ml.js tdiary-contrib-3.2.2/js/prettify/lang-ml.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-ml.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-ml.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
+["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-n.js tdiary-contrib-3.2.2/js/prettify/lang-n.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-n.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-n.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,4 @@
+var a=null;
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/,
+a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/,
+a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-proto.js tdiary-contrib-3.2.2/js/prettify/lang-proto.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-proto.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-proto.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1 @@
+PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-scala.js tdiary-contrib-3.2.2/js/prettify/lang-scala.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-scala.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-scala.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
+["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-sql.js tdiary-contrib-3.2.2/js/prettify/lang-sql.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-sql.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-sql.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i,
+null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-tex.js tdiary-contrib-3.2.2/js/prettify/lang-tex.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-tex.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-tex.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-vb.js tdiary-contrib-3.2.2/js/prettify/lang-vb.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-vb.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-vb.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r \xa0
"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“”'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i,
+null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-vhdl.js tdiary-contrib-3.2.2/js/prettify/lang-vhdl.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-vhdl.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-vhdl.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,3 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
+null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i],
+["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-wiki.js tdiary-contrib-3.2.2/js/prettify/lang-wiki.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-wiki.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-wiki.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t \xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]);
+PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-xq.js tdiary-contrib-3.2.2/js/prettify/lang-xq.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-xq.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-xq.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,3 @@
+PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/],
+["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/],
+["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/lang-yaml.js tdiary-contrib-3.2.2/js/prettify/lang-yaml.js
--- tdiary-contrib-3.1.20120506/js/prettify/lang-yaml.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/lang-yaml.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+var a=null;
+PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]);
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/prettify.css tdiary-contrib-3.2.2/js/prettify/prettify.css
--- tdiary-contrib-3.1.20120506/js/prettify/prettify.css 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/prettify.css 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff -Nru tdiary-contrib-3.1.20120506/js/prettify/prettify.js tdiary-contrib-3.2.2/js/prettify/prettify.js
--- tdiary-contrib-3.1.20120506/js/prettify/prettify.js 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/js/prettify/prettify.js 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c
122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]+/],["dec",/^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^
+
+EOS
+end
+
+def code(content, lang = nil)
+ <<-EOS
+
+#{content}
+EOS
+end
diff -Nru tdiary-contrib-3.1.20120506/plugin/coderwall.rb tdiary-contrib-3.2.2/plugin/coderwall.rb
--- tdiary-contrib-3.1.20120506/plugin/coderwall.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/coderwall.rb 2013-04-25 22:33:04.000000000 +0000
@@ -10,7 +10,7 @@
rescue Errno::ENOENT
begin
timeout(10) do
- json = open( "http://coderwall.com/#{name}.json" ) {|f| f.read }
+ json = open( "https://coderwall.com/#{name}.json" ) {|f| f.read }
end
open(cache, 'wb') {|f| f.write(json) }
rescue Timeout::Error
diff -Nru tdiary-contrib-3.1.20120506/plugin/comment_emoji_autocomplete.rb tdiary-contrib-3.2.2/plugin/comment_emoji_autocomplete.rb
--- tdiary-contrib-3.1.20120506/plugin/comment_emoji_autocomplete.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/comment_emoji_autocomplete.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+#
+# comment_emoji_autocomplete.rb : Support the automatic input of the emoji
+# using jQuery UI autocomplete.
+#
+# Copyright (C) 2013, tamoot
+# You can redistribute it and/or modify it under GPL2.
+#
+
+if !@cgi.mobile_agent? && /\A(?:day)\z/ =~ @mode
+ add_header_proc do
+ %Q| |
+ end
+
+ enable_js('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js')
+ enable_js('caretposition.js')
+ enable_js('comment_emoji_autocomplete.js')
+
+end
+
+# Local Variables:
+# mode: ruby
+# indent-tabs-mode: t
+# tab-width: 3
+# ruby-indent-level: 3
+# End:
+# vim: ts=3
diff -Nru tdiary-contrib-3.1.20120506/plugin/datepicker.rb tdiary-contrib-3.2.2/plugin/datepicker.rb
--- tdiary-contrib-3.1.20120506/plugin/datepicker.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/datepicker.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+#
+# datepickr.rb - show jQuery UI datepicker
+#
+# Copyright (C) 2012, tamoot
+# You can redistribute it and/or modify it under GPL.
+#
+
+#
+# not support
+#
+return if feed? || @conf.mobile_agent?
+
+if /\A(?:form|preview|append|edit|update)\z/ =~ @mode
+ enable_js('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js')
+ if @conf.lang == 'ja'
+ enable_js('http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js')
+ end
+ enable_js('datepicker.js')
+end
+
+# Local Variables:
+# mode: ruby
+# indent-tabs-mode: t
+# tab-width: 3
+# ruby-indent-level: 3
+# End:
+# vim: ts=3
diff -Nru tdiary-contrib-3.1.20120506/plugin/github_link.rb tdiary-contrib-3.2.2/plugin/github_link.rb
--- tdiary-contrib-3.1.20120506/plugin/github_link.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/github_link.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,9 @@
+def gh_link(gh_identifier, text=nil)
+ text = gh_identifier.split('/').last if text.nil?
+ id_and_name, number = gh_identifier.split('#')
+
+ url = "https://github.com/#{id_and_name}"
+ url = url + "/issues/#{number}" if number
+
+ "#{h text} "
+end
diff -Nru tdiary-contrib-3.1.20120506/plugin/google_webmaster.rb tdiary-contrib-3.2.2/plugin/google_webmaster.rb
--- tdiary-contrib-3.1.20120506/plugin/google_webmaster.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/google_webmaster.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,22 @@
+# encoding: utf-8
+# google-webmaster.rb - embed a meta tag to let Google Webmaster tool know your verification code.
+#
+# Copyright (C) 2012, Tatsuya Sato
+# You can redistribute it and/or modify it under GPL2.
+#
+
+add_header_proc do
+ " "
+end
+
+add_conf_proc('Google Webmaster', 'Google ウェブマスターツール', 'etc') do
+ if @mode == 'saveconf'
+ @conf['google_webmaster.verification'] = @cgi.params['google_webmaster.verification'][0]
+ end
+ <<-HTML
+ Google ウェブマスターツールの検証コード
+
+
+
+ HTML
+end
diff -Nru tdiary-contrib-3.1.20120506/plugin/instagr.rb tdiary-contrib-3.2.2/plugin/instagr.rb
--- tdiary-contrib-3.1.20120506/plugin/instagr.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/instagr.rb 2013-04-25 22:33:04.000000000 +0000
@@ -35,7 +35,7 @@
begin
Net::HTTP.version_1_2
- res = Net::HTTP::Proxy(px_host, px_port).get('instagr.am', "/api/v1/oembed/#{query}")
+ res = Net::HTTP::Proxy(px_host, px_port).get('instagram.com', "/api/v1/oembed/#{query}")
json_data = JSON::parse( res, &:read )
width = option[:width] ? option[:width] : json_data["width"]
height = option[:height] ? option[:height] : json_data["height"]
@@ -52,6 +52,7 @@
return %Q|Failed Open URL.. #{short_url} #{h $!}
|
end
end
+alias :instagram :instagr
# Local Variables:
diff -Nru tdiary-contrib-3.1.20120506/plugin/ja/google_sitemaps.rb tdiary-contrib-3.2.2/plugin/ja/google_sitemaps.rb
--- tdiary-contrib-3.1.20120506/plugin/ja/google_sitemaps.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/ja/google_sitemaps.rb 2013-04-25 22:33:04.000000000 +0000
@@ -5,7 +5,7 @@
add_conf_proc('google_sitemaps', 'Google sitemap') do
saveconf_google_sitemaps
- request_uri = File::dirname(ENV['REQUEST_URI'])
+ request_uri = File::dirname(@cgi.request_uri)
if request_uri == "/"
@conf['google_sitemaps.uri_format'] ||= 'http://' + @cgi.server_name + '/index.cgi?date=%s'
else
diff -Nru tdiary-contrib-3.1.20120506/plugin/jquery_ui_theme.rb tdiary-contrib-3.2.2/plugin/jquery_ui_theme.rb
--- tdiary-contrib-3.1.20120506/plugin/jquery_ui_theme.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/jquery_ui_theme.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+#
+# jquery_ui.rb - use jQuery UI
+#
+# Copyright (C) 2012, tamoot
+# You can redistribute it and/or modify it under GPL.
+#
+
+#
+# not support
+#
+return if feed? || @conf.mobile_agent?
+
+add_header_proc do
+ if /\A(?:form|preview|append|edit|update)\z/ =~ @mode
+
+ themes = @conf['jquery_ui.theme']
+ if themes.nil? || theme == ''
+ themes = 'base'
+ end
+
+ jquery_ui = ''
+ jquery_ui << %Q| \n|
+ jquery_ui
+
+ else
+ ''
+
+ end
+
+end
+
+add_conf_proc( 'jquery_ui_theme', 'jQuery UI Theme' ) do
+ if @mode == 'saveconf' then
+ @conf['jquery_ui.theme'] = @cgi.params['jquery_ui.theme'][0]
+
+ end
+
+ <<-HTML
+ Theme name
+
+ sample) blitzer, flick .. See JQuery UI Theme.
+ default is base .
+ HTML
+
+end
+
+
+# Local Variables:
+# mode: ruby
+# indent-tabs-mode: t
+# tab-width: 3
+# ruby-indent-level: 3
+# End:
+# vim: ts=3
diff -Nru tdiary-contrib-3.1.20120506/plugin/lazy_referer.rb tdiary-contrib-3.2.2/plugin/lazy_referer.rb
--- tdiary-contrib-3.1.20120506/plugin/lazy_referer.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/lazy_referer.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,38 @@
+# -*- coding: utf-8; -*-
+#
+# lazy_referer.rb: lazy loading referer
+#
+# Copyright (C) 2013 by MATSUOKA Kohei
+# You can distribute it under GPL.
+#
+if /^(day|form|edit)$/ =~ @mode and not bot? then
+ enable_js('referer.js')
+
+ #
+ # overwrite method: draw only referer area (content will feach with ajax)
+ #
+ def referer_of_today_long( diary, limit )
+ return if limit == 0
+ return unless diary
+ date = diary.date.strftime('%Y%m%d')
+ # FIXME: endpoint is should created by TDiary::Plugin, because easy customize routing
+ endpoint = "#{@conf.index}?plugin=referer&date=#{date}"
+ %Q[#{referer_today} \n]
+ end
+end
+
+#
+# return referer of date as is (html)
+#
+add_content_proc('referer') do |date|
+ diary = @diaries[date]
+ referer_load_current( diary )
+ referer_of_today_long( diary, 100 )
+end
+
+# Local Variables:
+# mode: ruby
+# indent-tabs-mode: t
+# tab-width: 3
+# ruby-indent-level: 3
+# End:
diff -Nru tdiary-contrib-3.1.20120506/plugin/livedoor_weather.rb tdiary-contrib-3.2.2/plugin/livedoor_weather.rb
--- tdiary-contrib-3.1.20120506/plugin/livedoor_weather.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/livedoor_weather.rb 2013-04-25 22:33:04.000000000 +0000
@@ -9,12 +9,12 @@
require 'open-uri'
require 'timeout'
-require 'rexml/document'
+require 'time'
-@lwws_rest_url = 'http://weather.livedoor.com/forecast/webservice/rest/v1'
+@lwws_rest_url = 'http://weather.livedoor.com/forecast/webservice/json/v1'
def lwws_init
- @conf['lwws.city_id'] ||= 63
+ @conf['lwws.city_id'] ||= 130010
@conf['lwws.icon.disp'] ||= ""
@conf['lwws.max_temp.disp'] ||= ""
@conf['lwws.min_temp.disp'] ||= ""
@@ -22,22 +22,9 @@
@conf['lwws.cache_time'] ||= 6
end
-def convert_date( date_status )
- case date_status
- when "today"
- date = Time.now
- when "tomorrow"
- date = Time.now + (60 * 60 * 24)
- when "dayaftertomorrow"
- date = Time.now + (60 * 60 * 24 * 2)
- end
- return date.strftime("%Y%m%d")
-end
-
-def lwws_request( city_id, date_status )
+def lwws_request( city_id )
url = @lwws_rest_url.dup
url << "?city=#{city_id}"
- url << "&day=#{date_status}"
proxy = @conf['proxy']
proxy = 'http://' + proxy if proxy
@@ -46,94 +33,87 @@
end
end
-def lwws_get( date_status, update = false)
+def lwws_get
lwws_init
city_id = @conf['lwws.city_id']
- cache_time = @conf['lwws.cache_time'] * 60 * 60 # hour
-
- cache = "#{@cache_path}/lwws"
- file_name = "#{cache}/#{convert_date( date_status )}.xml" # file_name is YYYYMMDD.xml
+ cache_time = @conf['lwws.cache_time'] * 60 * 60
+ file_name = "#{@cache_path}/lwws/#{Time.now.strftime("%Y%m%d")}.json"
begin
- Dir::mkdir( cache ) unless File::directory?( cache )
- cached_time = nil
- cached_time = File.mtime( file_name ) if File.exist?( file_name )
+ Dir.mkdir("#{@cache_path}/lwws") unless File.directory?("#{@cache_path}/lwws")
- if not cached_time.nil? and @conf['lwws.cache'] == "t" and Time.now > cached_time + cache_time
- update = true
+ cached_time = if File.exist?( file_name )
+ File.mtime( file_name )
+ else
+ nil
+ end
+
+ update = true if @conf['lwws.cache'] == "t" && cached_time && Time.now > cached_time + cache_time
+
+ if cached_time.nil? || update
+ json = lwws_request(city_id)
+ File.open(file_name, 'wb') {|f| f.write(json)}
end
-
- if cached_time.nil? or update
- xml = lwws_request( city_id, date_status )
- File::open( file_name, 'wb' ) {|f| f.write( xml )}
- end
- rescue Timeout::Error
- return
rescue => e
@logger.error( e )
- return
end
end
-def lwws_to_html( date )
+def lwws_to_html(date)
lwws_init
- cache = "#{@cache_path}/lwws"
- case date
- when "today", "tommorow", "dayaftertommorow"
- file_name = "#{cache}/#{convert_date( date_status)}.xml"
- else
- file_name = "#{cache}/#{date}.xml"
- end
-
- today = Time.now.strftime("%Y%m%d")
+ file_name = "#{@cache_path}/lwws/#{date.strftime("%Y%m%d")}.xml"
begin
- xml = File::read( file_name )
- doc = REXML::Document::new( xml ).root
+ # http://weather.livedoor.com/help/restapi_close
+ if Time.parse('20130331') < date
+ file_name.sub!(/xml/, 'json')
+ require 'json'
+ doc = JSON.parse(File.read(file_name))
+
+ telop = @conf.to_native( doc["forecasts"][0]["telop"], 'utf-8' )
+ # 「今日」のデータに気温は含まれない場合がある
+ max_temp = doc["forecasts"][0]["temperature"]["max"]["celsius"] rescue nil
+ min_temp = doc["forecasts"][0]["temperature"]["min"]["celsius"] rescue nil
+ detail_url = doc["link"]
+ title = @conf.to_native( doc["forecasts"][0]["image"]["title"], 'utf-8' )
+ url = doc["forecasts"][0]["image"]["url"]
+ width = doc["forecasts"][0]["image"]["width"]
+ height = doc["forecasts"][0]["image"]["height"]
+ else
+ require 'rexml/document'
+ doc = REXML::Document.new(File.read(file_name)).root
- telop = @conf.to_native( doc.elements["telop"].text, 'utf-8' )
- max_temp = doc.elements["temperature/max/celsius"].text
- min_temp = doc.elements["temperature/min/celsius"].text
- detail_url = doc.elements["link"].text
+ telop = @conf.to_native( doc.elements["telop"].text, 'utf-8' )
+ max_temp = doc.elements["temperature/max/celsius"].text
+ min_temp = doc.elements["temperature/min/celsius"].text
+ detail_url = doc.elements["link"].text
+ title = @conf.to_native( doc.elements["image/title"].text, 'utf-8' )
+ url = doc.elements["image/url"].text
+ width = doc.elements["image/width"].text
+ height = doc.elements["image/height"].text
+ end
result = ""
result << %Q||
-
if @conf['lwws.icon.disp'] != "t" or @conf.mobile_agent? then
result << %Q|
#{telop} |
else
- title = @conf.to_native( doc.elements["image/title"].text, 'utf-8' )
- link = doc.elements["image/link"].text
- url = doc.elements["image/url"].text
- width = doc.elements["image/width"].text
- height = doc.elements["image/height"].text
- if date == today
- result << %Q|
|
- end
- result << %Q| |
- if date == today
- result << %Q||
- end
+ result << %Q|
|
end
-
if @conf['lwws.max_temp.disp'] == "t" and not max_temp.nil? then
result << %Q| #{@lwws_max_temp_label}:#{h(max_temp)}#{@celsius_label}|
end
-
if @conf['lwws.min_temp.disp'] == "t" and not min_temp.nil? then
result << %Q| #{@lwws_min_temp_label}:#{h(min_temp)}#{@celsius_label}|
end
-
result << %Q|
|
- return result
- rescue Errno::ENOENT
- return ''
- rescue => e
+ result
+ rescue StandardError, Errno::ENOENT => e
@logger.error( e )
- return ''
+ ''
end
end
@@ -160,7 +140,6 @@
result << %Q|#{@lwws_icon_label} |
checked = "t" == @conf['lwws.icon.disp'] ? ' checked' : ''
result << %Q| #{@lwws_icon_desc}
|
-
result << %Q|#{@lwws_label_disp_item} |
result << %Q|#{@lwws_desc_disp_item}
|
result << %Q||
-
result << %Q|#{@lwws_label_cache} |
checked = "t" == @conf['lwws.cache'] ? ' checked' : ''
result << %Q| #{@lwws_desc_cache}
|
result << %Q|#{@lwws_desc_cache_time}
|
result << %Q|
|
- return result
+ result
end
add_body_enter_proc do |date|
unless @conf.mobile_agent? or @conf.iphone? or feed? or bot?
- lwws_to_html( date.strftime("%Y%m%d") )
+ lwws_to_html(date)
end
end
add_update_proc do
- lwws_get( "today" )
- lwws_get( "tomorrow" )
- lwws_get( "dayaftertomorrow" )
+ lwws_get
end
add_conf_proc( 'lwws', @lwws_plugin_name ) do
lwws_conf_proc
end
+
+# Local Variables:
+# mode: ruby
+# indent-tabs-mode: t
+# tab-width: 3
+# ruby-indent-level: 3
+# End:
+# vim: ts=3
diff -Nru tdiary-contrib-3.1.20120506/plugin/nicovideo.rb tdiary-contrib-3.2.2/plugin/nicovideo.rb
--- tdiary-contrib-3.1.20120506/plugin/nicovideo.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/nicovideo.rb 2013-04-25 22:33:04.000000000 +0000
@@ -108,7 +108,7 @@
r
rescue ::Errno::ENOENT
"Sorry, #{video_id} was deleted. "
- rescue Timeout::Error, OpenURI::HTTPError, SecurityError
+ rescue Timeout::Error, NoMethodError, SecurityError, StandardError
nicovideo_iframe( video_id )
end
end
diff -Nru tdiary-contrib-3.1.20120506/plugin/notify_miniblog.rb tdiary-contrib-3.2.2/plugin/notify_miniblog.rb
--- tdiary-contrib-3.1.20120506/plugin/notify_miniblog.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/notify_miniblog.rb 2013-04-25 22:33:04.000000000 +0000
@@ -11,7 +11,6 @@
@miniblog_list = {
'HatenaHaiku' => @miniblog_config.new('h.hatena.ne.jp', '/api/statuses/update.json'),
- 'Wassr' => @miniblog_config.new('api.wassr.jp', '/statuses/update.json')
}
module Miniblog
diff -Nru tdiary-contrib-3.1.20120506/plugin/openid.rb tdiary-contrib-3.2.2/plugin/openid.rb
--- tdiary-contrib-3.1.20120506/plugin/openid.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/openid.rb 2013-04-25 22:33:04.000000000 +0000
@@ -43,7 +43,6 @@
nil,
['https://open.login.yahooapis.com/openid/op/auth', 'https://me.yahoo.com/a/'],
'http://open.login.yahooapis.com/openid20/www.yahoo.com/xrds'),
- 'Wassr' => @openid_config.new(['https://wassr.jp/open_id/auth', 'https://wassr.jp/user/']),
}
if @conf['openid.service'] and @conf['openid.id'] then
diff -Nru tdiary-contrib-3.1.20120506/plugin/plugin_checker.rb tdiary-contrib-3.2.2/plugin/plugin_checker.rb
--- tdiary-contrib-3.1.20120506/plugin/plugin_checker.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/plugin_checker.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,41 @@
+# plugin_checker.rb
+#
+# Copyright (c) 2012 MATSUOKA Kohei
+# You can redistribute it and/or modify it under GPL2.
+#
+
+def plugin_checker_js_settings
+ enable_js('plugin_checker.js')
+ add_js_setting('$tDiary.plugins', plugins.to_json)
+ add_js_setting('$tDiary.mode', @mode.to_json)
+end
+
+if /\A(form|edit|preview|showcomment)\z/ === @mode
+ add_header_proc do
+ <<-STYLE
+
+ STYLE
+ end
+ plugin_checker_js_settings
+end
diff -Nru tdiary-contrib-3.1.20120506/plugin/profile.rb tdiary-contrib-3.2.2/plugin/profile.rb
--- tdiary-contrib-3.1.20120506/plugin/profile.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/profile.rb 2013-04-25 22:33:04.000000000 +0000
@@ -14,7 +14,6 @@
require 'rexml/document'
require 'open-uri'
require 'digest/md5'
-#require 'yaml/store'
require 'pstore'
module ::Profile
@@ -79,18 +78,31 @@
# github.com
class GitHub < Base
- property :name, '//user/name'
- property :mail, '//user/email'
- endpoint {|id| "http://github.com/api/v2/xml/user/show/#{id}" }
+ property :name, 'name'
+ property :mail, 'email'
+ endpoint {|id| "https://api.github.com/users/#{id}" }
def image
- Gravatar.new(@mail, @options).image
# "http://www.gravatar.com/avatar/#{Digest::MD5.hexdigest(@mail)}.jpg"
+ Gravatar.new(@mail, @options).image
end
def link
"http://github.com/#{@id}"
end
+
+ def fetch(endpoint)
+ require 'json'
+ timeout(5) do
+ doc = open(endpoint) {|f| JSON.parse(f.read) }
+ end
+ end
+
+ def parse(doc)
+ self.class.properties.each do |property, key|
+ instance_variable_set("@#{property}", doc[key]) if doc[key]
+ end
+ end
end
# twitter.com
@@ -147,15 +159,6 @@
end
end
- class Wassr < Base
- property :image, '//statuses/status/user/profile_image_url'
- endpoint {|id| "http://api.wassr.jp/statuses/show.xml?id=#{id}" }
-
- def link
- "http://wassr.jp/user/#{id}"
- end
- end
-
class Hatena < Base
def image
prefix = id[0..1]
@@ -180,7 +183,6 @@
:friendfeed => Profile::Service::FriendFeed,
:iddy => Profile::Service::Iddy,
:gravatar => Profile::Service::Gravatar,
- :wassr => Profile::Service::Wassr,
:hatena => Profile::Service::Hatena,
}[service.to_s.downcase.to_sym]
@@ -218,4 +220,3 @@
html << %Q{ #{CGI.escapeHTML profile.description} } if profile.description
html << %Q{ }
end
-
diff -Nru tdiary-contrib-3.1.20120506/plugin/rubykaigi.rb tdiary-contrib-3.2.2/plugin/rubykaigi.rb
--- tdiary-contrib-3.1.20120506/plugin/rubykaigi.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/rubykaigi.rb 2013-04-25 22:33:04.000000000 +0000
@@ -2,12 +2,22 @@
# rubykaigi.rb: make badges of RubyKaigi.
#
# usage: <%= rubykaigi 'role', 'size' %>
-# role: attendee (default), speaker, sponsor, staff, committer, individual sponsor, away
-# size: large(160x160), small(160x90)
+# role: attendee (default), speaker, sponsor, staff, committer, individual sponsor, away
+# size: large(160x160), small(160x90)
#
# Copyright (C) TADA Tadashi
# Distributed under GPL.
#
+def rubykaigi2013( role = 'attendee', size = nil )
+ r = role.split(/[ _]+/).map{|s| s.capitalize}.join
+ s = "@#{h size}" unless size.nil?
+ %Q| |
+end
+
+def sappororubykaigi2012( role = 'attendee' )
+ r = role.split(/[ _]+/).map{|s| s.capitalize}.join
+ %Q| |
+end
def kansairubykaigi04( role = 'attendee' )
badges = {
@@ -16,7 +26,7 @@
'staff' => "staff_daibutsu"
}
- %Q| |
+ %Q| |
end
def rubykaigi2011( role = 'attendee', size = 'large' )
@@ -40,7 +50,7 @@
#----- OLD EDITIONS -----#
def sappororubykaigi03( role = 'attendee' )
- %Q| |
+ %Q| |
end
def rubykaigi2010( role = 'attendee' )
@@ -57,7 +67,7 @@
end
def rubykaigi2009( role = 'attendee' )
- %Q| |
+ %Q| |
end
def rubykaigi2008( role = 'attendee' )
@@ -76,7 +86,7 @@
end
def sappororubykaigi02( role = 'attendee' )
- %Q| |
+ %Q| |
end
# Local Variables:
diff -Nru tdiary-contrib-3.1.20120506/plugin/search-bing.rb tdiary-contrib-3.2.2/plugin/search-bing.rb
--- tdiary-contrib-3.1.20120506/plugin/search-bing.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/search-bing.rb 2013-04-25 22:33:04.000000000 +0000
@@ -12,9 +12,8 @@
#
require 'timeout'
-require 'rexml/document'
-require 'net/http'
-Net::HTTP.version_1_2
+require 'json'
+require 'open-uri'
def search_title
'全文検索 by Bing'
@@ -30,39 +29,28 @@
HTML
end
-def search_bing_market
- 'ja-JP'
-end
-
def search_bing_api( q, start = 0 )
- url = 'http://api.bing.net/xml.aspx'
appid = @conf['search-bing.appid']
- url << "?AppId=#{appid}&Version=2.2&Market=#{search_bing_market}&Query=#{q}&Sources=web&Web.Count=20&Web.Offset=#{start}"
-
- proxy = @conf['proxy']
- proxy = 'http://' + proxy if proxy
-
- proxy_host, proxy_port = nil
- if proxy
- proxy_host = proxy_uri.host
- proxy_port = proxy_uri.port
- end
- proxy_class = Net::HTTP::Proxy(proxy_host, proxy_port)
-
- query = URI.parse(url)
- req = Net::HTTP::Get.new(query.request_uri)
- http = proxy_class.new(query.host, query.port)
- http.open_timeout = 20
- http.read_timeout = 20
- res = http.start do
- http.request(req)
- end
- res.body
+ u = 'https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web'
+ u << "?Query=%27#{q}%27&Options=%27EnableHighlighting%27&$top=50&$skip=#{start}&$format=Json"
+ uri = URI( u )
+
+ open( uri, {:http_basic_authentication => [appid, appid]} ).read
+
+### FIX ME: this code failed on Timeout error, temporary using open-uri above.
+# px_host, px_port = (@conf['proxy'] || '').split( /:/ )
+# px_port = 8080 if px_host and !px_port
+# res = Net::HTTP::Proxy( px_host, px_port ).start( uri.host, uri.port ) do |http|
+# req = Net::HTTP::Get.new( uri.request_uri )
+# req.basic_auth( appid, appid )
+# res = http.request( req )
+# end
+# res.body
end
def search_to_html( str )
- (str || '').gsub( /(?:]*)?>)+/, '' ).gsub( %r{<(/?)b[ \t\n\r]*>}, '<\\1strong>' )
+ (str || '').gsub( /\uE000/, '' ).gsub( /\uE001/, ' ' )
end
def search_result
@@ -75,35 +63,24 @@
q = "#{query} site:#{uri.host}"
q << %Q| inurl:"#{uri.path}"| unless uri.path == '/'
xml = search_bing_api( u( q.untaint ), start )
- doc = REXML::Document::new( REXML::Source.new( xml ) ).root
- rescue OpenURI::HTTPError
+ json = JSON::parse( xml )
+ rescue Net::HTTPError
return %Q|#$!
|
end
r = search_input_form( query )
r << ''
r << ''
- total = doc.elements.to_a( 'web:Web/web:Total' )[0].text.to_i
- total = 1000 if total > 1000
- offset = doc.elements.to_a( 'web:Web/web:Offset' )[0].text.to_i
-
- if offset - 20 >= 0 then
- r << %Q|
<前の20件 |
- end
-
- if offset + 20 < total then
- r << %Q|
次の20件> |
- end
+ # no search navi on Bing search because no total result not supported
r << '
'
r
diff -Nru tdiary-contrib-3.1.20120506/plugin/search-google-custom.rb tdiary-contrib-3.2.2/plugin/search-google-custom.rb
--- tdiary-contrib-3.1.20120506/plugin/search-google-custom.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/search-google-custom.rb 2013-04-25 22:33:04.000000000 +0000
@@ -11,6 +11,8 @@
# @options["search-google-custom.cof"] : 広告の表示場所(9:右,10:一番上と右,11:一番上と下)
# @options["search-google-custom.width"] : 検索結果のフレームの幅
# @options["search-google-custom.height"] : 検索結果のフレームの高さ
+# @options["search-google-custom.search_label"] : 検索テキストボックス左のラベル
+# @options["search-google-custom.button_text"] : 検索ボタンに書かれる文字列
#
def search_title
@@ -21,17 +23,19 @@
%Q||
end
-def search_input_form( q )
+def search_input_form(q='')
cof = @conf["search-google-custom.cof"] || 9
-
+ search_label = @conf["search-google-custom.search_label"] || '検索キーワード:'
+ button_text = @conf["search-google-custom.button_text"] || '検索'
+
r = <<-HTML
HTML
diff -Nru tdiary-contrib-3.1.20120506/plugin/show_and_hide.rb tdiary-contrib-3.2.2/plugin/show_and_hide.rb
--- tdiary-contrib-3.1.20120506/plugin/show_and_hide.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/show_and_hide.rb 2013-04-25 22:33:04.000000000 +0000
@@ -52,7 +52,7 @@
end
def show_and_hide_contents(contents, id)
- %Q|#{h(contents)}
|
+ %Q|#{h(contents)} |
end
diff -Nru tdiary-contrib-3.1.20120506/plugin/socialbutton.rb tdiary-contrib-3.2.2/plugin/socialbutton.rb
--- tdiary-contrib-3.1.20120506/plugin/socialbutton.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/socialbutton.rb 2013-04-25 22:33:04.000000000 +0000
@@ -43,7 +43,7 @@
#{@socialbutton_label_enables}
HTML
- ['twitter', 'hatena', 'evernote', 'facebook_like', 'google_plusone'].each do |service|
+ ['twitter', 'hatena', 'evernote', 'facebook_like', 'google_plusone', 'pinterest'].each do |service|
checked = @conf['socialbutton.enables'].index(service) ? 'checked' : ''
id = "socialbutton.enables.#{service}"
result << %Q| |
diff -Nru tdiary-contrib-3.1.20120506/plugin/tweet_quote.rb tdiary-contrib-3.2.2/plugin/tweet_quote.rb
--- tdiary-contrib-3.1.20120506/plugin/tweet_quote.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/tweet_quote.rb 2013-04-25 22:33:04.000000000 +0000
@@ -35,7 +35,7 @@
def tweet_quote( src )
- if %r|http://twitter.com/(?:#!/)?[^/]{1,15}/status(?:es)?/([0-9]+)| =~ src.to_s.downcase
+ if %r|http(?:s)?://twitter.com/(?:#!/)?[^/]{1,15}/status(?:es)?/([0-9]+)| =~ src.to_s.downcase
src = $1
end
diff -Nru tdiary-contrib-3.1.20120506/plugin/twitter_anywhere.rb tdiary-contrib-3.2.2/plugin/twitter_anywhere.rb
--- tdiary-contrib-3.1.20120506/plugin/twitter_anywhere.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/twitter_anywhere.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,209 @@
+# -*- coding: utf-8 -*-
+#
+# twitter_anywhere.rb - bringing the Twitter communication platform to tDiary
+# refer to the URL below.
+# https://dev.twitter.com/docs/anywhere/welcome
+#
+# Copyright (C) 2010-2012, tamoot
+# You can redistribute it and/or modify it under GPL2.
+#
+
+def follow_button(account)
+ return not_support_anywhere unless support_anywhere?
+ return not_ready_anywhere unless ready_anywhere?
+
+ if account.nil? || account == ''
+ return anywhere_plugin_error("Account name is not specified.")
+
+ end
+
+ <<-FOLLOW_API
+
+
+ FOLLOW_API
+
+end
+
+def tweet_box(label = nil, content = nil, option = {})
+ return not_support_anywhere unless support_anywhere?
+ return not_ready_anywhere unless ready_anywhere?
+ init_tweetbox
+
+ @tweetbox_opt.merge!(option)
+ @tweetbox_opt.merge!(:height => 120) unless option[:height].to_i > 0
+ @tweetbox_opt.merge!(:width => 480) unless option[:width].to_i > 0
+
+ @tweetbox_opt.merge!(:label => label) if label
+ @tweetbox_opt.merge!(:defaultContent => content) if content
+
+ %Q||
+
+end
+
+def twitter_anywhere_settings
+ enable_js('twitter_anywhere.js')
+ add_js_setting('$tDiary.plugin.twitter_anywhere')
+
+ selectors = @conf['twitter_anywhere.hovercards.selectors'].split(',').collect do |selector|
+ %Q|"#{selector.strip}"|
+ end
+ add_js_setting('$tDiary.plugin.twitter_anywhere.selectors',
+ "[#{selectors.join(',')}]" )
+
+ expanded = '{}'
+ if @conf['twitter_anywhere.hovercards.expand_default'] == 'true'
+ expanded = '{"expanded":true}'
+
+ end
+ add_js_setting('$tDiary.plugin.twitter_anywhere.hovercards')
+ add_js_setting('$tDiary.plugin.twitter_anywhere.hovercards.expand_default',
+ expanded)
+
+end
+
+
+add_header_proc do
+
+ if /\A(?:latest|day|month|nyear|preview)\z/ =~ @mode
+
+ if ready_anywhere?
+ %Q||
+
+ else
+ ''
+
+ end
+
+ end
+
+end
+
+def init_tweetbox
+ @tweetbox_json_opt ||= []
+ @tweetbox_opt ||= {}
+
+end
+
+add_footer_proc do |date|
+
+ if /\A(?:latest|day|month|nyear|preview)\z/ =~ @mode
+
+ if ready_anywhere?
+
+ init_tweetbox
+
+ @tweetbox_opt.each_pair do |k, v|
+ @tweetbox_json_opt << "\"#{k}\":\"#{v}\""
+
+ end
+
+ tweet_box_call = %Q|\n|
+
+ else
+ ''
+
+ end
+
+ else
+ ''
+
+ end
+end
+
+add_conf_proc( 'twitter_anywhere', 'Twitter Anywhere' ) do
+ if @mode == 'saveconf' then
+ @conf['twitter_anywhere.id'] = @cgi.params['twitter_anywhere.id'][0]
+ @conf['twitter_anywhere.hovercards.selectors'] = @cgi.params['twitter_anywhere.hovercards.selectors'][0]
+ @conf['twitter_anywhere.hovercards.expand_default'] = @cgi.params['twitter_anywhere.hovercards.expand_default'][0]
+
+ end
+
+ expand_true = ""
+ expand_false = "selected"
+
+ if @conf['twitter_anywhere.hovercards.expand_default'] == "true"
+ expand_true = "selected"
+ expand_false = ""
+
+ end
+
+ <<-HTML
+ Consumer key
+
+
+ Register your tDiary and get Consumer key.
+ Go Twitter OAuth settings.
+
+ Rending Hovercards
+
+ CSS Selector To limit the scope of where Hovercards appear
+
+ example) div.section p, div.commentshort p, div.commentbody p
+
+ Expanded by Default
+
+ true
+ false
+
+ HTML
+
+end
+
+def support_anywhere?
+ return false if @conf.mobile_agent? || feed?
+ return true
+
+end
+
+def ready_anywhere?
+ if @conf['twitter_anywhere.id'] && @conf['twitter_anywhere.id'].size > 0
+ return true
+
+ end
+
+ return false
+
+end
+
+
+def not_support_anywhere
+ '[Twitter@Anywhere] not support this environment.'
+
+end
+
+def not_ready_anywhere
+ anywhere_plugin_error(
+ "Twitter consumer Key not specified.",
+ %Q|Go Twitter OAuth settings. |)
+
+end
+
+def anywhere_plugin_error(message, detail= '')
+ <<-PLUGIN_ERROR
+
+
[ERROR] twitter_anywhere.rb: #{message}
+
#{detail}
+
+ PLUGIN_ERROR
+
+end
+
+if /\A(?:latest|day|month|nyear|preview)\z/ =~ @mode
+ twitter_anywhere_settings
+end
+
+# Local Variables:
+# mode: ruby
+# indent-tabs-mode: t
+# tab-width: 3
+# ruby-indent-level: 3
+# End:
+# vim: ts=3
diff -Nru tdiary-contrib-3.1.20120506/plugin/ustream.rb tdiary-contrib-3.2.2/plugin/ustream.rb
--- tdiary-contrib-3.1.20120506/plugin/ustream.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/ustream.rb 2013-04-25 22:33:04.000000000 +0000
@@ -15,8 +15,5 @@
return %Q|Link to Ustream ##{id}
|
end
- # flashvars+="locale=(ja_JP|en_US)"
- utv_id = "utv#{rand(1000000)}"
- utv_name = "utv_n_#{rand(1000000)}"
- %Q| |
+ %Q||
end
diff -Nru tdiary-contrib-3.1.20120506/plugin/zenback.rb tdiary-contrib-3.2.2/plugin/zenback.rb
--- tdiary-contrib-3.1.20120506/plugin/zenback.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/plugin/zenback.rb 2013-04-25 22:33:04.000000000 +0000
@@ -7,12 +7,20 @@
end
if @mode == 'day' and (respond_to?(:section_mode?) ? section_mode? : true)
+ add_title_proc do |date, title|
+ "#{title}"
+ end
+ add_body_enter_proc do
+ ""
+ end
if defined? add_comment_leave_proc
add_comment_leave_proc do
+ "" +
insert_zenback
end
else
add_body_leave_proc do
+ "" +
insert_zenback
end
end
diff -Nru tdiary-contrib-3.1.20120506/spec/fixtures/friendfeed.xml tdiary-contrib-3.2.2/spec/fixtures/friendfeed.xml
--- tdiary-contrib-3.1.20120506/spec/fixtures/friendfeed.xml 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/spec/fixtures/friendfeed.xml 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,2 @@
+
+44123b23 Ex-CTO of Facebook. Previously co-founder and CEO of FriendFeed. Programmer, food lover. user bret Bret Taylor FriendFeed Blog: Ben Darnell joins FriendFeed: Ben++! - <a rel="nofollow" href="http://blog.friendfeed.com/2009/07/ben-darnell-joins-friendfeed-ben.html" title="http://blog.friendfeed.com/2009/07/ben-darnell-joins-friendfeed-ben.html">http://blog.friendfeed.com/2009...</a>http://friendfeed.com/share/bookmarklet Bookmarklet user Bret Taylor bret http://m.friendfeed-media.com/d8a3d0cffc2d534fb6c7e87912928dd4ee8695b1 109 http://blog.friendfeed.com/2009/07/ben-darnell-joins-friendfeed-ben.html175 http://friendfeed.com/friendfeed-news/c970e279/friendfeed-blog-ben-darnell-joins 2009-07-27T22:52:09Z Welcome, Ben!user kfury Kevin Fox e/c970e27954f349869b58d30a2b75631a/c/affd43519b134e2f8b0175f97267affd 2009-07-27T22:52:53Z Right on! Congrats, Ben.user micahwittman Micah e/c970e27954f349869b58d30a2b75631a/c/3ae682d1abd74d9cbec58d8614d34c9f 2009-07-27T22:54:13Z Congrats Ben! Also, congrats to FF you are lucky to have him!user shellen Jason Shellen e/c970e27954f349869b58d30a2b75631a/c/a297cd5ec49d4196855bd042dbb8ae98 2009-07-27T23:14:34Z Data storage and scalability rock. :)user louisgray Louis Gray e/c970e27954f349869b58d30a2b75631a/c/0c562741868248cd80fe1b70c041fe64 2009-07-27T23:42:50Z Ben's feed is here: <a href="http://friendfeed.com/bdarnell">http://friendfeed.com/bdarnell</a>user Bret Taylor bret e/c970e27954f349869b58d30a2b75631a/c/31a62c1498c446c090ed63594205c226 2009-07-27T23:51:54Z Congrats, Ben! :-)user koltregaskes Kol Tregaskes e/c970e27954f349869b58d30a2b75631a/c/e79d0783d7b347a88f3905b722f5d776 2009-07-28T00:17:50Z Yeah Ben!!!user phoenix Rachel Lea Fox e/c970e27954f349869b58d30a2b75631a/c/28ca4607a72c4289ab196230d03e6f74 2009-07-28T00:41:58Z so i finally get my answer to this :) <a href="http://friendfeed.com/chris/3870e6df/v-excited-about-my-friend-new-job-his" title="http://friendfeed.com/chris/3870e6df/v-excited-about-my-friend-new-job-his">http://friendfeed.com/chris...</a>user parislemon MG Siegler e/c970e27954f349869b58d30a2b75631a/c/0dce0a67de704224b0215da71a2ba408 2009-07-28T00:44:52Z Yeah, sorry I couldn't respond to that one before. :-)user kfury Kevin Fox e/c970e27954f349869b58d30a2b75631a/c/2d9ae52ed9d942f988a18a028d4dc215 2009-07-28T01:01:55Z well i be darned .... we now can rejoice, since fast paced additions to already good product are surely fastly coming about off the feedpipe ... it'l be a hectic season of finest upgrades ... I'm sure they'l start with keyboard shortcutze. ... I mean Google Reader rules on that. Intelligent to the extreme. ..Google.com, on the other hand - are we sleeping? .. not even "/" ??.. and that is the first page on the planet! .. i'l be darned. ..... then, lets boost them blogging facilities ! ... i mean, how hard internet programming could be ???user petrbuben pb: e/c970e27954f349869b58d30a2b75631a/c/c17c8d9235a34d238c3ab4376f1b84ab 2009-07-28T01:21:05Z Congrats Ben! Totally agree with Jason. Our latest project wouldn't have become feasible without Ben -- I'm just so glad we managed to get a fraction of his time before he left! :)user stong Simon e/c970e27954f349869b58d30a2b75631a/c/e7e1b7c2bcbc4c3cb9c112238fb41108 2009-07-28T02:40:46Z Congratulations, Ben! You're joining an awesome team.user abouey Anne Bouey e/c970e27954f349869b58d30a2b75631a/c/c0428e7432994c73b40365644bf22f7e 2009-07-28T03:31:25Z Woohoo! Another Googler :)user timhoeck Tim Hoeck e/c970e27954f349869b58d30a2b75631a/c/14daa1eeb6f043b1b58f2213e75971f6 2009-07-28T03:59:39Z Congrats, you are now a "big company"! ;))))user yogar K.D. e/c970e27954f349869b58d30a2b75631a/c/9d52f70158314758a604daad75732657 2009-07-28T06:44:21Z That's not my picture! They got the picture wrong! In fact, I didn't get the letter of hire either. :( Oh, Hi there, Ben...if that's your real name. ;)user joshhaley True Josh Haley e/c970e27954f349869b58d30a2b75631a/c/531163c5e9e34b9f92c0db5f9d3888c6 2009-07-28T07:03:07Z Good luck Ben! With you our preferred service will go more interestinghttp://www.fftogo.com/ fftogo user postoditacco True Roberto e/c970e27954f349869b58d30a2b75631a/c/d2aeb1623ed14f089dc567f50f2c418c 2009-07-28T10:13:27Z you're building a friendfeed army there :-)user dobata Dobromir Hadzhiev e/c970e27954f349869b58d30a2b75631a/c/81b72085bac844868ac7321a6d6ebf07 2009-07-28T10:50:24Z Congratsuser portakal Özkan Altuner e/c970e27954f349869b58d30a2b75631a/c/c04066a9eec842508018999185260fd4 2009-07-28T12:42:29Z Nice, any former Google Reader-er is a friend of mine.user mikereynolds Mike Reynolds e/c970e27954f349869b58d30a2b75631a/c/833416de1ee14f3a88eb25b3a7ec21cc 2009-07-28T13:35:08Z gratz Ben!user timepilot timepilot e/c970e27954f349869b58d30a2b75631a/c/b9d20666d611497abf9be5213eb15b16 2009-07-28T18:09:12Z Welcome Bret!user jamessmith24 Michael_techie e/c970e27954f349869b58d30a2b75631a/c/04cdf733ae664d1f853698aa70090a42 2009-08-10T20:14:31Z So, Facebook...?user dpritchett True Daniel J. Pritchett e/c970e27954f349869b58d30a2b75631a/c/4c811104219a47d0be72b60a46493336 2009-08-10T21:16:06Z Poor Ben Darnell. The last to enter are always the first to leave in mergers.user beersage beersage e/c970e27954f349869b58d30a2b75631a/c/d6c86c49e7a84536821f3627f3debd07 2009-08-11T06:49:41Z Hiring new staff while in secret acquisition talks, not exactly classy guys. I hope Ben knew what he was getting intouser dalziel Glenn Slaven e/c970e27954f349869b58d30a2b75631a/c/7858bb2711894dc7ba792ac22a369c4b 2009-08-14T05:21:51Z Why on earth does he use the Duck Hunt theme?user vzx Vezquex e/c970e27954f349869b58d30a2b75631a/c/99acd29f314b4d9d821866b5d85770bc 2009-08-14T05:23:45Z I don't know.. but it is awesome! :)user timhoeck Tim Hoeck e/c970e27954f349869b58d30a2b75631a/c/bed22ee3baa84233a2a54a25d26e1756 2012-01-30T23:16:12Z Wow, looks like somebody bumped this!user kfury Kevin Fox e/c970e27954f349869b58d30a2b75631a/c/c52b519e6cb04a268f76c9ecb84b0be1 2012-01-30T23:21:48Z I think there were a bunch of spam comments made to some 2009-era posts by FF employees. For some reason even after the spam is nuked, the post stays bumped.user zeigen Stephen Mack e/c970e27954f349869b58d30a2b75631a/c/0ebcf885818a442bbf773526e4927268 2012-01-30T23:23:23Z Yes, I blocked a spammer that was bumping old posts about FF themes and what not.user zoblue Zulema ❧ spicy cocoa tart e/c970e27954f349869b58d30a2b75631a/c/18fcc8e1b02f46fc8a21589681cf0b92 2012-01-30T23:26:01Z OH HAI!user cstechcast Eric - Drop That Beat e/c970e27954f349869b58d30a2b75631a/c/244f5398cd4b4d4b9ca344fe66509ca9 2012-01-30T23:30:29Z Well, let's see this as an opportunity to raise a virtual glass to Ben and FriendFeed-that-was!user kfury Kevin Fox e/c970e27954f349869b58d30a2b75631a/c/5afdbcf261d047b392bed56298492e55 2012-01-30T23:32:55Z It probably had something to do with the Tornado 2.2 release. I noticed Ben was the one who posted about the release on HN earlier. Edit: Or it could have just been a spammer. *shrugs*user jimminy True Jimminy, CoG of FF e/c970e27954f349869b58d30a2b75631a/c/93fc5948d22d4e469ca400e41327b48b 2012-01-31T01:17:40Z I don't think it had anything to do with the tornado release - a spammer bumped a bunch of Bret's old posts today.user bdarnell Ben Darnell e/c970e27954f349869b58d30a2b75631a/c/2e2bccd6de854ebd8ed345bb15236f5c 2012-05-07T17:34:07Z Here, let me save future spammers some time: Hello my name is ____ and I am an attractive young ____ _____ and I would like to contact with you so that together you and I can ___ with ____ while _____ in a highly ____ manner. Please to be responding as soon as is practical. Without your help, the _____ in U.S. dollars will go unclaimed, and the herbal ______ remedy will wither and die. Yours in all urgent seriousness, _____.user zeigen Stephen Mack e/c970e27954f349869b58d30a2b75631a/c/7eed38db1bb44c3d90ce6a817ae8c1f6 2012-05-09T03:10:07Z :D, Stephen!user abouey Anne Bouey e/c970e27954f349869b58d30a2b75631a/c/f349034ca1804b3388ca2804156887a3 2012-08-21T14:40:59Z so sweet))loluser solncee solncee e/c970e27954f349869b58d30a2b75631a/c/9ea20c4da85f4c539e02d6e24ac94f45 2012-09-02T08:06:01Z Awesome Photo :)user adiprcike Adi Prcike e/c970e27954f349869b58d30a2b75631a/c/53cbf054f1b446fe8c473ef103d101ae 2012-09-03T01:06:48Z Which shows up more, this pic or the Asian gentlemen on the beach?http://friendfeed.com/about/tools iPhone user zeigen Stephen Mack e/c970e27954f349869b58d30a2b75631a/c/21725041bf364346840c39853efa3829 2012-09-14T15:39:14Z bret neler oluyor dostum? kardeşi kardeşe kırdıracaksın canım ülkemde!!! işinin başına dön lütfen..user aynebilm aynebilim e/c970e27954f349869b58d30a2b75631a/c/4d3788ce9afb420fb95c25ee5ae2d2da 2012-09-14T16:03:55Z testa di cazzo se arcasca tutto te veniamo a cercà e non saremo teneri come i musulmaniuser bonzo True Francesco M. e/c970e27954f349869b58d30a2b75631a/c/63f44ef4d4c7481187d0a199eae11a7c 2012-09-14T16:17:29Z kime dedin onu francesco?user aynebilm aynebilim e/c970e27954f349869b58d30a2b75631a/c/9298bbd497ff49699e6bdf9f23f7809e 2012-09-14T16:33:20Z Bence de Friendfeede sahip çıksın artık...user koleksiyoner koleksiyoner e/c970e27954f349869b58d30a2b75631a/c/890dfb635e734e2f9d0e68fc2ac806da 2012-09-14T17:47:38Z Welcome, Ben!user kfury Kevin Fox e/c970e27954f349869b58d30a2b75631a/c/ce9ad2c73c784595929fe89601aab957 2012-09-14T17:54:48Z <a href="http://friendfeed.com/search?q=%23timewarp">#timewarp</a>user worldofhiglet True WoH: Fairy Surreal e/c970e27954f349869b58d30a2b75631a/c/29a9cf0c27cd42628fe5192c349c4944 user Bret's feed bret group friendfeed-news FriendFeed News 2012-09-27T18:45:20Z user gerantamala Tamala Geran 2012-09-17T05:12:36Z user thelarimarshop thelarimarshop 2012-09-14T17:59:05Z user jobbler True Joe Silence 2012-09-14T16:07:47Z user kkapp Alex Kapranoff 2012-09-14T15:39:22Z user aynebilm aynebilim 2012-09-03T09:46:26Z user nganguemvictor True nganguem victor 2012-08-11T14:14:57Z user goroprask Goro Prask 2012-06-29T07:02:56Z user ageuferraz Ageu Ferraz 2012-06-05T08:53:02Z user hewoilsneed hewoilsneed 2012-06-04T06:39:34Z user florrygrip florrygrip 2012-05-24T00:30:59Z user hcivelek HasanCivelek 2012-05-07T17:42:47Z user worldofhiglet True WoH: Fairy Surreal 2012-05-07T17:38:23Z user jeffdoug True Jeff (Team マクダジ ) 2012-05-02T11:57:09Z user angelramon Angel 2012-04-30T08:21:22Z user sogoo /sg 2012-04-24T06:17:16Z user alidafeian True علی دافعیان 2012-04-24T06:11:00Z user amitkumar47 amit Kumar 2012-04-20T21:45:37Z user polymath22 True polymath22 2012-04-14T19:49:34Z user cy6erbr4in Cy6erBr4in 2012-04-02T10:37:30Z user lisalenea True Lisa L. Seifert | FHG™ 2012-03-24T10:32:02Z user aidr86 True aid@ 2012-02-20T06:40:47Z user mitchnielsen Mitch Nielsen 2012-02-14T16:09:31Z user katiao инопланетянин со стажем 2012-02-14T14:07:33Z user adamspring Adam Spring 2012-01-31T00:46:09Z user kmohr25 Kevin Mohr 2012-01-30T23:32:13Z user jimminy True Jimminy, CoG of FF 2009-12-25T20:16:40Z user bebekvegebelik "Serhat Ozan" 2009-08-11T12:11:30Z user iphigenie Iphigenie 2009-08-11T06:53:06Z user mortonfox Morton Fox 2009-08-11T05:28:21Z user yogamama amelia arapoff 2009-08-10T22:27:13Z user vmlemon Tyson Key 2009-08-10T22:15:39Z user kierancrotty Kieran Crotty 2009-08-10T21:31:59Z user angusb Angus Burton 2009-08-10T21:20:26Z user berkeleyisbetter Kelly 2009-08-10T20:14:47Z user svartling Svartling 2009-08-01T09:35:59Z user tandriamirado Thierry R. Andriamirado 2009-07-28T20:14:18Z user durukanduru Durukan Duru 2009-07-28T19:45:16Z user silas216 Steven Perez 2009-07-28T18:54:10Z user v9y True Vinay | विनय 2009-07-28T18:30:17Z user stanjourdan stanjourdan 2009-07-28T18:12:39Z user kamath The Fat Oracle 2009-07-28T18:00:07Z user minusone minus-one 2009-07-28T16:40:19Z user oflaherty Paul OFlaherty 2009-07-28T14:10:49Z user dpritchett True Daniel J. Pritchett 2009-07-28T14:00:48Z user silpol A. T. 2009-07-28T13:51:27Z user ajkohn AJ Kohn 2009-07-28T13:44:54Z user dannyrowley True Daniel Rowley 2009-07-28T13:40:01Z user ajbatac AJ Batac 2009-07-28T12:33:25Z user stevefarnworth Steve Farnworth 2009-07-28T12:23:08Z user bjtitus Brandon Titus 2009-07-28T12:09:31Z user nzbuu James Myatt 2009-07-28T11:11:08Z user lookon kang 2009-07-28T11:08:50Z user lutao Lu Tao 2009-07-28T11:07:33Z user pellesjoqvist Pelle Sjoqvist 2009-07-28T10:27:09Z user pastas9 True pastas9 2009-07-28T10:19:33Z user amberspence True The Amber 2009-07-28T10:18:31Z user ourielohayon Ouriel Ohayon 2009-07-28T10:12:49Z user dobata Dobromir Hadzhiev 2009-07-28T09:40:43Z user zijperspace Ton Zijp 2009-07-28T08:50:42Z user simonwicks Simon Wicks 2009-07-28T07:12:26Z user dffrnt vijay 2009-07-28T07:00:56Z user bfoster Bonnie Foster 2009-07-28T06:54:08Z user jrivero Jordi Rivero 2009-07-28T06:51:55Z user postoditacco True Roberto 2009-07-28T06:51:24Z user niron Nir Ben Yona 2009-07-28T06:44:26Z user joshhaley True Josh Haley 2009-07-28T05:54:52Z user bdarnell Ben Darnell 2009-07-28T05:02:43Z user mirthnadir Amani 2009-07-28T05:02:11Z user kof2002 HealingBrush 2009-07-28T04:59:02Z user susanbeebe Susan Beebe 2009-07-28T04:57:19Z user izuzak Ivan Zuzak 2009-07-28T04:54:41Z user krynsky Mark Krynsky 2009-07-28T04:23:31Z user clare Clare Dibble 2009-07-28T04:12:16Z user ruchira Ruchira S. Datta 2009-07-28T04:06:16Z user malaparte Andrei M. Marinescu 2009-07-28T03:56:13Z user yogar K.D. 2009-07-28T03:42:31Z user 1geeky True I /-\li 2009-07-28T03:41:02Z user derek Derek Collison 2009-07-28T03:40:11Z user majento Majento 2009-07-28T03:40:08Z user eldiablo Pete D 2009-07-28T03:37:44Z user bhc3 Hutch Carpenter 2009-07-28T03:33:46Z user monasfeed Mona Nomura 2009-07-28T03:30:49Z user timhoeck Tim Hoeck 2009-07-28T03:28:26Z user seanpercival True sean percival 2009-07-28T03:18:41Z user mehmetakif Mehmet ALP 2009-07-28T03:15:31Z user changeforge Ken Stewart | ChangeForge 2009-07-28T03:13:56Z user karen Karen Padham Taylor 2009-07-28T02:47:11Z user ericflo Eric Florenzano 2009-07-28T02:44:25Z user imabonehead imabonehead 2009-07-28T02:41:22Z user rodfather True Rodfather 2009-07-28T01:51:24Z user lizunlong Lizunlong 2009-07-28T01:38:39Z user pattonroberta True RAPatton 2009-07-28T01:09:26Z user nimaa True Nimaa 2009-07-28T01:02:49Z user looppacosmos Johni Fisher 2009-07-28T00:56:42Z user stong Simon 2009-07-28T00:42:18Z user banane anna sauce 2009-07-28T00:42:11Z user parislemon MG Siegler 2009-07-28T00:32:40Z user bettydarnell True Betty Darnell 2009-07-28T00:22:50Z user jworthington Johnny 2009-07-28T00:19:19Z user leblondb BEX 2009-07-28T00:18:17Z user dalziel Glenn Slaven 2009-07-28T00:15:00Z user phoenix Rachel Lea Fox 2009-07-28T00:10:05Z user romanzolotarev romanzolotarev 2009-07-28T00:04:42Z user eskimo April Buchheit 2009-07-28T00:04:15Z user teb tunahan 2009-07-27T23:59:04Z user ryanmassie Ryan Massie 2009-07-27T23:58:52Z user thejbf True Burcu Dogan 2009-07-27T23:58:24Z user mihai Mihai Parparita 2009-07-27T23:56:55Z user travispuk travispuk 2009-07-27T23:55:08Z user mokargas True Mo Kargas 2009-07-27T23:50:45Z user koltregaskes Kol Tregaskes 2009-07-27T23:50:04Z user itafroma Mark Trapp 2009-07-27T23:43:39Z user vadim Vadim Spivak 2009-07-27T23:21:04Z user gotti GOTTi 2009-07-27T23:16:10Z user lanjackal LANjackal 2009-07-27T23:14:24Z user louisgray Louis Gray 2009-07-27T23:12:43Z user tudor Tudor Bosman 2009-07-27T23:09:38Z user hberberoglu Hüseyin Berberoğlu 2009-07-27T23:07:55Z user casey Casey Muller 2009-07-27T23:03:21Z user scobleizer Robert Scoble 2009-07-27T23:02:17Z user colladude Kishore Balakrishnan 2009-07-27T23:02:15Z user bgolub Benjamin Golub 2009-07-27T22:58:04Z user ginger Ginger Makela Riker 2009-07-27T22:54:45Z user erensoydas Eren Soydaş 2009-07-27T22:54:31Z user atul Atul Arora 2009-07-27T22:53:02Z user thehenry TheHenry 2009-07-27T22:52:40Z user hdiwan Prolific Programmer 2009-07-27T22:52:40Z user paul Paul Buchheit 2009-07-27T22:52:37Z user jeffisageek (jeff)isageek 2009-07-27T22:52:11Z user dhsiao Dan Hsiao 2009-07-27T22:52:11Z user kfury Kevin Fox 2009-07-27T22:52:05Z user ross Ross Miller 2009-07-27T22:52:01Z e/c970e27954f349869b58d30a2b75631a
\ No newline at end of file
diff -Nru tdiary-contrib-3.1.20120506/spec/fixtures/github.json tdiary-contrib-3.2.2/spec/fixtures/github.json
--- tdiary-contrib-3.1.20120506/spec/fixtures/github.json 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/spec/fixtures/github.json 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1 @@
+{"type":"User","login":"schacon","public_repos":150,"public_gists":80,"followers":5328,"html_url":"https://github.com/schacon","created_at":"2008-01-27T17:19:28Z","blog":"http://scottchacon.com","company":"GitHub","email":"schacon@gmail.com","avatar_url":"https://secure.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","hireable":false,"following":19,"name":"Scott Chacon","bio":null,"id":70,"location":"San Francisco, CA","url":"https://api.github.com/users/schacon","gravatar_id":"9375a9529679f1b42b567a640d775e7d"}
diff -Nru tdiary-contrib-3.1.20120506/spec/fixtures/twitter.xml tdiary-contrib-3.2.2/spec/fixtures/twitter.xml
--- tdiary-contrib-3.1.20120506/spec/fixtures/twitter.xml 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/spec/fixtures/twitter.xml 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,73 @@
+
+
+ 65589541
+ tDiary.org
+ tDiary
+
+ tDiaryオフィシャルアカウント
+ http://a0.twimg.com/profile_images/379668735/square_logo_normal.png
+ https://si0.twimg.com/profile_images/379668735/square_logo_normal.png
+ http://www.tdiary.org/
+ false
+ 286
+ FFFFFF
+ 333333
+ 0084B4
+ D0FFD0
+ D0FFD0
+ 261
+ Fri Aug 14 07:50:23 +0000 2009
+ 3
+ 32400
+ Tokyo
+ http://a0.twimg.com/images/themes/theme1/bg.png
+ https://si0.twimg.com/images/themes/theme1/bg.png
+ false
+ false
+
+ false
+ false
+
+ 313
+ ja
+ false
+
+ 31
+ false
+ false
+ false
+
+ Mon Sep 17 00:04:52 +0000 2012
+ 247486242491604992
+ RT @hsbt: DefaultIO から RdbIO へのインポータできた #tdiary
+ <a href="http://www.crowy.net/" rel="nofollow">Crowy</a>
+ false
+ false
+
+
+
+ 2
+ false
+
+ Mon Sep 17 00:01:16 +0000 2012
+ 247485333179101185
+ DefaultIO から RdbIO へのインポータできた #tdiary
+ <a href="http://mzp.github.com/atig/" rel="nofollow">atig.rb</a>
+ false
+ false
+
+
+
+ 2
+ false
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tdiary-contrib-3.1.20120506/spec/github_link_spec.rb tdiary-contrib-3.2.2/spec/github_link_spec.rb
--- tdiary-contrib-3.1.20120506/spec/github_link_spec.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/spec/github_link_spec.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,39 @@
+$:.unshift(File.dirname(__FILE__))
+require 'spec_helper'
+
+describe "github link plugin" do
+ let(:plugin) { fake_plugin(:github_link) }
+ subject { plugin.gh_link(*args) }
+
+ describe 'repository page' do
+ let(:args) { ['tdiary/tdiary-contrib'] }
+
+ it 'should render repository a tag' do
+ should == %(tdiary-contrib )
+ end
+ end
+
+ describe 'issues page' do
+ let(:args) { ['tdiary/tdiary-contrib#100'] }
+
+ it 'should render issues a tag' do
+ should == %(tdiary-contrib#100 )
+ end
+ end
+ context "When given altenative text" do
+ let(:text) { 'This project' }
+ let(:github_identifier) { 'tdiary/tdiary-contrib' }
+ let(:args) { [github_identifier, text] }
+
+ it 'should render repository a tag with the specified text' do
+ should == %(#{text} )
+ end
+ context "but the text is including ' }
+
+ it 'should render a link text after sanitizing.' do
+ should_not == %(#{text} )
+ end
+ end
+ end
+end
diff -Nru tdiary-contrib-3.1.20120506/spec/openid_spec.rb tdiary-contrib-3.2.2/spec/openid_spec.rb
--- tdiary-contrib-3.1.20120506/spec/openid_spec.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/spec/openid_spec.rb 2013-04-25 22:33:04.000000000 +0000
@@ -219,21 +219,6 @@
:rel => "openid.delegate")}
end
- describe "Wassr" do
- before do
- plugin = setup_open_id_plugin('Wassr', 'tdtds')
- @header_snippet = plugin.header_proc
- end
-
- it { @header_snippet.should include_link_tag_with(
- :rel => 'openid.server',
- :href => 'https://wassr.jp/open_id/auth')}
-
- it { @header_snippet.should include_link_tag_with(
- :rel => 'openid.delegate',
- :href => 'https://wassr.jp/user/tdtds')}
- end
-
RSpec::Matchers.define :include_link_tag_with do |options|
description do
"include #{options[:rel]} link tag"
diff -Nru tdiary-contrib-3.1.20120506/spec/profile_spec.rb tdiary-contrib-3.2.2/spec/profile_spec.rb
--- tdiary-contrib-3.1.20120506/spec/profile_spec.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/spec/profile_spec.rb 2013-04-25 22:33:04.000000000 +0000
@@ -1,13 +1,18 @@
# -*- coding: utf-8 -*-
-$:.unshift(File.dirname(__FILE__))
require 'spec_helper'
require 'profile'
describe "Profile::Service" do
-
describe "GitHub" do
- before :all do
+ before do
+ require 'json'
+ Profile::Service::GitHub.any_instance.stub(:fetch).and_return(JSON.parse(File.read("spec/fixtures/github.json")))
+
+ # workaround for run spec on various environment.
+ require 'openssl'
+ OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
+
# http://develop.github.com/p/general.html
@profile = Profile::Service::GitHub.new("schacon", :size => 40)
end
@@ -20,7 +25,9 @@
end
describe "Twitter" do
- before :all do
+ before do
+ Profile::Service::Twitter.any_instance.stub(:fetch).and_return(REXML::Document.new(File.read("spec/fixtures/twitter.xml")))
+
# http://twitter.com/tdiary
@profile = Profile::Service::Twitter.new("tdiary")
end
@@ -33,14 +40,16 @@
end
describe "FriendFeed" do
- before :all do
+ before do
+ Profile::Service::FriendFeed.any_instance.stub(:fetch).and_return(REXML::Document.new(File.read("spec/fixtures/friendfeed.xml")))
+
# http://friendfeed.com/api/documentation#summary
@profile = Profile::Service::FriendFeed.new("bret")
end
it "should include name, description, image properties" do
@profile.name.should == "Bret Taylor"
- @profile.description.should == "CTO of Facebook. Previously co-founder and CEO of FriendFeed. Programmer, food lover."
+ @profile.description.should == "Ex-CTO of Facebook. Previously co-founder and CEO of FriendFeed. Programmer, food lover."
@profile.image.should == "http://friendfeed-api.com/v2/picture/bret"
end
end
@@ -48,33 +57,32 @@
describe "Gravatar" do
# http://ja.gravatar.com/site/implement/url
- it "should include image property" do
- profile = Profile::Service::Gravatar.new("iHaveAn@email.com")
- profile.image.should == "http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802.jpg"
+ before do
+ @profile = Profile::Service::Gravatar.new("iHaveAn@email.com")
end
- it "should specify size option" do
- profile = Profile::Service::Gravatar.new("iHaveAn@email.com", :size => 40)
- profile.image.should == "http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802.jpg?s=40"
+ it "should include image property" do
+ @profile.image.should == "http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802.jpg"
end
- end
- describe "Wassr" do
- before :all do
- # http://wassr.jp/help/api
- @profile = Profile::Service::Wassr.new("machu")
- end
+ context 'with options' do
+ before do
+ @profile = Profile::Service::Gravatar.new("iHaveAn@email.com", :size => 40)
+ end
- it "should include image property" do
- @profile.image.should == "http://wassr.jp/user/machu/profile_img.png.64.1215127012"
+ it "should specify size option" do
+ @profile.image.should == "http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802.jpg?s=40"
+ end
end
end
describe "Hatena" do
+ before do
+ @profile = Profile::Service::Hatena.new("kmachu")
+ end
+
it "should include image property" do
- profile = Profile::Service::Hatena.new("kmachu")
- profile.image.should == "http://www.hatena.ne.jp/users/km/kmachu/profile.gif"
+ @profile.image.should == "http://www.hatena.ne.jp/users/km/kmachu/profile.gif"
end
end
-
end
diff -Nru tdiary-contrib-3.1.20120506/style/wikiext_style.rb tdiary-contrib-3.2.2/style/wikiext_style.rb
--- tdiary-contrib-3.1.20120506/style/wikiext_style.rb 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/style/wikiext_style.rb 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,21 @@
+# wikiext_style.rb: when using wiki style, extends behavior.
+#
+# Just place this file into tdiary/style directory.
+#
+# Copyright (C) 2012, kdmsnr
+# You can distribute this under GPL.
+#
+
+module TDiary
+ class WikiextDiary # dummy class
+ end
+end
+
+require "hikidoc"
+class HikiDoc
+ class HTMLOutput
+ def paragraph(lines)
+ @f.puts "#{lines.join("")}
"
+ end
+ end
+end
diff -Nru tdiary-contrib-3.1.20120506/util/image-gallery/image-gallery.rb tdiary-contrib-3.2.2/util/image-gallery/image-gallery.rb
--- tdiary-contrib-3.1.20120506/util/image-gallery/image-gallery.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/util/image-gallery/image-gallery.rb 2013-04-25 22:33:04.000000000 +0000
@@ -494,7 +494,7 @@
}
body = tdiary.eval_rhtml
head['charset'] = conf.encoding
- head['Content-Length'] = body.size.to_s
+ head['Content-Length'] = body.bytesize.to_s
head['Pragma'] = 'no-cache'
head['Cache-Control'] = 'no-cache'
diff -Nru tdiary-contrib-3.1.20120506/util/image-gallery/image-gallery.rb.euc-jp tdiary-contrib-3.2.2/util/image-gallery/image-gallery.rb.euc-jp
--- tdiary-contrib-3.1.20120506/util/image-gallery/image-gallery.rb.euc-jp 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/util/image-gallery/image-gallery.rb.euc-jp 2013-04-25 22:33:04.000000000 +0000
@@ -490,7 +490,7 @@
}
body = tdiary.eval_rhtml
head['charset'] = conf.encoding
- head['Content-Length'] = body.size.to_s
+ head['Content-Length'] = body.bytesize.to_s
head['Pragma'] = 'no-cache'
head['Cache-Control'] = 'no-cache'
diff -Nru tdiary-contrib-3.1.20120506/util/tdiary-grep/README tdiary-contrib-3.2.2/util/tdiary-grep/README
--- tdiary-contrib-3.1.20120506/util/tdiary-grep/README 1970-01-01 00:00:00.000000000 +0000
+++ tdiary-contrib-3.2.2/util/tdiary-grep/README 2013-04-25 22:33:04.000000000 +0000
@@ -0,0 +1,4 @@
+■■このツールは最新のtDiaryに追従していません。
+■■検索機能はプラグインとして実装されるようになったため、
+■■同等の機能はplugin/search-default.rbで実現しています。
+■■このツールは近々削除する予定です。
diff -Nru tdiary-contrib-3.1.20120506/util/tdiarysearch/README.en tdiary-contrib-3.2.2/util/tdiarysearch/README.en
--- tdiary-contrib-3.1.20120506/util/tdiarysearch/README.en 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/util/tdiarysearch/README.en 2013-04-25 22:33:04.000000000 +0000
@@ -1,3 +1,8 @@
+### This tool is obsolete,
+### use alternative plugin: plugin/search-default.rb.
+### This tool will be deleted in the near future.
+
+
tdiarysearch README
===================
diff -Nru tdiary-contrib-3.1.20120506/util/tdiarysearch/README.ja tdiary-contrib-3.2.2/util/tdiarysearch/README.ja
--- tdiary-contrib-3.1.20120506/util/tdiarysearch/README.ja 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/util/tdiarysearch/README.ja 2013-04-25 22:33:04.000000000 +0000
@@ -1,3 +1,10 @@
+■■このツールは最新のtDiaryに追従していません。
+■■検索機能はプラグインとして実装されるようになったため、
+■■同等の機能はplugin/search-default.rbで実現しています。
+■■このツールは近々削除する予定です。
+
+
+
tdiarysearch README
===================
diff -Nru tdiary-contrib-3.1.20120506/util/tdiarysearch/search.rb tdiary-contrib-3.2.2/util/tdiarysearch/search.rb
--- tdiary-contrib-3.1.20120506/util/tdiarysearch/search.rb 2012-05-06 16:18:59.000000000 +0000
+++ tdiary-contrib-3.2.2/util/tdiarysearch/search.rb 2013-04-25 22:33:04.000000000 +0000
@@ -41,9 +41,11 @@
tDiary Search
+
EOS
FOOTER = unindent <<'EOS'
+