雑記 - tdiary Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!英語表示
本来は環境変数を変えるだけで良いが、日英交じった日記を書いているときには、表示だけを英語にしておいた方が良いみたい。(単純に en にしてしまったら、日記の日本語部分が化けたことがあるので。)
cd ~/public_html/tdiary/plugins/
mv ja ja.o
cp -pr en ja
いんちきですねぇ

!カレンダー(calender2.rb)の英語化
簡単な patch
{{attach_anchor('cal2.diff')}}

!
以上は大分古い tdiary の話。以下は、tdiary-3.1.2 にして以降の話。

!image.rb から image_ex.rb へ
litebox を使いたいなと思い始めたところから、image.rb よりも image_ex.rb の方が便利そうだと知った。ところが image プラグインと image_ex プラグインは共存させることができず排他的。さらに、これらのプラグイン間で引数の意味の違いのために、過去に image.rb で書き込んだ写真が、image_ex では巨大な画像となって表示されてしまう。

というわけで、過去に書き込んだものを書き換えた上で、プラグインを image.rb から image_ex.rb に切り替えれば良さそう。具体的には data フォルダ内の '年/年月.td2' ファイル(例えば 2012/201204.td2 みたいなファイル)内に記述されている
  <%=image 0, '写真の説明', nil, [739,489]%>

  <%=image 0, '写真の説明'%>
のように書き換えれば良い。(下の書式であれば、image.rb でも image_ex.rb でも解釈できる。)この書き換えは数が少なければ手でやればいいけれど、かなり膨大な数の写真があるので unix コマンドでエイヤっと書き換える。(あぁ、unix って便利だなぁー)

というわけで実際にやったのは以下の通り。
まず data フォルダに入った後、以下のように
ls 20*/*.td2 | while read f
do
     echo $f
     sed -i -e "s/, nil, \[.*,.*\]//g" $f
done
あとはプラグインを切り替えて基本的に終了 :)

どうやらキャッシュが残っているようなので、cache/*.parser と cache/latest.rb についても変換しておいた方がいいだろう
ls cache/*.parser cache/latest.rb | while read f
do
     echo $f
     sed -i -e "s/, nil, \[.*,.*\]//g" $f
done
一応、上記の手続きで image plugin で埋め込んでいた写真も image_ex plugin で表示できるようになった。あと追加で、縮小画像(thumbnail)を自動生成するように tdiary.conf に追記(imagemagikが使えることが前提)
### 絵日記プラグイン機能追加版 ###
#
# 縮小画像の生成方法
#   0 - 縮小画像を生成しない (縮小画像は手動でアップロードする)
#   1 - ImageMagickのconvertで縮小画王を生成 (ImageMagickが必要です)
#   2 - netpbm群で縮小画王を生成 (netpbmが必要です)
@options['image_ex.useresize'] = 1

# 生成する縮小画像の種類
#   0 - JPEG
#   1 - PNG
@options['image_ex.converttype'] = 0

# 画像ファイルがこのサイズを超えると縮小画像を生成する
@options['image_ex.thresholdsize'] = 160

# 縮小画像のサイズ
@options['image_ex.convertedwidth'] = 160
@options['image_ex.convertedheight'] = 120

!litebox を tdiary で
こちら( http://www.scrapcode.net/tdiary/20080210.html )の内容に従い設定。

litebox-1.0.zip を取ってきて、tdiary の入っているフォルダ内で展開、フォルダ名を litebox-1.0 から litebox に。litebox/js に入り、litebox-1.0.js を litebox.js に。上述サイトの litebox.rb を tdiary の misc/plugins/ の中に入れる。tdiary.conf の中に、以下を追記。
### for litebox
#
@options['litebox.url']         = '/litebox/'
@options['litebox.resizeSpeed'] = 8
@options['litebox.borderSize']  = 10

写真の説明文が白くて読めなかったので、litebox/css/lightbox.css の 64行目を修正
-#imageData #imageDetails{ width: 70%; float: left; text-align: left; }
+#imageData #imageDetails{ color:#000; width: 70%; float: left; text-align: left; }

!exif 情報を litebox で表示
litebox で、アップした写真の EXIF 情報を表示するために、ごそごそ弄ったメモ。

参照:[[EXIFデータをJavaScriptで読み込む方法について|http://y2web.net/blog/inet/web/exif_data_with_javascript-1005/]]

[[Javascript EXIF Reader|http://www.nihilogic.dk/labs/exif/]] の javascript (exif.js, binaryajax.js) を利用する。

exif.js と binaryajax.js を litebox/js/ に入れて、tdiary/misc/plugin/litebox.rb, litebox/js/litebox-1.0.js, litebox/js/exif.js を修正。また10進数値を分数にする dec2frac.js も用意して litebox/js/ に入れる。(素の litebox-1.0 に対する差分ファイル→
[[litebox-1.0_exif.patch|http://ult.riise.hiroshima-u.ac.jp/~nagato/litebox-1.0_exif.patch]] )かなり適当に弄ったので、変なところがあるかも。

tdiary/misc/plugin/litebox.rb の差分
--- litebox.rb.orig     2012-04-03 23:20:54.274381220 +0900
+++ litebox.rb  2012-05-23 23:37:57.669692434 +0900
@@ -26,6 +26,11 @@
                         <script type="text/javascript" src="#{h @litebox_url}js/prototype.lite.js"></script>
                         <script type="text/javascript" src="#{h @litebox_url}js/moo.fx.js"></script>
                         <script type="text/javascript" src="#{h @litebox_url}js/litebox.js"></script>
+                       <script type="text/javascript" src="#{h @litebox_url}js/binaryajax.js"></script>
+                       <script type="text/javascript" src="#{h @litebox_url}js/exif.js"></script>
+                       <script type="text/javascript" src="#{h @litebox_url}js/dec2frac.js"></script>
+
+
                 HTML
         end