Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"version": 1,
"builtAt": "2026-03-09T22:32:28.513Z",
"documents": [
{
"relativePath": "README.md",
"absolutePath": "/home/frederic/Projects/java/MarkNote/README.md",
"title": "README",
"authors": [],
"tags": [],
"raw": {}
},
{
"relativePath": "src/docs/git-support-complexity.md",
"absolutePath": "/home/frederic/Projects/java/MarkNote/src/docs/git-support-complexity.md",
"title": "git-support-complexity",
"authors": [],
"tags": [],
"raw": {}
},
{
"relativePath": "src/docs/packaging.md",
"absolutePath": "/home/frederic/Projects/java/MarkNote/src/docs/packaging.md",
"title": "packaging",
"authors": [],
"tags": [],
"raw": {}
},
{
"relativePath": "src/docs/user-guide-en.md",
"absolutePath": "/home/frederic/Projects/java/MarkNote/src/docs/user-guide-en.md",
"title": "MarkNote User Guide",
"authors": [
"Frédéric Delorme"
],
"tags": [
"marknote",
"markdown",
"user-guide",
"documentation"
],
"summary": "Welcome to MarkNote, a lightweight and modern Markdown editor built with JavaFX. This guide will help you get started and make the most of MarkNote's features.",
"description": "Official user guide for MarkNote, a lightweight Markdown editor built with JavaFX.",
"raw": {
"title": "MarkNote User Guide",
"date": "2026-02-25T00:00:00.000Z",
"version": "0.1.1",
"author": "Frédéric Delorme",
"description": "Official user guide for MarkNote, a lightweight Markdown editor built with JavaFX.",
"summary": "Welcome to MarkNote, a lightweight and modern Markdown editor built with JavaFX. This guide will help you get started and make the most of MarkNote's features.",
"tags": [
"marknote",
"markdown",
"user-guide",
"documentation"
],
"lang": "en",
"status": "draft"
}
},
{
"relativePath": "TODO.md",
"absolutePath": "/home/frederic/Projects/java/MarkNote/TODO.md",
"title": "TODO",
"authors": [],
"tags": [],
"raw": {}
}
]
}
50 changes: 25 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

A lightweight and modern Markdown editor built with JavaFX.

![An illustration of the Main interface pf MarkNote](src/docs/illustrations/marknote-0.1.0-screenshot-002.png "The Main interface for MarkNote")
![An illustration of the Main interface of MarkNote](src/docs/illustrations/marknote-0.1.1-screenshot-002.png "The Main interface for MarkNote")

**Author:** Frédéric Delorme (McG) - [contact.snapgames@gmail.com](mailto:contact.snapgames@gmail.com)

Expand All @@ -21,11 +21,11 @@ A lightweight and modern Markdown editor built with JavaFX.
## Features

- **Markdown Editing** - Full-featured Markdown editor with syntax highlighting (headings, bold, italic, strikethrough, code, blockquotes, lists, links, images, horizontal rules)
- **Live Preview** - Real-time HTML preview with WebView rendering
- **Live Preview** - Real-time HTML preview with WebView rendering; supports external HTTP/HTTPS images
- **Syntax Highlighting** - Code blocks with automatic language detection and theme-aware syntax coloring (via [highlight.js](https://highlightjs.org/)); each app theme maps to a matching highlight.js style
- **Code Block Copy Button** - One-click copy for code blocks in preview, with visual "✓ Copied" feedback
- **Markdown Tables** - Full GFM table support with styled rendering
- **PlantUML Diagrams** - Render PlantUML diagrams directly in preview; supports both the **official PlantUML online server** and a **local PlantUML jar** (configurable in Options → Tools); when local rendering is active a spinning ⚙ gear icon and a status indicator are shown in the status bar during generation
- **PlantUML Diagrams** - Render PlantUML diagrams directly in preview; supports both the **official PlantUML online server** and a **local PlantUML jar** (configurable in Options → Tools); when local rendering is active a spinning ⚙ gear icon and a status indicator are shown in the status bar during generation; **in-memory SVG cache** based on source hash avoids regenerating unchanged diagrams
- **Mermaid Diagrams** - Render Mermaid diagrams (flowcharts, sequences, etc.) directly in preview; Mermaid theme auto-matches app theme
- **Math Equations** - LaTeX/MathML support via KaTeX for inline (`$...$`) and block (`$$...$$`) equations
- **Front Matter Panel** - Collapsible panel above the editor for visual editing of YAML front matter (title, tags, authors, summary, UUID, created date, draft); supports custom fields and UUID-based document linking via drag & drop
Expand Down Expand Up @@ -54,13 +54,13 @@ A lightweight and modern Markdown editor built with JavaFX.

MarkNote is available in 5 languages:

| Language | Locale |
|----------|--------|
| Français (French) | `fr` |
| English | `en` |
| Deutsch (German) | `de` |
| Español (Spanish) | `es` |
| Italiano (Italian) | `it` |
| Language | Locale |
| ------------------ | ------ |
| Français (French) | `fr` |
| English | `en` |
| Deutsch (German) | `de` |
| Español (Spanish) | `es` |
| Italiano (Italian) | `it` |

The application automatically uses your system's locale.

Expand All @@ -81,13 +81,13 @@ cd marknote

### Build Commands

| Command | Description |
|---------|-------------|
| `./build` | Compile the project and create the JAR |
| `./build run` | Compile and run the application |
| `./build test` | Run unit tests |
| `./build package` | Create a distributable package for the **current platform** with embedded JRE |
| `./build package-all` | Create distributable packages for **all platforms** (linux, mac, win) |
| Command | Description |
| --------------------- | ----------------------------------------------------------------------------- |
| `./build` | Compile the project and create the JAR |
| `./build run` | Compile and run the application |
| `./build test` | Run unit tests |
| `./build package` | Create a distributable package for the **current platform** with embedded JRE |
| `./build package-all` | Create distributable packages for **all platforms** (linux, mac, win) |

## Running

Expand All @@ -106,7 +106,7 @@ Or use the build script:
### Running with a specific language

```bash
java -Duser.language=en -Duser.country=US --module-path target/build/libs --add-modules javafx.base,javafx.graphics,javafx.controls,javafx.fxml,javafx.media,javafx.web -cp "target/build/MarkNote-0.1.0.jar:target/build/libs/*" Main
java -Duser.language=en -Duser.country=US --module-path target/build/libs --add-modules javafx.base,javafx.graphics,javafx.controls,javafx.fxml,javafx.media,javafx.web -cp "target/build/MarkNote-0.1.2.jar:target/build/libs/*" Main
```

## Packaging
Expand Down Expand Up @@ -137,11 +137,11 @@ Create packages for **all three platforms** in one shot:

This produces three ZIP archives in `target/`:

| Archive | Platform |
|---------|----------|
| `MarkNote-{version}-linux.zip` | Linux x64 |
| `MarkNote-{version}-mac.zip` | macOS |
| `MarkNote-{version}-win.zip` | Windows x64 |
| Archive | Platform |
| ------------------------------ | ----------- |
| `MarkNote-{version}-linux.zip` | Linux x64 |
| `MarkNote-{version}-mac.zip` | macOS |
| `MarkNote-{version}-win.zip` | Windows x64 |

> **Note:** A minimal embedded JRE (via `jlink`) is bundled only for the current host platform.
> Cross-platform packages include all required JARs but require a compatible Java runtime already
Expand All @@ -164,8 +164,8 @@ Where `{platform}` is:
1. Download or build the package for your platform
2. Extract the ZIP archive:
```bash
unzip MarkNote-0.1.0-linux.zip
cd MarkNote-0.1.0-linux
unzip MarkNote-0.1.2-linux.zip
cd MarkNote-0.1.2-linux
```
3. Run the application:
- **Linux/macOS:** `./MarkNote.sh`
Expand Down
2 changes: 1 addition & 1 deletion build
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
#---- project parameters
project_name=MarkNote
project_version=0.1.0
project_version=0.1.2
main_class=Main
JARS=
JFX_VERSION=25
Expand Down
30 changes: 23 additions & 7 deletions src/docs/user-guide-en.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "MarkNote User Guide"
date: 2026-02-25
version: "0.1.0"
date: 2026-03-10
version: "0.1.2"
author: "Frédéric Delorme"
description: "Official user guide for MarkNote, a lightweight Markdown editor built with JavaFX."
summary: "Welcome to MarkNote, a lightweight and modern Markdown editor built with JavaFX. This guide will help you get started and make the most of MarkNote's features."
Expand All @@ -12,7 +12,7 @@ status: draft

# MarkNote User Guide

Version 0.1.0
Version 0.1.2

Welcome to MarkNote, a lightweight and modern Markdown editor built with JavaFX. This guide will help you get started and make the most of MarkNote's features.

Expand Down Expand Up @@ -52,7 +52,7 @@ MarkNote is a cross-platform Markdown editor designed for writers, developers, a
- **Markdown Tables** - Full GFM table support with styled rendering
- **Task Lists** - GitHub-style checkboxes (`[ ]` / `[x]`) rendered in preview
- **GitHub Alerts** - Styled blockquotes for `[!NOTE]`, `[!TIP]`, `[!IMPORTANT]`, `[!WARNING]`, `[!CAUTION]`
- **PlantUML Diagrams** - Render PlantUML diagrams directly in the preview; switch between the **online PlantUML server** (default) or a **local `plantuml.jar`** configured in Options → Tools; local rendering is asynchronous (per-block background threads) and shows a ⚙ spinning gear icon in the status bar during generation
- **PlantUML Diagrams** - Render PlantUML diagrams directly in the preview; switch between the **online PlantUML server** (default) or a **local `plantuml.jar`** configured in Options → Tools; local rendering is asynchronous (per-block background threads) and shows a ⚙ spinning gear icon in the status bar during generation; **in-memory SVG cache** avoids regenerating unchanged diagrams
- **Mermaid Diagrams** - Render Mermaid flowcharts, sequences, and more in the preview (theme auto-matches app theme)
- **Math Equations** - LaTeX/MathML support via KaTeX (`$...$` inline, `$$...$$` block)
- **Front Matter Panel** - Collapsible panel above the editor showing and editing YAML front matter metadata, with UUID-based document linking via drag & drop
Expand Down Expand Up @@ -760,7 +760,8 @@ MarkNote supports standard Markdown syntax plus extensions:

[Links](https://example.com)

![Images](path/to/image.png)
![Local images](path/to/image.png)
![External images](https://example.com/image.png)

> Blockquotes

Expand All @@ -779,6 +780,20 @@ Horizontal rules
| Data | Goes| Here |
```

### Images

MarkNote supports both local and external images in the preview:

- **Local images:** Relative paths from your project directory
- **External images:** HTTP/HTTPS URLs from the internet

```markdown
![Local screenshot](./images/screenshot.png)
![Web image](https://example.com/image.png)
```

> **Note:** External images require an internet connection. If the image URL is unreachable, a broken image placeholder will be displayed.

### Code Syntax Highlighting

Fenced code blocks are automatically highlighted with language detection:
Expand Down Expand Up @@ -889,6 +904,7 @@ When local rendering is active:
- The **⚙ spinning gear** icon in the status bar is visible during rendering
- On completion the placeholders are replaced inline with the SVG (no page reload)
- If the local jar fails, the diagram falls back silently to the online server
- **SVG Cache:** Generated SVG images are cached in memory using a SHA-256 hash of the diagram source; unchanged diagrams are served instantly from cache without invoking the jar, significantly improving preview responsiveness during editing

See [Options → Tools Tab](#tools-tab) to configure the local jar.

Expand Down Expand Up @@ -1215,12 +1231,12 @@ If you encounter issues not covered here:

## About MarkNote

**Version:** 0.0.6
**Version:** 0.1.2
**Author:** Frédéric Delorme
**Copyright:** © SnapGames 2026
**License:** MIT
**Repository:** https://github.com/mcgivrer/marknote

---

*This documentation is part of the MarkNote project. Last updated: February 2026.*
*This documentation is part of the MarkNote project. Last updated: March 2026.*
Loading