165 lines
4.5 KiB
Markdown
165 lines
4.5 KiB
Markdown
# MDEditor
|
|
|
|
MDEditor is a Windows-first offline document editor for people who want to write formal documents without dealing with raw Markdown syntax. It combines a Korean WYSIWYG editing experience with simple file handling and PDF export.
|
|
|
|
## Why This Project Exists
|
|
|
|
Many teams still want the portability of Markdown files, but the people writing the documents often prefer something that feels closer to a word processor.
|
|
|
|
This project was created to bridge that gap:
|
|
|
|
- write in a familiar visual editor
|
|
- keep documents as simple `.md` files
|
|
- work fully offline
|
|
- export polished PDFs when the document is ready
|
|
|
|
## Project Goal
|
|
|
|
The goal is not to build a general-purpose publishing platform.
|
|
|
|
The goal is to make everyday document work easier for non-technical users who need:
|
|
|
|
- a clear Korean interface
|
|
- local file ownership
|
|
- a lightweight editing workflow
|
|
- repeatable document templates
|
|
- a straightforward path from draft to PDF
|
|
|
|
## Concept At A Glance
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
A["User writes visually"] --> B["MDEditor WYSIWYG editor"]
|
|
B --> C["Markdown file (.md)"]
|
|
C --> D["Save and reopen locally"]
|
|
C --> E["Pandoc conversion"]
|
|
E --> F["Shareable PDF"]
|
|
```
|
|
|
|
## What Problem It Solves
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
A["Need a document tool"] --> B{"Current option?"}
|
|
B --> C["Word processor only"]
|
|
B --> D["Markdown editor only"]
|
|
C --> E["Easy to write, harder to keep plain-text workflow"]
|
|
D --> F["Good for developers, harder for non-technical users"]
|
|
E --> G["Need a middle ground"]
|
|
F --> G
|
|
G --> H["MDEditor: visual writing + Markdown files + offline PDF export"]
|
|
```
|
|
|
|
## How The App Works
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
actor User
|
|
participant App as MDEditor
|
|
participant File as Local Markdown File
|
|
participant Pandoc as Pandoc Sidecar
|
|
|
|
User->>App: Create or edit a document
|
|
App->>File: Save as .md
|
|
User->>App: Reopen and continue editing
|
|
User->>App: Export as PDF
|
|
App->>Pandoc: Convert saved Markdown
|
|
Pandoc-->>App: PDF output
|
|
App-->>User: Ready-to-share PDF
|
|
```
|
|
|
|
## Key Features
|
|
|
|
- Korean-first desktop UI
|
|
- WYSIWYG editing with TOAST UI Editor
|
|
- Native `New / Open / Save / Save As` workflow
|
|
- Built-in templates for blank documents, reports, meeting notes, and proposals
|
|
- PDF export through Pandoc
|
|
- Offline-first local file workflow
|
|
- Windows NSIS installer build
|
|
|
|
## Who It Is For
|
|
|
|
- office teams writing reports or proposal drafts
|
|
- non-developers who do not want to see Markdown syntax while writing
|
|
- teams that want local files instead of cloud-only editing
|
|
- users who need a simple path from draft to PDF
|
|
|
|
## Who It Is Not For
|
|
|
|
- users looking for real-time collaboration
|
|
- teams needing cloud sync or online review flows
|
|
- advanced publishing workflows with complex layout design
|
|
|
|
## Repository Layout
|
|
|
|
- `src/`: React UI, editor wrapper, templates, and file workflow logic
|
|
- `src-tauri/`: Tauri desktop app, Windows bundling config, and PDF export command
|
|
- `scripts/`: Windows helper scripts for sidecar sync and Tauri build automation
|
|
- `docs/`: simple documentation for non-developers and maintainers
|
|
|
|
## For Non-Developers
|
|
|
|
If a GitHub Release is published, the easiest path is:
|
|
|
|
1. Open the repository's `Releases` page.
|
|
2. Download the Windows installer.
|
|
3. Install MDEditor.
|
|
4. Open the app, choose a template if needed, and start writing.
|
|
5. Save the document as a Markdown file.
|
|
6. Export a PDF when the document is ready.
|
|
|
|
For a step-by-step explanation, see [docs/USER-GUIDE.md](./docs/USER-GUIDE.md).
|
|
|
|
## For Developers
|
|
|
|
### Requirements
|
|
|
|
- Node.js 20+
|
|
- Rust toolchain with `cargo` and `rustc`
|
|
- Visual Studio with the x64 C++ toolchain
|
|
- Pandoc installed locally on Windows
|
|
|
|
### Install And Test
|
|
|
|
```bash
|
|
npm install
|
|
npm test
|
|
npm run build
|
|
```
|
|
|
|
### Windows Desktop Build
|
|
|
|
```bash
|
|
npm run sync:pandoc
|
|
npm run tauri:dev:win
|
|
npm run tauri:build:win
|
|
```
|
|
|
|
The helper scripts will:
|
|
|
|
- load the Visual Studio developer shell
|
|
- add Cargo to `PATH`
|
|
- sync the installed Pandoc binary into the Tauri sidecar location
|
|
- run the local Tauri CLI for desktop development or packaging
|
|
|
|
## Current Status
|
|
|
|
Phase 0 is implemented and locally verified for:
|
|
|
|
- frontend tests
|
|
- production web build
|
|
- Windows Tauri build
|
|
- NSIS installer generation
|
|
|
|
The remaining practical step is final manual smoke testing of the packaged app:
|
|
|
|
1. launch the installed app
|
|
2. create a document
|
|
3. save and reopen a `.md` file
|
|
4. export a PDF and confirm the output file
|
|
|
|
## License
|
|
|
|
This project is released under the MIT License. See [LICENSE](./LICENSE).
|