bootstrap を使ってリニューアル の履歴(No.1)
更新まずは開発用環境を一式整える†
php をインストール†
一緒に unzip も。
LANG: console $ sudo aptitude install libapache2-mod-php5 unzip
パーミッションの調整†
自分が www-data グループに入っていることを確認した上で、 /var/www 以下を www-data グループの人間が自由にいじれるようにする
LANG: console $ groups osamu ... www-data ... $ cd /var/www $ sudo chgrp -R www-data . $ sudo chmod -R g+r . $ sudo find . -type d -exec chmod g+wx {} \;
ファイルを展開†
LANG: console $ cd /var/www/html $ unzip ~/pukiwiki-1_5_0_utf8.zip $ mv pukiwiki-1_5_0_utf8 pukiwiki $ cd pukiwiki $ chgrp -R www-data . $ chmod -R o-rwx .
ここまでで http://localhost/pukiwiki へアクセス可能
git を導入†
LANG: console $ git init $ cat > .gitignore *~ *.BAK .gitignore attach backup cache counter diff image trackback wiki ^D $
古いデータを UTF-8 に変換する†
古い wiki のデータは EUC で保存されていたので、 これを UTF-8 に変換する必要がありました。
古い wiki のディレクトリで以下のスクリプトを走らせて、 do.sh というファイルを作成して、source コマンドでシェルに食べさせれば良いようでした。
convert.php
LANG:php(linenumber) <?php # 与えられた名前のディレクトリの $pattern にマッチする # ファイルのファイル名(hex2bin でエンコード済み)を # EUC-JP から UTF-8 に変換してコールバック関数を呼び出す function convert_dir( $dir_name, $callback, # function($src, $dest) { ... } $pattern = "/ (?!\.)([0-9A-F][0-9A-F]|_)*(\..*)?$/") { $file_names = files_in_dir($dir_name, $pattern); print "mkdir ${dir_name}_utf8\n"; foreach ($file_names as $index => $file_name) { $src = $dir_name . "/" . $file_name; $dest = $dir_name . "_utf8/" . convert_filename($file_name); $callback($src, $dest); } } # 与えられた名前のディレクトリの $pattern にマッチする # ファイルを列挙した配列を返す function files_in_dir($dir_name, $pattern) { $file_names = []; $h_dir = opendir( $dir_name ); while ( $file_name = readdir( $h_dir ) ) { if ( ! preg_match($pattern, $file_name) ) continue; $file_names[] = $file_name; } closedir( $h_dir ); return $file_names; } # EUC-JP をエンコードしたファイル名を受け取って # UTF-8 をエンコードしたファイル名にして返す # ファイル名はエンコードされていない拡張子や "_" を # 含んでいる場合があるため、それら以外の部分を変換する function convert_filename($file_name) { preg_match("/ ([ \.]*?)(\..*|)$/", $file_name, $matches); # 必ずマッチする $base_name = $matches[1]; $extention = $matches[2]; return implode("_", array_map("convert_code", explode("_", $base_name))) . $extention; } # EUC-JP をエンコードした文字列を受け取って # UTF-8 をエンコードした文字列にして返す function convert_code($s) { return strtoupper( bin2hex( mb_convert_encoding( hex2bin($s), "UTF-8", "EUC-JP" ) ) ); } # # 変換処理のバリエーション # function adjust_time_stamp($s, $d) { print "touch -r $s $d\n"; } function simple_copy($s, $d) { print "cp $s $d\n"; adjust_time_stamp($s, $d); } function simple_convert($s, $d) { print "nkf -w $s > $d\n"; adjust_time_stamp($s, $d); } function gzip_convert($s, $d) { print "gunzip -c $s | nkf -w | gzip > $d\n"; adjust_time_stamp($s, $d); } # # 各ディレクトリに対して必要な処理を標準出力に表示する # convert_dir("attach", simple_copy); convert_dir("backup", gzip_convert); convert_dir("cache", simple_convert); simple_convert("cache/recent.dat", "cache_utf8/recent.dat"); convert_dir("counter", simple_copy); convert_dir("diff", simple_convert); convert_dir("wiki", simple_convert); ?>
LANG:console $ php convert.php > do.sh $ less do.sh $ source do.sh
あとは ????_utf8/* を新しい wiki の対応するフォルダにコピーすればOKでした。
スキンをいじる†
$ ls skin/ index.html pukiwiki.css.php tdiary.css.php keitai.skin.php pukiwiki.skin.php tdiary.skin.php $ grep \\.skin\\. * INSTALL.txt: ※スキン(外見の骨組み)に関する設定項目は skin/スキン名.skin.php の先頭に default.ini.php: define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'tdiary.skin.php'); default.ini.php: define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.php'); keitai.ini.php:define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'keitai.skin.php'); pukiwiki.ini.php:// Skin files (SKIN_DIR/*.skin.php) are needed at $ jed default.ini.php $ git diff default.ini.php diff --git a/default.ini.php b/default.ini.php index 2f5259a..3a0b3ac 100644 --- a/default.ini.php +++ b/default.ini.php @@ -11,11 +11,7 @@ ///////////////////////////////////////////////// // Skin file -if (defined('TDIARY_THEME')) { - define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'tdiary.skin.php'); -} else { - define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.php'); -} +define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'bootstrap.skin.php'); ///////////////////////////////////////////////// // 雛形とするページの読み込みを可能にする
bootstrap の theme を落としてくる†
http://www.bootbundle.com/ から良さそうなのを探して・・・
これとかどうかしら?
http://ironsummitmedia.github.io/startbootstrap-sb-admin-2/pages/index.html
$ cd skin/ $ wget https://github.com/IronSummitMedia/startbootstrap-sb-admin-2/archive/v1.0.5.zip $ unzip v1.0.5.zip $ mv startbootstrap-sb-admin-2-1.0.5/index.html sb-admin2.html $ mv startbootstrap-sb-admin-2-1.0.5/* . $ rm -r startbootstrap-sb-admin-2-1.0.5/ v1.0.5.zip $ rm LICENSE README.md $ cp pukiwiki.skin.php bootstrap.skin.php $ cd .. $ git add . $ git commit -m "sb-admin-2 added"
http://localhost/pukiwiki/skin/sb-admin2.html で sb-admin2 のテーマを表示できるようになりました。
†
pukiwiki.skin.php の
// ------------------------------------------------------------ // Output
以降に sb-admin2.html の内容を移していきます。
†
Counter: 9475 (from 2010/06/03),
today: 2,
yesterday: 1