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: 10036 (from 2010/06/03),
today: 1,
yesterday: 1