Skip to content

"track changes" feature: show deleted text #5341

Closed

Description

@milahu

"track changes" feature

  • show a character-based "diff view" of the document. deletions are red, inserts are green
  • allow to accept or reject changes, so the deletions are finally removed, and the inserts lose the green color

useful to

  • moderate changes from untrusted sources
  • improve end-user involvement by in-place editing of documents

example

context-before this-text-was-deletedthis-text-was-inserted context-after
Image

accept this change:

context-before this-text-was-inserted context-after

note that this-text-was- is redundant, its both in deleted and inserted text.
this is desired, to visualize the human-intended change,
not the machine-interpreted change, which would produce a smaller diff

demos

challenges

visualize deletion of style. example: mix html tags with rich text

context-before <b>content-is-same</b> context-after

plugin

Might this feature be better suited to being a plugin?

"show deleted text" should be possible with the current etherpad-lite

"accept/reject changes" ...
send accept/reject events to other users.
permissions: who can accept/reject changes? who "owns" the document?
how to resolve conflicts? -> allow users to start "hostile" forks
imitate git branches and github PRs/forks? -> nonlinear history

Activity

  1. webzwo0i commented on Dec 30, 2021

    @webzwo0i
    Member
  2. milahu commented on Dec 30, 2021

    @milahu
    Author

    that escalated quickly ; )

    example scenario:

    lets say you and me work on a document.
    i'm a maintainer, you're a contributor.
    the document is hosted in a git repo,
    but development happens in etherpad (or similar collaborative editor).
    (i assume this way is more user-friendly than github pull-requests.)

    so ... you propose changes, i review your changes (accept/reject/modify)
    after some back-and-forth, we reach consensus,
    i commit the new version to git, the etherpad history can be deleted.
    (in other words, the million etherpad commits are squashed into one git commit.)

    im using matrix as transport layer for CRDT messages, see applications beyond chat
    the matrix element client can embed etherpad-lite as widget (video)

    public pads

    only matrix users have write access to the pad
    so the contributors are only "untrusted" but authenticated (less vandalism)
    access control is done by matrix -> ownership, write access

    Do we want to remove old revisions because they are vandalism?

    compare: rewrite git history. sometimes this is necessary to remove private data

  3. deleted a comment from milahu on Jan 15, 2025
  4. JohnMcLear commented on Apr 17, 2026

    @JohnMcLear
    Member

    Does https://www.npmjs.com/package/ep_timesliderdiff not solve this problem? If not, I'll re-open

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions