bk2siteドキュメントの読書メモ
これは bk2site のmanpage を読みながら書いたメモである。
僕には判りきっている部分とか、必要としない機能とか、意味が判らない場所とかは適当に読み飛しているので注意
options
- -f1 basetemplate
- -f2 othertemplate
- -d directory
Quick Start
~/.bk2siterc に最低で、以下の項目をセットすればとりあえずは動く。
destdir ~/public_html
search ~/public_html/cgi-bin/urls.db
extrafilebase /etc/bk2site/newbase.html
extrafilename new.html
SUMMARY
以下の、3つのファイルで出力を制御する。
- indexbase.html
- index.html のテンプレート
- otherbase.html
- トップ以外のファイルのテンプレート
- ~/.bk2siterc
-
- /etc/bk2site/dot.bk2siterc をコピーして使う
ドキュメントのセクション
- folder
- ブックマークのフォルダ
- url
- URL
- newadd
- 最近追加された url
- news
- urls from the newstopfolder, sorted by most-recently-created.
- tophits
- よく参照する url
フォルダの設定
- 設定ファイルのデフォの位置は /etc/bk2site/otherbase.html
- その <!--bk2site:begin section-type--> ではじまり
- 直近の <!--bk2site:end--> まで
<!--bk2site:begin folder-->
<!--bk2site:top <table width="100%"><tr><td><ul>-->
<!--bk2site:template <li><a href="%URL"><b>%TITLE</b></a> <i>(%LEAFS)</i> %NEW %CONDDASH <small>%LONGCOMMENT</small></li>-->
<!--bk2site:separator </ul></td><td><ul>-->
<!--bk2site:bottom </ul></td></tr></table><hr>-->
<!--bk2site:cols 2-->
<!--bk2site:maxnum 0-->
<!--bk2site:end-->
- top
- フォルダの頭につけるタグ
- template
-
- 個々のフォルダのテンプレート
- % で始まる大文字は、ディレクティブ
- cols
- フォルダいくつごとにセパレタを挿入するか
- separator
- 次の欄を開始する前に入れるセパレタ
- bottom
- すべてのフォルダを出力後に出力
- maxnum
- 一度に表示するフォルダの上限
- daysold
- 作ってから15日以上経過したフォルダを出力しないオプション
- between
- エントリの間に挿入するパターン
- startnum
-
- 下のように書いてあるけど意味ワカラン
- This would tell bk2site to start printing on the 15th element.
これ以外に、以下のコメントを追加することが出来る
- <!--bk2site:navigatebar-->
- ナビゲータバーに置換
- <!--bk2site:title-->
- タイトルに置換
- <!--bk2site:include /home/me/myfile.html-->
-
- インクルードしたファイルより %QUERY, %ESCQUERY %NUMBE を抹消
- ヘッダとフッタを統一するのによい
- <!--bk2site:include:search /home/me/myfile.html-->
-
- <!--bk2site:date-->
- 現在日時と置換
- <!--bk2site:path-->
- otherbase として他のファイルを指定?
http://www.multiagent.com/otherbase.html に全てを使った例が示されている
ディレクティブ
テンプレート中に使えるディレクティブ
- %URL
- the URL
- %NOACCENTURL
- URL より アクセント記号トカ ASCII じゃない文字をリプレースしたもの
- %TITLE
- タイトル
- %NOACCENTTITLE
- タイトルよりアクセント記号とかを置換したもの
- %COMMENT
- コメント
- %FILLCOMMENT
- 80桁で行揃えしたコメント
- %NOACCENTCOMMENT
- コメントよりアクセント記号とかを置換したもの
- %SHORTCOMMENT(x)
- コメントの最初のx字分
- %LONGCOMMENT
- コメントより改行を除去したもの
- %NHCOMMENT
- コメントより <と > の間にある奴を除いたもの
- %FSCOMMENT
- コメントの第一文
- %JSCOMMENT
- 特殊文字をエスケープ、javascript 用、
- %JSFSCOMMENT
- コメントの第一文、ただし特殊文字をエスケープ javascript用
- %DAYCRE
- the day created
- %DAYVIS
- the day last visited
- %DAYMODM
- the day last Modified
- %MONTHCRE1
- the month created, in number
- %MONTHCRE2
- the month created, in English
- %MONTHVIS1
- the month visited, in number
- %MONTHVIS2
- the month visited, in English
- %MONTHMOD1
- the month modified, in number
- %MONTHMOD2
- the month modified, in English
- %YEARCRE
- last two digits of the year created
- %YEARFCRE
- the year created, including all digits (the full number).
- %YEARVIS
- last two digits of the year visited
- %YEARFVIS
- the year visited, including all digits (the full number).
- %YEARFMOD
- last two digits of the year modified
- %YEARMOD
- the year modified, including all digits (the full number).
- %LEAFS
- the total number of leafs under it (for folders only)
- %NEW
- the new.gif, if the time is right.
- %TIMEFCRE
- the time created in full Wed Jun 30 21:49:03 1993
- %TIMEFMOD
- the time modified in full Wed Jun 30 21:49:03 1993
- %TIMEFVIS
- the time visited in full Wed Jun 30 21:49:03 1993
- %CONDDASH
- prints a dash "-" if the comment is not null
- %IFCOMHAS(string)(html)
- 下のように書いてあったがよく判らん
if the comment has "string" then insert "html" at point. also eliminate "string"
from comment. e.g. %IFCOMHAS(*coolsite*)(<img src="/images/cool.gif">) or
%IFCOMHAS(-neat-)(<font color="red">Neat Site</font>) If you use it, you must use
it for ALL templates
- %HITS
- the number of hits this url has receives, as gathered from urllogfile
- これに加えて、以下の関数を使うことができる。
- しかし、今の所 search.pl は関数を使えない
- この為 ~/.bk2siterc の 変数 searchurltemplate の値に関数を使ってはいけない。
関数は1 又は複数の、引数をとり、ディレクティブ同様に置換される。
- &FILL[arg|cols]
-
- arg is a string and cols is an integer.
- 引数 arg を cols 桁埋める
- &NOHTML[arg]
-
- arg is a string.
- 引数文字列 arg より、htmlタグを除去する
- &REPLACE[arg|from|to]
-
- where arg, from, and to are strings
- 文字列 arg 中の from を to に置換
- &CUT[arg|chars]
-
- arg is a string and chars is an integer.
- arg の最初の chars 文字を返す
- &NOLINEBREAKS[arg]
-
- arg is a string.
- arg 中の 改行タブ、空白文字を除いたものを返す
- &NOACCENTS[arg]
-
- arg is a string.
- arg 中よのアクセント記号をアクセントなしに置換する
- &FS[arg]
-
- arg is a string.
- arg 中の最初の一文を返す
- &HASH[arg]
-
- arg is a string.
- arg に対する 5桁のハッシュ数を返す
これら関数は次のように入れ子に出来る
&CUT[&NOHTML[%COMMENT]|500]
引数文字列には [,],| が含まれていてはならない。
Netscape Navigator Comments
詳しくは、~/.bk2site の %IFCOMHAS へのコメントを見よ
コメント中に "HREF=" と書くとブックマークを破壊してしまう。
そうしたい場合は コメント中に "href =" とかならずスペースを入れること。
Using Aliases
トバス
Setting Private Folders
bk2site に無視してほしいものは、コメント欄に と書く
Sorting Bookmarks
フォルダ中のエントリを整順することができる
こうするには、コメント中に以下のように書く。
- <sort order=normal>title</sort>
- タイトルを辞書式順序でソート
- <sort order=inverse>title</sort>
- タイトルを辞書式順序の逆でソート
- <sort order=normal>creation</sort>
- 生成時刻でソート
- <sort order=inverse>creation</sort>
- 生成時刻の逆
- <sort order=normal>modified</sort>
- last modified 時刻でソート
- <sort order=inverse>modified</sort>
- last modified 時刻でソート
- <sort order=normal>visit</sort>
- last visited time でソート
- <sort order=inverse>visit</sort>
- last visited time でソート
- <sort order=normal>hits</sort>
- ヒット数でソート
- <sort order=inverse>hits</sort>
- ヒット数でソート
Output of Bookmark file
トバス
Merging Bookmark Files
トバス
Using a HTTP proxy.
トバス
Generating extra files.
extrafilebase をつかってトップヒットや、新しいエントリだけのページを生成することができる
- extrafilebase
- 生成するファイルのベース
- extrafilename
- 出力ファイル名
次のように書く。(順番には意味がある)
extrafilebase /etc/bk2site/newbase.html
extrafilename new.html
生成するファイルは html に限らない。
Displaying channels
~/.bk2siterc で、以下の変数を設定して、他のサイトのチャンネルを講読できる。
- channelname
- チャンネルの名前
- channelurl
- チャンネルのダウンロード元
- 今の所使えるスキーマは http と file だけ ftp は未サポート
- channelfile
- チャンネルのローカルキャッシュみたいなファイル
channelname slashdot
channelurl http://slashdot.org/slashdot.rdf
channelfile /tmp/slashdot-channel
さらに、これを表示させるには basefile に以下のように書く。
<!--bk2site:begin slashdot-->
<!--bk2site:top <a href="http://www.slashdot.org">Slashdot News</a><ul>-->
<!--bk2site:bottom </ul>-->
<!--bk2site:template <li><A HREF="%URL">%TITLE</A> %CONDDASH %COMMENT-->
<!--bk2site:cols 1-->
<!--bk2site:maxnum 10-->
<!--bk2site:end-->
上のような、チャンネルのテンプレートで使えるディレクティブは、以下の5つだけ。
これ以外のディレクティブを使った結果は不定である。
%TITLE
%URL
%COMMENT
%CONDDASH,
%HITS
※ 僕の環境では、これはうまく動かない。
Dealing with other character sets
※URL とかフォルダ名に非アスキー文字を使うときの注意が書かれているが、laten1 とか向けで、日本語を使うときには、ちょっと違うと思うのでトバス。
search.pl program
検索用 cgi スクリプト search.pl は、bk2site が作る urls.db を検索する。
この cgi は、以下の引数を取る
- q
- クエリ
- num
- 一ページ当りに表示する結果の数
- stq
- 上に同じ?
- db
- ruls.db ファイルの名前
search.pl を動作させる為には、cgi-bin に、以下のファイルがなくてはならない。
search.pl
urls.db
searchbase.html
また、search.pl の最初の方にある以下の個所を適当なパスに書換えないといけない。
$searchprog = "/cgi-bin/search.pl";
※ debian では、searchbase.html が下のように search.pl にハードコードされちゃっているので、
$otherbase = "/etc/bk2site/searchbase.html"
- urls.db
-
- bk2site が自動生成するファイル
- dot.bk2siterc のコメント参照
- searchbase.html
-
- otherbase.html をコピーして使ってもいい
- search.pl はこのファイルを出力のテンプレートとして使う
- ディレクティブ %QUERY と %NUMBER %ESCQUERY を使える
- %ESCQUERY は、%QUERY の特殊文字をエスケープしたもの
Counting the Hits
トバス
以上
連絡先:webadmin.itsumi@gmail.com