ここ1ヶ月ほど、higuchi.comのサーバーを少しずつアップグレードしています。旧サーバーではNucleusを日本語化したときの環境をつぎはぎしながら使ってきたのですが、改装が続いていつのまにか田舎の温泉旅館の「旧館の3階が渡り廊下で本館のロビーにつながっていて、本館の2階から新館1階の宴会場に出られます」みたいな様子になっていたので、ゼロから新しい環境を作って、データだけそっくり移行しました。
それにあわせて、サイト全体の文字コードを今までのEUC-JPからUTF-8に変更(そんなわけで香港の記事で日本語のテキストに中文繁体字を混ぜて使えた)し、ついでに、徐々に更新を続けていく種類の文書のためにWikiをインストールすることにしました。
Wikiにも今はいろんな種類がありますが、今回インストールしたのはNucleusご本家でも使っているDokuWikiというシステムです。
ACL(アクセスコントロールリスト)で、閲覧、編集のできる人をページ単位でコントロールできることや、最近のバージョンで全面的にUnicode化を目指しているというところを粋に感じての採用です。
このシステム、前のサーバーの上でもずいぶん前のバージョンをEUC-JP環境でもインストールして自家用メモツールとして使っていたのですが、それに比べると最新のバージョンはますますインストールや設定が簡単になっていて、また日本語に翻訳されたファイルも最初からついており、すんなり使えます。
ただ、作者のサイトにも書いてあるとおり、日本語など単語の区切りを分かち書きしない言語のページは検索機能が使えないとか、送られてくるメールがUTF-8でエンコードされているとか、ちょっと直したいところもあります。
というわけで、DokuWikiの内蔵全文検索機能で日本語も検索できるようにする改造と、メールのエンコードを「素直」にする改造のご紹介。くわしくは新館DokuWikiの日本語対応をご覧あれ。
DokuWikiの日本語全文検索
日本語検索での問題点
現在のDokuWikiの日本語検索では高速化のためにindexerによるindex化が行われているが、空白文字区切りを前提としていたために日本語がうまく検索できなかった。作者の方…
Wikiもはじめますた
Blogだけだとうまくまとめられないような記事(?)のために、Wikiも併用することにしました。 # コンテンツはへぼいのに、道具立てだけはいっちょまえに……(汗。 Wikiのぺーじはこちらになり…
TBさせていただきました。
ほとんど関係ないようなタイトルなのがアレですが、後半の「(わたしの環境では)mbstring.internal_encodingをUTF-8に設定しないと、(示してくださっているinc/mail.phpを使わせていただいたところ)メールの文字化けが発生しました」という部分を、報告させていただきたかったので。
乱文陳謝。失礼いたします。
さひろさん
コメント、ありがとうございます。
たしかに、PHPでmbstring系のマルチバイト文字関数を使うときは、PHPが内部で文字列を処理するときの文字コードを何にするかをきちんと指定しないと、関数が正常に動かなくて文字化けが起こりますね。
というわけで、DokuwikiなどPHPを使うツールをインストールするときは、php.iniや.htaccessなどで、mbstring.xxxxx を正しく指定いたしましょう>文字化けでお悩みの皆様
くわしくは
http://jp.php.net/manual/ja…
はじめまして。dokuwiki使いこなしてらっしゃいますね。
私はつい最近dokuwikiをメモ用に使い始めたところなので、樋口さんのようにうまいことサイト構築されている方を見ると、自分のサイトを育っていくのが楽しみになります。
ひとつおたずねしたいのですが、この日記もdokuwikiですよね?dokuwikiオフィシャルサイトに載っているblogプラグイン等利用せずに、すべてご自分で作りましたか?とても使いやすそうな日記なので、参考にしたいなぁ、と思いまして。
このブログはDokuWikiではなくて、Nucleus CMSというブログ用システムを使っています。
http://japan.nucleuscms.org/
お返事ありがとうございます。
ご紹介いただいた Nucleus は、
オフィシャルサイトではdokuwikiが使われている、
というだけで、それ以上の関係はないようですね。
樋口さんがNucleus をお使いなことは
その他の記事を読んで存知あげていたのですが、
Joomla! や wordpress といった他のCMSと同様に
Nucleusもdokuwikiを内部で使えるのだろうと思いこみ、
この日記もdokuwikiを利用しているのかな、
と勘違いして的外れな質問をしてしまいました。
ではでは。