# Appleプラットフォームでリッチテキストエディタがテキスト置換機能を壊す

**URL:** https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316
**Category:** Bug
**Tags:** composer
**Created:** [2025 年 8 月 12 日午後 5:59 UTC](https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316 "2025-08-12T17:59:03Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![rjmccall](https://avatars.discourse-cdn.com/v4/letter/r/82dd89/32.png) [@rjmccall](https://meta.discourse.org/u/rjmccall)
#### Post date: [2025 年 8 月 12 日午後 5:59 UTC](https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316/1 "2025-08-12T17:59:03Z")

</div>

フォーラムのモデレーションで最近新しいリッチテキストエディタを使用するようになったのですが、すぐにOSのテキスト置換機能（iOSの「一般」\>「キーボード」\>「テキスト置換」など）が（ある程度）壊れていることに気づきました。これは残念なことです。なぜなら、Discourseで_頻繁に_使用する置換がいくつかあるからです。例えば、私の最も一般的なモデレーションタスクの1つは、ユーザーを他のフォーラムにリダイレクトすることです。そのため、例えば`adf`をApple Developer Forumsへのリンクに置き換えるテキスト置換があります。（定型返信はこの目的には使用したくありません。なぜなら、投稿の残りの部分はしばしば定型的ではなく、常にそのリンクが含まれているからです。それに、そのモデルに当てはまらない他の置換もいくつかあります。）

興味深いことに、私の置換の一部は引き続き機能しています。例えば、`\\tau`は確実にτに変換されるようです。そして、バッククォートの間に入力すると、私の`adf`置換はほぼ機能するように見えます。macOS Safariでこの投稿を書いていますが、`[バッククォート] adf [バッククォート] [スペース]`は一時的に`[Apple Developer Forums](https://forums.developer.apple.com/)`になりますが、その後エディタを操作すると消えて`adf`に戻ります。

この先頭のバックスラッシュが、他の置換が機能する理由に関係していると推測されるため、`adf`置換を`\\adf`に変更することで、このバグの回避策を見つけられるかもしれません。しかし、実際にはそうする必要はないはずです。

これは私にとってかなり深刻な問題です。なぜなら、Discourse iOSアプリからこのようなモデレーションを行う効率に影響が出ているからです。（これも、先頭にバックスラッシュを追加したくない理由です。電話のキーボードでバックスラッシュを入力するのは面倒だからです。）

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2025 年 8 月 12 日午後 6:03 UTC](https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316/2 "2025-08-12T18:03:28Z")

</div>

これは機能リクエストかもしれませんが、そのようなカスタマイズを使用したい場合は、 ![image](https://global.discourse-cdn.com/meta/original/4X/0/f/e/0fed3b58bf26d7cb69df7987bb77ebf73c948627.png) をクリックして Markdown エディターに戻す必要があると思います。

---

<div class="post-metadata">

### Author: ![rjmccall](https://avatars.discourse-cdn.com/v4/letter/r/82dd89/32.png) [@rjmccall](https://meta.discourse.org/u/rjmccall)
#### Post date: [2025 年 8 月 12 日午後 6:22 UTC](https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316/4 "2025-08-12T18:22:27Z")

</div>

はい、Markdownエディタを使用するだけで十分な回避策となります。したがって、この機能がすべての編集モードで一貫して機能するように機能リクエストとして検討してください。繰り返しになりますが、リッチテキストエディタはこれらの置換を常に無視するわけではありません。OSによって何らかの方法で開始されていると想像されますが、単にうまく処理できていません。

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2025 年 8 月 13 日午前 12:09 UTC](https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316/6 "2025-08-13T00:09:03Z")

</div>

> [@rjmccall](#):
>
> it just tends to handle them badly.

これは、クリップボードを安全のために前処理している問題のクラスであると推測します。

リッチテキストコンポーザに `[test]` を貼り付けると、生のテキストでは `\[test\]` になります。

同様に、以下を貼り付けると：

`\u003ca href=\"apple.com\"\u003eapple\u003c/a\u003e`

RTE（リンクではない）に貼り付けると `apple` になります。

しかし、生のテキストに貼り付けると \u003ca href="apple.com"\u003eapple\u003c/a\u003e になります。

* * *

これは非常に密接に関連しているように感じます @renato？

---

<div class="post-metadata">

### Author: ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)
#### Post date: [2025 年 8 月 13 日午前 12:24 UTC](https://meta.discourse.org/t/rich-text-editor-breaks-text-replacement-feature-on-apple-platforms/378316/7 "2025-08-13T00:24:50Z")

</div>

> [@sam](#):
>
> `<a>apple</a>`
> 
> RTEでは`apple`となり（リンクではない）、

これはバグのように思えます。おそらく、選択範囲の上に貼り付けたときにリンクを作成するロジックに問題があるのでしょう。確認します。

iOSのテキスト置換は、通常のテキスト挿入イベントをバイパスするAndroidのIMEに似ている可能性があります。確信はありませんが、別の問題のようです。

これらの不整合な発生が実行時エラーによって引き起こされている可能性は否定できません。今週中に再現を試みます。
