A lightweight, real-time Markdown editor built with JavaFX.
MarkUpJava is a simple split-pane Markdown editor with live HTML preview. It supports opening, editing, and saving Markdown files with automatic preview updates, basic search, and persistent autosave.
- Real-time Markdown preview (400ms debounce)
- Open/Save/Save-As with support for .md, .markdown, .html, .txt, etc...
- Remembers last opened directory and autosaves content across sessions
- Case-insensitive search with "Find" button (progressive next-match)
- HTML sanitization via Jsoup for safe preview
- Clean, customizable preview styling
- Built with Maven and Java 25
src/main/java/com/MarkUpJava/
├── Main.java
├── MarkupEditorApp.java
└── EditorController.java
src/main/resources/
└── main-view.fxml
| Layer | Description |
|---|---|
| Main | JVM entry point; launches JavaFX and ensures clean exit |
| MarkupEditorApp | JavaFX Application subclass; loads FXML and configures primary Stage |
| EditorController | Core logic: event handling, preview, file I/O, search, autosave, html/md process |
| main-view.fxml | The main UI |
Main → MarkupEditorApp.start() → FXMLLoader (main-view.fxml) → EditorController.initialize()
| Tech | Stack |
|---|---|
| Language | Java 25 |
| GUI Framework | JavaFX 25 |
| Markdown | Flexmark |
| HTML | Jsoup |
| Build | Maven |
- Requires modern Java 25 tooling and JDK.
- No Copy/Paste, Undo/Redo, or Syntax Highlighting Functionality available. These would require additional libraries or custom code logic.
- Restricts Advanced Markdown, Markup, and CSS functionality due to the use of Jsoup sanitization.
- No grammar checker or built in LSP engine for code completion.
- Basic search implementation without regex or advanced indexing to avoid complexity.
- Debounce timer is manual with fixed timeframe.
- Design Architecture is a simple small code base with all logic inside one class. Suitable for a project on this scale, however would require a massive re-write and refactoring for scale.
- Clone or download the project.
- Ensure Maven and JDK 25 are installed.
- Build:
mvn clean package- Run:
mvn javafx:runYou can also run the Main class directly from your IDE.
- Open: Click "Open" to load a markdown/html/txt file.
- Save / Save As: Standard file operations. First save prompts for location.
- Search: Type in the search field and press Enter or click "Find". Repeated clicks find next occurrences.
- Live Preview: Edits update the right pane automatically at 400ms debounce.
- Content: automatically saved to Java Preferences on changes and every minute.
