Wiki系とWikiEngineについて語るスレーPart3
941 :
_:05/01/07 20:07:16 ID:+dnLunED
差分を行単位ではなく文字単位で見れるWikiはありませんか?
前からある要求だけど。
Wikipediaが文字単位だった気がする
945 :
941:05/01/08 11:28:09 ID:1+/AkAA+
情報ありがとうございました。
今使っているFreeStyleWikiを改造したら、
完全な文字単位とまではいかなくとも、\wと\Wの境界、
1バイト文字と2バイト文字の境界、句読点の前後程度には区切って
表示させられるようになりました。
ブロックの書式があるWikiって何がある?
とりあえず、TikiとVikiWikiにはあるようだが他に何かある?
>945
頼むから差分を開発サイトのWikiに張ってぇー
嫌です
そんな、殺生な〜
. /ヘミミミ/ ``'ー-.、,ヽ丶)ヽ、
、. レ"ヾヘミミ/ ヽソノ;、ヾi
_ヽlヾミミミン -zュ、、 ´ ';ソ:|
i A;ヽミミゾ ,__,.、,、,..,、、.,、,、、..,_ /i
| | iミミソ ヽ;'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
| ヽiミソ ''、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄ /i
゙iー:ソ ,、-' |ヽ,;'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
ノソ ` = _, | '、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄
. "! ,.r===;-、, ` '′ ,'
ハ. / ヽ、 ヽ,) ノ
,r'イ ', l!、 ゙i ./ ,.'
. i | ', iゝヽ..ノ,イ /
. !│ ヽ ゝ.二 '´ /.│
. ! | ヽ / !、 それが、VIPクォリティ
. | | >‐‐ァ" | \
http://ex7.2ch.net/news4vip/
そろそろ次スレキボンヌ
# ▽▽▽▽
- my @msg1 = split(/\n/,$wiki->get_page($pagename));
- my @msg2 = split(/\n/,$wiki->get_backup($pagename,$generation));
+ my($m1)=Util::escapeHTML($wiki->get_page($pagename));
+ my($m2)=Util::escapeHTML($wiki->get_backup($pagename,$generation));
+
+ sub c_d_t_d
+ {
+ my($s)=shift;
+
+ $s=~s/\n\n/\n\0\n/g;
+ $s=~s/\n/\n\r\n/g;
+ $s=~s/\b/\n/g;
+ $s=~s/&\n(\w+)\n;/&$1;/g;
+ $s=~s/ /\n<!--EnSpc-->\n/g;
+ $s=~s/ /\n \n/g;
+ $s=~s/、/\n、\n/g;
+ $s=~s/。/\n。\n/g;
+ $s=~s/・/\n・\n/g;
+ $s=~s/(/\n(\n/g; $s=~s/)/\n)\n/g;
+ $s=~s/「/\n「\n/g; $s=~s/」/\n」\n/g;
+ $s=~s/『/\n『\n/g; $s=~s/』/\n』\n/g;
+ $s=~s/&/\n&/g;
+ $s=~s/([:;]+)/$1\n/g;
+ $s=~s/([[\]]+)/\n$1\n/g;
+ $s=~s/([\x01-\x7f]+)/\n$1\n/g;
+ $s=~s/\n\n/\n/g;
+ return $s;
+ }
+
+ my @msg1=split(/\n/,&c_d_t_d($m1));
+ my @msg2=split(/\n/,&c_d_t_d($m2));
# △△△△
# ▽▽▽▽
- return "<pre>".Util::escapeHTML($diff_text)."</pre>";
+ $diff_text=~s/\r/<\/p>\n<p>/g;
+ $diff_text=~s/<\/del><del>//g;
+ $diff_text=~s/<\/ins><ins>//g;
+ $diff_text=~s/\0<!--Ret-->/<!--Ret-->/g;
+ $diff_text=~s/\0/<span class="Spc">↓<\/span><!--Spc-->/g;
+ $diff_text=~s/<!--Ret-->/<span class="Spc">↓<\/span><!--Spc-->/g;
+ $diff_text=~s/<!--EnSpc-->/<span class="Spc">_<\/span><!--Spc-->/g;
+ $diff_text=~s/<\/span><!--Spc--><span class="Spc">//g;
+ $diff_text=~s/<!--Spc-->//g;
+ return '<p class="Note DiffNote">※'
+ . '削除された箇所は<del>この表示</del>で、'
+ . '追加された箇所は<ins>この表示</ins>です。</p>' . "\n"
+ . '<div class="Diff">' . "\n"
+ . '<p>' . $diff_text . '</p>'. "\n"
+ . '</div>';
# △△△△
# ▽▽▽▽
- $diff_text .= join('', map { "-$_\n" } splice(@diff_deleted));
- $diff_text .= join('', map { "+$_\n" } splice(@diff_added));
+ $diff_text.=join('',map{ &d_d_t_s($_) } splice(@diff_deleted));
+ $diff_text.=join('',map{ &d_a_t_s($_) } splice(@diff_added));
}
+
+ sub d_d_t_s
+ {
+ my($s)=shift;
+
+ $s=~s/\r/<!--Ret--><\/del>\r<del>/g;
+ $s="<del>" . $s . "</del>";
+ $s=~s/<del><\/del>//g;
+ return $s;
+ }
+
+ sub d_a_t_s
+ {
+ my($s)=shift;
+
+ $s=~s/\r/<!--Ret--><\/ins>\r<ins>/g;
+ $s="<ins>" . $s . "</ins>";
+ $s=~s/<ins><\/ins>//g;
+ return $s;
+ }
# △△△△
# ▽▽▽▽
- #$diff_text .= "=$msgrefA->[$a]\n";
+ $diff_text.=$msgrefA->[$a];
# △△△△
>>947 以上はDiff.pmの改造です。
PHP に ediff ってないかな ( Perl には Text::ediff がある )
>>956 親フォルダごとクラッシュしますた・・orz
pukiwiki
paintプラグイン使えてますか?
ちゃんとjarファイル入れても使えない
アプレットの部分が灰色になったままなんだけおd
sleipnir + j2re 142
>>959 その環境で、他サイトのアプレット等はちゃんと見えてる?
FSWikiのサイト落ちてる?
MoinMoin使えよ
日本語名の問題と パラメータの受け渡し方とかの問題は別の問題だと思う
&や?が使えるかとかは URLエンコードをちゃんとすれば問題ない話だけれど
(特にUTF-8とかを使ったとき)ページ名(=>URLも)が以上に長くなるのが嫌って話とか
パラメータを渡すのに&や?を使うと検索エンジンがひろってくれ難いから嫌だとかって話とか
ごっちゃになっている気がしないでもないけど・・
日本語ページ名でURLが長くなる問題なら・・
>>964の番号というか・・w
エイリアスのような機能や、ページ名とタイトルを別に扱うような仕組みがあればいいんだと思う
967 :
964:05/01/21 12:50:50 ID:???
wiki.cgi?形式にしておいて、mod_rewriteで後者の形式も使えるようにしとけ。
sakura.ad.jpでmod_rewriteが使えないのは知らん。
URLに日本語を入れると、強制的にエスケープされると思うよ。
wikipediaはUTF-8エンコードには対応してるから、IEとかOperaからは直接入力で見にいけるけど、
win版Mozillaはeucかなにかでエンコードするから、ページ名が化けて見にいけない。
まったく新たに作るのであれば書き方法は?
[[テスト@test]]
と書くと、
wiki.cgi?page=test
でリンクが張られ、アクセスできるようにする、という方法。
@ の部分は > でも :: でも何でもいいです。
ファイル名に連番って実装は あんまり想像できないんだけど
ハッシュドWikiやwemaのような ページの中の細かい単位のものを
個別にファイルに収めるとか 声のかけらのようなものを実装するなら
番号という選択肢も頭に浮かぶんだけど・・
まぁ、それはそれ・・w
連番使うとページ名と1:1保証されないってのもよくわからないけど・・
一度ページを削除してから新たに別のページを作ったとき 空き番号でファイルを作成
したりすると、誰かがリンクした古いページのURLで違うページにとかって話なのかな。
私個人的には 連番を使うなら、新規ページは現存最大番号+αで作るとか
ハッシュで同一(番号)ファイル名を作らないようなアルゴリズムを考えるとか
まぁ・・ それもいいやw
入力しても強制的にエスケープ?
ブラウザのURL入力欄に直接入力するときの話?
ウィキペディアも日本語名のページはURLエンコードされてるけど?
972 :
966:05/01/21 14:53:54 ID:???
アドバイス&突っ込みありがとうございます。
>>968 できるだけ幅広いサーバで、単純に動くようにしたいので
サーバ依存の mod_rewrite はできるだけ避けたい方法です。すいません。
>>969 なるほど、ブラウザ依存な部分もあったんですね。
しかしそうすると、日本語URLの使用はますます危うい……
>>970 いくつかの文法パーサを組み込めるようにする予定なので
使う文法によっても変わってくるかもしれませんが……
標準では [[テスト|test]] 、あるいはMarkdown風に [[テスト]](test) と。この二つ。
>>971 > 実装
現時点では、「新規ページは現存最大番号+αで作る」実装になっています。
新しいページを作ると、そのページの本文を「rw_0001.wiki」というファイルに書き込み。
ページ名と連番の対応は別のデータファイルで記録。
> ウィキペディアも日本語名のページはURLエンコードされてる
Operaではエンコードされず、完全に日本語ままで扱えるようです。
いや、だからさ・・w
じゃぁさ アドレス欄に日本語を入れたときって その日本語コードは何として扱われるわけ?w
サーバーに日本語ファイル名でHTMLのファイルを置いたときに
サーバーに置いた日本語ファイル名の日本語エンコードと
ブラウザ毎に アドレス欄に日本語を直接入力したときの動作を色々試してみたら?w
ようするに、アドレス欄に日本語を直接入れたときの動作なんてブラウザ依存でしかないし
そのブラウザ依存だって おそらくはアドレス欄に入力された日本語を適当に
(そのブラウザ固有の)エンコーディングで扱ってるだけなんじゃないかな
(よく知らないけど たぶん)URL(URI?)の規格として日本語を直接扱えたり 特定のエンコーディングを想定してたり
そんなことはないと思うし・・ね
で、最初にあげた例を最後に補足
パラメータと違って、ファイル名の場合はサーバー(ApacheやIIS)がファイル名をどう扱うかも
関わってくるとおもうから CGIのパラメータとしてのURLとは例としてふさわしくないところもあるんだけど
ようするに、そこらへんの変換やエンコードは結局ブラウザ依存でしかないんじゃないかって話ね
>>973の補足
もちろん ブラウザ固有で適当なエンコーディングとして扱った結果
アクセスするURLは そのエンコーディングで扱った日本語データを URLエンコードした
結果のURLにアクセスするんだろうし
アドレス欄の表記を日本語のままにしているのか URLエンコードして表示しなおすのかってのも
ブラウザ依存の話なんじゃないかと思う
上の少しだけ突っ込んだ話だけど、
href="
http://日本語" や アドレス欄に直接日本語を入力したときは
ブラウザが勝手に URL エンコードする。
そのとき、IE なら元のページの文字コードが何であろうとエンコード文字列は Unicode に、
Mozilla 系ならエンコード文字列は元のページの文字コードだか何か(確認してない、スマソ)になる。
Wikipedia の文字コードは Unicode なので IE ならそのまま日本語アドレスでも大丈夫だが、
Mozilla 系だと文字化けする事態になる。
つまりパラメータを受け取ったときにページ名の文字コードを判別すれば、
日本語 URL でも何とかなるんじゃないかと思うんだけど、実際できるかはわからないな。
Opera は UTF-8 でエンコードされた URL をデコードしてアドレス欄に表示しているってだけだよね。
でも、Shift-JIS、EUC-JP、ISO-2022-JP、UTF-8 のどれでエンコードされようが、きちんと認識してくれる
Wiki を見たことあるから、そういう実装をすれば良いと思う。
どれでエンコードされようがっていうのは
つまり、そのWikiでは ユニコード対応のnkfで ページ名を
対応するインターウィキ名のエンコードでエンコードしているという事じゃないのかな
インターウィキの話じゃないのかな・・
リンク(URL)内に記述された日本語を 何らかのエンコードになおすという話だとしたら
URLエンコードするときの日本語エンコーディングに何を選択するのかの情報を
いったいどこから入手するのだろう・・
リンク先のページの文字エンコーディングを判別?
Wiki等の パラメータとして日本語を受け取るCGIの場合なら
URLのエンコードとページのエンコードは おそらく 一致しているからそれでいいのかもしれない
だけど、実際のファイルのファイル名が日本語ファイル名で
その日本語ファイル名のエンコードと
そのファイルの中身のエンコード HTTP-EQUIVの charsetが一致する保証もないわけだし・・
あ・・
Wiki側で URLで渡されたページ名を
いったんURLデコードした後に
自分自身が扱うエンコーディングにnkfで変換するって話なのかな
ファイル名、あるいはURL内のページ名に番号という選択肢は私的には避けたい選択肢のひとつなんだけど
cvsやrcsを使う場合にファイルシステム上にデータファイルを保存する事になるので
SQL等を使ってデータを管理するなら、データのテーブルとして、
ページ名やページデータの他にページ番号をiノードやFAT番号の変わりのように
使うのもありだなぁ・・ と思ったw
まず半角を使え。
ぼくのWIKIも開発していいですか?
983 :
981:05/01/22 00:34:44 ID:???
以下ループ
で、新スレは?
986 :
972:05/01/22 02:21:02 ID:???
>>973-976 アドバイスありがとうございました。とても参考になります。
要するに、日本語URLの処理にはブラウザ依存な部分が大きいので
とりあえず一通りの文字コード(SJIS、EUC、ISO-2002-JP、UTF-8)に対応させるぐらいしか
解法がない、と。
ひとまずその方向で実装してみることにします。
# ただ、Rubyを使ってるのでUTF-8への対応がネックに。
>>980 ページ名を半角英数のみにすれば、全てがすっきりすることは確実なんですが
1.別ページへのリンクを張るときに厄介
2.ページ名からページの内容を連想しづらい(特に一覧表示のとき)
という問題が。
ちなみにIEではインターネットオプションの詳細設定で
「常にUTF-8としてURLを送信する」
というオプションが存在する。
漏れのとこでは このオプションは触っていないが
チェックされた状態になっている。
おそらく、IE6なら デフォルトではこのオプションがチェックされた状態っていう事だろう。
>>986 migemoの応用でなんとかならんかな?
とてきとーに言ってみた
989 :
986:05/01/22 16:05:12 ID:???
>>988 Ruby/Kakasi あたりを使えば、似たようなことは出来そうなんですが
日本語←→ローマ字の変換精度に疑問があるのと
1:1対応が保証されない問題(hasiは橋? 端?)のために
Wikiの上で使うにはちょっと……。
+ ;
* ☆_+
: , xヾ:、__,..-‐‐:、、,へ___.ィ/~~~' _ テテテテ・・・
く '´ _/ /  ̄`ヽ}
/0:》@ i(从_从))
= {o:::: ||ヽ|| ゚ -゚ノ|
':,:::::::::::つ:::::::つ
= ヽ、__;;;;::/
し"~(__)