サマリ | PukiWiki内でネットサーフィンプラグイン |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.4 |
投稿者 | upk |
投稿日 | 2003-10-28 (TUE) 00:37:14 |
注意:著作権には注意して下さい。利用者の責任でお願いします。
PukiWikiも1.4となり、HTMLを加工して表示する関係で、構文を大きく乱す恐れがあります。ご注意下さい。
他サイトのWebページを、PukiWiki内で奇麗に表示するプラグイン。
監視用に構築した MRTGなどの画面を、PukiWiki内に動的に表示することにより、PukiWikiからのシームレスな利用を可能にします。
アンカータグを細工して、PukiWiki内で巡回できるようにしています。 (全部が全部じゃないですが...)
また、Proxy対応をしていますので、インターネット接続できない端末からでも、ブラウズできるようになります。(まずい...?)
あと、フレーム指定でも見做しで無理矢理読もうとします。
#showhtml(http://pukiwiki.sourceforge.jp/) #showhtml(http://pukiwiki.sourceforge.jp/,1) #showhtml(http://pukiwiki.sourceforge.jp/,1c) #showhtml(http://pukiwiki.sourceforge.jp/,1h30mc) #showhtml(http://pukiwiki.sourceforge.jp/,30m) #showhtml(http://pukiwiki.sourceforge.jp/,-1) #showhtml(http://pukiwiki.sourceforge.jp/,c) #showhtml(http://pukiwiki.sourceforge.jp/,p) #showhtml(http://pukiwiki.sourceforge.jp/,a) #showcache #showcache(img)
HTMLファイルや、画像ファイル(wgetのような機能)をキャッシュ管理できます。
Proxy経由での利用にも対応しています。
不要なタグを削除し、また、アドレスの相対指定などの記述を、 ローカルで表示できるように、書き換えています。
また、マイクロソフト社のIIS固有の %u unicode encoding という非標準エンコードにも対応しています。
metaタグの自動ジャンプ指定時や、frame指定されている場合には、見做しで取得します。
BODYタグを除去する関係で、文字が見えにくくなったりするサイト固有に関わる変換をサイト固有変換定義ファイル([[:config/plugin/showhtml/site_local]])に定義することで回避できるようになっています。
イメージを取得したサーバが、何らかの原因で、障害が発生している場合には、キャッシュの有効期限が切れていても、延命するようになっています。 しかし、ページが移動された場合などは、この限りではありません。
#showhtml(url, cache_time, foot_btn, parm_reg)
URL(URI)を指定
http://localhost/pukiwiki/
キャッシュ有効時間および画像キャッシュの指定
キャッシュなし(0)
指定 | 説明 | 例 |
時間指定 | 数字 | 2 |
分指定 | 数字m | 15m |
時分指定 | 数字h数字m | 1h30m |
記念写真指定 | p のみ指定 | p |
追加撮影指定 | a のみ指定 | a |
画像キャッシュ指定(永久保存) | c のみ指定 | c |
画像キャッシュ指定 | 最後に c を定義 | 3c |
キャッシュ削除指定 | 負の値 (-1)を指定 | -1 |
※h,m,c,p,a などの英字は、大文字小文字同一視
※キャッシュの有効期限が到来している際に、サーバと接続できなかった場合には、キャッシュ利用を延命します。
閲覧中ページのキャッシュを作成するモードです。
画像も含めて、キャッシュを作成しますが、c と異なる点としては、アンカーが有効となっていて、次から次へとサーフィンしているイメージを キャッシュするところが異なります。
指定した URLのキャッシュが存在している場合は削除します。 また、処理は遅くなります。
showcache プラグインと併用すれば、渡り歩いて生成されたキャッシュを再度、表示することができます。
記念写真指定(p)で取得した htmlキャッシュファイルを、通常キャッシュ参照時は、永久保存(c)として参照できます。しかし、記念写真指定(p)の追加撮影が必要となった場合には、このオプションを指定することで、継続作業ができるようにしています。
このオプションは、永久保存(c)で参照することにより、不意な更新を抑止するための迂回オプションとなっています。
showcache プラグインとの連携用ボタンの表示有無
0(無)
#showhtml(http://pukiwiki.sourceforge.jp/,,1)
_include プラグインとの互換
なし
<body[^>]*>(.*)</body
CACHE_DIR | ./cache/ | キャッシュディレクトリを定義 |
HTML_CACHE_DIR | CACHE_DIR."html/" | キャッシュ・サブディレクトリに保存 |
HTML_CACHE_IMG_SIZE | 90 | サムネイル生成時最大サイズ |
SHOWHTML_FOOT | 1(有効) | フットライン表示可否 |
PukiWiki が導入されているディレクトリは、以下を想定し記述しています。適宜、読み替えて下さい。
PukiWiki導入先 | ディレクトリ |
本体 | /var/www/html/pukiwiki/ |
プラグイン用 | /var/www/html/pukiwiki/plugin/ |
ファイル名 | 導入先 |
showhtml.inc.php | /var/www/html/pukiwiki/plugin/ |
showcache.inc.php | /var/www/html/pukiwiki/plugin/ |
html2pw.inc.php | /var/www/html/pukiwiki/plugin/ |
pconfig.php | /var/www/html/pukiwiki/ |
proxy.inc | /var/www/html/pukiwiki/plugin/ |
proxy.local | /etc |
proxy.allow | /etc |
のいずれかに置けば利用可能となる。
Proxy機能を利用する場合は、pukiwiki.ini.php に define を追加するか、 proxy.inc を直接修正して利用して下さい。
httpd.conf に定義される Apache稼動ユーザおよびグループに、キャッシュ用ディレクトリが読めるように、権限を付与する。
User apache Group apacheの場合での例は、以下の通り。
mkdir -p /var/www/html/pukiwiki/cache/html chown apache.apache chmod 660
名称 | ファイル名 |
サイト固有変換定義ファイル | [[:config/plugin/showhtml/site_local]] |
URL名:日本語マッピングテーブル | [[:config/plugin/showcache/URL]] |
キャッシュホルダー名マッピングテーブル | [[:config/plugin/showcache/Folder]] |
サイト固有変換定義ファイル(旧:showhtml.def)
[[:config/plugin/showhtml/site_local]]
|置換前文字列|置換後文字列|
*showhtml サイト固有変換テーブル |color=FFFFCC|| |COLOR="silver"|| |COLOR=ivory|| |COLOR="#FFFFCC"|| |position:absolute;||
showcache利用時や、showhtml利用時に、URLを表示するのではなく、このファイルで定義してある意味のある日本語名を表示するようになる。
<title>タグを期待しても無駄な場合が多いので、個別定義としています。
[[:config/plugin/showcache/URL]]
**変換前URL --表示したい文字列
*URL名:日本語マッピングテーブル **http://pukiwiki.sourceforge.jp/ --PukiWiki本家
キャッシュの整理整頓で増えたサブフォルダーに日本語名で表示するようになる。
[[:config/plugin/showcache/Folder]]
**キャッシュディレクトリ名 --表示したい文字列
**./cache/html --保管箱
こ、こりゃまた強力ですね。
これ欲しかったので待っていました。しかし、取り込んだページに<base href...>が指定されているとリンクがまずいことになります。この部分は手を加える必要ありそうです。例えばhttp://www.yahoo.co.jp
おぉ。そんな指定がありましたね。忘れてました。うぅ。対応したら、また更新しておきます。
追加で、proxy.local等は管理者権限がないと/etcにコピーできないので、plugin内かpukiwiki導入先の方が良さそうですね。でもって要望ですが、環境変数http_proxyを拾うとうれしいです。(自分で直せって言われそう)
了解しました。baseタグの修正も簡単だし、環境変数も簡単ですんで、夜には更新できると思います。お待ちを。
環境変数の部分は、書き忘れていたんですが、pukiwiki.ini.php で define すれば終わりという逃げを作っておいたので、修正はしません。ドキュメントに追記しておきます。
baseタグと細々したところをちょっと追加しておきました。def にコメントが書けるようにとかのレベルですけども。
前のアーカイブからは、showhtml.inc.php のみ更新しています。あと、doc/ のドキュメントです。更新は、プラグイン本体だけで結構です。
自宅鯖とレンタル鯖の連携に使わせていただきましたB)
リモートが落ちていてもキャッシュを表示し続けるオプションとか……用途が違うか
サーバが死んでいる場合は、キャッシュを延命するようにしておきました。これ以上やると、ある意味、attachプラグインのようなキャッシュファイル名にする必要が出てくるので、記念撮影モードにはしないで、永久保存モードをつけておきました。c のみ指定すれば、永遠にキャッシュを消そうとはしません。
お疲れ様です。期待通り動いている模様です♪
ご苦労さまでした。いい感じで動いています。LAN内部のサーバから取り込むのに使用する時、警告がウザかったので、すでに""を返すよう変更してしまいました・・・ :)
proxyを利用しなくてもlocalに定義された帯域は出さないであれば判定できますけど、以外は、プライベートだろうがグローバルだろうが無駄な判定なので、localは出さないで入れておきましょうかね?
ありがたいです。いま一部書き直そうか迷ってたところです。お待ちしています。
対応しちゃいました。inc.php だけ添付しておきました。どうぞ。
一部不具合を修正し、1つのアーカイブにしました。これで一時、凍結します。継続利用してくださる方は、最新版にしておいて下さい。疲れた。
c の代わりに p を指定すると、何でもかんでもキャッシュしようと努力します。その上で、showcacheプラグインから、収集した画像などを楽しむということができるようになりました。(これでいいのだろうか?) ということで、もっぱら個人として楽しむ以外には、大きく著作権に触れることでしょう。ご注意下さいませ。
現在 p のオプションを強化しています。現在の版だと src= しか取得しませんが href= も取得するように試みます。
%u unicode encoding 対応版ができました。画像を取得しなければ、問題ないんですけどね。近々、更新します。
添付ファイルが消されてますねぇ。何か問題ありですかね?
%u unicode encoding 対応版を添付しておきました。他、強化していますが。
設置しようと思ったのですがプレビューすると
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD> <BODY></BODY></HTML>と表示するのみです。PHPバージョンの問題?もしくは回線の問題でしょうか。
showhtmlから利用している、proxy.inc または、pconfig.php のいずれかが利用できないと、全部、このように真っ白になってしまうようだというのは確認しましたが、あとは分かりません。忘れたファイルとかって大丈夫ですよね?
設置位置等ではないみたいです...。apache上の設定か何かかなあ...
ん?pconfig.phpをブラウザ上で直接呼び出したときはどんな挙動になります?上記吐き出しと同じソースになるのでちょっと気になったんですが
ひとまずpukiwiki.phpと同階層にproxy.incを用意したら反応がありました。
Call to undefined function: array_key_exists() in /hoge/plugin/showhtml.inc.php on line 80これはpconfigをきちんと読めてないってことでしょうか。
array_key_existsは、PHP4.1.0以降からサポートだそうです。で、読めてないですね。昔の pconfig だと、この関数は使ってないんですけどね。
了解しました。OS10.0.4PHP4.0.6環境ですんで。10.1やふおくでおっかけようか、別マシン立ち上げるか考えどころです。
行き先掲示板が利用できないという限定が付きますが、ただ、showhtmlのみの利用であれば、古い pconfig を使えば大丈夫かも。rel.0 というのを貼っておきます。確か、何か対応のためにshowhtml自体を修正した記憶があるんですけど、失念しちゃった。まぁ、とりあえず。
sekineと申します。便利なpluginをありがとうございます。Wikiクローン(MoinMoin)を利用してたのですが、最近xoops+PukiWikiに移行しました。で、過去の資産を生かすにはどうしたものかと思ってたところこのプラグインを発見しました。上記の説明を読んでplugin一式を導入しました。適当なページに
#showhtml(http://mydomain/MoinMoin/wiki-moinmoin/moin.cgi/XXXXX,c) #showcache(ext,./cache/html,1) #showcache(img,./face) #showcache(img,./image/)と書いて表示させると、MoinMoinで作ったページが表示されて、その下に管理用コマンド(html,face,image)が表示されます。faceとimageにはPukiWikiで定義されているファイルが幾つか一緒に表示されます。が、htmlのほうは何も表示されません。./cache/htmlの下をshellで見ても何もファイルは出来てませんでした。本当はここでhtmlファイルもキャッシュとして表示されなければならないのでしょうか?なお、site_local,URL,Folderの各設定ファイルもPukiWikiファイルとして作成してURL以外は上記の例に倣っています。ちなみに環境はVine2.5, php-4.2.3, apache-1.3.26, PukiWikiMod 0.03 Based on PukiWiki 1.3.3です。よろしくお願いいたします。
こちらの場合は、proxy.inc が機能していないように見えるんですけどね。
proxy.incの設定を見直してみましたが、状況は変わりません。サーバはproxyを利用してInternetに繋がるようにはなってないので、proxy.incの設定では機能を無効化すればよいのですよね?
proxy機能は利用していなくても、そのproxy.inc内の機能は利用しますから、無効化すれば云々と言っても、たぶん、その手立てでも駄目だと思います。
レスポンスが遅くてすみません。また説明不足で申し訳ありません。proxy.incのための設定はpukiwiki.ini.phpの中に
define("PROXY_USE", "0"); define("PROXY_LOCAL", "proxy.local"); define("PROXY_TO_ENCODING", "EUC_JP"); define("PROXY_ACCEPT_LANGUAGE", "ja");としています。さらにproxy.localでは
192.168.*とだけ書いています。
1.4化したおかげで稼動しました。さて、pオプションを指定すると
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in plugin/showhtml.inc.php on line 80 Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in plugin/showhtml.inc.php on line 364 Warning: Invalid argument supplied for foreach() in plugin/showhtml.inc.php on line 368とアラートがでます。キャッシュディレクトリの問題でしょうか。
終了しました。失礼しました...。
attachしたhtmlファイルのshowhtml呼び出しって可能なんですか? いや、自分でやってみればいい話なんですが。結構HTMLで吐き出すソフトもあったりしてFTPするのもめんどくさいのでどうかなあ、と。