A beautiful, modern Progressive Web App for viewing markdown files with support for offline usage, dark mode, math equations, and dynamic loading.
- 📱 Progressive Web App (PWA) support
- 🌓 Dark mode support
- ⚡ Dynamic chunk loading for large files
- 📂 Drag & drop file upload
- 🔄 Automatic file preview
- 💾 Offline support
- 🖥️ Responsive design
- 🎨 Beautiful typography and UI
- 🔒 Secure file handling (client-side only)
- 📐 LaTeX math equations support
- 🎯 Optimized performance with virtual scrolling
This application processes markdown files entirely on the client side:
- Files are stored temporarily in the browser's memory while viewing
- No server-side storage or processing
- Files are cleared when you close or refresh the browser
- For offline access, files are cached using Service Workers
- Node.js 18 or higher
- npm 9 or higher
- Clone the repository
- Install dependencies:
npm install
- Start the development server:
npm run dev
Build the application:
npm run build
The build output will be in the dist
directory.
The easiest way to deploy this application is through Netlify:
- Push your code to a Git repository (GitHub, GitLab, or Bitbucket)
- Connect your repository to Netlify
- Configure the build settings:
- Build command:
npm run build
- Publish directory:
dist
- Build command:
- Deploy!
You can deploy the dist
directory to any static hosting service:
- GitHub Pages
- Vercel
- Cloudflare Pages
- Any static file hosting
After deployment:
- Verify PWA functionality
- Test offline capabilities
- Confirm file upload and preview features
- Check dark mode switching
- Test math equation rendering
- Test on different devices and browsers
-
Upload Files
- Drag and drop markdown files onto the upload area
- Click the upload area to select files
- Only
.md
files are supported
-
View Files
- Click on a file in the sidebar to view its contents
- Content is automatically rendered as HTML
- Code blocks are syntax highlighted
- Images and links are supported
- Math equations are rendered using KaTeX
-
Dark Mode
- Toggle dark mode using the sun/moon icon
- Preference is saved locally
- Optimized contrast for better readability
- Math equations adapt to dark theme
-
Offline Usage
- Install the PWA when prompted
- Files viewed while online will be available offline
- Changes are synchronized when back online
-
Math Equations
- Supports inline math using single
$
delimiters - Supports display math using double
$$
delimiters - Example inline:
$E = mc^2$ - Example display: $$ \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$
- Supports inline math using single
- Built with React and TypeScript
- Uses Vite for building and development
- Tailwind CSS for styling
- Marked for markdown parsing
- KaTeX for math equation rendering
- DOMPurify for security
- Service Workers for offline functionality
- React Virtuoso for efficient large file rendering
- All processing is done client-side
- Files are never uploaded to any server
- Content is sanitized using DOMPurify
- Math expressions are safely rendered
- No external API calls or tracking
- Chrome/Edge (latest 2 versions)
- Firefox (latest 2 versions)
- Safari (latest 2 versions)
- Mobile browsers (iOS/Android latest)
The application supports LaTeX math equations through KaTeX:
- Inline math using single
$
delimiters - Display math using double
$$
delimiters - Supports most LaTeX math commands
- Automatically adjusts for dark mode
- High-quality typography for mathematical notation