2009-06-05 3 views
5

問題:私はリッチエディタでDrupalを使用し、リッチエディタはインデントと書式を取り除いてテキストを壊すのが好きです。これはデスクトップエディタでは容認できないだろうが、ブラウザ内のwyswigでこれを許容しているようだ。インデントを保存するためのtinymce(ブラウザ内の "リッチエディタ")の入手方法

質問:これをオフにするにはどうすればよいですか。私は検索したが、インデントとテキストの書式を保持するようリッチエディタに伝えるベストプラクティスの方法をまだ見つけていない。

答えて

3

は間違いなくかなりのスクリーンショットですTinyMCEのinitスクリプト

tinymce.init({ 
    protect: [/[\n\f\r\t\v]/g] 
}); 
+0

これはうまくいきませんが、読み込み中のコンテンツの\ t文字は引き続き削除されます – skerit

1

これが起こっている理由は、リッチエディタは実際にはxhtmlエディタです。 xhtmlでは、ほとんどのタグは(PREタグを除いて)、デフォルトで複数の空白文字を1つのスペースにマージします。

* {white-space: pre;} 

をしてエディタを初期化するときcontent_cssとしてスタイルシートを参照:

はTinyMCEの中でこれを克服するために、あなたは含むスタイルシートを作成する必要があります。 フォーマットを保存している間は、HTMLの空白文字が混じっているため、WYSIWYGになることはありません。

もう一つの選択肢はPRE要素にコードをラップすることですが、デフォルトでtinyMCEにこれを行うボタンはありません。

EDIT: miklで述べたように

、TinyMCEをも持ってありますconfiguration option for preformatted

1

「フォーマット済み」WYSIWYG moduleを経て、この場合には(TinyMCEをするprefrerencesに設定するが、それはにありますTinyMCEモジュールも同様)。それはトリックを行う必要があります。

Screenshot of setting http://www.quicksnapper.com/files/3603/2949292644A2CF2A72BC21_m.png

+3

にこの設定を追加します。残念ながら、少なくとも私のためではありません。 「リッチエディタ」がブラウザのテキストエリアで呼び出されるとすぐに、GUIコントロール内のマークアップは即座にスペースを取り除かれ、空白のない「HTMLの単一ライン」としてレンダリングされます。 – dreftymac

+1

+1前もって書式設定済みの設定オプションを見落としてしまったとは思えません!その宝石をありがとう! – Matt

+0

いいえ、私にとってはうまくいきません。私はなぜそうでないのだろう... –

2

これは、あなたが探しているまさにではないかもしれないが、drupalのhtmlpurifierモジュールは、HTMLを整理して、HTMLの標準に準拠することができます。インデントは削除される可能性がありますが、非常に便利です。

さらに簡単なモジュールはhtmltidyです。インデントを保持できるかどうかはわかりません。

0

TinyMCEの一般的な回答と同じ回答を探していましたが、2015年5月の時点でも、TinyMCEの作成者は空白を取り除くと考えています。設定オプションpreformatted<pre>タグのような空白を保持することをドキュメントで示していても、無効にすることはできません。私はまだそれを動作させる、または他の何かを得るために持っていない、と私はドキュメントがもはやコード内の機能を記述する必要がありますと信じています。

http://community.tinymce.com/forum/viewtopic.php?id=26021

スレッド繰り返しWYSIWYGのコードは、総再フォーマットのための公正なゲームであり、サーバ側の再フォーマットが最善であることを示唆しています。サーバー側のツールは、ドキュメント構造と同様に破壊的であるため、最小の再フォーマットを行うことが目標です。これはTinyMCEの開発者によるとWONTFIXなので、近い将来にこれが変わるのではないかと思う。

+0

バージョン3.4.5は、changelogに 'whitespace_elements'をリストアップしていますが、ドキュメントが見つかりませんでした。わからない。それは間違いなくコードにありますが、 'pre script noscript style textarea'に初期化されています。ユーザーの設定で上書きできるかどうかは私には不明です(私は試しましたが、おそらく何か間違っています)。 – jimp

関連する問題