Dial Editor is a Markdown editor built using Flutter and Riverpod.
Warning: I am currently pursuing a master's degree and do not have much time for development at the moment. I intend to resume work on this personal project later on.
Warning: This project is in its early stages. Use it at your own risk.
- Markdown Support
- Markdown Parser: Implement a parser for converting Markdown text into structured data. Markdown Render: Develop a renderer to display Markdown content with proper formatting.
- Heading (#34)
- Bold
- Italic
- Bold Italic
- Strikethrough
- Unordered list
- List block (#40)
- Ordered list
- List block (#40)
- Task list
- List block (#40)
- Definition list
- List block (#40)
- Horizontal rule
- Quote
- Quote block (#39)
- Emoji
- Hightlight
- Link
- Image
- Table
- Table block (#8)
- Code
- Code block (#6)
- Footnote (#11)
- Math Equation (#19)
- Math Block
- Diagram (#9)
- Code block (#6)
- Table of content (#10)
- Video
- Page breaks
- Keyboard Shortcut
- Ctrl A: Select All
- Key Arrow Up
- Key Arrow Down
- Key Arrow Left
- Key Arrow Right
- Tab Indentation
- Mouse Selection
- Markdown Parser: Implement a parser for converting Markdown text into structured data. Markdown Render: Develop a renderer to display Markdown content with proper formatting.
- Line Number
- Folder context menu (#34)
- Auto Save
- Undo/Redo
- Currently utilizing the default editable text functionality for undo/redo.
- Full text undo/redo
- Dark theme: Theme switch
- Customizable Themes: Choose from a variety of themes to suit your style.
- overall theme - basic dark, light theme
- theme color
- text theme
- Customizable Themes: Choose from a variety of themes to suit your style.
- Collaborative Editing: Real-time collaboration with others.
- crdt
- Export Options: Enable users to export Markdown files to PDF, HTML, etc. (#7)
- Spell Check: Implement functionality to ensure error-free Markdown.
- Version Control: Track changes and allow users to revert to previous versions. (#12)
- Third Party Integration: Integrate with third-party services or APIs for extended functionality.
- Live Preview: See your Markdown rendered in real-time.
- Syntax Highlighting: Easily distinguish between different elements of your Markdown. (#41)
- Keyboard Shortcuts: Boost your productivity with handy shortcuts.
- Support for Extensions: Enhance the editor with additional functionalities.
- Cross-Platform: Ensure compatibility on both mobile and desktop platforms.
- Flutter supports all platforms.
- Desktop UI
- Mobile UI
- Web UI
- Infinite Canvas: Interchangeable markdown canvas that constructs and edits your markdown file visually (#16)
Download and install Visual Studio Code from https://code.visualstudio.com/download.
Download and install Flutter SDK from https://docs.flutter.dev/get-started/install. Once you have the SDK, refer to https://flutter-ko.dev/get-started/install/windows for a comprehensive installation guide on setting up Flutter and Dart. You can find the official installation guide on the Flutter website.
Run flutter doctor in your terminal, once you have installed Flutter on your system, it will automatically check for the necessary system requirements to run the program. These requirements may include the Android toolchain, Chrome, Visual Studio, and Android Studio.
Download and install Chrome form https://www.google.com/chrome/browser-tools/. Chrome is the default web browser utilized by Flutter when running the app.
Download and install Visual Studio from https://visualstudio.microsoft.com/downloads/.
Download and install Android Studio from https://developer.android.com/studio.
To install Android toolchain, these steps need to be followed:
- Open Android Studio
- In the Menu bar, click Tools
- choose SDK Tools panel
- Tick Android SDK Command-line Tools
- Click Apply at bottom of the window
After installing all the required software and tools, run flutter doctor again to validate. Once you have done that, open a terminal and clone the project's Git repository using git clone https://github.com/zz0-0/dial_editor.git
git clone https://github.com/zz0-0/dial_editor.git
cd dial_editor
Use Visual Studio Code to open the project and then run in the terminal: flutter pub get, to get all the required flutter packages.
flutter pub get
To run the app, you can navigate to the main.dart file located under the lib directory. There are two methods to run the app. First, you can go to the bottom right corner of Visual Studio Code, click on No device and select Start Flutter Emulator. Then, locate the button group of Run, Debug, and Profile just above the main method. Clicking on Run will run the app. Alternatively, you can still be on the main.dart file and go to the top right corner of Visual Studio Code, where you'll find a button labeled Start Debugging. Click on the dropdown and select Run without Debugging.
flutter run
or
Locate the button group of Run, Debug, and Profile just above the main method. Clicking on Run will run the app.
Once the Android emulator has launched and the app is running, you can either open an existing folder or create a new one within the app. After that, you will be able to create a new markdown file or open an existing one for editing. I have included a markdown file for you, which you can simply drag into the download folder for testing.
On Desktop, you can either open an existing folder or create a new one within the app which includes markdown file.
Inside the markdown file, begin writing in markdown syntax.
Contributions are welcome! Please read the CONTRIBUTING.md file for guidelines.
- Fork the repository.
- Create a new branch (
git checkout -b feature/your_feature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/your_feature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to reach out via email for any questions or feedback.