なおとの思考/n3

Prev Next HOME

n3kit 作業内容

2003-8-1 Fri.
n3kit
・最新タイトル一覧
・過去ログ一覧
・Permalink機能強化
・tDiaryのテーマに都合のいいところだけ対応した感じのテンプレートに変更
・軽量版の最新画面を追加
・XHTML1.0仕様のテンプレートでも通るかも


BUGFIX
・「やーとぼーど」に報告されていたtypo。「ation⇒action」
・ある方から教えていただいたバグが直ったみたい。原因はBRタグの扱いに問題があったというもの。


Akiaryにはほとんど改造を加えず、主に設定とテンプレートを工夫してできる内容です。


標準装備の「オプショナル日記機能」が使える。置換できる対象は多くはないが、テンプレートに対してAkiaryタグが透過的なので、テンプレートの書式に依存しません。HTML以外にJavaScript(〜.js)を生成しています。
さすがにそのままではRSSは生成できない…ので、まず軽量版を吐き出して、それに対して別のCGIでフィルターをかけるやり方を模索中です。

CSSまわりで苦戦しています。←tDiaryのBlogKitのテーマからパクッて、おおむねできてきた。
Win版IEだけ対応するのだったら話は簡単なんですが。

" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030801_1059345011" dc:publisher="なおとの思考/n3" /> -->

追加の機能

2003-8-4 Mon.
基本的に機能の追加とかしだすと、Akiaryでなくなってきてしまうと思うのですが…。

・オートビルド機能(自動再構築)
テンプレートを差し替えたとき、その変更は更新しないと適用されないのですが、これはすべての日記の空更新をするツールです。なお、テーマ(CSS)の変更時(差し替えでない)はこの操作は不要です。
・RSS出力
Akiary汎用というわけにはいきませんが、できそうです。
" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030804_1059925558" dc:publisher="なおとの思考/n3" /> -->

blockquoteの例

2003-8-4 Mon.
前フリ

あれ
それ
なに

成功例
" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030804_1059970068" dc:publisher="なおとの思考/n3" /> -->

現況0806

2003-8-6 Wed.
RSS出力は、ローカルでは成功していて、それを試験的に公開してみます。サーバー上でCGIとして動かそうとすると失敗するのは、たぶんポカミスをやらかしているからかと思われます。


Namazu用フィルターを作ってみましたが、まるでテストしていません。
内容は、タイトルを適切に設定できるということだけです。
どなたかAkiary+Namazuを既にやっている人…いるのだろうか。


Pタグ問題
tDiaryテーマコンパチブルにするため、1回分の日記本文の全体をPタグに入れるようにしています。一方でAkiaryは本文にHTMLタグを許す仕様になっています。
この結果どういうことが起こるかといいますと、「Pタグの中に存在してはいけないタグ」たとえばblockquoteやtable、preなどをなにも考えずに使うと、ブラウザ上での表示が崩れることになります。手動で適宜Pを閉じて、blockquoteを書いて、そのあとPを始める、ということを意識的にやれば回避可能です。
" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030806_1060171428" dc:publisher="なおとの思考/n3" /> -->

Akiaryオプショナル日記→RSS1.0変換

2003-8-9 Sat.
まだまだ実験中なのですが、RSS出力について。
CGIとして動作するとかの問題は解決しました。Perl5.6.1に依存するコードを、(おそらく)Perl5.003で動くように書き換えたら問題なしでした。Perl4では正常には動かないとおもいます。
参考:RSS例

◆機能
Akiaryオプショナル日記からRSSを生成する。

◆RSS仕様
RSS1.0準拠
<image>と<textinput>には対応しません。(固定でいいならいけるか)
Dublin Coreモジュールによる拡張(一部機能)を装備。
EUC-JPのみ対応。

◆テンプレート
雛型になるRSSを用意します。
まるでパースしない(怠惰です)ので、構造を変えてしまうと対応できません。(XMLが聞いて泣きます。)
また、改行位置も変更しないほうがいいです。
正確には、「<rdf:Seq>」が出現する行までを切り取って、そっくりそのまま使います。

◆前提となるオプショナル日記の形式
↓↓ここから↓↓
<!-- akiary_diary reverse latest_times="5" --><!--akiary_date-->##-##<!--akiary_title-->##-##<!--akiary_body-->
<!--/akiary_diary-->
↑↑ここまで↑↑

「##-##」がカラムの区切りになっていて、改行がレコードの区切りになっています。
latest_timesでitemの数を指定します。値の範囲は1〜15を推奨します。

" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030809_1060433614" dc:publisher="なおとの思考/n3" /> -->

近況0819

2003-8-19 Tue.
まず、「Akiaryオプショナル日記→RSS1.0変換」について。
Akiaryの仕様に関して理解していない点がることに気付いた。
その結果いわゆる「仕様のバグ」があることが判った。
具体的な症状は、“linkが正しくない”。


CSSについて。
メニューのボタンの見た目上の問題ですが、上のほうが少しかけてしまう…。
それと、Pタグ問題にも絡んで、tDaiaryテーマについてはコンパチビリティを落とすかわりに、デザイン的には別の方向性も探っていこうと思う。
" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030819_1061293368" dc:publisher="なおとの思考/n3" /> -->

Akiary(オリジナル)の問題点…Permalinkについて

2003-8-30 Sat.
◆日付単位のアンカーが設定されるが、同じ日付に複数の記事がある場合には個別の記事にリンクできない。
◆そればかりでなく同名のアンカーが複数設定されてしまうのはValidでない。
◆また、せっかく設定されるアンカーも、HTMLソースを見ないと(あるいはAkiaryの動作を知っている)特定できない。

従来型の解決策


コンフィグ(akiary.cfg)の設定次第で、アンカーの顕在化は可能。
「1日1記事」で書けばアンカーの重複はしない。この場合、段落アンカーは手で書くか補助的なアプリを利用して生成できる。
例)
美森勇気さんの日記
Hoppeさんのべた日記
など

私の解決策の着眼点


Akiaryでは各記事に日付情報(「date」と呼びます)とは別に、内部的には「did」と呼ばれているユニークなidをもっています。
具体的には各記事をはじめに投稿したときの「epoc time = Perlのtime(now)」です。
これは10桁の数字で、時系列順に大きくなっていきます。

didを元にしたアンカーを各記事に設定するようにしました。
過去の日記資産がない場合にはこれでもよいのですが、過去記事で従来型アンカーを利用している場合、それが無効化されてしまいます。
解決策としては日記中に現われるすべてのリンクを調べて、変換するツール(移行時に1回だけ実行すればよい)を用意する方法もあるのですが、面倒だったので従来型のアンカーも同時に設定するようにしてみました。
この場合アンカーの重複がおこります。

別の問題が発覚


didは記事の更新(追記など)によらず不変です。これは良いことなのですが、Akiaryでは過去ログを月単位でしか管理できないので、ある記事の日付情報を修正して月を跨いだ移動をした場合に、
記事の移動は問題なくできるのですが、Permalinkはそれを追跡することができません。
また、“過去日記”“未来日記”のような、当日以外の記事を書いた場合にもdateとdidの整合性は崩れます。
これはオリジナル版にも存在する問題です。


※URIを以下の部分に分けて考えると…、
<スキーマ><ドメイン><パス><ファイル名><アンカー>
ファイル名の部分が変化してしまう!


この問題により、didからPermalinkを算出することができません。
オリジナルはその点も考慮されており、管理情報としてdateとdidを同時に記録しています。

" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030830_1062233920" dc:publisher="なおとの思考/n3" /> -->

今週末はなにができますかどうか

2003-8-30 Sat.
山田さんに取り上げられましたね…。ありがとうございます。
せっかくですから記事をば。

Akiaryに限らず、コメントとTrackbackは次に上げる点を満たせば実装上はもはや難しいことではないとおもいます。その条件とは、
・Permalinkを生成する
・ユニークなidを生成する
・Permalinkを取り出すことができる
そして、くっつきBBS(たつをさん作)やtb-standalone(の派生実装)をつかえます。

現在の私の使っているサーバー(www.ksky.ne.jp)はCGIの実行に制限があり、実のところAkiary v.0.51は動かないです。なので現状コメントとTrackbackはできていませんが、興味はあります。
ローカルのサーバーではtb-standaloneが動いています。(本当に動いているだけで、連携する仕組みは作りこんでいません。それより国際化を作業している方がおられるので、それマチ。)
コメントは、Akiaryテンプレート改造で(iframeなり使って)実際できているところは昔からありました。

" dc:title="" dc:identifier="http://isnot.jp/n3/200308.html#20030830_1062233984" dc:publisher="なおとの思考/n3" /> -->
Prev Next
Akiary v.0.61+n3kit 2006-09-18