Work/Product · Editor

RTL Markdown Book Editor

The manuscript is Persian, so the studio starts from the right. Monaco holds the source, the page beside it is the same text already set, and the toolbar inserts the structures a right-to-left book actually uses — a heading, a footnote, a passage you can jump to.

Role
Full-Stack Engineer
Timeline
8 months
Team
On-site product team · I owned the editor
Year
2024
The new sentence is its own line. The page on the right is that sentence, already set.
24
authoring commands on the toolbar
6
heading levels the contents follow
2
panes on the same passage
RTL
text, caret, and toolbar

01 — Problem

A book that starts from the right

The people writing the book were not writing code. They needed headings, a footnote, a quotation, and a way to land on a later chapter without scrolling the whole manuscript by hand. A generic markdown pane gives you the syntax and leaves the direction to the browser.

Persian text in a left-aligned editor is a different product from a page. The caret ends up on the wrong side of the line, the toolbar starts on the wrong side of the screen, and the preview, when there is one, is a second document you have to trust.

02 — Commands

Twenty-four, and one of them is a footnote

The toolbar is the whole command set: undo and redo, the inline marks, six heading levels, three lists, a quotation, code, a table, a link, image, video, audio, and a footnote. Media asks for an address. Everything else writes the syntax around the selection.

Here the selection is the last word of the sentence, انار. The footnote command wraps it and drops the note under the line. The page renders the marker and the note in the same moment — markdown-it, with the footnote plugin, not a second renderer.

انار stays the last word. The marker is in the source, and the page numbers it.

03 — Contents

The list is a way of moving

A long chapter grows a third pane: فهرست مطالب, built from the same headings the preview renders. Six levels, right-aligned, the current passage a click away.

The click has to move both sides. The preview scrolls the heading to the top of the page. The editor reveals that same heading in the source, caret on the line. بازگشت is the one in this recording — chosen because it starts below the fold, and both panes can still reach it.

The pointer is on بازگشت. The heading is at the top of the page, and on line 41 of the source.

04 — Outcome

One manuscript, two views of it

What ships is a studio for a right-to-left book: the source and the page stay on the same passage, the toolbar writes the structure in place, and the contents list is how you move through a chapter that no longer fits on one screen.

The same season I also shipped the app builder and a schema-driven form builder. This one is the document: a page you can read while you are still typing it.

Stack

ReactTypeScriptMonacomarkdown-itTanStack Query

Next case

HeidaryHa — The Fund, On the Phone→