NoteMD is a Markdown Editor with real-time character and word count, live HTML preview, and a download feature. The application dynamically converts Markdown input into HTML and allows users to download the content as a .md
file. It’s designed to work seamlessly on localhost:8080
.
- Go: Currently used to serve the app on
localhost:8080
, and will play a major role in the backend for future features. - Vanilla JavaScript: Handles the frontend logic, including real-time Markdown to HTML conversion and file downloads.
- CSS: For styling the editor and preview panels.
- HTML: Provides the basic structure of the web application.
- Live Markdown Editing: Type your Markdown content in the editor panel.
- Real-time Character & Word Count: Automatically updates with each keystroke.
- Live HTML Preview: Converts Markdown to HTML instantly as you type.
- Markdown Download: Download your Markdown content as a
.md
file with a custom filename.
- Headers:
# Header1
,## Header2
, etc. - Bold and Italics:
**Bold**
,_Italic_
- Links:
[Link text](URL)
- Code Blocks:
``` `code` ```
As you type, your Markdown will be converted to HTML and displayed in real-time.
Word and character counts update dynamically as you type, displayed below the editor.
After editing, click the Download button to save your Markdown content as a .md
file.
The filename is derived from the document's title, or it defaults to Title.md
.
Make sure you have the following installed:
- Go: To run the server locally.
- Any modern browser (Chrome, Firefox, etc.).
-
Clone the repository:
git clone https://github.com/bilosman/notes-md.git
-
Navigate into the project directory:
cd notes-md
-
Run the Go server:
go run main.go
-
Open your browser and navigate to:
http://localhost:8080
- Custom Themes: Allow users to select different color themes (e.g., Dark Mode, Solarized).
- Export to PDF/HTML: Support exporting the document as PDF or HTML files.
- Markdown Syntax Highlighting: Implement live syntax highlighting.
- Auto-Save: Persist Markdown text between sessions using
localStorage
. - Real-time Collaboration: Enable multiple users to edit documents simultaneously using Go and WebSockets.
- Offline Support: Add offline capabilities with service workers for better user experience without an internet connection.
- Mobile-Friendly Interface: Improve responsiveness for mobile devices.
In the future, Go will play a central role in the backend of the application, including:
- Server-side Markdown Rendering: Offload Markdown parsing to the Go server for better performance, especially for larger documents.
- Database Integration: Use Go to connect to a database (PostgreSQL or MongoDB) for saving, retrieving, and managing Markdown documents.
- API Development: Build an API for users to interact with their Markdown files programmatically, allowing collaboration and versioning.
- Authentication and Authorization: Add user authentication and role-based access using Go for secure editing and file management.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some amazing feature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a pull request.