{"id":30368424,"url":"https://github.com/jmagly/markdown-editor","last_synced_at":"2026-04-07T08:02:21.233Z","repository":{"id":308271099,"uuid":"1032073075","full_name":"jmagly/markdown-editor","owner":"jmagly","description":"  A modern markdown editor with live preview, syntax highlighting, LaTeX math   support, and export to PDF/DOCX. Built with React, TypeScript, and Vite.   Features dark mode, auto-save, and keyboard shortcuts.","archived":false,"fork":false,"pushed_at":"2025-08-05T04:56:32.000Z","size":210,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-20T01:25:01.506Z","etag":null,"topics":["client-side","dark-mode","docx-export","editor","katex","latex-math","live-preview","markdown","markdown-editor","markdown-preview","pdf-export","react","single-page-application","syntax-highlighting","tailwindcss","typescript","vite","web-app","zustand"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmagly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-04T19:02:35.000Z","updated_at":"2025-08-15T03:53:28.000Z","dependencies_parsed_at":"2025-08-05T04:13:08.777Z","dependency_job_id":null,"html_url":"https://github.com/jmagly/markdown-editor","commit_stats":null,"previous_names":["jmagly/markdown-editor"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jmagly/markdown-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmagly%2Fmarkdown-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmagly%2Fmarkdown-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmagly%2Fmarkdown-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmagly%2Fmarkdown-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmagly","download_url":"https://codeload.github.com/jmagly/markdown-editor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmagly%2Fmarkdown-editor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client-side","dark-mode","docx-export","editor","katex","latex-math","live-preview","markdown","markdown-editor","markdown-preview","pdf-export","react","single-page-application","syntax-highlighting","tailwindcss","typescript","vite","web-app","zustand"],"created_at":"2025-08-20T01:15:53.814Z","updated_at":"2026-04-07T08:02:21.205Z","avatar_url":"https://github.com/jmagly.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Markdown Editor\n\nA modern, feature-rich markdown editor built with React, TypeScript, and Vite. This single-page application provides real-time preview, syntax highlighting, and comprehensive export capabilities. All processing is done client-side for privacy and performance.\n\n![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)\n![License](https://img.shields.io/badge/license-MIT-green.svg)\n![TypeScript](https://img.shields.io/badge/typescript-%5E5.2.2-blue.svg)\n![React](https://img.shields.io/badge/react-%5E18.3.1-blue.svg)\n![Vite](https://img.shields.io/badge/vite-%5E5.0.10-blue.svg)\n\n## Features\n\n### Core Editing\n- **Live Preview**: Real-time markdown rendering with bidirectional synchronized scrolling\n- **Syntax Highlighting**: Code blocks with language-specific highlighting via Highlight.js\n- **Auto-Save**: Automatic saving to browser storage with persistence across sessions\n- **Theme Support**: Light and dark modes with system preference detection and persistence\n- **Resizable Split View**: Adjustable editor/preview panes with smooth resizing\n\n### Rich Text Features\n- **GitHub Flavored Markdown**: Full GFM support including tables, task lists, and strikethrough\n- **LaTeX Math**: Mathematical equations using KaTeX renderer\n- **Code Highlighting**: 180+ language support via Highlight.js\n- **Enhanced Tables**: Properly styled table rendering\n- **Lists**: Support for nested ordered and unordered lists\n- **Blockquotes**: Styled blockquote rendering\n- **Links**: Automatic link detection and styling\n\n### Export Options\n- **PDF Export**: High-quality PDF generation with syntax highlighting and proper pagination\n- **Word Document**: DOCX export with formatting, tables, lists, and code blocks\n- **Markdown File**: Download raw markdown content\n- **Copy Formats**: \n  - Copy as Markdown: Raw markdown text\n  - Copy as HTML: Rich text with formatting for pasting into documents\n  - Copy as Plain Text: Formatted plain text with proper list bullets\n\n### Keyboard Shortcuts\n| Action | Shortcut |\n|--------|----------|\n| Bold | `Ctrl/Cmd + B` |\n| Italic | `Ctrl/Cmd + I` |\n| Link | `Ctrl/Cmd + L` |\n| Save | `Ctrl/Cmd + S` |\n| Command Palette | `Ctrl/Cmd + K` |\n| Export Options | `Ctrl/Cmd + E` |\n| Copy Options | `Ctrl/Cmd + Shift + Y` |\n| Toggle Dark Mode | `Ctrl/Cmd + Shift + D` |\n| Quick Export PDF | `Ctrl/Cmd + Shift + P` |\n| Quick Export Word | `Ctrl/Cmd + Shift + Alt + D` |\n| Quick Export Markdown | `Ctrl/Cmd + Shift + M` |\n| Help | `Ctrl/Cmd + /` |\n\n### User Interface\n- **Command Palette**: Quick access to all commands with fuzzy search (Ctrl/Cmd+K)\n- **Modal System**: Clean, accessible modals for exports, copy options, and help\n- **Toolbar Actions**: Quick access buttons for save, export, copy, and help\n- **Status Indicators**: Real-time save status and timestamps\n- **Error Handling**: User-friendly error messages and recovery\n- **Dark Mode Toggle**: Persistent theme switching in header\n\n## Quick Start\n\n### Prerequisites\n- Node.js 18+ \n- npm 9+\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/jmagly/markdown-editor.git\ncd markdown-editor\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n```\n\nThe application will be available at `http://localhost:5173`\n\n### Building for Production\n\n```bash\n# Create optimized build\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n## Architecture Overview\n\nThe application follows a component-based architecture with clear separation of concerns:\n\n- **Frontend Framework**: React 18 with TypeScript for type safety\n- **State Management**: Zustand stores with localStorage persistence\n- **Build Tool**: Vite 5 for fast development and optimized production builds\n- **Styling**: Tailwind CSS v4 beta with dark mode support\n- **Export System**: Client-side PDF and DOCX generation\n- **Copy System**: Modern Clipboard API with fallback support\n\nFor detailed architecture diagrams and documentation, see [Architecture Documentation](docs/ARCHITECTURE.md).\n\n## Project Structure\n\n```\nmarkdown-editor/\n├── src/\n│   ├── components/       # React components\n│   │   ├── modals/      # Modal components\n│   │   ├── Editor/      # Editor components\n│   │   ├── Preview/     # Preview components\n│   │   └── Layout/      # Layout components\n│   ├── hooks/           # Custom React hooks\n│   ├── stores/          # Zustand state stores\n│   ├── lib/             # Library code\n│   │   └── export/      # Export utilities\n│   ├── utils/           # Helper utilities\n│   └── types/           # TypeScript definitions\n├── docs/                # Documentation\n├── tests/               # Test plans\n└── dist/                # Production build\n```\n\n## Technology Stack\n\n- **Frontend Framework**: React 18.3.1 with TypeScript 5.2.2\n- **Build Tool**: Vite 5.0.10 for fast development and optimized builds\n- **Styling**: Tailwind CSS v4.0.0-beta.4 with dark mode support\n- **State Management**: Zustand 5.0.2 for simple, performant state with persistence\n- **Markdown Parsing**: Marked.js 14.1.2 with GFM support\n- **Code Highlighting**: Highlight.js 11.10.0 with 180+ languages\n- **Math Rendering**: KaTeX 0.16.11 for LaTeX equations\n- **PDF Generation**: jsPDF 2.5.2 with html2canvas 1.4.1\n- **DOCX Generation**: docx 9.0.2 with file-saver 2.0.5\n- **Icons**: Lucide React 0.462.0\n- **UI Components**: React Resizable Panels 2.1.7\n\n## Browser Support\n\n- Chrome/Edge 90+\n- Firefox 88+\n- Safari 14+\n- Opera 76+\n- Mobile browsers with limited functionality (desktop recommended for full features)\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](docs/CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\n\n## Documentation\n\n- [Architecture Documentation](docs/ARCHITECTURE.md) - Comprehensive architecture with PlantUML diagrams\n- [Developer Guide](docs/DEVELOPER_GUIDE.md) - Setup and development workflow\n- [Technical Specification](docs/TECHNICAL_SPEC.md) - Implementation details\n- [API Documentation](docs/API.md) - Component and utility APIs\n- [Deployment Guide](docs/DEPLOYMENT.md) - Production deployment instructions\n- [Original Specification](docs/SPECIFICATION.md) - Initial project requirements\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- [Marked.js](https://marked.js.org/) for markdown parsing\n- [Highlight.js](https://highlightjs.org/) for syntax highlighting\n- [KaTeX](https://katex.org/) for math rendering\n- [Tailwind CSS](https://tailwindcss.com/) for styling\n- [Zustand](https://zustand-demo.pmnd.rs/) for state management","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmagly%2Fmarkdown-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmagly%2Fmarkdown-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmagly%2Fmarkdown-editor/lists"}