WikiForum を実現するソフトウェア。 Web ブラウザから誰でも編集できるページを提供する。
NAGASAWA Takahiro 氏が開発している Java で書かれている国産 WikiEngine。PukiWiki と MobWiki を参考にしている。Struts を使用。
Google Maps が ID を取得しないでも簡単に自分のサイトに貼れるようになった。 Google Maps で表示される HTML コードをページに埋め込めば、好きな場所の地図を貼ることができる。 これは嬉しい。
早速 nDiki でも貼りたい。
しかし WiKicker という WikiEngine をベースとした DiKicker を使っている nDiki では、現在のところ直接 HTML コードを使えるようにしていないのである。
「HTML タグ付けを許すのは嫌」というスタンスできたのだが、他のサービスを貼るという魅力にはやはり勝てないな。 HTML 直書きを許すのは大局的にはデータ活用性などで好ましくない部分もあるが、各種サービスを活用できないで利用価値が下がるのは本末転倒なので、わかった上で使うということで。
ということで nDiki で HTML タグ付けブロック機能を有効に設定。
ちなみに現行では HTML::Scrubber ベースで、使えるタグ・属性に制限をつけるフィルタしか用意してなかった。これだと Google Maps のコードがそのまま貼れない。 ということで「DiKicker」および「書く人が限定されているような Wiki」での利用を想定した無制限にスルーするフィルタモジュールを新規追加。
これで Google Maps を貼れるようにした。
では早速。
パケ・ホーダイを契約してから、MovaTwitter・RTM・モバイル Gmail などで携帯電話を活用するようになった。そんななか、決定打がないのが、ノートアプリケーション。電車の中などの隙間時間に、この nDiki の 下書きなどはケータイでできるようにしたい。
Google ドキュメントが使えればいいが、前年ながらまだiモードでは使えない。 メールベースでやる手もあるが、メモには良いものの再編集を繰り返したいようなものに難がある。
ということで自前でプライベート Wiki を立てそこに書き込んでみることにした。
使う WikiEngine はいつも通り自作の WiKicker。
書き込んだテキスト内のキーワードを nDiki へ自動リンクさせることができるので、パーソナルナレッジベースとして自分にとっては一番便利。書式も同じなので、Wiki に書いた下書きを、そのまま nDiki で使える。
肝心のケータイからの書き込みだが Ajax 等凝った技術を使っていないおかげで、問題なく FOMA 端末(D703i)からiモードで読み書きできた。WiKicker は UTF-8 でページを出力しているが、網側か端末側の処理かは知らないが今のところ問題なし。
なお認証は簡単に Basic 認証で済ますことにした。 安全とは言えないがそれほど重要なデータを置くわけではないしいいかな。 cookie は必要ないし WikiEngine に手を入れなくてもよいので、すぐできるのはコレ。
ユーザ名とパスワード付きのトップページ URL を端末でブックマークしておけば1発でアクセスできる。
これでケータイ(と PC)から使えるプライベート Wiki を設置できたわけだが、なにぶんもともとケータイをサポートしている WikiEngine ではないため、長いページの分割機能などはないのがちょっと不安。PageName で生成される URL が長くなった時の振る舞いもちょっと不安。
そこで Google Mobile Proxy (http://www.google.co.jp/gwt/n) 経由で Wiki を使うことにした。 ページを携帯端末向けに変換してくれる proxy で、Basic 認証もできるしフォーム の POST もできる。
Google Mobile Proxy 経由で見たページ内のリンク先も全て自動的に proxy 経由になるので、 PC 向け Web ページの URL を書いておけばそのまま携帯電話で見ることができる。
安全のためか、比較的短い一定時間立つと認証の再確認画面が表示されてしまうが、ユーザ名とパスワードを入力すれば、セッションは継続される。 テキスト編集に時間がかかってしまうと POST する時にひっかかってしまい認証の再入力がちょっと面倒だが、再認証が通れば POST リクエスト自体は有効で書き込みがロストすることはないようだ。
しばらくはこれで読み書きしてみよう。
当初「コンピュータ日誌」として日付ベースの記事を書くようになって(記事)から満10年。
当初は m4 ベースで HTML テンプレート処理をしていた。 その後記事を XML 形式にし、Perl スクリプトで HTML ページ生成する方式に変更。 2001年5月には Naney's Diary としてハイパー日記システムを使い始めた(記事)。 2004年2月に名前を nDiki と改め、自作 WikiEngine をベースとした日記システム DiKicker で記事を書くようになった(記事)。
文章はあいかわらず上手くなってはいないけれど、書き続けることでいろいろ得ることも多かったと思う。
みんなも書くといいよ。
[ コンピュータ日誌 ]
2002年10月19日から開発を始めてしばらく公開・運用をしていた WikiEngine だけれど最近は WikiEngine そのものは使っていなくて、今はそのコードをベースに作った日記システム の DiKicker 部分しか使っていない。DiKicker の方は自分自身で今後も使っていくんだけれど、さすがにいろいろ古いのでそろそろ大改修しようかなと。基盤部分的には
などをして今後も使っていけるようにしたい。既に使っていないアプリケーションとしての WikiEngine 部分は移行させていく手間をかける必要はないと思うので、コードを削除していくことにした。WikiForum 立てるなら既にいろいろ他の選択肢があるしね。
CVS での管理もやめて Git 管理に変更。最後の公開 tarball を展開して git init して最初のコミットとし、その後に変更した作業ディレクトリを Git 側の作業ツリーに上乗せしていったんコミット。あらためて最後の公開コードの上に差分を積んでいくつもり。
この日記(nDiki)で使っている自作日記システム DiKicker、開発し始めたのが2003年12月末なのでもう13年物だったりします。ここ最近大きなメンテナンスはしていなかったのですが、まだこの先10年以上使えるように手を入れることにしました。一昨日から着手。
やりたいこと
この日記の日記システム(DiKicker)は WikiEngine からの派生で作られた生い立ちをもっていて、現時点でも WikiName を特別扱いし自動的にそのキーワードへのリンクになるようになっていました。今日はコードを修正してその特別扱いをやめることにしました。
実装ですがまず WikiName を先に抽出し、そのあとに他のキーワードを AutomaticLink するようになっていました。このため例えば MacBook Pro という文字列はまず MacBook という WikiName として抽出されてしまうため MacBook Pro という文字列で自動的にリンクさせることができていませんでした(それだと困るので明示的に BracketName で書いていました)。
WikiName は WikiWiki というコンセプト的に良いものでしたが AutomaticLink を実装している日記システムではもう不要な表現です。
ようやく重い腰を上げて今回のコード修正となりました(いじったのは数行なのですけれども)。
一般的な話のノートは Obsidian Publish サイトで全体公開していて、組織固有の話のノートは Obsidian + MkDocs を使った組織内公開ワーキングノートサイトで限定公開している。
限定公開ノートから全体公開ノートへのリンクをつけるのがいささか面倒。さしあたって roamlinks MkDocs プラグイン と md-condition Markdown エクステンションを使って
[Naney](https://notes.naney.org/Notes/Naney) <!--- #if OBSIDIAN --> [[Naney]] <!--- #endif -->
とリンクしている。
ああ、この限定公開から全体公開にリンクする機能を欲するの、20年弱前から変わらないなあ。WikiEngine を自作していた時は InterWikiLink を実装していたんだっけ。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。