在 Composer 粘贴时自定义处理 HTML?

注意到 我认为是一个 bug 的问题,我现在想知道是否可以在将 HTML 粘贴到编辑器时自定义其解析方式。

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

<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>

在经文网站上,它看起来是这样的:

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

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

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

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

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

渲染效果如下:

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

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

具体来说,它将是

  <!--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-->

或者

<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 实例后添加一个空格。这可以在第一种情况下添加,因为它是不可见的 :person_shrugging:

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

谢谢!

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