/ 最近 .rdf 追記 設定 本棚

脳log[tDiary: 2005-04-01~]



2005年04月01日 (金)

[tDiary]プラグイン: footnote2.rb (一日表示でなく同一ページ内に飛ぶようにfootnote.rbを変更)

EUCで保存して misc/plugin/ へ放り込む。その後使用可能にするのを忘れない。

# footnote2.rb $Revision: 1.0 $ (footnote.rb $Revision: 1.8 $ を改変)
#
# 日別表示に飛ばずに同一ページ内のアンカーに飛ぶように変更
#

# footnote.rb $Revision: 1.8 $
#
# fn: 脚注plugin
#   パラメタ:
#     text: 脚注本文
#     mark: 脚注マーク('*')
#
# Copyright (c) 2001,2002 Junichiro KITA  kita@kitaj.no-ip.com>
# Distributed under the GPL
#
=begin ChangeLog
2002-05-06 MUTOH Masao <mutoh@highway.ne.jp>
* change file encoding from ISO-2022-JP to EUC-JP.

2002-03-12 TADA Tadashi <sho@spc.gr.jp>
	* runable in secure mode.
=end

# initialize instance variable as taint
@footnote_name = ""
@footnote_name.taint
@footnote_url = ""
@footnote_url.taint
@footnote_mark_name = ""
@footnote_mark_name.taint
@footnote_mark_url = ""
@footnote_mark_url.taint
@footnotes = []
@footnotes.taint
@footnote_index = [0]
@footnote_index.taint

def fn(text, mark = '*')
# if @footnote_name and /^append|replace$/ !~ @mode then
  if @footnote_name
    @footnote_index[0] += 1
    @footnotes << [@footnote_index[0], text, mark]
    r = %Q|<span class="footnote"><a |
#   r << %Q|name="#{@footnote_mark_name % @footnote_index[0]}" | if @mode == 'day'
    r << %Q|name="#{@footnote_mark_name % @footnote_index[0]}" |
    r << %Q|href="#{@footnote_url % @footnote_index[0]}" title="#{CGI::escapeHTML text}">#{mark}#{@footnote_index[0]}</a></span>|
  else
    ""
  end
end

add_body_enter_proc(Proc.new do |date|
  date = date.strftime("%Y%m%d")
# @footnote_name.replace "f%02d"
  @footnote_name.replace "f#{date}-%02d"
# @footnote_url.replace "#{@index}#{anchor date}##{@footnote_name}"
  @footnote_url.replace "##{@footnote_name}"
# @footnote_mark_name.replace "fm%02d"
  @footnote_mark_name.replace "fm#{date}-%02d"
# @footnote_mark_url.replace "#{@index}#{anchor date}##{@footnote_mark_name}"
  @footnote_mark_url.replace "##{@footnote_mark_name}"
  @footnotes.clear
  @footnote_index[0] = 0
  ""
end)

add_body_leave_proc(Proc.new do |date|
  if @footnote_name and @footnotes.size > 0
    %Q|<div class="footnote">\n| +
    @footnotes.collect do |fn|
      r = %Q|  <p class="footnote"><a |
      r << %Q|name="#{@footnote_name % fn[0]}" |
      r << %Q|href="#{@footnote_mark_url % fn[0]}">#{fn[2]}#{fn[0]}</a>&nbsp;#{fn[1]}</p>|
    end.join("\n") +
    %Q|\n</div>\n|
  else
    ""
  end
end)

2004年12月14日 (火)

[tDiary]「追記」は「追記」であって「編集」とは違ったりするの? もしかして。

例えば既に書き込みがある日に書き足そうと思った場合。今まで「追記」を選んだ後、そのままでは本文のフォームが空白だから「何月何日の日記を編集」ってして書き込み済みの内容を表示させて、それから内容を追加して送信してたんだけど。追加する内容だけを送信しても勝手に連結してくれるんだろうか? この前ふと思った。試したらすぐわかるけど。どうなんだろう?

 [2005-04-20] 追記は追記(append)。編集(replace)とは別。

今日初めて「追記」をしました。


2004年07月13日 (火)

[tDiary] latestが表示できない

タイムアウトになってブラウザの用意したエラーページが表示される。
設定とか一日表示とか他の部分は正常だから「最新」表示だけがダメっぽい。キャッシュが壊れたか?

「前の日記」をたどって一日ずつ日記を確認していったら、一日だけ「2004/06/30 (水)の日記はありません。」って表示された。
「前の日記」は単なる前日を表示するリンクじゃないから 6/30の日記は無いんじゃなくて失くなったとみるべきかも。

結局、最新表示は今日も復活してない。キャッシュを消すのが面倒臭いのだ。学校にダイアルアップする必要があるので。

 追記:2004-07-15

考えたら、latestのキャッシュが壊れてるなら、この13日の日記を書いて保存した時点でキャッシュが書き換わって表示も復活するはずなのに、そうはなってない。

それなら次の手は 6/30の日記を空白でも何でもいいので上書きすることだ。結果は...直りました。


2004年06月05日 (土)

[tDiary] tDiary + PukiWiki

Ruby で書かれてるからと Tiki 入れてみたけどよくわからん。一応動いてるけどロゴ画像は表示されへんし、Nodeの作り方とか今イチやし。

あと tDiary からアクセスする方法も見つからん。キーワードからリンクを作成して、そこからアクセスする都合上 GET で新規ページを作りたいねんけど、WelcomeVisitors ページの[編集]インプットボックスを参考にパラメータをいろいろ試したけど駄目やった。

YukiWiki (Perl) は InternalServerError が解決できなかった。インストールまでのドキュメントは親切。

PukiWiki (PHP) は Tiki に比べて機能も劣ってないし、ドキュメントも含めた全体の完成度が高そうだ。GET による新規ページ作成も、オフィシャルサイトで試したところパラメータ2つで出来た。

 [追記:2004-06-06]

Ruby が入ってるんやし、と期待したが PHP 動かない。

Tiki で ページ表示 or ページ新規作成 するには tiki.cgi?p=〜 でOKみたい。c=〜 とかいらんことする前に試せよ、って言いたい。


2004年05月07日 (金)

[tDiary] tDiary1.5.7 導入

ちょっと前から使えなくなってたカテゴリー機能もパワーアップして復活。

[tDiary] amazon.rb + bk1.rb

アマゾンで画像が見つからないケースが多いので bk1 からも探すように amazon.rb を変更。

しかし、激重になったにも関わらず amazon になくて bk1 で画像が見つかるケースは 50件中2件。どうしたものか。

- - - - - - - - - - - - -

get_bk1() の

raise if item.length < 2

をコメントアウトしたので、空のキャッシュが存在する場合は bk1 にアクセスしなくなったはず。

ちょっとは軽くなった、かな?


2004年04月27日 (火)

ひと昔前のアニソンが無性に聞きたい

「ドリモグ」とか「キン肉マン」とか「ゴウザウラー」とか...

カセットテープに編集して小さい頃聞いてた。黄色いのがアニメのテープ。

[tDiary] Wikiスタイル + kwプラグイン(改) + apply_plugin

Wikiスタイル には kwプラグイン を呼び出す構文が含まれてるのでシームレスに、<%=%>無しに、kw が使える。

kwプラグイン は辞書に URL を登録しておいてキーワードと引数からハイパーリンクを作成するが、URL の部分を HTML とすると <a> 以外のタグも使えるし、kwプラグインの最後で apply_plugin を呼び出すようにすれば他のプラグイン呼び出しも kwプラグイン経由で使えるようになる。はず{{fn'プラグインの呼び出し構文は既にある。今言ってるのはキーワード構文を使ったプラグイン呼び出し'}}。

[本日の購入][マンガ]木村 太彦 【瀬戸の花嫁】 四

[本日の購入][マンガ]仲尾 ひとみ【がんばらなくっチャ!】 3

[本日の購入][マンガ]上杉 匠 【ショショリカ】 3

[本日の購入][マンガ]あずま きよひこ 【よつばと!】 2


2004年03月03日 (水)

Gateway 日本再上陸

待ってました。

IE を使い続ける理由

ブックマーク
同期するのが面倒臭い。

Googleツールバー
「検索文字列のページ内検索」と「検索文字列のハイライト」と「上に移動」よく使う。

Amazonツールバー
Google と同じくらい使うなあ。Firefox で追加の検索エンジンから Amazon を探したらあったけどアメリカ、イギリス、カナダとかばっか。

入力した文字列をURLエンコードして特定の文字列 "http://www.amazon.co.jp/exec/obidos/external-search?keyword=..." に埋め込んでそのページを表示するだけでええねんけど。

Firefox の searchplugin って単なるテキストファイルやね。Amazon 検索を追加しとこう。

[tDiary] etDiary スタイル

サブタイトル無しのセクション(<<>>) では段落(2つ以上の改行) 毎にセクションアンカーがつくのは仕様ですか?


2004年03月02日 (火)

[tDiary]プラグイン:設定画面で手軽にプラグインの上書き修正

自作プラグイン第2弾

昨日のと似たようなので、設定画面からプラグインが書ける。ラベルの書き換えや、他のプラグインの動作の一部修正、自作プラグインを FTP 無しにレンタルサーバーで運用中の tDiary に適用することなどを想定している。(最近 FTP に不自由してるものですから (;^_^A

ソースは以下の通り。コピーして misc/plugin/ ディレクトリに「~chotto_plugin.rb」として EUC で保存するとよい。ファイル名の頭の ~ は他のプラグインの後に読み込まれるように付けてある。もちろん、その後で設定画面からこのプラグインを使用可能な状態にすることを忘れてはいけない。

# ~chotto_plugin.rb
#
# 設定画面からプラグインを定義/上書きできる。
# ラベルの書き換え、プラグインの動作の一部修正など、
# ちょっとしたことに使う。

if(@conf['~chotto_plugin.script'])
	begin
		instance_eval(@conf['~chotto_plugin.script']);
	rescue Exception
	end
end

add_conf_proc('~chotto_plugin', 'プラグインの微調整') {
	if(@mode == 'saveconf')
		if(@cgi.params['~chotto_plugin.script'].empty? || @cgi.params['~chotto_plugin.script'][0].empty?)
			@conf.delete('~chotto_plugin.script');
		else
			@conf['~chotto_plugin.script'] = @cgi.params['~chotto_plugin.script'][0];
		end
	end

	<<-HTML
	<h3>ちょっとしたプラグインスクリプト</h3>
	<p>入力したスクリプトが読み込み時に実行されます。普通のプラグインと同じ内容のものを書きます。他のプラグインのちょっとした修正や、自作プラグインの試用に使って下さい。</p>
	<p><textarea name="~chotto_plugin.script" cols="70" rows="15">#{CGI::escapeHTML(@conf['~chotto_plugin.script'].to_s)}</textarea></p>
	HTML
}

2004年03月01日 (月)

[tDiary]プラグイン: 設定画面で手軽にテーマの上書き修正(各テーマ毎に修正が可能)

この前書いた希望を完全に満たすものがなかったので書いた。骨格に「append-css.rb」を利用した。
テーマ別に修正が行えるのと同時にappend-css.rbのように全てのテーマにも修正が行える。
ソースは以下の通り。コピーして misc/plugin/ ディレクトリに user_css2.rb として EUC で保存するとよい。

# user_css2.rb: lastupdate:2005-04-04
#
# Append CSS fragment via Preferences Page.
#
# @conf['user_css2..css'] = '全てのテーマに適用するCSS断片'
# @conf['user_css2.<theme>.css'] = 'テーマ「<theme>」に適用するCSS断片'
# @cgi.params['user_css2.theme'] = 'CSS追加の対象となるテーマ名'
# @cgi.params['user_css2.css'] = '追加するCSS断片'

add_header_proc do
	css_base = @conf["user_css2..css"];
	css_theme = @conf["user_css2.#{@conf.theme}.css"];
	if((css_base && !css_base.empty?) || (css_theme && !css_theme.empty?))
		<<-HTML
	<style type="text/css"><!--
		#{css_base.gsub(/\x0d\x0a|\x0a|\x0d/, "\n\t\t") if css_base}
		#{css_theme.gsub(/\x0d\x0a|\x0a|\x0d/, "\n\t\t") if css_theme}
	--></style>
		HTML
	else
		''
	end
end

# デフォルトの言語リソース
unless @resource_loaded then
	def user_css2_label
		'テーマの微調整'
	end
	def user_css2_desc
		<<-HTML
		<h3>CSS断片</h3>
		<p>下から選んだテーマに、スタイルシートを追加設定する場合、以下にCSSの断片を入力してください。</p>
		HTML
	end
	def user_css2_label2
		'このテーマを修正する'
	end
end

add_conf_proc( 'user_css2', user_css2_label ) do
	if @mode == 'saveconf' then
		if(@cgi.params['user_css2.css'].empty? || @cgi.params['user_css2.css'][0].empty?)
			@conf.delete("user_css2.#{@cgi.params['user_css2.theme'][0]}.css");
		else
			@conf["user_css2.#{@cgi.params['user_css2.theme'][0]}.css"] = @cgi.params['user_css2.css'][0];
		end
	end
	unless(@conf_theme_list) # plugin/00default.rb からのコピー
		@conf_theme_list = []
		Dir::glob( "#{::TDiary::PATH}/theme/*" ).sort.each do |dir|
			theme = dir.sub( %r[.*/theme/], '')
			next unless FileTest::file?( "#{dir}/#{theme}.css".untaint )
			name = theme.split( /_/ ).collect{|s| s.capitalize}.join( ' ' )
			@conf_theme_list << [theme,name]
		end
	end
	theme = (@cgi.params['user_css2.theme'][0] or @conf.theme);
	theme_hash = Hash[* @conf.options.map{|thm,css| (thm =~ /^user_css2\.(.+)\.css$/) ? [$1, $1.split(/_/).collect{|s| s.capitalize}.join(' ')+' (deleted)'] : nil}.compact.flatten ].update( Hash[* @conf_theme_list.flatten] );
	theme_hash[''] = '* All Theme *';

	<<-HTML
	#{user_css2_desc}
	<select name="user_css2.theme">
		#{theme_hash.keys.sort.map{|t| %(<option value="#{CGI::escapeHTML(t)}"#{' selected' if t == theme}>#{CGI::escapeHTML(theme_hash[t])}</option>)}.join}
	</select>
	<input type="submit" value="#{user_css2_label2}" />
	<p><textarea name="user_css2.css" cols="70" rows="15">#{CGI::escapeHTML( @conf["user_css2.#{theme}.css"].to_s )}</textarea></p>
	HTML
end

2004年02月28日 (土)

[DR250R]DJEBELのマイナーチェンジ

少し前の話題だけど。DR にデカタンクとデカライトとキャリアを付けたモデルである DJEBEL がちょっと変わった。ホントにちょっと。バッテリー容量が少し増えて、タンクのデカールが 200cc と共通デザインになった。

ジェベルでよく言われるのが、バッテリーの弱さ と オイル滲み/漏れで、それに応えたんだろうが 自分は毎日乗ってるせいかバッテリーに不足を感じたことはない。むしろウチの DR の滴るほど漏れてるエンジンオイルを何とかして下さい。

タンクのデカールは極めて地味で小さい。下地の青色の面積が広すぎてのっぺり。見てらんない。飾り気も何もあったもんじゃない。新車より96、97年あたりのの方が見た目もキャブも魅力的。

[tDiary]かゆいのに手が届かないところ

テーマの微調整
テーマなんてなくてもいいものだ。好みのものだ。だから気に入ったテーマが見つかっても、人の作ったテーマでは微妙に気に入らない所があって当然。そんな時の選択肢。

  1. テーマの css ファイルを直接 改変する
  2. ユーザーCSSを読み込むようにしてスタイルを上書きする
  3. プラグインに<head>内に<style>を書いてもらってスタイルを上書きする

3が俺の希望だ。ファイルのアップロードが必要なく編集が簡単だから。テーマ別の上書きスタイルと常に適用する上書きスタイル(base.cssの上書きにあたる)とを設定画面で定義して、プラグインはテーマ名を見て<style>の内容を書き分ける。

footnote.rb
本文と脚注とを相互に結ぶリンクは、「同一ページ内」の脚注と本文に向けてはってほしい。現状では日別表示に移動してしまう。

title_list.rb, recent_list.rb
サブタイトルを抜き出してリスト表示するプラグイン。 リンクを「同一ページ内」の日記にはってほしい。あと、サブタイトルからカテゴリ除かんといて。

calendar3.rb
一月分の日付リストを表示し、日付をポイントするとポップアップでサブタイトルを表示するプラグイン。 CSSで各部のスタイルを定義できるが、日記の書いてある日とない日を区別できるクラスがない。

category.rb
category_form の 1Q、2Q、3Q、4Q という表記がわかりにくい。

本日のツッコミ(全3件) ツッコミを入れる

ds14050「3が俺の希望だ。」についてるセクションアンカーって etDiaryスタイルの間違いだよね。段落番号かぶってるし。

ds14050うわ! append-css.rb がまさにソレ (⇒テーマの一部修正)。

ds14050いや違う! 毎月テーマを変える人向きではない。