Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[RTE] Toolbar Copy should copy the selection's serialized content, not its DOM

オープン
#6,296 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
リファクタリング
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
javascript
領域
frontend

調査の方向性

Start at handleCopy in contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/composables/useToolbarActions.js (L113-L186), which clones the selection DOM today; replace it with editor.view.serializeForClipboard(selection.content()). Then remove the math-field special case there and the hidden copySource span in TipTapEditor node views like InlineChoiceChip/index.vue. Done means Toolbar Copy and Ctrl+C emit identical text/html, plus unit tests covering copy of a formula and a chip. Note the issue header states it is not open for contribution yet.

索引モデルが issue の本文から書いたものです。

説明

DEV: frontend

❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview

The rich text editor's toolbar Copy button builds its HTML by cloning the selection's DOM, so every node view that holds data must special-case itself to copy correctly. Copy should produce the same HTML as ProseMirror's own clipboard serializer, the one Ctrl+C uses.

Complexity: Low
Target branch: unstable

Context
  • handleCopy clones window.getSelection()'s range and patches it: <math-field> becomes a math-inline span, data-copy-ignore elements and Vue attributes are stripped, math-node-wrapper divs are unwrapped (useToolbarActions.js#L113-L186).
  • The inline choice chip in #6277 keeps a hidden copySource span holding its own renderHTML output only so this Copy picks it up (InlineChoiceChip/index.vue).
  • Raised in review of #6277.
The Change

Toolbar Copy should write the HTML ProseMirror serializes for the selection (editor.view.serializeForClipboard(selection.content())), so a node view's DOM no longer decides what is copied.

Acceptance Criteria
  • Toolbar Copy then paste of a selection containing a formula reproduces the formula.
  • Toolbar Copy then paste of a selection containing an inline choice chip reproduces the chip with its options and correct answer.
  • The math-field special case in handleCopy is gone.
  • The inline choice chip's hidden copySource span is gone.
  • Toolbar Copy and Ctrl+C put the same text/html on the clipboard for the same selection.
  • Unit tests cover toolbar Copy of a selection with a formula and with a chip.

AI usage

A reviewer asked for this follow-up on #6277; Claude Code drafted it from that review thread and the current handleCopy code.

主要言語
Python
スター
191
フォーク
308
平均マージ
2日 17時間
マージ済み PR(30日)
64

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

learningequality/studio のほかの issue

learningequality/studio の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。