initial
This commit is contained in:
164
README.md
Normal file
164
README.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# 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.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## ✨ 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
|
||||
|
||||
- [.NET 10.0 SDK](https://dotnet.microsoft.com/download) or later
|
||||
|
||||
### Installation
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://github.com/yourusername/ormentia-markus.git
|
||||
cd ormentia-markus/src/DesktopApp
|
||||
```
|
||||
|
||||
2. Build the project:
|
||||
```bash
|
||||
dotnet build
|
||||
```
|
||||
|
||||
3. Run the application:
|
||||
```bash
|
||||
dotnet run
|
||||
```
|
||||
|
||||
### Building for Distribution
|
||||
|
||||
**macOS (ARM64):**
|
||||
```bash
|
||||
cd src/DesktopApp
|
||||
dotnet publish -c Release -r osx-arm64
|
||||
```
|
||||
|
||||
**macOS (Intel):**
|
||||
```bash
|
||||
cd src/DesktopApp
|
||||
dotnet publish -c Release -r osx-x64
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
```bash
|
||||
cd src/DesktopApp
|
||||
dotnet publish -c Release -r win-x64
|
||||
```
|
||||
|
||||
**Linux:**
|
||||
```bash
|
||||
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](LICENSE) file for details.
|
||||
|
||||
## 🙏 Acknowledgments
|
||||
|
||||
- Built with [Avalonia UI](https://avaloniaui.net/)
|
||||
- Markdown parsing by [Markdig](https://github.com/xoofx/markdig)
|
||||
- Icons by [Font Awesome](https://fontawesome.com/)
|
||||
|
||||
---
|
||||
|
||||
**Note**: This project is under active development. Features may change, and bugs may exist. Please report issues on GitHub.
|
||||
Reference in New Issue
Block a user