diff --git a/.github/workflows/flutter-linux.yml b/.github/workflows/flutter-linux.yml index 1b1766ee..a712d7eb 100644 --- a/.github/workflows/flutter-linux.yml +++ b/.github/workflows/flutter-linux.yml @@ -32,6 +32,8 @@ jobs: bubblewrap \ clang \ cmake \ + fonts-noto-core \ + fonts-noto-mono \ ninja-build \ pkg-config \ libgtk-3-dev \ @@ -85,6 +87,9 @@ jobs: - name: Generate localizations run: flutter gen-l10n + - name: Audit localization catalogs + run: flutter test test/src/localization_audit_test.dart + - name: Verify generated files are committed run: git diff --exit-code @@ -109,7 +114,9 @@ jobs: env WEBKIT_DISABLE_COMPOSITING_MODE=1 LIBGL_ALWAYS_SOFTWARE=1 \ /usr/bin/python3 -u tools/visualization_smoke.py \ --assets build/linux/x64/release/bundle/share/busymark/visualization \ - --d2 build/linux/x64/release/bundle/libexec/busymark/d2 + --d2 build/linux/x64/release/bundle/libexec/busymark/d2 \ + --demo test/fixtures/markdown/basic.md \ + --plantuml-corpus test/fixtures/visualization/plantuml-conformance.md - name: Exercise the release binary visualization and PDF paths under X11 run: | @@ -148,7 +155,9 @@ jobs: LIBGL_ALWAYS_SOFTWARE=1 \ /usr/bin/python3 -u tools/visualization_smoke.py \ --assets build/linux/x64/release/bundle/share/busymark/visualization \ - --d2 build/linux/x64/release/bundle/libexec/busymark/d2 + --d2 build/linux/x64/release/bundle/libexec/busymark/d2 \ + --demo test/fixtures/markdown/basic.md \ + --plantuml-corpus test/fixtures/visualization/plantuml-conformance.md report="${RUNNER_TEMP}/visualization-release-wayland.json" XDG_RUNTIME_DIR="$runtime_dir" WAYLAND_DISPLAY=wayland-99 \ GDK_BACKEND=wayland BUSYMARK_RELEASE_SMOKE=1 \ diff --git a/README.md b/README.md index b1e72fc4..2326f36b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # BusyMark -BusyMark is a Markdown editor for Linux with support for Writerside-compatible documentation -projects. +Markdown and Writerside editor for Linux. [![busymark](https://snapcraft.io/busymark/badge.svg)](https://snapcraft.io/busymark) @@ -11,331 +10,179 @@ projects. BusyMark split source and reading view

-

- Split view with a Writerside project tree, Markdown editor, and rendered preview. -

- ## Features -- Open individual Markdown files. -- Open Markdown documentation folders. -- Open Writerside-compatible project folders. -- Create Writerside-compatible starter projects. -- Create Writerside Markdown and XML topics from the TOC. -- Create, select, import, edit, and reuse Writerside instances and TOC libraries. -- Edit and save local files. -- Read rendered Markdown without editing it. -- Render Mermaid, PlantUML, D2, and fenced OpenAPI content locally and offline. -- Typeset inline and display mathematics locally and offline with bundled - MathJax, including Writerside math forms and vector PDF output. -- Edit Markdown with free-form AI instructions, an explicit change target, and - explicitly selected context through Ollama, OpenAI, or Gemini, with - diff-before-apply review. -- Export Markdown documents as accessible, tagged PDF files. -- Navigate project files, table of contents, and document outline. -- Review, stage, commit, branch, synchronize, and inspect history in Git-backed - documentation workspaces using the user's normal Git configuration and tools. -- Run basic diagnostics. -- Reopen recent workspaces. -- Use native Linux desktop chrome with a GTK headerbar. +* **Markdown editing** — Source, Editor, Reading, and Split views with formatting tools, syntax highlighting, code folding, tables, images, links, code blocks, callouts, collapsible content, and document diagnostics. +* **Writerside projects** — Open and create Writerside-compatible projects; edit Markdown and XML topics; manage instances, tables of contents, reusable TOC libraries, and project structure. +* **Project navigation and search** — Files, TOC, and Outline views, tabbed documents, command palette, keyboard shortcuts, document search and replace, reviewed workspace-wide replacement, and Markdown TOC generation. +* **Technical documentation** — Local rendering of Mermaid, PlantUML, D2, fenced OpenAPI specifications, and MathJax mathematical expressions. +* **PDF and HTML publishing** — Export Markdown documents and Writerside instances to configurable PDF or portable offline HTML, with controls for layout, typography, tables of contents, heading numbering, and HTML styling. +* **Git integration** — Review changes and diffs, stage and unstage files, commit, create and switch branches, fetch, pull, push, inspect file and project history, compare historical versions, and restore earlier file versions. +* **AI-assisted editing** — Optional Ollama, OpenAI, and Gemini integration with explicit edit scope and shared context, proposal review before changes are applied, and AI-assisted Git commit-message drafting. +* **Workspace reliability** — Detect files changed outside BusyMark, recover unsaved documents, restore previous workspace sessions, manage remote-image permissions, and protect Git operations behind workspace trust. ## Screenshots + + + + + + + +
- BusyMark welcome screen + BusyMark split source and reading view
- Welcome screen for creating or opening Markdown and Writerside workspaces. + Split view with Markdown source and rendered document.
BusyMark editor view
- Editor view with formatting tools and document outline navigation. + Editor view with formatting tools and document navigation.
BusyMark reading view
- Reading view for rendered Markdown documentation. + Reading view for rendered documentation.
BusyMark keyboard shortcuts dialog
- Keyboard shortcuts shown in the built-in shortcut reference. + Keyboard shortcuts reference. +
+ Mermaid and PlantUML diagrams rendered in BusyMark +
+ Mermaid and PlantUML diagrams rendered directly in the document. +
+ D2 diagram rendered in BusyMark +
+ D2 diagram rendering. +
+ OpenAPI documentation rendered in BusyMark +
+ OpenAPI documentation rendering. +
+ Writerside table of contents in BusyMark +
+ Writerside project and table-of-contents editing.
-## Supported platforms - -BusyMark is currently developed and tested for Linux desktop, especially GNOME -and Ubuntu-style GTK environments. - -## Supported files and projects - -BusyMark can open Markdown files such as `.md` and `.markdown`. - -BusyMark opens Writerside help modules whose root contains `writerside.cfg` or -the equivalent older `project.ihp` file. Writerside support includes documented -configuration locations for topics, images, variables, categories, instances, -snippets, build configuration, API specifications, instance groups, and selected -settings metadata. Topic support includes Markdown topics, XML `.topic` files, -TOC registration, instance-specific topic titles, and custom web file names. -Instance support includes local selection and icon colors, version/web-path and -build settings, Markdown import, status, ID refactoring, instance groups, -conditional and reusable TOC sections, and cross-instance topic references. -See [Writerside instances](docs/writerside-instances.md) for behavior, safety -rules, an openable example, and the authoritative JetBrains references. -Writerside `