こういう機能が欲しい、こういう風になってほしい、というご要望はここに書いてください。
要望
- □ テーブルのセル結合 - ryo
- ■ vikiwiki_zool ブランチ版の修正について (6) - zool
- ■ vikiwiki_zool ブランチ版の修正・拡張について (5) - zool
- ■ vikiwiki_zool ブランチ版の修正・拡張について (4) - zool
- ■ リストの改行記述について - Benzo
- ■ vikiwiki_zool ブランチ版の修正・拡張について (3) - zool
- ■ RSSのタイムスタンプ - Benzo
- ■ ページとプラグインのセキュリティのルール順序変更に関する修正 - トンカツスカヤ
- ■ vikiwiki_zool ブランチ版の修正・拡張について (2) - zool
- ■ RSS作成機能への正規表現による制御実装ほか - トンカツスカヤ
- ■ Digest 認証方式の実装について - zool
- ■ w3m 等でのタブレイアウトの表示について - zool
- ■ 書庫について - Benzo
- ■ vikiwiki_zool ブランチ版の修正・拡張について - zool
- ■ NGワードの更新ページについて - Benzo
- ■ RDスタイル、tidyプラグインの組み込み - mopia
- ■ listプラグインの表示 - Benzo
- ■ Vikiwiki.netのセキュリティ強化 - Benzo
- ■ エイリアスの登録タイミングの変更 - Benzo
- ■ 削除機能の強化 - Benzo
- ■ ページ単位の凍結 - ネコネコ
- ■ エイリアス名変更に対する防御策 - Benzo
- □ 一括バックアップとリストア - Benzo
- vikiwiki.net における LayoutPage の書き込み制限に関する問題 - zool
- VikiWikiへの要望ではないのですが - no_name
- Vikiwikiへのリンク - Benzo
- 静的HTMLをリロケータブルに - zappy
- ログの採取 - Benzo
□ テーブルのセル結合 - ryo
新年あけましておめでとうございます。 さて、早速なのですが、Vikiwikiは今のところ、テーブルのセルを結合する機能はないですよね??
あると便利だなと思っているので、要望事項として挙げさせていただきます。 よろしくお願いします。
■ vikiwiki_zool ブランチ版の修正について (6) - zool
いつも御世話になっております。
# 現在手元の OQO の液晶画面が壊滅的に写らなくなったので、修理依頼をした
# ところ、見積額が新品の値段とほとんど同じだったので、仕方なく新品の OQO
# を入手したところ、購入後数日でキーボード入力にハードウウェア的な不具合が
# 発生し、半泣きモードで再度購入店に障害対応を依頼する等、何かとばたばた
# しておりました。
さて、随分と遅ればせながら、 vikiwiki_zool ブランチ版に若干の fix を加えましたので御報告致します。
- 変数 $WIKIVERSION を "2.1.0" に修正しました。
- 各種 javascript コードを修正しました。
- "class は予約語だ!" 問題を解消しました。
- comment.js をオブジェクト指向に対応したコードに書き換えました。
- 全ての javascript コードのオブジェクト指向化が完了しました。
- その他いろいろとリファクタリングを行いました。
- IE, Firefox で動作を確認しています。
- プラグイン authlink において、 OpenID 認証に不具合が発生する問題を修正しました。
- lib/extension/file.rb が lib/generator/file.rb に置かれていたので、元に戻しました。
以上、どうか御覧頂ければ幸いです。
- こちらこそ、いつもありがとうございます(こればっか orz)。 - mopia
OQOいいですね〜。小さいPCはそれだけでも価値あり!って感じです。 不具合はご愁傷様ですが...
# > OQOいいですね〜。小さいPCはそれだけでも価値あり!って感じです。
# どうも、有難うございます。
# 手元の OQO は障害対応が完了し、自宅に戻ってきました。今週末にようやく
# 環境の引越しが完了し、実戦に復帰しました。
## 手元の OQO はモバイルの主力機兼自宅の副主力機兼 MP3 audio player の
## 母艦機だったので、故障中はとても不便でした... orzどうも、御覧頂き有難うございます。
その後、また VikiWiki に手を入れましたので、追記致します。
- JugemKey 認証に対応しました。
- Livedoor 認証に対応しました。
- これも OpenID に対応しているのですが、気にしないことにします (^^;;)。
- 余談ですが、はてな認証が OpenID に対応したようです。しかし、僕の手元のアカウントで試したのですが、 OpenID では default ではパスワードを SSL を使わずに渡すようですね...。
以上、御覧頂ければ幸いです。 -- Z.OOL.@京都徘徊から帰宅
新年明けましておめでとうございます。昨年は随分と御世話になりました。 これからも、どうか宜しくお願い致します。
さて、この度は vikiwiki_zool 版を取り込んで頂き、誠に有難うございます。
取り急ぎ CVS の trunk 版でうまく取り込めていない新しいファイルを merge した上で、 trunk 版と vikiwiki_zool 版を同期させました。
さて、2008 年の、僕の VikiWiki 関連の方針としては、
- 文法回りを徹底的に強化してみる。
- それに関連して、 WikiWyg との連携を模索してみる。
- 認証回りを徹底的に強化してみる。
- Slidy との連携も少し模索してみる ;-)。
という方向で進もうかと思っています。どうか宜しくお願い致します。 -- Z.OOL.@坂本美雨の新譜が気になる
- 文法回りを徹底的に強化してみる。
- あけましておめでとうございます。
こちらこそ、昨年は本当にお世話になりました。 Z.OOL.さんのおかげで認証周りだけでもかなりのものになっちゃいました。 が、私のほうの抱負はまだ考えてないです...
trunckのマージ、失敗してたんですね、すみません。 あと、時間もかかってしまって、こちらもすみませんでした。
今年もいろいろお世話になると思いますが、よろしくお願いします。 - mopia
- やっぱり、なんとかRailsに絡みたくないですか? - mopia
# お返事が遅れまして、大変申し訳ありません。
Ruby on Rails に関しては、僕も絡んでみたいと思っています。
ただ、僕は Rails の方は未だほんの少し解説書を読んだだけの状態で、何かお手伝いが出来る段階では無いので、誠に申し訳無いのですが。 -- Z.OOL.@伊勢市某所
■ vikiwiki_zool ブランチ版の修正・拡張について (5) - zool
いつも御世話になっております。
さて、ここまでの vikiwiki_zool ブランチ版の修正・拡張についてのまとめについて御報告します。
- CAPTCHA 認証に対応しました。
- spambot 避けの御供に是非どうぞ ;-)
- CAPTCHA 認証の詳細に付いては、 tool.txt を御覧下さい。
- 次のコードについてリファクタリングを行いました。
- ref, references を用いた注釈に関するコードのリファクタリングを行いました。
- 実際に HTML を生成するメソッドを、各種 WikiStyle クラスに移しました。
- VikiWiki::XmlGenerator::References, VikiWiki::XmlGenerator::Ref クラスをそれぞれ、VikiWiki::References, VikiWiki::References::Ref クラスに移しました。
- CryptPassword クラスのコードについてリファクタリングを行いました。
- いろいろな認証プロトコルに対応させていくうちに、コードの収拾がつかなくなってしまっていたので (^^;;;)
- /etc/passwd による認証、/etc/digest による認証、はてな認証、 OpenID 認証に関するコードをそれぞれ CryptPassword::Basic, CryptPassword::Digest, CryptPassword::Hatena, CryptPassword::OpenID クラスに分割しました。
- ref, references を用いた注釈に関するコードのリファクタリングを行いました。
- 各種 WikiStyle? のヘルプページの修正を行いました。
- [[[WikiStyle ...]]] による Wiki スタイルの切替えについての説明を前に持ってきました。
- [[[WikiStyle ...]]] についての説明を、対応している WikiStyle? のヘルプページから読めるようにしました。
- VikiWikiStyle, RDLikeWikiStyle のヘルプページに、注釈の書式に付いての説明を追加しました。
- VikiWiki 実行時の $: について $VIKIWIKIDIR/lib, $VIKIWIKIDIR の前に $VIKIWIKIDIR/site_local/lib, $VIKIWIKIDIR/site_local を見に行くようにしました。
- $VIKIWIKIDIR/site_local 以下に、各サイトローカルなプラグイン等の各種コードを置くことが出来るようにしてみました。
- 任意のユーザに対して読み込みが許可されているページについて、静的 HTML が生成されるようにしました。
- 任意のアクセス制限が設定されているページが静的 HTML を生成できない状態を修正しました。
- 書込みが禁止されているページについて、プラグイン edit, comment, bbs 等の編集フォームの表示を抑止する設定値 PROTECT_EDIT を追加しました。
- プラグイン location について変更を行いました。
- #location 10 FrontPage というように第1引数に秒数を表す数字を記述すると、与えられた秒数後にページにジャンプするようにしました。
- この時、 location プラグイン自身はジャンプ先の絶対 URI へのリンクを表示します。
- いわゆる「たらい回しページ」の作成に有用です。
- #location 10 FrontPage というように第1引数に秒数を表す数字を記述すると、与えられた秒数後にページにジャンプするようにしました。
- プラグイン history について変更を行いました。
- フォーマット指定で "diff" で差分ページへのリンクに置き換えられるようにしました。
- その他、様々なバグフィックスを行いました。
- Tidy を通した時にエラーや警告を出力する箇所を修正しました。
- 管理ページの「パラメタを修正する」ページにおいて、設定値 BACKUPCMD, BACKUPDIR 正常に動作しない不具合を修正しました。
- 他にもいろいろとバグフィックスを行いました。
- この辺は記憶があやふやで誠に恐れ入ります m(_ _)m
あと、未だ手を付けていませんが、以下の設定値の廃止を考えています。
- HTMLTAG
- XHTML を直接記述出来る XHTMLStyle が代替となるかと思います。
- USESYSREPLACE
- anonymous 等の置き換えの抑止は、設定値 REPLACE_WORDS に "anonymous" => "anonymous", ... と記述することで対応できるかと思います。
- USEAUTHFORMPAGE
- AuthFormPage を使用したくない場合は、ページを削除することで対応できるかと思います。
以上、どうか御覧頂ければ幸いです。
- いつもながらありがとうございます。
Captchaまで実装してくれたんですね。 Z.OOL.さんのおかげで、VikiWikiの認証機構は他のWikiでも類を見ないほど 充実したものになりました。 まだソースを見れていないんですが、いつもキレイに作っていただき、見るのが楽しみだったりしています。 (今は見れない環境なので...見たら書き込みますね。)
設定値の廃止の件はよいと思います。 VikiWiki 2.0 UP計画を考えているので、いらないものはここで廃止してもいいかと思います。
今後とも、宜しくお願いします。 - mopia
どうも、御回答を頂き有難うございます。返事が遅れてしまい、どうも済みません。
その後、また VikiWiki に手を入れたので、追記致します。
- 前述の設定値を廃止しました。また他にも、以下の設定値を廃止しました。
- LOG
- 設定値 LOGFILTER と統合しました。 LOGFILTER に nil, "none" を設定することでログ採取を抑止するようにしました。
- NGWORDS
- NG ワードは /etc/ngwords ファイルで設定するようにしました。
- COMMENT_NGWORDS
- 上述と同様。
- PAGENODE
- 設定にかかわらずページの階層構造を使用するようにしました。
- ログインプラグイン login で type=[basic|digest|hatena|openid] を引数に指定することにより、認証方式を指定できるようにしました。
- AuthFormPage に #login type=hatena と #login type=openid を記述することにより、はてな認証と OpenID 認証の両方の方式で VikiWiki にログイン出来ます。
- ローカルで立ち上げた VikiWiki サーバで、はてな認証と OpenID 認証を使用する設定をしているとオフライン時にログイン出来なくなって困るなとか。
- はてな認証が OpenID に対応してなくて、両方の認証に対応させた方がうれしいなとか。
- いろいろ考えてこの機能を付けました。
- AuthFormPage に #login type=hatena と #login type=openid を記述することにより、はてな認証と OpenID 認証の両方の方式で VikiWiki にログイン出来ます。
- トラックバック受信プラグイン tbrecv で、 CAPTCHA 認証に対応しました。
- トラックバックスパム避けの御供に是非どうぞ ;-)
以上、どうか御覧頂ければ幸いです。 -- Z.OOL.@自宅で湘南 BeachFM 視聴中
- 前述の設定値を廃止しました。また他にも、以下の設定値を廃止しました。
あれから、またいろいろ手を加えましたので、追記致します。
- TypeKey 認証に対応しました。
- 実装した後で TypeKey が OpenID に対応していることに気が付きました ;-(
- が、気にしないことにします ;-)。
- 実装した後で TypeKey が OpenID に対応していることに気が付きました ;-(
- プラグイン login のコードをリファクタリングしました。
- コードが gdgd だったので ;-(。
- クラス CryptPassword のクラス名を Authentication に変更しました。
- もはや /etc/password というより、認証機構を抽象化したクラスなので。
- 簡易テキストスタイル SimpleStyle を用意しました。
- VikiWiki の見出しとリンク関連及びプラグイン記法と、 XHTML タグの直書きのみに対応した記法です。
- いろいろと wiki 文法を覚えるのが面倒だと言う方に是非どうぞ。
- ページ編集において、 &time;, &date;, &url;, &sign; が、現在の時刻、現在の日付、現在のユーザの URL、現在のユーザの署名 (シグネチャ) にそれぞれ置き換わるようにしました。
- ここでユーザの URL は OpenID 認証で使用したログイン URL のことを言います。
- ユーザの URL とユーザの署名はニックネームと共にプラグイン nickname を用いて編集できます。
- その他いろいろと fix を行いました。
- 詳細が思い出せず、誠に恐れ入ります m(_ _)m。
以上、御覧頂ければ幸いです。 -- Z.OOL.@秋葉原・江ノ島徘徊帰り
- TypeKey 認証に対応しました。
- 長い間留守にしてしまい、申し訳ありませんでした。 - mopia
すべてHEADに取り込ませてもらいました。 マージ済みだったのでファイルのコピーだけでできました。 細かいところまで、いろいろありがとうございます。
1点質問ですが、タブ切り替えが動作しない原因は知ってますか?
どうも、御返事が遅れて大変申し訳ありません。 trunk に vikiwiki_zool ブランチ版を取り込んで頂き、誠に有難うございます。m(_ _)m
タブ切替えが動作しない件ですが、javascript に対応していても DOM に対応していないブラウザ*1の場合にタブ切替えがうまく動作しないことがあったために、 DOM に対応するかどうかをチェックするようにしたように記憶しています。
また、この際に seltab.js のコード全体をオブジェクト指向を意識したコードに書き換えています。
fix に関する記憶ががあやふやで誠に恐れ入ります。 -- Z.OOL.@BGM:"The Never Ending Story";Miu Sakamoto
*1 モバイル機器搭載のブラウザなどの場合です
- Z.OOL.さんどうもです。
少なくともIE7はタブ切り替えがNGのようです。 TabSelector?が宣言されていない旨のエラーとなります。 - mopia
大変申し訳ありません。職場端末の IE6 で現象を確認しました。 seltab.js 中の 変数 class を全て klass と書き換えて下さい。
# javascript で class が予約語になっていることになかなか気付かずに
# 半日近く頭を抱えてました... orz当方のミスで大変御迷惑をお掛けしてしまい、誠に恐れ入ります。 -- Z.OOL.@そろそろ Wine+IE 導入しよう...
- Z.OOL.さん、修正できました。ありがとうございます。 - mopia
■ vikiwiki_zool ブランチ版の修正・拡張について (4) - zool
いつも御世話になっております。
さて、ここまでの vikiwiki_zool ブランチ版の修正・拡張についてのまとめについて御報告します。
- MediaWiki 文法スクリプトである MediaWikiStyle を新たに用意しました。
- ギャラリー形式の画像の表示や複雑な数式等、一部の書式には未対応です。
- MediaWikiStyle, VikiWikiStyle, RDLikeWikiStyle で脚注に対応させました。
- 実際には MediaWikiStyle で実装した脚注の書式を VikiWikiStyle, RDLikeWikiStyle でも利用できるように VikiWikiStyle, RDLikeWikiStyle の文法を拡張しました。
- はてな認証によるユーザ認証に対応させました。
- 外部のはてなアカウントを用いて、 VikiWiki にログイン出来るようになります。
- 以下の問題について、バグフィックスを行いました。
以上、どうか御覧頂ければ幸いです。
追記:
その後、またいろいろと vikiwiki_zool ブランチ版に手を入れました。そのことについて以下に追記します。
- OpenID 認証によるユーザ認証に対応させました。
- Livedoor 等が導入を進めている最近流行りの :-) 認証プロトコルです。
- 外部の OpenID 認証サーバの認証情報を用いて VikiWiki にログイン出来るようになります。
- OpenID の認証情報より nickname の情報を取り出して anonymous による文字列の置き換えや #history プラグインで利用できるようにしました。
- これらのユーザ認証についてのドキュメントは tool.txt に書きました。
- 以下の問題について、バグフィックスを行いました。
- XHTML スタイルが正常に動作し無かったのを修正 - Z.OOL.
- VikiWiki::Plugins::BaseModule#js_document_write メソッドで文字列中のバックスラッシュ自体をエスケープしていなかったのを修正 - Z.OOL.
以上、どうか御覧頂ければ幸いです。 -- Z.OOL.@最近肉体労働続きでへろへろモード
再追記:
済みません、その後、いろいろと抜けが見付かりましたので、再度追記します。
- 以下のプラグインを追加しました。
- #authlink プラグイン
- form 認証や openid 認証等において、セッションのログイン及びログアウトのためのリンクを提供します。
- #nickname プラグイン
- 自分のニックネームを編集するためのプラグインです。
- #openid プラグイン
- OpenID の delegate のための <link rel="openid.server" href="..." />, <link rel="openid.delegate" href="..." /> ヘッダを出力するためのプラグインです。
以上、どうか御覧頂ければ幸いです。 -- Z.OOL.@BGM:"真夏の奇跡";The BOOM
- いっぱい、ありがとうございます。 - mopia
さっそく見させてもらっています。 MediaWikiStyle?もできてるんですね〜。 すごいです!
- 取り込みましたので、さっそくリリースします。 - mopia
どうも御多忙のところ、 vikiwiki_zool ブランチ版を取り込んで頂きまして有難うございます。たった今、 trunk 版を拝見しました。 -- Z.OOL.@BGM:"風花";Miu Sakamoto
■ リストの改行記述について - Benzo
いつも便利に使わせて貰っています。
リストアイテムの改行を行う場合、今のところ文中に#{br}を入れるほかありません。しかしながら、これだと長いアイテムを記述する時にひたすら一行が長くなってしまいます。
練習場にためし書きしたような記法で一つリストアイテムの記述を改行出来るようにしてもらえるとありがたいです。
時々なぜか制限に引っかかるのでなるべくはしょった失礼な書き方になっています。ご気分を害されたら申し訳ありません。
-
現状練習場に書いた方法ならできるのですが、どうでしょうか?
あとは、スタイルシートで<li>の中の<p>の上下マージンをなくすという方法もあります。 - mopia -
なるほどこうすればよかったのですね。完全に解決です。
さすがにテーブル内で同じ事はやれないのですが、これはどこからかcopyすることにします。ありがとうございました。 - Benzo
■ vikiwiki_zool ブランチ版の修正・拡張について (3) - zool
いつも御世話になっております。
さて、ここまでの vikiwiki_zool ブランチ版の修正・拡張についてのまとめについて御報告します。
- @sys["BASEDIR"]/etc/digest を管理・更新するためのプラグイン
#updateを新設しました。 - プラグインモジュール VikiWiki::Plugins::BaseModule で参照可能なインスタンス変数として、
[[[WikiStyle ...]]]で囲まれた領域にプラグインが置かれている場合に、その領域のスタイル名を保持するための@styleを新設しました。@sys.page.styleでは、そのページ全体の Wiki スタイル名しか取得できないので。- これに伴い、
#i, #sub, #sup等のプラグインを[[[WikiStyle ...]]]に対応するように修正しました。
- 履歴表示のためのプラグイン
#historyを修正しました。- 特定の版に revert するための編集ページへのリンクを追加しました。
#history "History of this page" "* version. [page time] -- user ([Source source]|[revert Revert])というように履歴表示のフォーマットを指定できるようにしてみました。
- トンカツスカヤさんのページとプラグインのセキュリティのルール順序変更に関する修正を取り込んでみました。
- XHTML をそのまま記述するための Wiki スタイル XHTMLStyle を新たに用意しました。
<a name="..." href="...">, <b>, <h1>, <h2>...等の限定されたタグと属性を構文解析により DOM に変換して、それ以外のタグを認識しないようにしてあります。[[[WikiStyle ...]]]で囲んで一時的に Wiki スタイルを変更する機能が有効です。
- テキストを
<pre>...</pre>で囲って表示させるための Wiki スタイルである TextStyle を[[[WikiStyle ...]]]が有効になるように修正しました。 - その他いろいろ修正しました。
- Benzo さんの御要望に関する件について、後述の通り修正しました。
- トンカツスカヤさんの修正のうち、tocプラグインの修正ついて、設定値によらず無条件で既にあるアンカーの後に新たにアンカーを設置しないようにしました。
以上、どうか御覧頂ければ幸いです。
P.S. 今後の vikiwiki_zool ブランチ版の修正・拡張については、「Wiki 文法強化月間」ということで (^^;;;)、いろいろと Wiki 文法の追加を考えています。
現在、随分と以前に書きかけになっていた MediaWiki の文法スクリプトが何処かに埋もれてしまっているので(^^;;;)、捜しているところです。
-
たくさんの修正どうもです。 ぜひ、取り込んでください。 私のほうもちょうどWiki文法の追加を検討していました。 WikiCreOle?とMarkDown?の2つがターゲットです。 亜種に近い形なら簡単なのですが、同じ実装に近づけようとすると難しいところです。 - mopia
返事が遅れてしまい、どうも済みません。上記の修正を trunk 版に反映しました。
また、 vikiwiki_zool ブランチ版にいささか不完全ながら MediaWiki 文法スクリプトを追加しました。Wiki 文法の追加については、文法のうちシステムに関わる部分など(MediaWiki における署名や名前空間等)は後回しになっても仕方ないかなと思っています。 -- Z.OOL.@年度始め進行でへろへろ多忙モード
■ RSSのタイムスタンプ - Benzo
いつも便利に使わせて貰っています。リリースのタイミングなどを知るためにRSSをチェックしていますが、何も更新がないのにタイムスタンプが新しくなっているため引っかかったりします。細かい点なのですが、気になったので要望という形でお願いします。
- 本サイトのRSSから、正規表現により不要なページ更新(MyDiary?ではじまるもの)の通知を排除しました。 - mopia
「最新の更新」ページでも同様の現象が起こっているようです。 vikiwiki_zool ブランチ版で、リポジトリ内のファイルの変更がない場合は更新を行わないように以下のように修正を行ってみました。どうか御覧頂ければ幸いです。 -- Z.OOL.@年度末進行でへろへろ多忙モード
# vikiwiki/lib/diffcvs.rb の 54 行目付近 (抜粋) ... 54: File::chmod(@mode|0666, file) 55: end # ↓ text が file の内容と同一の場合はファイルに # 書き出さないように修正。 56: if text && (text != readFile(file)) then 57: File::open(file, "w") do |f| 58: f.write(text) 59: end 60: end ...済みません。trunk 版の 1.9.9.74 において vikiwiki/lib/diffcvs.rb の writeFileメソッドがリファクタリングされて問題は解消されていますので、上記の修正は忘れてください。 -- Z.OOL.
■ ページとプラグインのセキュリティのルール順序変更に関する修正 - トンカツスカヤ
こんばんわ。 いつもありがたく使わせていただいております。
今回は、セキュリティのルール順序変更に関して少し改造させていただきました。
今回もミニ改造ですが、見ていだだければ幸いです。
どうぞよろしくお願いいたします。
トンカツスカヤさん、どうも有難うございます。早速 vikiwiki_zool ブランチ版に取り込んで動作確認を行いました。
ところで、 patch ファイルを作成する場合は、
$ diff -urN vikiwiki2_orig/ vikiwiki/ > vikiwiki_patch.diff # ↑ここで、 vikiwiki2_orig/ は改造前の vikiwiki2.zip を展開したディレクトリ # vikiwiki/ は改造後の vikiwiki のディレクトリ
として頂ければ、 patch ファイルが1個のファイルに纒まり、パッチの配布や適用が簡単になるので助かります。 -- Z.OOL.
- ありがとうございます。patchファイルの件、次回から気をつけますね。 - トンカツスカヤ
- トンカツスカヤさん、変更ログ(vikiwiki.txt)に名前を載せたいんですが、幅が狭いので、cutletでいいですか? - mopia
- はい。OKです。ありがとうございますm(_)m - トンカツスカヤ
- 早!!これで心置きなく、次のリリースを出せます。 - mopia
■ vikiwiki_zool ブランチ版の修正・拡張について (2) - zool
いつも御世話になっております。
さて、現在までの vikiwiki_zool ブランチ版の修正・拡張した点について、今一度まとめてみました。
- フォームによる Digest 認証について修正を加えました。
- javascript による MD5 ハッシュ関数モジュールを自前で用意しました。
- 別途 Paj's Home による md5.js を用意する必要は無くなりました。
- digest_login.js をオブジェクト指向を意識したコードに書き換えました。
- javascript による MD5 ハッシュ関数モジュールを自前で用意しました。
- tidy による HTML の整形時に warning が発生する箇所について修正を加えました。
- 随分と VikiWiki の吐き出す HTML に磨きがかかりました ;-)
- RSS 出力において、設定値 USEPATHINFO が true の時に、リンクが http://.../foo/bar/baz.html の形式になっていなかったのを修正しました。
- プラグイン #toc において、見出しアンカー直後の "_" を " " に改めました。
- トンカツスカヤさんのパッチを vikiwiki_zool ブランチ版に取り込んでみました。
- トンカツスカヤさんによるRSS 出力等の改造を取り込んでみました。
- script, noscript 関連のメソッドを新設しました。
- 複数のプラグインで
<script><!-- document.write('...') //--></script>による表示を利用できるように、以下のメソッドを新設しました。- VikiWiki::Plugins::BaseModule#js_document_write
- 任意のテキストを
document.write('...')で囲むメソッドです。 - VikiWiki::Plugins::BaseModule#plugin_script
<script><!-- ... //--></script>を生成するメソッドです。- VikiWiki::Plugins::BaseModule#plugin_noscript
<noscript> ... </noscript>を生成するメソッドです。
- 複数のプラグインで
- タブレイアウトで編集結果をプレビューすると本文のタブに遷移する問題を修正しました。
- タブレイアウトにおいて編集画面からページを編集した時に、プレビューを用いて編集結果をプレビューすると、編集画面のタブでは無く本文のタブに遷移する現象を修正しました。
- 待ってました!!ぜひ、取り込んでください。 - mopia
こちらもいろいろいじっているので、zoolさんのブランチから取り込みにくいかもしれません。
- Digest認証はただただスゴイの一言です。
- トンカツスカヤさんも開発に携わっていただけて、本当にありがたいです。
- #tocの見出しアンカーはその手がありましたね。
- script, noscriptは共通化すると使い道が多くなりますね。
mopia さん、返事が遅れてどうも済みません。現在までの修正をご覧頂き、ありがとうございます。
trunk 版での mopia さんの修正はすべて vikiwiki_zool 版に取り込みました。trunk 版への取り込みは今しばらくお待ちください。-- Z.OOL.@京都市某所のネットカフェ
trunk 版への反映を完了しました。この度は trunk 版への反映を御快諾頂き、有難うございます。 -- Z.OOL.
- 1.9.9.73で提供しました。
■ RSS作成機能への正規表現による制御実装ほか - トンカツスカヤ
こんばんわ。
いつもありがたく使わせていただいております。
今回、自分のWikiサイト構築にあたり、
いくつか改造させていただきました。
改造内容は以下の通りです。
- RSS作成機能(正規表現による制御)
- searchプラグイン(正規表現による制御)
- tocプラグイン(既にあるアンカーの後に新たにアンカーを設置しない)
- 自動リンク機能(ページが存在しないWikiNameはリンク表示しない)
(どの改造も、設定によりON/OFFの選択が出来るようにしてあります)
以上、ミニ改造ではありますが、
見ていただければ幸いです。
どうぞよろしくお願いいたします。
どうも、公開して頂き、有難うございます。早速 vikiwiki_zool ブランチ版に取り込んで確認の方をさせて頂いています。 -- Z.OOL.
- トンカツスカヤさん、ありがとうございます。trunkに取り込みたいと思うのですが、どうでしょう? > Z.OOL.さん - mopia
- RSS作成機能 → listができるんだから...あって当然。
- searchプラグイン → VikiWiki 1系はできてたのに、あれれ?...忘れてた。
- tocプラグイン → かくあるべきですね。
- 自動リンク機能 → コンセプトはおいといて、ほしい機能ですね。
勿論、僕も trunk 版への取り込みに賛成です。是非とも取り込みましょう。 -- Z.OOL.@バスから降りようとして思い切り転んでそこら中が痛い
- ありがとうございます。また何か改造できましたら、投稿させていただきますね。 - トンカツスカヤ
- 1.9.9.73で提供しました。
■ Digest 認証方式の実装について - zool
どうも、いつも御世話になっております。
さて、vikiwiki_zool ブランチ版で VikiWiki 内の認証情報を用いて RFC2617 に基づく Digest 認証を行う仕組みを試しに実装してみました。
設定値 AUTHTYPE の値に "vikiwiki_digest" を指定することにより、 VikiWiki 内の認証情報による Digest 認証が可能になります。
また、 @sys["BASEDIR"]/script 上に Paj's Home による md5.js を置いて、設定値 AUTHTYPE の値に "form_digest" を指定することにより、 javascript を用いてフォームから Digest 認証が行えるようになります。
なお、 Digest 認証のための認証情報は、 @sys["BASEDIR"]/etc/digest の内容が使われます。フォーマットは .htdigest と同様に "ユーザ名:Realm:('ユーザ名:Realm:パスワード'の MD5 値)" です。
これで、 vikiwiki において、インターネット回線上に生パスワードを流さずに認証を行うことが出来るようになります :-)
どうか御覧頂ければ幸いです。
- このあたりの知識はあまりないですが、form認証の拡張版で、認証情報が生で送信されるのを防げるということですね。form認証はけっこう使われているらしく、気になっていました。とってもいいと思います。ぜひ入れてください。 - mopia
返事が遅れて申し訳ありません。どうも御覧頂き、有難う御座います。早速、 Digest 認証まわりのコードを trunk 版へ反映させました。どうか御確認下さい。
P.S. 現在、手元の環境で Javascript による RSA の実装を使って、フォームの送信内容の暗号化を実験中です。 -- Z.OOL.
誠に申し訳ありません。 IE での動作に不具合が見付かったので、修正したものを再度 trunk 版へ反映させました。
# IE では Element.setAttribute の挙動や typeof の返値のせいで頭を抱えました。
# あ゛ー、クロスブラウザを考慮した Javascript のコード面倒くせーヽ(`Д´)ノ当方のミスで誠に恐れ入りますが、どうか御確認下さい。-- Z.OOL.
- どうもです。さっそく取り出しました。 - mopia
どうも、御多忙の中御覧いただき、誠に有難うございます。
さて、その後 javascript で実装した MD5 ハッシュ関数モジュールを自前で用意してみました。これで、別途 Paj's Home による md5.js を用意しなくても、フォーム経由での Digest 認証が利用できるようになります。
また、 master/script/digest_login.js を、オブジェクト指向を意識したコードに書き換えました。
あと、複数のプラグインで
<script><!-- document.write('...') //--></script>による表示を利用できるように、任意のテキストをdocument.write('...')で囲むメソッドVikiWiki::Plugins::BaseModule#js_document_writeと、<script><!-- ... //--></script>及び<noscript> ... </noscript>を生成するメソッドVikiWiki::Plugins::BaseModule#plugin_script, VikiWiki::Plugins::BaseModule#plugin_noscriptを新設しました。お手数をお掛けして誠に恐れ入ります。-- Z.OOL.
- MD5の自作ですか?すごいですね!!VikiWIkiから切り出しても申し分ないほどです。早く取り込みたい!(けど、時間が...) - mopia
- 1.9.9.73で提供しました。
■ w3m 等でのタブレイアウトの表示について - zool
どうも、いつも御世話になっております。
さて、 1.9.9.31 を導入して、タブレイアウトを試してみました。なかなか良い感じ です。
ところで、 w3m 等の Javascript に未対応のブラウザを用いて、タブレイアウトを 含むページを閲覧すると、本文の画面が、編集画面(及びそれに伴うヘルプページ) や履歴画面等と同じ画面に表示されて若干見にくく感じました。
そこで、 Javascript 対応のブラウザでのみ表示させる部分については、以下のように
javascript の document.write メソッドを用いて画面に出力し、未対応の部分を
<noscript>...</noscript> で括ればいいと思い、 vikiwiki_zool ブランチ版で
実装してみました。
<script type="text/javascript"> <!-- document.write( "この部分は、 w3m 等の ", "Javascript に未対応のブラウザでは ", "出力されない。 ", " ", "タブレイアウトをここに書く。 "); --> </script> <noscript> この部分は、 Javascript 対応のブラウザでは 出力されない。 タブレイアウトの代替となるレイアウトを ここに書く。 </noscript>
具体的には、与えられた引数を HTML に変換した結果をそれぞれ
<script type="text/javascript"><!-- document.write("...") --></script> と
<noscript>...</noscript> で括って出力するためのプラグインである
#docwrite, #noscript を用意して、LayoutPageでは、タブレイアウトの
部分を #docwrite を通して表示させ、その代替のレイアウトを #noscript
を通して表示させています。
どうか御覧いただければ幸いです。
- noscriptで実現する方法がいいようですね。IEなどでもjavascriptをOFFにしていると操作ができなくなるので。本当はtabプラグインだけで実現したいんですが、よさげな方法はなさそうですね。 - mopia
- ということで、ちょっとやってみました。tabプラグインだけで動作する方法にしています。 - mopia
どうも、御覧頂きまして、有難うございます。 LayoutPage を拝見してみましたが
#tabプラグインだけで書かれているので、すっきりしていて良い感じです。 -- Z.OOL.
■ 書庫について - Benzo
1.9.9.30はhome - vikiwiki - vikiwiki2といったディレクトリ構成ですが、以前のvikiwiki2〜の構成だとレンタルサーバのルートにおいて一発で展開できたので以前の構成のほうがありがたいです。
- 申し訳ありません、書庫の作成誤りです。vikiwiki2がルートとなるよう書庫を作成しなおしました。 - mopia
■ vikiwiki_zool ブランチ版の修正・拡張について - zool
いつも御世話になっております。
さて、ここ最近 vikiwiki_zool ブランチ版にいろいろと手を入れていました。
ここに、 vikiwiki_zool ブランチ版で、修正拡張した点をまとめてみました。また、現在の trunk 版と vikiwiki_zool ブランチ版の差分を、こちらに置きました。
- VikiWikiWEBrick を修正・拡張しました。
- VikiWiki::WEBrick::Server を SSL に対応させました。
- これにより、 SSL で暗号化された VikiWiki の WEBrick サーバを起動させることが出来るようになります。
- デフォルトでは、サーバ証明書は、自動的に作成した第四種オレオレ証明書を使用するようになっています ;-)。
- VikiWikiWEBrick のドキュメントを整理しました。
- readme.txt の分量が多くなったので doc/VikiWikiWEBrick.txt に移し、 VikiWiki サーバの VikiWikiWEBrick ページからでも読めるようにしました。
- VikiWiki サーバの FrontPage から VikiWikiWEBrick ページへのリンクを張りました。
- vikiwiki.txt を VikiWiki サーバの VikiWiki ページからでも読めるようにしました。
- VikiWikiWEBrick 及びそのインストールについての簡単なプレーンテキストである README, INSTALL を追加しました。
- VikiWiki::WEBrick::Server を SSL に対応させました。
- 設定値を幾つか追加・修正しました。
- 認証を行っていないユーザ(匿名ユーザ)のユーザ名を指定するための設定値 ANONYMOUS_USER, ANONYMOUS_USER_ACL を追加しました。
- ANONYMOUS_USER は #sys user 等の表示用のユーザ名として、 ANONYMOUS_USER_ACL は管理ページの「ページとプラグインのセキュリティを設定する」用のユーザ名として、それぞれ使用されます。
- 特に、 ANONYMOUS_USER_ACL は特定の ISP からのページの読み書きを制限したい場合に有用です。
- ページ編集時に、 &user; や &host; 等を、現在アクセスしているユーザ名及びホスト名に置き換えるための設定値 USESYSREPLACE を追加しました。
- 設定値 REPLACE_WORDS に "REPLACE_WORDS" => { "&user;" => @sys.user, ... } と書けないので、いろいろ考えてこうなりました。
- 設定値 REPLACE_WORDS で指定されたキーワードによる文字列の置き換えを、再帰的に行うようにしました。
- "REPLACE_WORDS" => { "&foo;" => "Foo", "&bar;" => "&foo; Bar", ... } のとき、 "&bar;" は "Foo Bar" に置き換わるようにしました。
- 再帰による置き換えは最大 256 回まで行うようになっています。
- 設定値 REPLACE_WORDS の説明を parameter.txt に追加しました。
- 但し、管理ページの「パラメタを編集する」からは、設定が出来ないようにしています。
- parameter.txt に書かれている設定値のキーを、強調文字にしてみました。
- 認証を行っていないユーザ(匿名ユーザ)のユーザ名を指定するための設定値 ANONYMOUS_USER, ANONYMOUS_USER_ACL を追加しました。
- Wiki 文法を若干拡張しました。
- テキストを [[[WikiStyleName ...]]] で囲むことにより、その領域で一時的に Wiki の記述スタイルを切替えることが出来るようにしました。
- プラグイン #style と同等の機能を、文法内に取り込んでみました。
- VikiWiki スタイルにおいて、~ を行末に入れて、その行末で <br /> を入れて強制的に改行できるようにしました。
- 片手で入力できる改行記法についての Benzo さんの御要望を実装してみました。
- PukiWiki から借りてきました ;-)。
- VikiWikiStyleHelpPage に ((([klass] ... ))), @{klass ...} , ~, [[[WikiStyleName ...]]] の説明を加えました。
- テキストを [[[WikiStyleName ...]]] で囲むことにより、その領域で一時的に Wiki の記述スタイルを切替えることが出来るようにしました。
- AuthFormPage?, AuthDenyPage? を簡素化しました。
どうか御覧頂ければ幸いです。
- 大変遅くなり申し訳ありません。ブランチの内容はとてGoodです。お恥ずかしい話ながら、プロトコルなどはあまり詳しくないので、SSL対応どころかWEBrickなどはまったく考えられませんでした。ぜひ、取り込みをお願いします。 - mopia
-
こちらこそ、返事が遅くなりまして申し訳ありません。早速 vikiwiki_zool ブランチ版での修正・拡張内容を trunk 版に反映させました。
この度は御多忙の中、vikiwiki_zool ブランチ版をを御覧頂き、また vikiwiki_zool ブランチ版での修正・拡張の trunk 版への反映を承諾して頂き、誠に有難うございました。 -- Z.OOL.
■ NGワードの更新ページについて - Benzo
1.9.9.11にて不要なNGワードを削除しようと思い管理用ページの"NGワードの更新"に入りましたが、既存のNGワードが表示されませんでした。
管理用ページの"CGIの設定を変更する"ではちゃんと既存のも表示され問題なく削除できましたが、せっかくNGワード専用ページがあるのですからこちらでも削除が出来たらよいなと思います。
- う〜ん、ここのサイトの管理ページでは既存のものも表示できています。そちらで設定されているNGワードを教えていただけないでしょうか?メールで送付したほうがいいのであれば、mopia@vikiwiki.netまでお願いします。 - mopia
- test.comとtestx.comです。とりあえずのテスト用なのですが、これでも表示できません。NGワードを更新する、の、テキストボックスは完全に空っぽで表示されます。 - Benzo
- こちらでの環境では再現しませんでした。テキストボックス内に入力し、NGワードの更新をクリックした後も空になってしまうということですよね。一旦は表示される、といったこともないでしょうか? - mopia
- NGワードの更新、から追記したNGワードはNGワードの更新に表示されました。パラメタの編集のNGワード部分では全て表示されます。CGIファイルを編集する、の部分ではNGワードの更新から追記したNGワードが表示されません。NGワードは別のファイルに保存されているのでしょうか。 - Benzo
- すみません、いろいろ勘違いしていました。NGワードはNGWORDSパラメタとetc/ngwordsファイルの2つに保存先があります。優先順位は、NGWORDSパラメタ→etc/ngwordsファイルの順です。NGWORDSパラメタを互換用に残してあるため、今回のような現象となってしまいました。可能であれば、NGWORDSパラメタの内容を、「NGワードを更新する」に移し変えていただければと思います。 - mopia
- なるほど、ここにあったのですね。ありがとうございます。 - Benzo
■ RDスタイル、tidyプラグインの組み込み - mopia
Z.OOL.さん、こんにちは。
Z.OOL.さんのところで公開しているRDスタイルとtidyプラグインをVikiWiki本体側に取り込ませてもらえませんか?
-
多忙のため、お返事が遅れまして申し訳ありません。まずは当方のコードの取り込みをお考え頂き、誠に有難うございます m(_ _)m
- RDスタイルについて
-
どうぞ、取り込んで頂いて構いません。 m(_ _)m
ただ、リンク先のコードは若干古いコードなので、こちらの方のコードを使って頂ければ幸いです。 - tidyプラグインについて
-
こちらの方は、 vikiwiki_zool ブランチ版及び trunk 版に "TidyLib を用いて VikiWiki が生成した HTML を整形する機能" として形を変えて取り込んでおります。
# これに関しては、プラグインとしての tidy も用意した方が良いでしょうか?
以上、どうかよろしくお願い致します。 -- Z.OOL.
- こちらこそお返事が遅くなり申し訳ありません。RDスタイルはありがたくいただきます。tidyは確かに入っていました。ありがとうございます。(tidyプラグインと形で必要としていたわけではありませんので、これでOKです) - mopia
■ listプラグインの表示 - Benzo
listプラグインの表示にテーブルを使ったものを追加していただけると一覧表示のときに見やすくて助かります。また、オートリンクをオンにしていると表示結果のページ名も自動的にエイリアス名に置換されてしまうのも分かりにくいので、出来ましたら変更をお願いします。
-
# 恐れ入りますが、前半部分のみの回答です。
list プラグインの第3引数を下記のように指定すると、 list プラグインの表示において、テーブルが使用されます。// 第3引数は、一覧表示する内容の書式を VikiWiki 形式で指定する。 // page, count, time はそれぞれページ名、閲覧回数、更新時刻に置き換わる。 #list 10 "" "||[[page]] (count)#{br}{{page}}||time||" "" page asc上記のように記述すると、このように表示されるかと思います。もし、 Benzo さんが意図するものと違っていましたら済みません。 -- Z.OOL.@最近仕事でへろへろモード
- 毎度お返事ありがとうございます。 まさに思う通りの結果です。そういじれば良かったんですね…。お恥ずかしい限りです。Z.OOLさん、ありがとうございました。テーブルのくだりは無視して頂いて、エイリアス名に置き換わるの対処のみを要望という事でお願いします。 - Benzo
■ Vikiwiki.netのセキュリティ強化 - Benzo
Vikiwikiに対する要望というわけではないのですが、ここ本家Vikiwiki.netのスパムに対する対策強化は行わないのでしょうか? エイリアス名もかなりいじられているようですし、荒らされているのを見るとはがゆい思いをしますので出来ましたら対策をお願いします。
- ご指摘ありがとうございます。エイリアス変更のOFF、NGワードの登録をしました。commentプラグインでのスパム対策が不十分なことがわかっており、commentプラグインでもNGワードチェックを行うようにします。 - mopia
- NGワードを実装して、わかりきったものは防げるようになりました。 - mopia
■ エイリアスの登録タイミングの変更 - Benzo
NGワード機能のおかげで海外の広告スパムはかなり遮断できるようになりました。しかし、エイリアスがなぜか登録されていることがあり、調べたところページの内容がNGワードで拒否されても、それ以前のタイミングでページ名とエイリアスが登録されてしまっているようです。
NGワードで拒否された場合はエイリアスも登録されないか、あるいはページの保存と同時にエイリアス名も登録されるようにしていただけるとありがたいです。
-
手元の環境で現象が再現しました。
vikiwiki/plugin/edit.rb の 43-47 行目付近の alias を更新するためのコードを、 page の内容を更新しているコードの直後に移すとどうなるでしょうか。
この場合では、 page の内容の更新時に NG ワードによる拒否等で例外が発生すると、それ以降の alias の更新は行われません。 -- Z.OOL.@OQO買いました
# vikiwiki/plugin/admin.rb の 42-63 行目付近 (抜粋) 42 begin ... # 43-47 行目の alias 更新関連のコードを... # 48 if page.name == newname then 49 save(page) 50 else 51 case @sys.cgi.params['exec'][0] 52 when LBL['ALT_NAM'] then 53 save(page) 54 altname(page, newname) 55 else 56 page = @sys.pages[newname] if page.name != newname 57 raise ERR['ALR_EXT'] if page.exist? 58 save(page) 59 end 60 @sys.page = page 61 end ... # page 更新のコードの直後の 61 行目付近に移す。 # if @sys['EDITALIAS'] then @sys.aliases.delete(old_re || page.name) @sys.aliases[re || newname || page.name] = als if als @sys.aliases.update end 62 rescue AuthorizationRequired, AccessDenied 63 raise - 仰せのままにいじってテストしたところ、エイリアス名は登録されずに期待通りの動作となりました。毎度ありがとうございます。
それにしてもいつの間にかまた謎のエイリアス名が登録されているところをみると、腹立って仕方ありませんね。ここ本家も荒らされていますし…。いっそページ内に2バイト文字が一つもない場合は拒否するとかそういう設定もありなんじゃないでしょうか。NGワードでそういうのが出来るかわからないですけど。 - Benzo - NGワードでやってみました。テキスト中のすべての文字が1バイトで構成されていて、http://を含むような更新はすべてNGワードに引っかかります。/A[ -~]+http://[ -~]+Z/m - mopia
■ 削除機能の強化 - Benzo
稼働中のVikiwikiにこちらと同様に海外からの荒らしが発生し、意味不明のページを大量に作られてしまいました。 ページの削除後、エイリアス名のページを見たところ、削除したページのエイリアス名が残っていました。ですので、
- 削除したページに付けられていたエイリアス名も同時に削除
- 削除したページの静的htmlも同時に削除
- エイリアス名の削除もチェックボックスで一括削除ができるように
- "ページを削除する"のページの並びをエイリアス名と同じようにテーブルで"ページ名 エイリアス名"の並びに統一
この辺りの機能の追加などを要望します。
余談ですがwikiでは通常まず使わないaタグをNGワードに設定してみてはいかがでしょう。
私はhtaccessで海外からのGET以外を全部denyしてしまいましたが。
- Benzoさん、ご指摘ありがとうございます。このあたりは使っていただいている方にご迷惑をおかけするので、しっかりしなくてはと思っています。 - mopia
- 早速の更新ありがとうございます。あまり使う機会があって欲しくない削除まわりの機能ですが、大分使いやすくなって荒らしがあっても楽になりそうです。ただ、ついでにページの整理などやっていましたところ
Error!! undefined local variable or method `pgae' for #<VikiWiki::Plugins::Admin:0x8427738>
このようなエラーが出ました。削除しようとしたページの具体的な名前などは控えていなかったので分かりません。エラーメッセージを見るとpageがpgaeになっているのが何か関係あるのではと思ったりしました。ご報告まで - Benzo
と、書いたところでNGワードに引っかかったので調べたところ、"Vikiwikiへのリンク"でのZ.OOLさんのパッチが原因のようでした。ですのでaを全角にして回避しています。
-
Benzo さんのおっしゃるとおり、 vikiwiki/plugin/admin.rb 内のメソッド VikiWiki::Plugins::Admin#onpost_delpage に変数 page を pgae と誤った箇所があるようです。 523 行目を以下のように修正するとどうなるでしょうか?
# vikiwiki/plugin/admin.rb の 514-526 行目付近 (抜粋) ... 514 #============================================== 515 # Delete Page 516 #============================================== 517 def onpost_delpage(sel) 518 errors = Array::new 519 getpages.each{|pname| 520 page = @sys.pages[pname] 521 @sys.cvs.removeFile(page.path) 522 @sys.aliases.delete(pname) # 523 行目、 ↓この pgae を page に修正 523 page.static.delete if pgae.static? 524 } 525 msg(MSG['DEL_PAG']) 526 end ...P.S. VikiWiki へのリンクの件で、どうもお手数をお掛けしました m(_ _)m > Benzo さん。 -- Z.OOL.@OQO買いました
- ご指示の通り修正しますと以下のようなエラーになりました
Error!! undefined method `static?' for #<VikiWiki::Page:0x84271ac>
追記:NGワードに引っかかったのは想定外のことだったと思うのでお気になさらないほうがよろしいかと。 - Benzo
- 静的HTMLの判定処理が誤っていました。static?ではなく、staticでした。すぐに修正します。 - mopia
- ?を取り払ったところエラーも出ず、静的htmlの出力ファイルも削除されました。早速の修正ありがとうございます。次は是非削除ページに付けられていたエイリアス名も同時に削除するような機能もお願いします。
余談ですが.netを許可していたら海外からまたスパムが飛んできて早速強化削除機能のお世話になり便利さを実感しました。 奴らのは一行に大量にリンクが含まれるので、httpが一行に3つか4つ以上あるとNGになるような書き方を調べる事にします。 - Benzo - 修正したバイナリで置き換えました。削除ページに付けられていたエイリアス名も同時に削除するような機能ですが、今回入れたはず...(調べ中)...やっぱり入っています。 - mopia
- 修正バイナリに置き換えた上で、適当なページ名とエイリアス名のページを作ってページの削除から削除してみましたが、エイリアス名は残っているようです。何か見るべき点はありますか? - Benzo
- このサイトでも、TestPageにテストページというエイリアス名をつけて、ページを削除したところ削除されました。static?のバグが含まれていたことからも、修正が適用されていないわけではないと思います。StaticWikiに関連した問題かもしれません。調べてみます。 - mopia
-
うーん、当方の手元の環境では現象が再現されていたのですが...。vikiwiki/plugin/admin.rb の 522 行目付近に alias のデータベースを更新するコードを挿入してみるとどうなるでしょうか。 -- Z.OOL.
# vikiwiki/plugin/admin.rb の 514-527 行目付近 (抜粋) 514 #============================================== 515 # Delete Page 516 #============================================== 517 def onpost_delpage(sel) 518 errors = Array::new 519 getpages.each{|pname| 520 page = @sys.pages[pname] 521 @sys.cvs.removeFile(page.path) 522 @sys.aliases.delete(pname) # ↓ @sys.aliases.update を入れて、 alias の # データベースを更新してみる。 523 @sys.aliases.update 524 page.static.delete if page.static 525 } 526 msg(MSG['DEL_PAG']) 527 end
■ ページ単位の凍結 - ネコネコ
ロールバックなどの方法でも何とかなる、とは思うんですが・・・。 やはりwikiは編集合戦になることがあるので、 余計なサーバ負荷を抑えるためにも ページごとに凍結機能があったら良いなと思います。
- セキュリティからページを変更出来る権限を設定すれば凍結になるのではと思います。負荷を押さえられるかと、これで正しいのかは詳しい人の補足をお願いしたいところであります。- Benzo
-
Benzo さんのおっしゃるとおり、ページの凍結機能は、管理用ページから管理メニュー経由で「ページとプラグインのセキュリティを設定する」ページから設定できます。例えば ProtectPage を凍結したい場合は、以下のように設定します。
* 対象の種別 … ページ * ユーザ名 … /./ * 対象の名前 … ProtectPage * 読取権 … チェックを入れる * 書込権 … チェックを外す この設定により、 ProtectPage は管理者を除いてページの編集ができなくなります。
ただ、上記の設定にしても、凍結機能の実装にしても、書き込み時のサーバの負荷は減らす事は出来ますが、 VikiWiki を動的ページで運用している場合は読み込み時のサーバの負荷は減らすことは出来ません。
CGI の起動をページ編集時のみに抑えたい場合は、 StaticWiki 機能を利用すると良いでしょう。
StaticWiki 機能を有効にするには、設定値 "STATICWIKI" に true を指定します。具体的には、スクリプトファイルである vikiwiki.cgi の以下の行を次のように書き換えてください。
# スクリプトファイル vikiwiki.cgi (抜粋) ... # System Configration @conf = { ... "STATICWIKI"=>true # ↑ vikiwiki.cgi 中の変数 @conf に格納されたハッシュのキー "STATICWIKI" # に対応する値を書き換える。 ... } if $0 == __FILE__ then ...以上、作者である mopia さんの回答で無くて誠に恐れ入ります。 -- Z.OOL. (vikiwiki_zool ブランチ版 VikiWiki の修正ノート)
- わざわざご丁寧にありがとうございます。StaticWiki凄いですね、編集合戦さえ防げれば十分でしたがこれなら完璧です。ネコネコ
■ エイリアス名変更に対する防御策 - Benzo
御質問での質問を要望に切り替えです。ページの内容の編集は許可したいのですが、編集ページからエイリアス名をいじられるとどうしようもないようなので、これに対する何らかの防御策のご検討をお願いします。
- 遅くなりました。パラメタEDITALIAS=FALSEを指定することでエイリアス変更ができなくなるようにしました。 - mopia
□ 一括バックアップとリストア - Benzo
データや履歴を含めた全てを一括で単一のファイルとしてバックアップ/リストアするのをadminメニューから出来るようになると便利だと思います。
- バックアップはサーバ側がいいですか?それともダウンロードがいいですか? - mopia
- サーバ側ならばバックアップを削除しなければリストアのときにアップロードせずに済むので、サーバ側のほうがよいのではと思います。FTPでダウンロードも出来ますし。バックアップファイルは(名前日時.拡張子)のような感じで指定出来るようにしていただけると、複数のwikiを設置しているのでありがたいです。-Benzo
vikiwiki.net における LayoutPage の書き込み制限に関する問題 - zool
mopia さん。御多忙の中 VikiWiki の件でいつもお世話になっております。
さて、 VikiWiki 本体の要望ではないのですが、 vikiwiki.net 上の LayoutPage が時々壊れて(恐らくどなたかが LayoutPage を編集したときに失敗して) vikiwiki.net 上のページが全く読めない状態になることがあるようです。
vikiwiki.net 上の LayoutPage の書き込み権を mopia さん以外には塞ぐ設定を行っては如何でしょうか。
- (P.S.) この度、本家 VikiWiki から SF.jp CVS の vikiwiki_zool ブランチへの各種変更点について、以下の通りまとめました。どうか御覧頂ければ幸いです。
- すみません、まだ見れていないです。 - mopia
VikiWikiへの要望ではないのですが - no_name
「質問」を更新しても「最新の10件」に反映されないのはなぜでしょうか? 反映されないように設定できるのでしょうか?
- この話題は VikiWikiへの要望というよりもバグ対応に近い話題であると思われますので、以降の話はバグ報告のページに移して続けましょう。 -- Z.OOL.
- 誠に勝手な話で、申し訳ありません m(_ _)m > no_name さん& mopia さん -- Z.OOL.
Vikiwikiへのリンク - Benzo
ちょっとした事なのですが、ページ最下段のWiki Engine VikiWiki version 1.9.8の部分、Rubyなどと同様にvikiwiki.netへリンクしてはどうでしょう。
- ページ最下段の Wiki Engine VikiWiki version 1.9.8 の部分、即ち footer は、プラグイン #footer によって出力されています。この部分は、 vikiwiki/plugin/footer.rb の 18 行目付近を以下のように書き換える事により変更できます。
# vikiwiki/plugin/footer.rb の 15-19 行目 (抜粋) ... 15: def onview 16: res = Array::new 17: res << %Q[<address>] # ↓ 18 行目を書き換える 18: res << %Q[Wiki Engine <a href="http://vikiwiki.net/">#{$WIKIENGINE}</a> version #{$WIKIVERSION}<br />] 19: res << %Q[Powered by <a href="http://www.ruby-lang.org/">Ruby</a> version #{RUBY_VERSION}<br />] ...現在上記修正は SF.jp CVS の vikiwiki_zool ブランチに含まれています。もし問題なければ、 SF.jp CVS の trunk に反映させます>mopia さん -- Z.OOL.
- リンクに関してはまったく問題なしです。修正をお願いします。 > Z.OOL.さん - mopia
- 上記修正を SF.jp CVS の trunk に反映させました。 -- Z.OOL.
静的HTMLをリロケータブルに - zappy
VikiWikiをCMS用途で用い、静的HTMLを出力させていますが ローカルマシンのVikiWikiで作成したHTMLを別のWebスペースにUPすると HTMLファイル内のcss等のパスが相対パスになっていないため ページ自体は見られてもスタイルが崩れてしまいます。 リロケータブルなHTMLを出力するような機能追加をお願いできませんでしょうか。
- この話題は VikiWikiへの要望というよりもバグ対応に近い話題であると思われますので、以降の話はバグ報告のページに移して続けましょう。 -- Z.OOL.
- 誠に勝手な話で、申し訳ありません m(_ _)m > zappy さん& mopia さん -- Z.OOL.
ログの採取 - Benzo
いつも便利に使わせています。 最近荒らしが出るようになって対策をとろうと考えまして、Vikiwiki自体がログをとれると便利だと思いました。 ページを改変・削除・作成・リネームやエイリアス名の変更を行った日時とそのIPが記録されればいいなと。 アクセスログを貰えないとかとらない設定にしていてもこういったログが保存されていればあらしが出たときの対策が楽になります。
- 了解です。他にもSPAM対策でいいものがあれば教えてください。 - 作者
思いついたのは他には指定した範囲のIPに該当する場合は閲覧のみ許可機能、書き込まれた文章に指定した文字列が含まれていると改変不許可機能といったものです。SPAMで頻出する単語をやURLを禁止語句に設定しておけば、ある程度は防げるのではと思います。
- だいたい実装はできました。Webへのアップができない状況です。もう少しお待ちください。 - 作者
- access.logを出力できるようにしています。1.9.8.0以降に入っています。 - mopia
以下をパラメタに設定してください。
"LOG"=>true, "LOGDIR"=><出力先ディレクトリ>,
- 追加となるのですが、全アクセスではなく編集行為に対してのみログの採取機能があれば嬉しいです。 - benzo
- SF.jpには修正を入れました。LOGFILTERパラメタで絞り込めるようにしています。 - mopia