Skip to content

Repository files navigation

TypeMD

简体中文

This is an AI-generated project. I have not reviewed it. It runs, meets my needs, and has felt good to use since being migrated to depend on my own Docengine. Its other value is simply serving as an application for validating Docengine, so do not expect too much from it.

TypeMD is a local Markdown editor for Windows built with Wails, React, TypeScript, and my own docengine. It provides WYSIWYG editing, multiple tabs, an outline, in-document search, local images, manual saving, crash recovery, and external-change protection. It also validates Docengine in a real desktop application and with large files.

Docengine dependency

TypeMD currently has a high level of dependence on Docengine, approximately 8/10, although the dependency is concentrated in a small part of the codebase. Docengine is the backend document kernel: it handles opening and creating files, revisions, edit history, undo and redo, snapshots and search, paged windows, save conflicts, and crash recovery. The interface can still start without it, but the main document features cannot function.

The frontend does not depend on Docengine directly. Only eight production Go files import it, and all of them use only its high-level doc package. Replacing Docengine would therefore require rewriting or adapting most of the backend document-session capabilities, while the frontend and most of the Wails protocol could remain. In short, TypeMD is highly dependent on Docengine's capabilities, but the code-level coupling is localized.

Performance

The following results were measured on 2026-07-30 on Windows/amd64 with Go 1.26.5. “Open” measures the time for the desktop bridge and Docengine to open the file, excluding application cold start. “Full index” is the additional operation of waiting for indexing to finish after opening.

File size Open Full index Edit + undo + redo + save Largest bridge window Peak Go heap growth
600 KiB 31 ms 30 ms 52 ms 98,392 B 3.13 MiB
64 MiB 530 ms 1.71 s 987 ms 98,392 B 3.61 MiB
1 GiB 7.84 s 25.13 s 15.30 s 98,392 B 24.80 MiB

The benchmark generates Markdown files of each size, measures opening and full indexing, requests windows at the beginning, middle, and end of the document, runs a full-text search, and performs one edit, undo, redo, and save cycle. These are single-run measurements from one machine and are not fixed latency guarantees for every device.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages