1行のテキストを選択して、コンポーザーボタンから「折り返し」を適用すると、インライン折り返しが適用されます。これは機能しますが、選択されたテキストの最後の文字が一部切り取られてしまいます。
![]()
これはインライン折り返しを作成する方法の1つであり、同じ行に他のコンテンツが書かれていない場合は自動的にブロック折り返しに変換されます。
もう1つの方法は <span data-attribute> ですが、リッチエディターではサポートされていません(data-attribute は除去されてしまいます)。一方、Markdownエディターでは完全にサポートされています。興味深いことに、この許可されている構文は discourse/frontend/pretty-text/addon/allow-lister.js at 3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd · discourse/discourse · GitHub ではなく、discourse/frontend/discourse-markdown-it/src/features/d-wrap.js at 3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd · discourse/discourse · GitHub に記載されています ![]()
<span data-attribute> はメタで文書化されており、おそらく私のフォーラム以外でも実際に使用されています。この方法の利点は、同じ行に他のコンテンツがなくても、ブロック要素に変換されないことです。
以下のように、1行に通常の折り返しのみがある場合:
[wrap="fish"]text[/wrap]
ブロックとしてレンダリングされます:
<div class="d-wrap" data-wrap="fish">
<p>text</p>
</div>
私の知る限り、この動作を回避する方法は以下の通りです:
-
<span data-attribute>を使用する方法:<span data-fish>text</span>結果:
<span data-fish="">text</span> -
行の先頭または末尾に、トリミングされない(理想的にはゼロ幅の)スペース(例:
​)を追加する方法。​[wrap=fish]Fishyfishy[/wrap]結果:
​<span class="d-wrap" data-wrap="fish">Fishyfishy</span>
後者は少しハック的な手法です。
リッチエディターで最初のソリューションを使用できることを望みます。より一般的には、インライン折り返しを作成する簡単な方法があれば何でも構いません。