0

VisualEditorを使用してMediaWikiの実装を拡張する作業を行っていますが、次の状況があります。

wiki と VisualEditor で見られるように、コンテンツ (タグの開始と終了の間のテキスト) が異なる div があります。wikiでは全文見たいのですが、VEでは略語だけ見たいです。これらは、VE で変更/削除/拡張することもできます。

たとえばProduct A, Product B and Product C、wikiで見たいのですがpa,pb,pc、VEで。VE でその値を変更すると、たとえば、wiki でpx,py見たいとします。Product X and Product Y

問題は、VE がテキストの段落を自動的に作成するため、VE 内にデータが次のように保存されることです。

data[i]:   My-Custom-Div-Data-Structure
data[i+1]: Paragraph
data[i+2]: T
data[i+3]: e
data[i+4]: x
data[i+5]: t
data[i+6]: /Paragraph
data[i+7]: /My-Custom-Div-Data-Structure

一方向 (HTML Dom -> VE Linear Data) では、カスタム データ構造の toDataElement 関数の domElement に新しい値を設定することでこれを解決しました。

しかし、どうすればそれを別の方向に実現できるでしょうか? VE Linear Data 要素がありますが、カスタム データ構造が処理された後、古い値が段落から取得され、div の間に挿入されるため、正しい値を inner/outer-HTML/Text または textContent として設定できません。二重テキストになります。

4

1 に答える 1

0

段落にアクセスできなかったので、かなり醜いハックを使用しました。ではve.dm.Converter.js.prototype.getDomSubtreeFromData、段落のテキストが挿入される行に、親がカスタム データ型であるかどうかのチェックをチェックに追加しましたtext.length > 0(1220 行あたり)。

それはひどく醜い解決策ですが、残念ながら私は今より良い解決策を知りません.

于 2016-04-12T09:28:16.847 に答える