The Next-Gen Universe-Inspired WYSIWYG Editor - Built with Angular ππ«
MagnetarQuill is a versatile, extensible, and powerful WYSIWYG editor component built with Angular, designed to streamline content creation.
Inspired by the most extreme phenomena in the universe, the Magnetar, and combined with the elegance of a quill, this editor aims to take your text editing experience beyond the ordinary.
(Assuming magnetar-quill-example.png shows the current state based on completed features)
- Status
- Features
- Installation
- Quick Start (Usage in Angular)
- Contributing & Local Development
- Available Commands (for Development)
- Roadmap
- License
- Stay Connected
MagnetarQuill is currently under active development. See the Project Progress section for detailed status.
Based on the current completed progress, MagnetarQuill offers:
- π Basic Text Formatting: Support for bold, italic, underline, strikethrough.
- π¨ Font Options: Change font family and font size via dropdowns.
- π¨ Color Selection: Apply text and background colors using color pickers.
- π Text Alignment & Spacing: Includes options for text alignment and line spacing.
- π Lists: Support for ordered and unordered lists.
- π Headers: Support for custom headers (H1-H6).
(More features like image support, tables, clipboard enhancements, file export/import, and the plugin system are planned or in progress - see Roadmap and Progress below).
To use the MagnetarQuill component in your Angular project, install the library from npm (once published):
npm i --save magnetar-quill
(Note: Ensure the package is published to npm for this command to work.)
- An existing Angular project (v17.3.0 or higher recommended).
-
Import the standalone
LibMagnetarQuillComponent
into your Angular component or module where you want to use the editor:// Example in a standalone Angular component import { Component } from '@angular/core'; import { LibMagnetarQuillComponent } from 'magnetar-quill'; // Adjust path if needed after install import { FormsModule } from '@angular/forms'; // Needed for ngModel @Component({ selector: 'app-my-editor-page', standalone: true, imports: [ LibMagnetarQuillComponent, FormsModule ], // Import the component template: ` <h2>My Editor</h2> <lib-magnetar-quill [(ngModel)]="documentContent"></lib-magnetar-quill> <hr> <h3>Content Preview:</h3> <div [innerHTML]="documentContent | safeHtml"></div> ` // safeHtml pipe would be needed for rendering raw HTML }) export class MyEditorPageComponent { documentContent: string = '<p>Start editing here...</p>'; }
(Note: You might need a pipe like
safeHtml
to securely render the HTML output from the editor) -
Add the component tag to your template and use
[(ngModel)]
for two-way binding of the editor's HTML content:<lib-magnetar-quill [(ngModel)]="documentContent"></lib-magnetar-quill>
-
You can now use the editor in your application!
If you want to contribute to MagnetarQuill or run the demo application locally:
- Node.js (v16.x or higher)
- Angular CLI (v17.3.0 or higher)
git clone [https://github.com/scherenhaenden/MagnetarQuill.git](https://github.com/scherenhaenden/MagnetarQuill.git)
cd MagnetarQuill
npm install
ng serve
Open your browser at http://localhost:4200 to see the MagnetarQuill demo application.
Inside the cloned project directory:
ng serve
: Start the development server.ng build
: Build the library/project for production.ng test
: Run unit tests.ng lint
: Lint the codebase for errors.
π Planned & In-Progress Features:
- π· Image Insertion, Editing, and Clipboard Support
- π Table Insertion and Editing
- β¨ Object Context Menu & Drag-and-Drop Repositioning
- β Rich Text Copy-Paste Support & Sanitization
- π Undo/Redo Functionality with Multi-Step History
- πΎ HTML and Markdown Export/Import
- π₯ Full-Screen Mode
- π¨ Light/Dark Theme Support & Customization
- π Plugin System for Custom Toolbar Tools & Extensions
- π€ Advanced collaborative editing tools (Potential Future Enhancement)
- β Enhanced accessibility features (Potential Future Enhancement)
- π± Mobile optimization for touch devices (Potential Future Enhancement)
(See the detailed progress table below for current status)
Hereβs the updated table with the latest progress:
Step | Feature Description | Status | Version Name |
---|---|---|---|
1 | Project Setup and Angular Initialization | β Completed | Version 0.1 - Setup |
2 | Implement Bold, Italic, Underline, Strikethrough | β Completed | Version 0.2 - Basic Text Formatting |
3 | Font Family and Font Size Dropdowns | β Completed | Version 0.3 - Font Options |
4 | Text & Background Color Pickers | β Completed | Version 0.4 - Color Selection |
5 | Text Alignment & Line Spacing | β Completed | Version 0.5 - Text Alignment & Spacing |
6 | Ordered and Unordered Lists | β Completed | Version 0.6 - Lists |
7 | Custom Headers (H1-H6) | β Completed | Version 0.7 - Headers |
8 | Image Insertion and Editing | π In Progress | Version 0.8 - Image Support |
9 | Copy-Paste Image Support | π In Progress | Version 0.9 - Image Clipboard |
10 | Table Insertion and Editing | π In Progress | Version 0.10 - Table Management |
11 | Object Context Menu | π In Progress | Version 0.11 - Object Management |
12 | Drag-and-Drop Object Repositioning | π In Progress | Version 0.12 - Object Repositioning |
13 | Rich Text Copy-Paste Support | π΄ Not Started | Version 0.13 - Rich Text Clipboard |
14 | Text Sanitization on Paste | π΄ Not Started | Version 0.14 - Paste Sanitization |
15 | Undo/Redo Functionality | π΄ Not Started | Version 0.15 - Undo/Redo |
16 | Multi-Step History Support | π΄ Not Started | Version 0.16 - History Features |
17 | HTML and Markdown Export | π΄ Not Started | Version 0.17 - File Export |
18 | File Loading (HTML & RTF) | π΄ Not Started | Version 0.18 - File Import |
19 | Full-Screen Mode | π΄ Not Started | Version 0.19 - Full-Screen |
20 | Light and Dark Theme Support | π΄ Not Started | Version 0.20 - Theme Customization |
21 | Plugin System for Custom Toolbar Tools | π΄ Not Started | Version 0.21 - Plugin Support |
(Status Key: β Completed | π In Progress | π΄ Not Started)
We welcome contributions! Here's how you can help:
- Fork the repository (
https://github.com/scherenhaenden/MagnetarQuill.git
). - Create a new branch for your feature or bug fix:
git checkout -b feature/my-awesome-feature
- Commit your changes and open a pull request against the main repository.
- Weβll review your PR and merge it!
Please read our Contributing Guidelines (if available) for more details.
MagnetarQuill is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License. You are free to use, distribute, and build upon this work, as long as proper attribution is given. See the LICENSE file for more details.
Follow development progress or ask questions:
- GitHub Issues: MagnetarQuill Issues
- GitHub Discussions: MagnetarQuill Discussions