HTML出力機能を実装して欲しい(PukiWikiをCMSとして使う)†
- ページ: BugTrack2
- 投稿者: akisa
- 優先順位: 低
- 状態: 却下
- カテゴリー: その他
- 投稿日: 2005-10-05 (水) 12:36:34
- バージョン:
メッセージ†
よろしくおねがいします。
PukiWikiを本来のWiki(複数人で編集)として利用せずに
個人で編集してCMSとしています。
そこで提案なのですが、
PukiWikiで編集したページをHTMLで出力し、
PukiWikiは編集する人しか見ないページにして
HTMLで出力したページを閲覧者に見せるようにはできないでしょうか?
PukiWikiのリードオンリーモードやセーフモードなどで一部の者しか
編集できなくすることができますが、サーバーへの負担を考えると
どうしてもPukiWikiよりHTMLのほうがいいとおもうのですが・・・-A
他にもSEO(動的なページではないので)の観点からや、
PukiWikiに対するスパムや荒らし行為の防止につながるので、
こういう機能?使い方?を選べるのはいいとおもうのですが。
コメント†
- WikiもCMSも編集する人数の上では違いが有りません。大抵のWikiやCMSは、どちらも一人でも複数人でも編集可能なはずです。 -- Ratbeta
- サマリでは「PukiWikiをCMSとして使う」となっていますが、実際に扱う話題は「PukiWikiでのページのHTML出力機能(かつリードオンリー)の(標準での)実装」ということでよろしいのでしょうか。 -- Ratbeta
- 実際に使うときは、PukiWikiは編集する人しか見れない状態で、来客(普通の閲覧)者にはHTMLのページ(PukiWikiで出力した)を見せるようにしたいのです。<説明下手でスミマセン(T_T) --akisa
- official:SEO とは、またちょっと別で、そういう仕組みを開発中です(学生さんに手伝ってもらって作ってます)。ある程度はできていて、うちの 学科のWeb は、これで作成しました。もう少しこなれてきたら公開しようかと思ってます(って言うほど、複雑なものではないんですが)。official:SEO はよく見ていませんが、うちで作っているのは、完全にHTML化してしまいますので、かなり制約があります。 -- 三浦克介
- 「完全にHTML化してしまいます」というのが気になったんですが、プラグインなどが利用できなくなるとかですか? --akisa
- プラグインを使用した結果、静的なHTMLになるだけのものは使えます。#refとか、&colorとかはOK。動的な処理が必要なプラグインは不可です。#searchとかはNG。 -- 三浦克介
- うちで作っている物の概要を説明しておきます。仕組みはいたってシンプルです。私の公開を待たなくても、ちょっと作業すれば、すぐに作れます。PukiWikiの機能を拡張した訳ではなく、PukiWikiとは別にツールを用意しました。
2台のサーバーを用意します (1台でも可能)。一方は、編集用サーバーで、Webサーバ+PHP+PukiWikiを載せます。http://pukiwiki.foo.ne.jp/ とします。もう一方は公開用サーバーで、こちらはWebサーバーのみです (PHP、PukiWikiは不要)。http://www.foo.ne.jp/ とします。
編集用サーバーは、普通のPukiWikiです。ちょっとだけ違う点は、index.php とは別に、HTML 化用の PHP (ここでは mkhtml.php とします) を用意し、mkhtml.php の方にアクセスすると、NAVBAR や TOOLBAR が消えるように細工をしておきます。そして、一つのページを用意し (ここでは、:config/HtmlTable とします)、公開するページ名と、それを公開する時の HTML ファイル名の対応表を記述しておきます。
公開用サーバーに次のような処理をするプログラムを用意します。言語は何でも良いです。
1) wget 等により、htt://pukiwiki.foo.ne.jp/mkhtml.php?:config/HtmlTable を取得、2) 上記のファイルをパースして、ページ名とHTMLファイル名を取得、3) 全ページについて以下を繰り返し、3-1) wget等により、http://pukiwiki.foo.ne.jp/mkhtml.php?ページ名 を取得、3-2) 上記のファイルの中の http://pukiwiki.foo.ne.jp/mkhtml.php?ページ名 というリンクを、対応する http://www.foo.ne.jp/HTMLファイル名 に置き換える。
基本的な動作は、これだけです。これに、添付ファイルを取得する処理を付けたりしてます。このプログラムを手動で実行するも良し、cronで定期的に実行するも良し。現在、編集用サーバーのPukiWikiにボタンを付け、これを押すと、公開用サーバーのスクリプトが実行されて、サイト全体、あるいは現在表示中のページがHTML化されるようなプラグイン&仕組み (sshでリモート実行するだけですけど) を実装中。 -- 三浦克介
- 公開されるのはもう少しかな?楽しみに待ってます! --akisa
- ということは、上記のような代物で良いのでしょうかね? 作ってくれた学生さんは、「公開するとは思っていなかったので、不完全ですよ」と消極的だったのですが、とりあえず、コードを整理して、α版としてなら出せそうな物になりました。 -- 三浦克介
- 自分が想像していたのとは少し違うような気がするのですが、チャレンジしたいので。是非。 --akisa
- devよりはofficialの話題かな、と思いましたが盛り上がっているようですね :) 三浦さんの仰るとおりで、仮に100%静的にしたいPukiWikiがあるとするならば、それは動的な要素を含めない前提でテキストを作って、スキンなどからも動的な/不確定な要素が含まれないようにする必要があると思います。でないと、例えばあるページに表示された #recent の結果が実態と合わなくなる、といった事態が起こります。MLでも言いましたがphp-cliを使う方法もあるのではないかと思います(逐次生成ではなくバッチ処理になりますが)。また、静的なファイルを生成する普通のPukiWiki(バックエンドは普通にPHPでPOSTを受け取る)、といったハイブリッドな案もあると思います。 -- henoheno
- では、つづきは、official:関連ツール/静的なサイトの管理ツールとして使う にて -- 三浦克介
- とりあえず移行ですね。 -- akisa
- 更新停止ですかね?公開待ってます。 -- akisa
- すみません。猛烈に忙しくって・・・ -- 三浦克介
- この件の「つづきのページ」は書きかけの状態で止まっていますので、このページに引き戻します。Wikiにおいては、どんな段階でも良いので、「ある程度まとまった状態」を維持しながら編集される事をお勧めします (^^; それはCVSでソースを管理する時に「必ずコンパイルでき、動作する状態」を維持しながら作業するのと似たようなものです-- henoheno
- 以下に移動させていただきましたので、余裕の空いた時にでもこちらでお続け下さい m(_ _)m それまでステータスは「却下」にしておきます。 -- henoheno
- official:自作プラグイン/dump2html.inc.php --
- これを首長くして待ってました。1.44のバックアップ、160ページ程度でしたらさくらで一括出力できました。仕様書の保存もろもろ本当に助かります。涙して感謝します。将来的には、2バイトファイル名対策ですかね。現実的には、ファイル名と、ページ名を分けるようなオプションがpukiwiki側にあるとよいなとか思うんですけど。 -- tomix
(以下、official:関連ツール/静的なサイトの管理ツールとして使う より移動)
関連ツール/静的なサイトの管理ツールとして使う†
本ページには、PukiWikiを静的なサイトの管理ツール=CMS (Contents
Management System) として使う為の情報が書かれています。Wiki本来の、不特定
多数の訪問者によるサイト構築という機能は失われます。企業や組織の公式
Webなど、外部からの書き換えを一切許さないサイトに適した内容です。
PukiWikiで作成したページをHTMLファイルに変換し、HTMLファイルを公開しま
すので、安全性のみならず、耐負荷性能も向上し、ミラーリングによる負荷分
散も容易です。ページ内容を書き換えるcomment, articleなどのプラグイン、
動的に内容を生成するsearchなどのプラグインは利用できなくなります。
作成中
必要なもの、スキル†
※編集用サーバーと公開用サーバーは1台にまとめることも可能です。
編集用サーバー†
- Webサーバー (Apache等)
- PHP
- PukiWiki
- ssh
※PukiWikiを使うことを前提にしてますから、当然、あるでしょう。
※編集用サーバーと公開用サーバーを1台にまとめる場合は、sshは不要です。
公開用サーバー†
- Webサーバー (Apache等)
- wget
- perl
- RCS (ci)
- cmp
- cp
- sshd
※多くのUNIX系システムでは、Webサーバー、wget以外は、標準でインストールされているコマンドです。
※編集用サーバーと公開用サーバーを1台にまとめ場合は、sshdは不要です。
スキル†
- UNIXシステム管理、Webサーバー、PHP、PukiWiki、HTML、CSS に関する相応のスキルが必要です。