Skip to content

scherenhaenden/MagnetarQuill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MagnetarQuill πŸ–‹βœ¨

The Next-Gen Universe-Inspired WYSIWYG Editor - Built with Angular πŸš€πŸ’«

MagnetarQuill

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.


Current view 🌟

(Assuming magnetar-quill-example.png shows the current state based on completed features) MagnetarQuill


Table of Contents πŸ“š


Status πŸ—οΈ

MagnetarQuill is currently under active development. See the Project Progress section for detailed status.


Features 🌟

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).


Installation πŸ› 

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.)

Prerequisites for Using the Library

  • An existing Angular project (v17.3.0 or higher recommended).

Quick Start (Usage in Angular) πŸš€

  1. 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)

  2. 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>
  3. You can now use the editor in your application!


Contributing & Local Development πŸ§‘β€πŸ’»

If you want to contribute to MagnetarQuill or run the demo application locally:

Prerequisites for Development

  • Node.js (v16.x or higher)
  • Angular CLI (v17.3.0 or higher)

Step 1: Clone the Repository

git clone [https://github.com/scherenhaenden/MagnetarQuill.git](https://github.com/scherenhaenden/MagnetarQuill.git)
cd MagnetarQuill

Step 2: Install Dependencies

npm install

Step 3: Run the Development Server

ng serve

Open your browser at http://localhost:4200 to see the MagnetarQuill demo application.


Available Commands (for Development) πŸ“œ

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.

Roadmap πŸ›£

πŸ”­ 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)


Project Progress πŸ“Š

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)


Contributing 🀝

We welcome contributions! Here's how you can help:

  1. Fork the repository (https://github.com/scherenhaenden/MagnetarQuill.git).
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature/my-awesome-feature
  3. Commit your changes and open a pull request against the main repository.
  4. We’ll review your PR and merge it!

Please read our Contributing Guidelines (if available) for more details.


License πŸ“„

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.


Stay Connected πŸ’¬

Follow development progress or ask questions:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages