HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
slab
parchment
TypeScript2016–2016
slab / parchment

parchment

Generalized state model for rich-text editors to interface with browser DOM

4Distinct people
5Mentions
0Explicit recommenders
702GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Generalized state model for rich-text editors to interface with browser DOM

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week5 dated mentions

Observed mentions: 2016-09-06 17:50:20 UTC to 2016-11-11 16:16:03 UTC. Weeks start Monday, UTC.

012342016-09-05 00:00:00 UTC to 2016-09-12 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 commentsSep 52016-09-12 00:00:00 UTC to 2016-09-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-09-19 00:00:00 UTC to 2016-09-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-09-26 00:00:00 UTC to 2016-10-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-10-03 00:00:00 UTC to 2016-10-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsOct 32016-10-10 00:00:00 UTC to 2016-10-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-10-17 00:00:00 UTC to 2016-10-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-10-24 00:00:00 UTC to 2016-10-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-10-31 00:00:00 UTC to 2016-11-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-11-07 00:00:00 UTC to 2016-11-14 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 7

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Sep 52016-09-05 00:00:00 UTC2016-09-12 00:00:00 UTC404
Sep 122016-09-12 00:00:00 UTC2016-09-19 00:00:00 UTC000
Sep 192016-09-19 00:00:00 UTC2016-09-26 00:00:00 UTC000
Sep 262016-09-26 00:00:00 UTC2016-10-03 00:00:00 UTC000
Oct 32016-10-03 00:00:00 UTC2016-10-10 00:00:00 UTC000
Oct 102016-10-10 00:00:00 UTC2016-10-17 00:00:00 UTC000
Oct 172016-10-17 00:00:00 UTC2016-10-24 00:00:00 UTC000
Oct 242016-10-24 00:00:00 UTC2016-10-31 00:00:00 UTC000
Oct 312016-10-31 00:00:00 UTC2016-11-07 00:00:00 UTC000
Nov 72016-11-07 00:00:00 UTC2016-11-14 00:00:00 UTC101

What Hacker News says

5 sources
I wish this article had also discussed DraftJS and QuillJS, which both use much more involved text management logic. Draft is powered by Immutable.js ( https://facebook.github.io/immutable-js/ ) and Quill is powered by Parchment ( https://github.com/quilljs/parchment ). I've been creating a hobby text editor for myself and have tried almost every text editor library on the planet, I think Draft and Quill are the best.
In A glance into web tech-based text editors’ text management
In the comments, you mention how Quill is extensible. Does Quill's extensibility enable the creation of a hierarchical level that resembles an HTML <section> element? From what I can tell, Quill/Parchment divides documents into block blots, inline blots, and embedded blots[1]. If I wanted to create a group of block blots, could that be done with Quill? In HTML, this would look something like: <section> <h1>First Section</h1> <p>Text...</p> <p>Text...</p> </section> <section> <h1>Second Section</h1> <p>Text...</p> <p>Text...</p> </section> [1] https://github.com/quilljs/parchment#block-blot
In Announcing Quill 1.0
Most editors nowadays maintain a parallel structure to the DOM. And since the DOM is a tree, that structure is also a tree. Quill's is Parchment[1] and goes a step further by also having an API and allow defining new nodes, which ProseMirror (and maybe Draft) also does. Deltas are a simple, iterable output format for Quill. In practice it is much nicer to deal with this in many use cases than the Parchment tree. [1] https://github.com/quilljs/parchment
In Announcing Quill 1.0
(Quill maintainer here) Draft’s own description of itself is "Rich Text Editor Framework for React" and is more comparable with Parchment[1], both being a foundation in which you can build a rich text editor. But there are many pieces missing for it to be a full fledged editor like Quill. * UI Draft only has buttons you can toggle for formats. There are no dropdowns to select which header size—just six h1, h2, h3, h4, h5, h6 buttons. There are no tooltips or link, video, or image UIs to assist with editing. * API - Quill’s API is designed for the editing use case. Draft is built on React and inherits many primitives and ideas that are more appropriate for websites, rather than linear content like text. Which APIs is nicer for which use case may be subjective so I will just link Quill’s API’s [2] and Draft’s API [3] and ask the reader to t
Read the rest
hink of some common tasks, like making a range of text bold, and try to figure out how to accomplish these tasks from reading through the respective APIs. * Markup - With the exception of nested lists, Quill’s markup is clean and semantically correct. Draft uses <span> tags with inline styles with lots of attributes for bookkeeping. [1] https://github.com/quilljs/parchment [2] http://quilljs.com/docs/api/ [3] https://facebook.github.io/draft-js/docs/overview.html
In Announcing Quill 1.0
As a long-time user of Quill, I must say: Congratulations to jhchen and everyone else who worked on the project. I use Quilljs because it's a great implementation of a modern-thinking WYSIWYG text editor. The underlying parchment[0] library helps a lot to separate out the data model from the rendered view (instead of relying on contenteditable to handle your data model, like many other classic rich text editors do). My users type stuff in Quill, and my front end shoots data in the rich-text[1] format back to the back-end. I have a small (and not great, but functional for my needs) library [2] I wrote to convert rich-text back into HTML, so we never actually store user-entered HTML entities in our database (which helps a lot for things like protecting against XSS attacks, and since rich-text is just a JSON object, I can do interesting data
Read the rest
base queries that are a bit trickier to pull off if it had been HTML). On top of all of that, Quill emits delta objects on user interaction (that conform to an operational transform model), so it's pretty straightforward to wire it into a concurrent editing system. This isn't batteries-included (you have to deal with resolving the operational transforms yourself, which is of course tricky) but it's a great start in that direction. 0: https://github.com/quilljs/parchment 1: https://github.com/ottypes/rich-text 2: https://github.com/ericeslinger/delta-transform-html
In Announcing Quill 1.0

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.