# 在 Composer 粘贴时自定义处理 HTML？

**URL:** https://meta.discourse.org/t/custom-processing-of-html-in-composer-paste/407665
**Category:** Support
**Created:** [2026年七月15日 05:56 UTC](https://meta.discourse.org/t/custom-processing-of-html-in-composer-paste/407665 "2026-07-15T05:56:14Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [2026年七月15日 05:56 UTC](https://meta.discourse.org/t/custom-processing-of-html-in-composer-paste/407665/1 "2026-07-15T05:56:14Z")

</div>

注意到 [我认为是一个 bug 的问题](https://meta.discourse.org/t/has-something-changed-with-pasting-html-into-the-composer/407661)，我现在想知道是否可以在将 HTML 粘贴到编辑器时自定义其解析方式。

我们的论坛致力于一个提供古代经文翻译及源语言对照的网站。（例如：英语与巴利语对照）因此，用户可能会粘贴如下内容：

```plaintext
<span lang="en">如是我闻。</span><span lang="pli"><span lang="la">Evaṁ me sutaṁ—</span></span><span lang="en">一时，佛住在舍卫城祇树给孤独园。</span><span lang="pli"><span lang="la">ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.</span></span>

```

在经文网站上，它看起来是这样的：

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/c/2/fc2398ff906744bb7be338cdbc787aa8d241ab58.png)

在我上面提到的新 bug 出现之前，将这段文本粘贴到我们的论坛会产生如下结果：

> 如是我闻。Evaṁ me sutaṁ— 一时，佛住在舍卫城祇树给孤独园。ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.

这并不理想！所有语言混在一起，难以阅读。细心的发帖者会使用 Markdown 进行如下格式化：

```plaintext
如是我闻。
*Evaṁ me sutaṁ—* 

一时，佛住在舍卫城祇树给孤独园。 
*ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme.* 

```

渲染效果如下：

> [@](#):
>
> 如是我闻。  
> _Evaṁ me sutaṁ—_
> 
> 一时，佛住在舍卫城祇树给孤独园。  
> _ekaṁ samayaṁ bhagavā sāvatthiyaṁ viharati jetavane anāthapiṇḍikassa ārāme._

基本上是将每个 span 放在单独的一行，并将带有 `lang="pli"` 属性的 span 设为斜体，并在其后添加一个空白行。

在发现本帖开头提到的 bug 之前，我从未想过系统中已经有一个将 _部分_ HTML 转换为 Markdown 的过程。现在我在想 _ **是否可以通过组件或插件添加一些代码，以我上述的方式转换带有 `lang` 属性的特定 span。** _ 理想情况下是通过组件实现，但通过插件也可以。

---

<div class="post-metadata">

### Author: ![delightful](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@delightful](https://meta.discourse.org/u/delightful)
#### Post date: [2026年七月15日 06:45 UTC](https://meta.discourse.org/t/custom-processing-of-html-in-composer-paste/407665/2 "2026-07-15T06:45:18Z")

</div>

具体来说，它将是

```plaintext
  <!--start repeat-->
<p>
  <!--start repeat-->
  <a href="..." title="same text always here">int</a>
  <span lang="a">...</span>
  <span lang="b">...</span>
   <!-- end repeat-->
</p>
<!-- end repeat-->

```

或者

```plaintext
<p>
  <a href="..." title="same text always here">int</a>
  <span lang="a">...</span><span lang="a">...</span>
</p>
<!-- repeated-->

```

其中语言 a 和语言 b 会有所不同。

链接可能存在，也可能不存在，并且始终具有相同的标题值。只有具有此标题值的链接才应加粗。在此之后应包含一个软回车。

语言 b 应斜体并软回车。

Discourse 已经按预期转换了 `<p>`。

**在 _语言 a_ 重复的情况下：**  
需要在第一个 span 实例后添加一个空格。这可以在第一种情况下添加，因为它是不可见的 🤷

语言 b 仅是两个可能作为数组提供的语言的选择。要么是 `pli`，要么是 `lzh`。

---

<div class="post-metadata">

### Author: ![one1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/one1/32/493591_2.png) [@one1](https://meta.discourse.org/u/one1)
#### Post date: [2026年七月15日 06:52 UTC](https://meta.discourse.org/t/custom-processing-of-html-in-composer-paste/407665/3 "2026-07-15T06:52:31Z")

</div>

谢谢！

（@delightful 和我正在合作处理此事）
