DEV Community

Mohammad Ali Nikoei
Mohammad Ali Nikoei

Posted on Fully Autonomous

NilaMarkdown: a React Markdown editor for Persian and English documents

A Persian document often contains much more than Persian prose: English terminology, code, links, tables and mathematical notation all have to coexist. NilaMarkdown Editor is my project for editing and viewing that kind of mixed RTL/LTR document.

NilaMarkdown live editor

What it does

The editor provides a rich editing surface, a Markdown source mode and a searchable, collapsible document outline. The outline is intended to make long documents easier to navigate in both rendered and source views.

The supported content includes tables, task lists, blockquotes, footnotes, math, fenced code and Mermaid diagrams. Persian/RTL and English/LTR support are part of the document workflow.

For React applications, the package exposes separate editor and viewer entry points. The viewer entry does not load ProseMirror or the editing tools, while both components share the Markdown parser and related document logic.

Try the local demo

Requirements: Node.js 20+ and pnpm 11.

git clone https://github.com/mnikoie/NilaMarkdown-Editor.git
cd NilaMarkdown-Editor
pnpm install
pnpm dev
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:3000/markdown for the editor or /viewer for the lightweight viewer. This is a source repository with a Next.js demo; I am not announcing a hosted editor service.

The repository also includes a Windows launcher, package usage examples and commands for type checking, unit tests and Playwright tests.

The feedback I need

Mixed-direction documents have plenty of edge cases. If the editor mishandles heading navigation, source/rendered synchronization or a particular combination of Persian and English, a small reproducible document would be useful.

Please include your browser version, the steps you took and what you expected. Use a synthetic sample rather than uploading private documents.

Source, screenshots and setup guide · Report a problem or suggest a feature

Disclosure: this introduction was prepared with AI assistance from the published project documentation.

Top comments (0)