Version difference extraction
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 659
- Forks
- 133
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 110
Description
When trying to summarize changes that happened since a file was last viewed or to compare the difference of versions in a overview we would need a way to extract the difference between two files in some structured way.
When brainstorming with @AndyScherzinger and @marcoambrosini today we came up with the following idea:
- Generate a simple diff of relevant changes in a CRUD approach, e.g.
- Paragraph added/removed/updated with content
- Image inserted/removed
- Table added/updated/removed
- List added/updated/removed
- To give the change more context we could extract the preceding heading as the section the change refers to
- This way we could generate a changelog style output for any given two documents
As a first step we'd need to:
- experiment with possible tools we could use to generate the diff
- remove or group possibly irrelevant changes like single character/word changes
- figure out a way to find matching section headings and connect them
- try to represent them in structured data
If this works out fine we can align with the design team on how to further make use of this, some possible candidates:
- Summary in collectives for changes since the page or collective was last viewed
- Comparison view for versions in files
- Maybe other places like activity or summary emails
- This could be a first candidate for formulate input prompts for possible summaries that @marcelklehr is looking into
For implementation we may want approach it in a flexible API approach so that apps could provide their own extractors for file types which could be text for markdown and a different implementation in richdocuments for office files, though that is something to still evaluate in further detail after the first feasibility exploration.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by experimenting with diff tools for Markdown and document versions, then define structured CRUD changes with relevant headings and grouped edits; done means a feasible representation and extraction approach that can support the listed comparison and summary use cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, markdown
- Domain
- api, content
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100