Enhanced the editor's vertical splitter with immediate visual feedback during dragging, including dynamic width, shadow, and handle size. Updated logic to re-render UI and save split ratio in real time. Refined save status updates to reduce unnecessary renders. Improved mobile responsiveness and overall user experience.
- Add iOS/mobile meta tags for better web app experience
- Enhance Editor.razor.css for mobile responsiveness and touch
- Simplify theme logic: only light/dark, no "auto" mode
- Remove localStorage and system theme detection from theme.js
- Apply themes via CSS variables for better compatibility
- Update ThemeToggle to match new theme logic and improve UX
Added a "New Document" button to the editor's top bar with distinct styling. Implemented Ctrl+N/Cmd+N keyboard shortcut to create a new document. Prompt user for confirmation if there are unsaved changes. Updated CSS to style the new button and integrated it into button style rules.
Implemented a vertical splitter between the editor and preview panes, allowing users to resize them interactively. The split ratio is persisted in localStorage and clamped for usability. Added JavaScript interop for drag handling, updated styles for the splitter, and improved the preview toggle button with an eye icon. Layout remains responsive for mobile devices.
Configured SignalR and WebSockets for improved reliability and large content handling. Added appsettings and web.config for production/IIS, including increased timeouts, message size limits, and security/compression settings. Added fallback to Long Polling if WebSockets fail.
- Added a manual "Save" button to the editor, enabled only when there are unsaved changes.
- Enhanced save status feedback with new states ("Modified", "Saving...", "Saved", "Error", "Timeout") and distinct styling.
- Improved auto-save: increased debounce to 2s, only show "Saving..." when actually saving, and unified manual/auto save logic.
- SaveContent now uses a 30s timeout and retries on error/timeout.
- SessionService now streams large content to disk in chunks and ensures the save directory exists.
- Updated CSS for save button and status indicators, including mobile tweaks.
- Removed unused exception variables in SharedEditor.razor and SharedPreview.razor.
- Updated markdown spec file to reflect new methods and build errors.
Implement a new theme system with a ThemeToggle component, allowing users to switch between light, dark, and auto (system) modes. Move theme CSS variables to app.css and manage theme state via theme.js with localStorage persistence. Integrate ThemeToggle into editor and preview top bars. Clean up old theme logic from MainLayout.razor.css for better separation and maintainability.
Introduced SharedEditor.razor and SharedPreview.razor for editing and viewing shared documents via tokenized links. Includes auto-save, markdown preview, permission checks, and dedicated responsive styles for both editable and view-only modes. Enables secure sharing of documents with user-friendly interfaces.
Added MigrationBackup/ to .gitignore to prevent tracking of backup files and subdirectories within this folder. This helps keep the repository clean from backup-related artifacts.
- Remove Blazor template pages and navigation; redesign layout for fullscreen editor with light/dark theme support
- Add Editor.razor: markdown editor with live preview, auto-save, and share modal for readonly/editable links
- Implement MarkdownService (Markdig + HtmlSanitizer), SessionService (cookie-based, file persistence), and ShareService (token-based sharing)
- Configure DI and cookie policy in Program.cs; add Markdig and HtmlSanitizer NuGet packages
- Include example session and share token data files
- App is now a single-page markdown editor with file-based storage and sharing, no database