Files
markus/README.md
2026-01-15 11:11:42 -06:00

4.6 KiB

Ormentia Markus

⚠️ This project is currently under active development and may have bugs or incomplete features. Use at your own discretion.

A modern, cross-platform markdown editor built with Avalonia UI and .NET 10.

Platform License .NET Status

Features

  • Multi-tab Interface - Work with multiple markdown files simultaneously
  • Live Preview - Toggle between raw markdown and rendered preview
  • Rich Formatting - Quick access to common markdown formatting (bold, italic, headings, lists, code, quotes)
  • Syntax Highlighting - Code-aware editor with line numbers
  • Cross-Platform - Runs on Windows, macOS, and Linux
  • Theme Support - Toggle between light and dark modes
  • Adjustable Text Size - Small, Medium, and Large text size options
  • PDF Export - Export your markdown documents to PDF format
  • Session Persistence - Automatically restores your open files and tabs

🚀 Quick Start

Prerequisites

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/ormentia-markus.git
cd ormentia-markus/src/DesktopApp
  1. Build the project:
dotnet build
  1. Run the application:
dotnet run

Building for Distribution

macOS (ARM64):

cd src/DesktopApp
dotnet publish -c Release -r osx-arm64

macOS (Intel):

cd src/DesktopApp
dotnet publish -c Release -r osx-x64

Windows:

cd src/DesktopApp
dotnet publish -c Release -r win-x64

Linux:

cd src/DesktopApp
dotnet publish -c Release -r linux-x64

📸 Screenshots

Coming soon - Screenshots will be added as the UI stabilizes.

🏗️ Architecture

This application follows clean architecture principles with clear separation of concerns:

  • MVVM Pattern - Using CommunityToolkit.Mvvm for data binding
  • Service Layer - Business logic abstracted into testable services
  • Strategy Pattern - Modular markdown rendering system
  • Dependency Injection - Services injected via constructors

Project Structure

ormentia-markus/
├── LICENSE              # GPLv3 License
├── README.md            # This file
└── src/
    └── DesktopApp/      # Main application code
        ├── Constants/   # Application-wide constants
        ├── Models/      # Domain models
        ├── Services/    # Business logic services
        ├── ViewModels/  # MVVM view models
        └── Views/       # UI components and renderers

The application uses:

  • MVVM Pattern with CommunityToolkit.Mvvm
  • Service Layer for business logic abstraction
  • Strategy Pattern for modular markdown rendering
  • Dependency Injection via constructor parameters

🛠️ Development

Key Technologies

  • Avalonia UI 11.3.8 - Cross-platform UI framework
  • AvaloniaEdit 11.3.0 - Text editor with syntax highlighting
  • Markdig 0.43.0 - Markdown parsing
  • CommunityToolkit.Mvvm 8.2.1 - MVVM helpers
  • QuestPDF 2025.7.4 - PDF generation
  • Font Awesome - Icon library

Code Style

  • XML documentation for all public APIs
  • Nullable reference types enabled
  • Consistent async/await patterns
  • Constants instead of magic values

📋 Roadmap

  • Spell checking
  • Find and replace
  • Export to HTML
  • Custom theme colors
  • Plugin system
  • Git integration
  • Local file browser for images
  • Notification service for errors
  • Settings persistence
  • Recent files list
  • Keyboard shortcuts customization
  • Table insertion helper

🤝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Follow the established architecture patterns
  2. Add XML documentation for all public APIs
  3. Use services for business logic
  4. Keep ViewModels focused on presentation
  5. Add constants instead of magic values
  6. Maintain error handling consistency

📄 License

This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for details.

🙏 Acknowledgments


Note: This project is under active development. Features may change, and bugs may exist. Please report issues on GitHub.