wikiへのソースコードの記述法についてアドバイスをお願いします

wikiへのソースコードの記述法についてアドバイスをお願いします

- Tatsuya Shirai の投稿
返信数: 4
Windowsサーバにおける日本語ファイル名/フォルダ名対応への改造を行なっています.

その過程や最終的なまとめをWikiで作成しているのですが,ソースコードの入力で悩んでいます.そのままソースコードを流し込んだのでは行頭の半角空白は全て除外されてしまいます.では,<PRE></PRE>で囲んだらどうだ,と試してみたのですが,1度目の保存は良いのですが,再び編集して保存するとメチャクチャになります(空白1個になる).

1.コピー&ペーストしたソースリスト中の空白,改行をそのまま再現
2.途中の文字列の色を一部変更したい(強調のため).
3.配列の[]をオートリンクされたくない.
4.コピー&ペーストすればソースとして元通りの状態でエディタへ貼り付けられる.

以上を満たすようなWikiの入力方法(HTMLソースモードでも構いません)はあるのでしょうか.既にどなたかが質問し,回答を得ているのかも知れませんが,過去のフォーラムを検索しましたが私には発見できませんでした.HTMLエディタの「用語集リンクを抑える」が役に立つのかと思って試してみたのですが,使いこなせませんでした.


Tatsuya Shirai への返信

Re: wikiへのソースコードの記述法についてアドバイスをお願いします

- Toshihiro KITA の投稿
いつもいろいろと情報ありがとうございます。

私は,そういう時はあきらめて,
プロフィールの「テキスト編集」を「標準のウェブフォームを使用します」に
設定して,HTMLでそのまま書き込んでいます。
つまり,ソースの部分には,<pre>を使ったり,エンティティ表記 (&amp;等) を使ったりして。

もちろん,この場合も,後で「HTMLエディタを使用」に設定変更して
編集してしまうと,たぶん現象は同じです。
つまり,常に「標準のウェブフォームを使用」で編集しないといけません。

あんまり答えになってないですね。
あ,それに Wiki では試したことがないです。(ウェブページの作成のときだけ)

Toshihiro KITA への返信

Re: wikiへのソースコードの記述法についてアドバイスをお願いします

- Tatsuya Shirai の投稿
いえいえこちらこそ.返答ありがとうございます.

了解しました.現状ではソースをうまく埋め込む仕組みが存在しないということですね.
フォーラムへの書き込みでも,Wikiでも,ウェブページの作成でも共通で使えるコード埋め込みの仕組みが開発されると大助かりですね! でも,なぜ<pre>を実装しなかったのでしょうね.

Toshihiro KITA への返信

Re: wikiへのソースコードの記述法についてアドバイスをお願いします

- Tatsuya Shirai の投稿
試してみましたが,htmlareaの仕組みもよく分かりませんので,対症療法しかなさそうですね.他のタイプのHTMLエディタを実装した(対応されている?)という書き込みも本家のページにあったのですが,ソースコードの記述に適しているかどうかは別問題のようですね.

  • インデント:諦めました.自分でインデントを付けるしかないですね.結構,バギーな感じで,保存するとインデントが猛烈に増えていたり,逆に消えていたりすることがあります.増えている場合は,全文をマウスで選択してコピーし,一旦,デリートした後にペーストすると,(内部のコードの整合性が)直るようです.修正を繰り返しておかしくなってきた時にはこの方法で乗り切っています.
  • なぜか<em>:ソースリストを貼り付けたときに,ソースリストの一部がなぜか解除不能な斜体になってしまうことがあります.htmlを見てみると,律儀に各行が<em></em>で囲まれています.これは解除方法が分からない.プレーンなテキストとして貼り直せば解除されるので,(暇な時ならば)一旦,手元のテキストエディタにコピー&ペーストし,改めてHTMLエディタにコピー&ペーストし直しています.
  • キャメルリンク(Wiki):”Wikiオートリンクオプション”の”キャメルケースリンクを無効にする”をチェック(ON)することで,ソースリスト中の単語の見出し語化は,ある程度,抑制できました.
  • それでも配列は...path_parts['basename']といった類の配列の表現は沢山あり,これがWikiだとpath_parts basename?というように新しい見出し語として認識されてしまいます.この問題は!を[の手前に付ける(例えば,path_parts!['basename'])ことで対処可能.ただし,dirlist[]のようにカッコ内が空の場合は!を付けると,![]とそのまま感嘆符まで画面表示されてしまいます.じゃあ,[]は無視してくれれば良いのに,dirlist?とWikiは解釈.この問題は,dirlist![ ]と,[]の中に半角のスペースを一つ入れることで解決.どこで化けるのかは自分で探さなくてはならないので面倒です.
手元のHTMLエディタで作成したものを貼り付けた方が,作業性は良いのかな?
いまここで書きながらそんな気がしてきました...あ,もしかして<pre>も有効だったりしないかな.(これは期待薄)
Tatsuya Shirai への返信

Re: wikiへのソースコードの記述法についてアドバイスをお願いします

- Tatsuya Shirai の投稿

 この件に関する原因と対策をまとめます.

 まず,HTMLエディタでのテキストの入力に関してだけは,FirefoxよりもIEの方が正しい内部動作(Javascript)をすることが判明しました.IEを使用した場合,行頭に半角空白などでインデントを入れることが可能です.画面に表示したWikiからコピー&ペーストでテキストファイルにソースをコピーできるなど,IEを使用するメリットがあります.

 それ以外に発生する怪奇な現象はeWikiに含まれる”自動的に置換する機能”が悪さをしていることが判明しました.特に,ソースリストに"=="が含まれているときは致命的です.これらの問題はwikiのPHPソースを修正して対策を行うべきです.

IEか,Firefoxか.HTMLエディタでインデントが正しく入らない問題:
http://moodle.org/mod/forum/discuss.php?d=79705

文字属性がときどき変になる問題:
http://moodle.org/mod/forum/discuss.php?d=85640 

”キャメルケースリンクを無効”にすると発生する問題:
http://moodle.org/mod/forum/discuss.php?d=85442