デフォルトではCamelCaseがwikiページへの自動リンクになるが、ページが存在しないと「CamelCase?」のようになって不便な時がある。
$nowikiname = 1;
<meta name="viewport" content="width=device-width, initial-scale=1.0">
open -u USER,PASSWORD ftp.example.com mirror -X .svn/ -X .git/ -X cache/ -X diff/ -X trackback/ --delete --only-newer / /local/pukiwiki/ mirror -I *.dat --delete --only-newer /remote/pukiwiki/cache/ /local/pukiwiki/cache/ close quit
lftp -f pukiwiki-backup.lftp
function plugin_edit_preview() { ...略 header('X-XSS-Protection: 0'); // Fix for ERR_BLOCKED_BY_XSS_AUDITOR return array('msg'=>$_title_preview, 'body'=>$body); }
https、複数サービス対応したものが良い。
Google Search Consoleで、「cmd=edit」等がクロールエラーになる。
User-agent: * Disallow: /pukiwiki/*cmd=search* Disallow: /pukiwiki/*cmd=backup* Disallow: /pukiwiki/*cmd=diff* Disallow: /pukiwiki/*cmd=edit* Disallow: /pukiwiki/*cmd=unfreeze* Disallow: /pukiwiki/*cmd=freeze* Disallow: /pukiwiki/*pcmd=upload* Disallow: /pukiwiki/*plugin=newpage* Disallow: /pukiwiki/*plugin=rename* Disallow: /pukiwiki/*plugin=template* Disallow: /pukiwiki/*plugin=loginform* Disallow: /pukiwiki/*plugin=attach* Disallow: /pukiwiki/*sess*
pukiwikiユーザ認証はPHP mod_php版のみで、CGI版では使えない。
以下のように.htaccessに追加する事で実際に使用できた。
SetEnvIfNoCase Authorization "^(Basic .*)$" HTTP_AUTHORIZATION=$1
define('PLUGIN_SEARCH_DISABLE_GET_ACCESS', 0); // 1, 0
#lookup(検索,検索)
-[./?cmd=search&word=$1&type=AND 検索]
<!-- mod <label for="_p_lookup_$id">$interwiki:</label> /mod --> <input type="text" name="page" id="_p_lookup_$id" size="13" value="$default" />
ひとまず一度Firefoxで表示させれば勝手にURLエンコード/デコードしてくれるので、そのURLを貼り付ければ大概リンクが張れる
もしくは、Software/wiki自作プラグイン/url.inc.php を利用するとURLエンコードしてくれる。
ページが長くなってきた場合に編集が大変なので、見出し毎に編集するパッチ
// Memo/ ページ直下のみ展開 define('PLUGIN_TREEVIEW_EXPAND_LIST', '^(Memo)$'); // Memo/ ページ以下全て展開 define('PLUGIN_TREEVIEW_EXPAND_LIST', '^(Memo)');
?plugin=rename
?plugin=regexp
1回目:(Memo/.+)メモ 2回目:(\w+)メモ
1回目:\1 2回目:\1
?plugin=links
?plugin=yetlist
ページ名をリネームしたい時、「index.php?plugin=rename」を使うが、正規表現を入力してもエスケープされてしまい、思った通りの事ができない。正規表現を使えるように変更。
--- plugin/rename.inc.php +++ plugin/rename.inc.php @@ -19,7 +19,7 @@ $src = plugin_rename_getvar('src'); if ($src == '') return plugin_rename_phase1(); - $src_pattern = '/' . preg_quote($src, '/') . '/'; + $src_pattern = '/' . $src . '/'; $arr0 = preg_grep($src_pattern, get_existpages()); if (! is_array($arr0) || empty($arr0)) return plugin_rename_phase1('nomatch');
Memo\/(\w+)メモ
Memo/$1
plugin/geshi/geshi.php plugin/geshi/geshi/*.php
plugin/geshi.inc.php plugin/gechi_config/*.php cache/geshi/
chmod 777 cache/geshi
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0);
#geshi(php,number){{ <?php echo 'test'; }}
php -q pukiwiki_backup.php [from dir] [to dir] #^Memo#i
cp pukiwiki1.4.7/plugin/dump.inc.php pukiwiki/plugin/ patch < pukiwiki-1.4.3-php5-compat.patch
index.php?plugin=dump
#newpage(デフォルト階層1/デフォルト階層2/)
$auth_users = array( '編集可能とするユーザー名' => 'パスワード', ); $auth_method_type = 'contents'; $edit_auth = 1; $edit_auth_pages = array( '#.*#' => '編集可能とするユーザー名', );
添付ファイルを展開して、skin/ディレクトリに放り込む。
デフォルトのCSSでナビ領域が定義されているらしいので、以下のように<ul>タグを利用して、配置できるようです。
<div> <ul class="navi"> <li class="navi_left"></li> <li class="navi_right"></li> <li class="navi_none"> </li> </ul> </div> <?php echo $hr ?>
高さを指定する場合は以下のようにulタグに高さを指定する。
ul.navi { height:22px; }
#!/bin/bash # # $ chmod 755 backup.cron # $ crontab -e # ---- # 0 3 * * * /path/to/backup.cron > /dev/null 2>&1 # ---- # ABSPATH=$(cd $(dirname $0);pwd) LFTP=/usr/bin/lftp $LFTP -f $ABSPATH/backup.lftp
open -u user,password host mirror -X /ad/ -X .svn/ --delete --only-newer /public_html/pukiwiki /path/to/public_html/pukiwiki close quit
svn propset svn:ignore '*' trackback svn propset svn:ignore '*' counter svn propset svn:ignore '*' diff svn propset svn:ignore '*' cache svn propset svn:ignore '*.log' attach
DATA_DIR (wiki/*.txt) UPLOAD_DIR (attach/*) BACKUP_DIR (backup/*)
&br; #br ~を打ちますが、設定変更することで、改行をそのまま反映させる事もできます。
$line_break = 0; // デフォルト。[[br]] か ~で改行 $line_break = 1; // 改行を <br />に置換する
#setlinebreak(on)
#setlinebreak(off)
Basic認証したユーザがページを編集した場合に、バックアップにそのユーザ名を表示するようにしたパッチです。
IPアドレスはページの編集権限を持つユーザがバックアップを閲覧した場合のみ表示されます。
バックアップ一覧 MenuBar のバックアップを削除 1 (2007-09-16 (日) 15:16:26) - DEX (IP: 192.168.0.1) [ 差分 | 現在との差分 | ソース ]
希に添付したファイルをダウンロードすると、ファイル名が「index.php」になってしまう時があります。
文字コードの認識に失敗しているようです。最新の1.4.7では解消されています。
なので最新のpukiwikiにアップグレードするか、以下のようにmb_detect_order()で文字コードの認識順を指定すると直ります。
mb_detect_order('ASCII, EUC-JP, SJIS, JIS, UTF-8');
$filename = htmlspecialchars(mb_convert_encoding($this->file,'SJIS',mb_detect_encoding($this->file)));
Opera, Firefox等のRSSリーダ標準搭載ブラウザで、アドレスバーの部分にRSSアイコンが表示され、簡単にRSS登録できるようになります。
Pukiwiki 1.4.7では以下の書き換えを行う必要はありません。
<link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo $link_rss;?>" />
標準のskinでは、整形済みテキストの1行が長い場合、ブラウザに横スクロールバーが出ます。
それを、整形済みテキストの枠内でだけ横スクロールバーを出すように変更可能です。
<table border="0" style="width:100%; table-layout: fixed;">
pre { ... overflow: auto; }
OK | Internet Explorer 9.0 |
NG | Internet Explorer 6.0 SP2 |
OK | Firefox 18 |
OK | Chrome 23 |
OK | Opera 12.12 |
×[[http://hoge/image.cgi?a=b]]| ○[[http://hoge/image.cgi?a=b&.jpg]]|
#dlrank
#dlrank(ページ名)
#dlrank(,2)
#dlrank(,3,#(\.zip|\.php)$#i)
PyukiWikiはPukiWikiと同じフェイスマークを持っていますが、参照文字形式(&xxxx;)で
フェイスマークを出すことができません。
以下の変更で使用可能になります。
なおinsTagプラグインも使えるようになります。
index.cgi 455行
if ($::usefacemark == 1) { $line =~ s!\s(\:\)|\(\^\^\))|&(smile);! <img src="$::image_dir/face/smile.png" alt="$1$2" />!g; $line =~ s!\s(\:D|\(\^-\^\))|&(bigsmile);! <img src="$::image_dir/face/bigsmile.png" alt="$1$2" />!g; $line =~ s!\s(\:p|\:d)|&(huh);! <img src="$::image_dir/face/huh.png" alt="$1$2" />!g; $line =~ s!\s(XD|X\(|\(\.\.;)|&(oh);! <img src="$::image_dir/face/oh.png" alt="$1$2" />!g; $line =~ s!\s(;\)|\(\^_-\))|&(wink);! <img src="$::image_dir/face/wink.png" alt="$1$2" />!g; $line =~ s!\s(;\(|\:\(|\(--;\))|&(sad);! <img src="$::image_dir/face/sad.png" alt="$1$2" />!g; $line =~ s!&(heart);!<img src="$::image_dir/face/heart.png" alt="$1" />!g; $line =~ s!\s(\(\^\^;\)|\(\^\^;)|&(worried);! <img src="$::image_dir/face/worried.png" alt="$1$2" />!g; }
tracker_listを使用していて、タグが取得できない事があります。
正常:lan.inc.php LAN内リンクプラグイン 1.4.4 異常:[_name] [summary] [version]
「/page」の内容が長すぎると、preg_match()が失敗するようです。*1
(tracker_listの項目置換が正しく行われない。- しろくろのへや)
暫定対応として trackerのテンプレートページ「/page」を作成する場合、最後のタグの次行に「//////////」を書けば
そこまでをマッチング対象とするパッチを作成してみました。
tracker.inc.php v1.28
$pattern = join('',plugin_tracker_get_source($config->page.'/page')); + // "/page"の内容が長すぎるとpreg_match()が失敗するバグ(?)があるので + // "//////////"までをマッチ対象とさせる + $pattern_endpos = strpos($pattern, "//////////"); + if($pattern_endpos > 0){ + $pattern = substr($pattern, 0, $pattern_endpos); + } // ブロックプラグインをフィールドに置換
tracker.inc.php v1.28パッチ済み
※tracker_plus_list.inc.phpでも同じ変更で対処できるようです。-> v2.4で取り込まれたようです。
** [_name] [#wad2cdee] |RIGHT:100|LEFT:360|c |~サマリ|[summary]| |~リビジョン|[revision]| |~対応バージョン|[version]| |~投稿者|[name]| |~投稿日|&new{[_date]};| //////////バグ対策(以降マッチさせない) ***目次 [#h6c9ba12] #contents
$auth_users = array( '編集可能とするユーザー名' => 'パスワード', ); $auth_method_type = 'pagename'; $read_auth = 1; $read_auth_pages = array( '#^:.*#' => '編集可能とするユーザー名', );
$auth_users = array( '編集可能とするユーザー名' => 'パスワード', ); $auth_method_type = 'pagename'; $edit_auth = 1; $edit_auth_pages = array( '#.*#' => '編集可能とするユーザー名', );
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="150" HEIGHT="28" id="rsstest" ALIGN=""> <PARAM NAME="movie" VALUE="flash/blogtime-v5.swf"> <PARAM NAME="quality" VALUE="high"> <PARAM NAME="wmode" VALUE="transparent"> <PARAM NAME="bgcolor" VALUE="#FFFFFF"> <PARAM NAME="FlashVars" VALUE="bgcolor=0x000000&barcolor=0xffffcf&rssurl=index.php?cmd=rss10&dummy=a" > <EMBED src="flash/blogtime-v5.swf" quality="high" wmode="transparent"bgcolor="#FFFFFF" WIDTH="150" HEIGHT="28" NAME="rsstest" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" FlashVars="bgcolor=0x000000&barcolor=0xffffcf&rssurl=index.php?cmd=rss10&dummy=a"> </EMBED> </OBJECT>
<?php if ($is_page) { ?> <span class="small"> <?php require_once(PLUGIN_DIR.'topicpath.inc.php'); echo plugin_topicpath_convert(); ?></span> <?php } ?> <?php echo $hr ?>
snapshotプラグインを使う。
#snapshot #snapshot(./skin/default.ja.css)
http://localhost/pukiwiki/index.php?cmd=snapshot&page=aaa&css=./skin/default.ja.css
プラグインを作成しました。
Software/wiki自作プラグイン/lan.inc.php
div#menubar { <?php if ($media == 'print') { ?> display:none; <?php } else { ?> /* width:9em;*/ min-width:200px; /* 追加 */ width:220px; /* 追加 */ max-width:240px; /* 追加 */ padding:0px; margin:4px; word-break:break-all; font-size:90%; overflow:hidden; <?php } ?> }
div#menubar { min-width:200px; width:220px; max-width:240px; }
InterWikiNameで、「[http://絶対パス/ サーバー名] 名前」の用に指定する
例:localhostにアクセスする場合
[http://localhost/ localhost] raw
URLを指定する時は
[[ローカルのファイル>localhost:ディレクトリ名/ファイル名]]
自作プラグイン/attachref.inc.php - PukiWiki-officialを使うと便利。
表示したい場所に、以下のコマンドを入れて更新すると、ファイル入力欄がでるのでファイルを指定し、アップロードすると自動的にリンクが張られる
&attachref; &attachref(,,別名); // 別名を付ける場合 &attachref(,zoom,320x240); // 表示上の画像サイズを指定する場合