nDiki : HTML
HTML - HyperText Markup Language
関連情報
- reStructuredText (reST)
- Markdown
- CSS
- Dreamweaver
- HTA (HTML アプリケーション / HTML Application)
Perl モジュール
- HTML::PopupTreeSelect
- ディレクトリツリーなどのツリー構造のノードを選択させるウィンドウをポップアップさせるためのモジュール。
- Template Toolkit
HTML への変換
スポンサード リンク
Related term
2006年6月10日 (土)
■ Plagger のインストールが大変なので XML::RSS で RSS から JavaScript コードへ変換するスクリプトを自作

一昨日社内メイン Wiki のレイアウトを変更してサイドバーを設けたので、徐々に増えてきた社内 Blog の ヘッドラインをそこに表示することにした。
最初は Plagger を使ってみようと思ったのだが、依存 CPAN モジュールが多くて CPAN.pm を使ってもなかなかインストールが終わらない。
ということで今回は Plagger を見送って、XML::RSS でちょちょっと aggregator を自作して済ますことにした。
基本的には nDiki 用に書いた「はてなブックマーク上の最新ブックマークを表示するためのコード(2005年5月16日)」をちょっと修正して利用。 HTML フラグメントを生成するかわりに、JavaScript Include 用 JavaScript ファイルを生成するように変更した。
これで社内 Blog が読まれる回数も増えるかな。
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- はてなブックマーク上の最新ブックマークを nDiki に (2005-05-16)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- はてなブックマーク上の検索結果を nDiki に (2005-10-30)
- クリッピングに便利な CMS 「Tumblr」を使ってみる (2007-04-13)
■ WiKicker における PageName 最長文字数

WiKicker では PageName を エンコードした文字列を URI に埋め込んだり、サーバで保存する際のファイル名にしたりしている。 このため、PageName の最長文字数はそれらの最長文字数に依存しているはずである。
今まで確認を後回しにしていたのだが、新しい機能の追加の際に確認しておく必要があるので調査してみた。
@ WiKicker の実装
WiKicker の実装がらみとして最長を決める要素としては
- PageName の UTF-8 表現を URI エスケープしてページ URI に含めている。→ URI、HTTP、HTML、Web サーバ、Web ブラウザの実装による最長の制約
- PageName を base64 にエンコードしてファイル名にしている。→ ファイルシステムのファイル名、パス名の最長の制約
がある。
@ 各仕様等による制約
- HTTP では URI の長さには制限なし (RFC2616 3.2.1)
- Web サーバは Request-URI が長いと 414 Request-URI Too Long を返す (RFC2616 10.4.15)。Apache は LimitRequestLine ディレクティブにより、URI を含むリクエスト行のサイズを制限することができる(配布時には 8190)。
- Internet Explorer が扱える URL の長さは 2083文字。
- ext2 はファイル名は 255文字まで(増やすこともできる)。
- 手元の Linux 2.6.15 で試したところ、パス名は 4095文字まで。
@ WiKicker で問題が出ない PageName 最長文字数
上記の中ではファイル名による制約が一番大きい。
WiKicker 内部でファイル名として base64 (の亜種) でエンコードしたものを使っているので、元の文字列はは最長 189バイトまでなければならない。base64 だと3バイトで4文字になるため、189バイトで 252文字となる。
WiKicker ではここでさらにファイル名に ',v'、'-lock' をつける事があるので、実際には元の文字列は最長 186 バイトまでとなる。
PageName が 186 バイトまでだとすると、URL エスケープしたとして558バイト。 WikiEngine のスクリプトの URL や他のパラメータとあわせても、これぐらいなら大丈夫のはずである。
ということで WiKicker では Linux 上だと通常 PageName は 186 バイトが最長と言ってよさそうだ。 日本語の文字はだいたい UTF-8 で3バイトになるので、62 文字までということになる。
そのうち、WiKicker に制約チェックを入れることにしよう。 そのうち。
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- 最後がピリオド(.)で終わるファイル名をつけられない (2005-04-19)
- WiKicker 実装 (2002-10-20)
- WiKicker 0.35 リリース - 添付機能の修正など (2006-06-20)
- [ WiKicker ] If-Modified-Since: 関連作業ほぼ済 (2003-09-19)
2006年7月22日 (土)
■ Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合

入社してから社内情報共有の一環として
といろいろ手をつけてきた。 次に狙っているのは SBS である。
Wiki や社内 Blog に書くほどではないけれどメモ程度にブックマークしておきたい URL を、気軽に晒せるようにするのが目的。
はてなブックマークのような公開サービスは
- タグ・コメント・傾向などが外に出るのはよろしくない
- あるいは、それを気にして活用されない
- そもそも社内リソースについてはブックマークできない
という点から、今回は利用できない。
ということで社内に SBS を設置したい考えている。
最初は Scuttle にしてみようと思ったのだが、PHP ベースであるのと MySQL を使うというところで気遅れしている。 いや SQLite でもいけそうらしいということで、実は Debian でちょっと試そうとしたのだが、テーブル作成の SQL が MySQL 用で、これを修正するのが面倒なので断念。
次に Perl + SQLite で動く Rubric を試してみることにした。
@ Rubric 0.140
Rubric は CPAN にあがっているので CPAN.pm から install Rubric でインストールできる。 モジュールをインストールしたら、セットアップ。
- CGI プログラムを動かすディレクトリを決める (以下 $RUBRIC)
- Rubric tarball の bin/rubric.cgi を $RUBRIC/ にコピーし、必要なら #! を修正する。
- Rubric tarball の templates ディレクトリを $RUBRIC/ にコピーする。
- Rubric tarball の style/rubric.css を $RUBRIC/ にコピーする。
- Rubric tarball の etc/rubric.yml を $RUBRIC/ にコピーして環境に合わせて編集する。
- データベースを初期化する。0.140 には makedb.pl が同梱されていないので、0.13_01 の bin/makedb.pl を参考に perl -MRubric::DBI::Setup -e 'Rubric::DBI::Setup->setup_tables' で初期化する。ちなみに 0.140 付属の rubric コマンドで rubric db -s してみたが、これはうまく動かなかった。
- 必要に応じて .htaccess を作成・編集し rubric.cgi を CGI プログラムとして実行できるようにする。またその他アクセスされたくないファイルを deny するようにしておく。
これで OK。
rubric.cgi にアクセスしページが表示されればひとまず成功。 メニューの「register」から、ユーザ登録する。 確認用のメールが届くはずだが、面倒くさいのでこれを待たずに
rubric user -a ユーザ名
でアクティベートする。
Rubric の HTML フォームからのブックマーキングは成功し、うまく動いているようである。 ただし、日本語の処理はどうもよくない。 title や description が化ける。 惜しい。
基本的には UTF-8 ベースでうまくいきそうなのだが、どこかで化けるようだ。 ちょっと手を入れれば直るかなと思ったが、化けるところと化けないところとがあるので逆に直す場所が多そうなので今日はやめておくことにした。
とりあえず Rubric はおいておいて、他のものも試してみることにするか。
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- Hyper Estraier で社内 Web コンテンツ検索 (2006-06-01)
- DiKicker の出力する HTML コードを小さく (2006-10-05)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2006年7月25日 (火)
■ Perl 用の doxygen のようなツールはないのかな

WiKicker のソースコードを人に説明するのにプリントアウトして説明するのに、doxygen のようなツールが欲しいのだけれど Perl 用のものはないのかな。
- ソースコードを色付けした HTML に変換してくれる
- Pod とコード本体を混在してドキュメント化してくれる
- ソースツリー内のファイルをそれぞれ処理してくれて、インデックスファイルも生成してくれる。
- できれば識別子がリンクになってくれる
というのが希望。1 だけなら結構いろいろなツールがあり、1 + 2 なら perltidy で実現できる。 しかし 3、4 までしてくれるツールが見つけられない。
とりあえず perltidy の Perl::Tidy と File::Find で再帰的にまとめて HTML に変換するスクリプトだけは書いて、一気に変換だけはできるようにしておいた。
インデックスの作成までは面倒なので未着手。
- 第2回 社内 Perl 勉強会 (2006-04-28)
- Perl プリティプリンタの定番 perltidy (2006-04-23)
- Emacs でお好きな言語のソースコードを色付き HTML テキストに変換 (2006-04-21)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2006年8月3日 (木)
■ OpenOffice.org 2.0.3 をインストール

「MS .*」 なファイルについては基本的に会社の Windows BOX 上で見ているのだが、これだと出張先で閲覧したい時にちょっと困る。 まあ wv、xlhtml 等である程度感じは掴めるのだが、細かいところまでは難しい。
ということで HDD 容量もぐんと大きくなったことだし OpenOffice.org 昨日入れてみた。
(他が原因かもしれないが)その後 X を再起動したら、フォントがギザギザ・一部消えるという悲惨な状況に。 KDE のコントロールセンターでフォントをいじっているうちにもとに戻った。
とりあえずこれで社外でも「MS .*」が読めるようになった。
基本的には
あなたは、秘密で独占的なMicrosoft Word形式の添付ファイルをお送りになったので、私にはそれを読むのは困難です。プレーンテキストかHTML、PDFでお送りいただければ、拝読いたします。-- Richard Stallman 氏に習う Word 添付ファイルの断り方, 日刊アスキー (→ 以前の紹介記事)
ですが。
- Linux 母艦ノート PC を使わずに仕事ができるかチャレンジ (2007-08-20)
- [ Debian ] ThinkPad X31 にインストール (2003-12-03)
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- [ お仕事 ] サーバ構築開始 (2003-12-09)
2006年10月5日 (木)
■ DiKicker の出力する HTML コードを小さく

容量超過につき www.naney.org の容量削減中。
中でも結構な容量を食っているのが、nDiki (DiKicker) の HTML 変換済み記事データベースである。 毎回レンダリングし直すと遅いので、1度 HTML フラグメントに変換したら Bereley DB ファイルに保存しているのだが、これがどうしても大きくなってしまうのである。
NaneyOrgWiki (WiKicker) もそうなのだが、 UTF-8 を使用しているため日本語中心のテキストが思った以上にデカくなるのも痛い。
ということで生成する HTML フラグメントをちまちま小さくするようにすることにした。 チェックしてみると自動リンクの URL が絶対 URL になっているではないか。 まずはこれを短い URL を吐くように書き直し。
焼け石に水な感もあるが、ちょっとずつでも短くしていきたい。
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- [ WiKicker ] spam と検索エンジン対応に noindex、... (2007-01-13)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- ケータイ用にプライベート Wiki を設置 (2008-01-07)
- [ Perl ] Log::Log4perlのはまりどころ (2004-03-02)
2007年1月8日 (月)
■ iCalendar 形式経由でスケジュールを社内 Blog に表示

仕事用に Skype 名を作成し、ついでに社内 Blog に Skype ボタンを貼りつけてログイン状態を表示できるようにしてみた。
そういえば電話もそうなんだけれど、本社に連絡を取るとき「もしかして会議中?」などと勘繰ってかけるかどうか迷ってしまうことがある。 かけたい人の予定がわかればいいのになと。
ならば逆もしかりだろうということで、自分の仕事のスケジュールを晒してみようと思いついた。 グループウェアとかそういうのは大袈裟なので、まずは社内 Blog のサイドバーに表示するようにしたい。
ということでこの3連休に実装してみた。
@ 構成
@ 入力
完全なスケジュールはほぼ日手帳に手書きで管理しているので、ミーティング・外出など晒しカテゴリのイベントだけを、電子化する必要がある。 手で HTML 毎回ごりごり書き直すのも嫌なので、スケジュール管理ソフトを使いたい。 この部分は KDE の KOrganizer を使うことにした。
@ サーバへアップロード
で、KOrganizer のスケジュールを iCalendar 形式でエクスポート。 このファイルを社内 Blog を配信しているサーバに rsync で転送。
この処理はちょっと手間なので自動化したいところ。
@ 社内 Blog 内表示用 JavaScript Include ファイル生成 CGI プログラム
この iCalendar 形式ファイルを読み込んで、今日以降の10件(程度)を HTML フラグメントに変換し JavaScript プログラム (document.write() 列) として出力する Perl CGI プログラムを作成。
iCalendar の形式の読み込みについては Data::ICal や iCal::Paraser などの Perl モジュールを利用できる。 今回はシンプルに使えそうな iCal::Parser をチョイス。 基本的には
use iCal::Parser; my $parser = iCal::Parser->new; my $calendar = $parser->parse($ics_file_name);
で読み込んだデータがハッシュリファレンスとして $calendar に設定される。 イベントは $calendar->{2007}->{01}->{01}->{$uid} のように「年、月、日、イベントUID」のハッシュ階層として格納されているので、これを読み出せばよい。
@ 社内 Blog サイドバーに表示
で、この CGI プログラムが生成する JavaScript プログラムをサイドバーで JavaScript Include。
まずは表示までできるようになった。
これで
をまとめて公開できる社内 Blog にアップグレード。
おいおいスケジュールの表示デザインとかは改良していきたい。 hCalendar 形式にして CSS でデザインするのがいいのかな。
- Plagger のインストールが大変なので XML::RSS で RSS ... (2006-06-10)
- [ DiKicker ] くっつき BBSをくっつけてみた。 (2004-05-04)
- Hyper Estraier で社内 Web コンテンツ検索 (2006-06-01)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- [ WiKicker ] 憧れのサイドバー (2004-01-23)
2007年1月13日 (土)
■ [ WiKicker ] spam と検索エンジン対応に noindex、nofollow を追加

@ <a rel="nofollow">
相変わらず www.naney.org 上の WikiForum (NaneyOrgWiki) にも毎日のようにリンク spam 書き込みがある。
気がつき次第削除と、その URL や関連キーワードの書き込み禁止文字列ブラックリストへの登録を行っているが、手間でしょうがない。
これらのリンク先に貢献するのは腹立たしいのでリンク (A 要素)へ
rel="follow"
属性をデフォルトで設定するように WiKicker を書き換えた。 ようやく。
@ <meta name="robots" content="noindex,nofollow">
あわせて、検索エンジン対応もしていおくことにした。
編集ページや履歴ページは検索エンジンに登録してもしょうがないので、インデックスから除外されるように HTML の HEAD に
<meta name="robots" content="noindex,nofollow">
を追加するように修正。
クエリ付きの URL のページで noindex した場合、クエリ無しや他のクエリを持つ URL のページまで一緒にインデックスから外されてしまわないかちょっと心配で、今まで保留にしていたのだけれど、Wikipedia などを見ても大丈夫のようだ。
[ SEO ]
- DiKicker の出力する HTML コードを小さく (2006-10-05)
- Wiki ではロボット除けをしてはいけない (2007-01-21)
- DiKicker に grep 検索機能を追加 (2007-02-02)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- WiKicker における PageName 最長文字数 (2006-06-10)
2007年1月27日 (土)
■ DiKicker にはてなブックマーク数表示機能を追加

各記事毎に、「はてなブックマーク数表示」と「はてなブックマークエントリーページへのボタン」を追加する機能を追加。
DiKicker の構造上 HTML フラグメントへ変換する visitor を拡張する形で実装したけれど、やはりこの辺りはテンプレートベースでユーザがいじれるようにしたい。
WiKicker 開発時に速度の面で外した Template Toolkit 採用をまた検討してみるか。
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- [ DiKicker ] くっつき BBSをくっつけてみた。 (2004-05-04)
- [ DiKicker ] 関連記事表示機能を追加 (2005-02-26)
- WiKicker 0.29 リリース - ビルドまわりの改良など (2006-02-13)
2007年4月3日 (火)
■ WiKicker に JSON でのページ出力機能を追加

最近は DiKicker ばかりに手を入れていたが、久しぶりに WiKicker の改良も行っている。 しばらく前から実装を始めていた JSON 形式での出力機能が今日完成。
今までは WikiPage について
という2つの出力形式を持っていたので、JSON が加わることで3つめとなる。
@ サーバ側で WikiPage の構文解析まではやる
クライアントサイドの JavaScript でページの内容に合わせて様々な処理をできるように、サーバ側で構文解析まではしてあげるというのが主な目的。
JavaScript でまたパーサを書いてメンテしていくのも大変なので、その部分はサーバでやってしまおうかと。 構文解析した結果の解析木を JSON 形式で返して、JavaScript 側であとはお好きにという形。
@ CPAN にある JSON モジュールを使用
サーバ側の Perl プログラムには、構文解析をして解析木を作れるようになっている。 この解析木から Visitor パターンで JSON 形式を生成していく。
依存モジュールを増やすことを避けるべく、最初は自前で JSON 形式に変換していこうと思ったのだがやっぱり面倒だった。 ということで CPAN にあるモジュールをチョイス。
JSON 関連では JSON、JSON::Syck、JSON::PC などがあるが今回はインストールのしやすさを考えて pure Perl モジュールとして実装されている JSON を採用することにした。
Visitor クラスで解析木を無名ハッシュ/無名配列のツリーに変換して、JSON モジュールに流しこめば OK。
use JSON; my $json = JSON->new(pretty => 1); my $js = $json->objToJson($tree);
WiKicker のフレームワークにはフォーマット別に出力を切り換える機構があるので、これに JSON を追加して application/json で送るようにして完成。
ちなみに残念ながら JSON 1.07 は Perl 5.005_03 では make test が fail するので、NaneyOrgWiki では使えない。
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
2007年4月13日 (金)
■ クリッピングに便利な CMS 「Tumblr」を使ってみる

Twitter と一緒に取り上げられることの多い Tumblr の方も試しに使ってみることにした。 一緒に取り上げられているといっても、両者は結構違うサービス。 Tumblr はどちらかというと Web コンテンツをクリッピングしていくのに便利なネットサービスだ。 Tumblr ではメディアミックスな短かめの投稿によって構成される tumblelog と呼ばれる Blog の一種を作ることができる。
Tumblr はページのテンプレート(HTML)を好きなようにいじれるのが魅力的だ。 Google AdSense 等 JavaScript コードなども挿入することができるので、結構好きなようにページにパーツを埋め込むことができる。
早速アカウントを作成して、tumblelog なるものを作ってみた。
まずは設定の方から。「Change settings」から設定ページに移動する。
- Title: tumblelog のタイトルを書く。
- Description (任意): tumblelog の説明を書く。
- URL: tumblr.com のサブドメインの URL をもらえるので、名前を入力する。ドメイン名を持っていればそれを割り当てることもできる。
- Theme: あらかじめ定義されているものを選べる。Custom を選択して、HTML テンプレートをいじることもできる。定義済みのものをカスタマイズしたいなら一旦そのテーマを選んで保存してから、Custom に変更する。
- Import Feeds: RSS フィードや ATOM フィードから自動的に記事をインポートしたい場合、Feed を登録する。例えばFlickr、Twitter、はてなブックマークなどへ投稿したものを自動的に Tumblr の方でインポートさせることができる。
テンプレートをいじって Twitter のバッジを貼ってみたり、テスト投稿をしてみたりしてまずは様子見。
nDiki に書くほどではないけれども、はてなブックマーク以上の言及をちょっとしたい時などのクリッピングに使ってみようかと思う。
ただ検索機能・タグ機能などは今のところ無さそうなので、書きっぱなしになってしまわないかという懸念あり。
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- あまり話題になっていない Life-X に登録した (2008-10-01)
- Plagger のインストールが大変なので XML::RSS で RSS ... (2006-06-10)
- Hyper Estraier で社内 Web コンテンツ検索 (2006-06-01)
- プロフィール公開サイト iddy のアカウント作成 (2007-03-13)
スポンサード リンク
■よく検索されるキーワード
torrent(109) x31(45) thinkpad(31) 動画(29) 提案書(26) mp980(24) 手帳(24) windows(23) linux(23) 画像(21) 使い方(21) リフィル(21) debian(20) usb(20) tc-1(19) perl(19) 筆まめ(18) 壁紙(17) ほぼ日手帳(16) 冷蔵庫(14) ドラマ(13) wiki(13) 書き方(12) ダイソー(12) システム手帳(12) 宮根誠司(12) ノート(11) so905ics(11) 無印(11) バッグインバッグ(11) 映画(11) 設定(10) 修理(10) 宮根(9) ssh(9) a6(9) ほぼ日(9) 黒田征太郎(9) バッグ(9) gmail(8) 感想(8) 娘(8) f-01a(8) メモリ(8) gtd(8) ブログ(8) nikon(8) allinanchor:*.torrent(8) ボールペン(7) 方眼(7) ポイント(7) 4c(7) ヨドバシカメラ(7) ケース(7) twitter(7) apache(7) ht-01a(7) ヨドバシ(7) ubuntu(7) truecrypt(7) n-02a(7) 作り方(7) minolta(7) af(6) インストール(6) ガントチャート(6) mp3(6) zippo(6) hdd(6) emacs(6) レビュー(6) カバー(6) vq1005(6) 日本語(6) ハクキンカイロ(6) 無印良品(6) グレゴリー(6) 交換(6) nikkor(6) pixus(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.088392s / load averages: 0.19, 0.32, 0.29
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク