このサイトの管理人、表具師かっぱの日記です。
(新規投稿は出来ませんが、ツッコミは入れられます)
別冊 表具師かっぱの「脱 三日坊主 宣言!」もちまちま更新中
※ 当日記はレイアウトに CSS2 を使用しています ※
(CSS2 未対応のブラウザでも閲覧・投稿は可能です)
なお、IE3 と NN4 は CSS への対応が不完全ですので、設定にかかわらず適用されないようにしています。ご了承下さい。
こちらの記事へツッコミを入れる場合は下のフォームに書いて下さい。
内容が異なる場合はブラウザのバックボタンで戻って下さい。
金曜日に予約した歯医者さんに行ってきました。
親不知は痛みも引き、順調に発育(?)しているようで、今日も消毒だけでした。その他、検診の結果、虫歯もなく歯石を取ってしまえば後は問題ないそうです。
歯石は4回に分けて取るそうで、今日は左の上顎から。プィーンという機械の音で痛いかもと思ったのですが、全然痛くもなく、緊張して損しました。(笑)
歯石取りは後3回。次回は水曜日の午後2時です。
犬神さんが対談のマークアップに悩んでいらっしゃるようですが、HTML4.01の仕様書(和訳)に以下のような記述が在りますよ。
原文では、Another application of DL, for example, is for marking up dialogues, with each DT naming a speaker, and each DD containing his or her words.
となっています。
って事で、定義リスト(<dl>
/<dt>
/<dd>
)で良いんじゃないでしょうか。
ちなみに、この日記のツッコミ欄も <dl>
/<dt>
/<dd>
でマークアップしています。(ツッコミが少ないから出番が殆ど無いけど……。(笑) )
1月18日にインストールした Mozilla 1.6 同様、昨日インストールした Revontulet(Mozilla Firefox 0.8) にも「Camino べんりセット(v1.68)」を Bookmarks にインポートしました。
で色々と試してみたのですが、日記を書く上で最もよく使う「選択部分のソース」と「リンクタグ作成」がやはり上手く動きません。そこでなんとか解決しようと、昨夜遅くまで(明け方近くまで)かかって悪戦苦闘した末、「リンクタグ作成」だけは使えるようになりましたので、その経過を報告します。
「リンクタグ作成」のソースは benriSet.js の var bsetLinkTag = {
以下の部分でオブジェクトリテラルとして定義されています。
URL 文字列末尾の数字
"
?
" につづく 8 桁の数字が URL 末尾にある場合は、それを削除します。いわゆる「更新日時取得アンテナ」がリンク URL に付加してる事の多い文字列。この処理が不都合であれば、以下のように変更してくださいな。
kill8Nums : true,
→kill8Nums : false,
と「リンクタグ作成」の説明に書いていましたので試しに kill8Nums : false,
にしてみました。するとあっさり動くじゃないですか。と言う事は、Error: invalid quantifier ?
の原因は kill8Nums
プロパティに関係するものだと推測できます。
kill8Nums
プロパティは、getPageURL : function(target) {
以下の if (this.kill8Nums) url = url.bsetRemove8Nums();
で、bsetRemove8Nums()
メソッドを呼び出す条件式に出てきます。kill8Nums : false,
にするとエラーが出なくなるのですから、エラーの原因は bsetRemove8Nums()
メソッドの定義部分にあると考えました。
bsetRemove8Nums()
メソッドは run : function() {
以下の try
/catch
文中の String.prototype.bsetRemove8Nums = this.remove8Nums;
で、String
オブジェクトのプロトタイププロパティとして定義され、その値は this.remove8Nums
ですから、次は remove8Nums
を探しました。remove8Nums
は remove8Nums : function() {
以下で定義されています。
remove8Nums : function() {
var ptn = new RegExp('\?\\d{8}(#.*)?$');
return (this.match(ptn)) ? RegExp.leftContext + RegExp.$1 : this;
},
Error: invalid quantifier ?
からまず RegExp()
コンストラクタで定義されている正規表現パターン \?\\d{8}(#.*)?$
を疑ってかかりました。
まず始めの "\?
" は"
に書かれている "?
" につづく 8 桁の数字?
" を表しています。次の "\
" はその次に続く "\
" をエスケープしている訳ですから次の "\d{8}
" は任意の数字を8回繰り返すという文字クラスじゃなくて……。と正規表現が苦手な僕はここで訳が解らなくなってしまいました。ちなみにこの後に続く "(#.*)?$
" は、"#
" と次に続く0文字以上の任意の文字列(".*
")の組("(#.*)
")を0回または1回だけ繰り返したもの("(#.*)?
")を文字列の最後("$
")に持つという意味で、文中のアンカーにリンクする時に使う「URI#名前」の「#名前」を表しています。
結局残ったのは訳が解らなくなった "\\d{8}
" の部分です。任意の8桁の数字は "\d{8}
" ですから、単純に "\
" を一つ取ったのですが、これでもダメみたいです。でも、 "\?\d{8}(#.*)?$
" で良いはずだし……と、ここではまってしまいました。
悩んだ末に、試しに RegExp()
コンストラクタを使わず、正規表現リテラル形式で var ptn = /\?\d{8}(#.*)?$/;
のように定義してみました。そしたらあっさり動いたんです。明け方に一人で小躍りしてしまいました。(笑) 纏めると以下のようになります。
remove8Nums : function() {
var ptn = /\?\d{8}(#.*)?$/;
return (this.match(ptn)) ? RegExp.leftContext + RegExp.$1 : this;
},
なぜ RegExp()
コンストラクタはダメで、正規表現リテラル形式ならエラーが出ないのか、そんな難しい事はさっぱり解りませんが、兎に角使えるので結果オーライです。
調子に乗って「選択部分のソース」も同じ所を触ってみましたが、こちらはさらに別の部分にもエラーの原因があるようなので、今のところお手上げです。何とかなりませんか?>ありみかさん
後、動作には全く関係ないですが、extraEntities
プロパティの中に [255, 'yuml'],
が2回出てくるので1つ削除しておきましたよ。(笑)
1ページあたり5日分の表示にしました。これで少しは読み込みが早くなるはず。
今までなぜ10日分も1ページに表示していたかと言うと、基本的に1日の日記が短かったからで、ここ3日が異常に長いだけなんです。(笑)
あと、もう少し読み易く、かつ使い易く出来るように裏でごにょごにょやってますので、読み難いなぁと思う方は表示スタイルに杜若
をお使い下さい。少しはましだと思います。(u_u)
こんなのがあって、入れ替えたらうちではうまく動くようになりました。
http://pc2.2ch.net/test/read.cgi/hp/1060694407/925-930
(2004年02月16日 (月) 18時16分)