Releases: PiBOH/multimdreader
Releases · PiBOH/multimdreader
0.0.5_STABLE
CHANGELOG
[0.0.5_STABLE] — 2025-06-23
✨ New Features
- Added project dashboard page — a beautiful, dark/light-mode landing page for the project deployed to GitHub Pages at
piboh.github.io/multimdreader/dashboard/, featuring:- Hero section with gradient branding and download links
- About section with feature cards
- Download section per platform (Windows, macOS, Linux)
- Supported languages showcase
- Changelog preview
- Keyboard shortcuts reference
- Repository structure diagram
- Sticky navigation with theme toggle
- Created
deploy-pages-dashboard.ymlworkflow — deploys thedashboard/folder to GitHub Pages on changes
🔧 Refactoring
- Renamed
deploy-pages.yml→deploy-pages-demo.yml— deploys the live web app demo to GitHub Pages - Separated dashboard deployment from demo deployment into independent workflows with separate concurrency groups
📝 Documentation
- Updated all 6 READMEs with new badge for
deploy-pages-dashboard.yml - Updated CI/CD section in all READMEs to document both Pages workflows
- Updated all version references to
0.0.5_STABLE
0.0.4_BETA
CHANGELOG
[0.0.4_BETA] — 2025-06-23
🐛 Bug Fixes — CI/CD (Critical)
- Fixed
release.ymlfailing on all platforms —@tauri-apps/cliwas missing frompackage.jsondevDependencies, causingtauri buildto fail on Windows, macOS, and Linux (#28052770409) - Fixed all release workflows still failing —
tauri-action@v0was silently failing; replaced with directnpx tauri buildfor full control and visible error output (#28054215281, #28054228335, #28054238180) - Fixed Rust compilation error
cannot find crate multimdreader_lib—main.rsreferencedmultimdreader_lib::run()but the crate is namedmultimdreader; changed tomultimdreader::run()(#28055357691, #28055369781, #28055379901) - Fixed Rust compilation failures — removed unused Tauri plugins (
tauri-plugin-dialog,tauri-plugin-fs) fromCargo.tomlandlib.rsthat were causing crate version incompatibilities - Fixed
vite-plugin-singlefileconflict with Tauri — removed singlefile plugin (useful for standalone HTML but causes issues with Tauri's asset embedding); Tauri now receives proper separate JS/CSS bundles - Fixed Node.js 20 deprecation — upgraded all workflows to Node.js 22 (Node 20 is deprecated on GitHub Actions runners as of September 2025)
- Fixed
npm cifailures — replaced withnpm installand addedpackage-lock.jsonto.gitignoreso CI generates fresh lock files - Fixed Linux build environment — changed
ubuntu-latesttoubuntu-22.04as recommended by Tauri v2 docs for webkit2gtk compatibility - Fixed macOS matrix
fail-fast— addedfail-fast: falseso Intel failure doesn't cancel Apple Silicon build (and vice versa) - Fixed Arch Linux package build — replaced broken
container:approach withaddnab/docker-run-action@v3for reliable Arch container builds - Fixed release permissions — added
permissions: contents: writeto all release workflows so they can create GitHub releases - Added
libssl-devto Linux system dependencies for complete Tauri build requirements
🔧 Refactoring — CI/CD
- Split
release.ymlinto 3 per-OS workflows for independent builds and clearer failure isolation:release-windows.yml— Windows x64 (installer + portable)release-macos.yml— macOS Intel (x64) + Apple Silicon (aarch64)release-linux.yml— Linux Debian (.deb), AppImage, and Arch (.pkg.tar.zst)
- Replaced
tauri-apps/tauri-action@v0with direct build commands — each workflow now runsnpx tauri builddirectly withsoftprops/action-gh-release@v2for release creation, giving full control over build steps and clear error output - Added explicit frontend build step before Tauri build for better error isolation
- Added
cargo fetchstep to pre-download Rust dependencies for clearer failure diagnostics - Added build output listing step to help debug artifact location issues
🔧 Refactoring — Tauri Backend
- Simplified
lib.rs— removed unused Tauri commands (get_app_version,get_app_name) and plugins, now just creates a window with the frontend - Simplified
Cargo.toml— removedtauri-plugin-dialog,tauri-plugin-fsdependencies; removed"devtools"feature from Tauri - Simplified
capabilities/default.json— onlycore:defaultpermission needed
📦 Dependencies
- Added
@tauri-apps/cli@^2todevDependencies(was missing — root cause of original CI failure) - Removed
vite-plugin-singlefile— incompatible with Tauri's asset embedding - Removed
package-lock.jsonfrom repository — CI generates fresh lock file each time
📝 Documentation
- Updated all 6 READMEs with new per-OS workflow badges and revised CI/CD documentation section
- Updated
package.jsonname fromreact-vite-tailwindtomultimdreader - Added testing notice to all 6 READMEs: only Windows releases have been tested by the author; macOS and Linux builds are provided as-is
0.0.3_ALPHA
Source code only. the release workflow didn't work now.
[0.0.3_ALPHA] — 2025-06-23
✨ New Features
- Code block copy button — hover over any fenced code block to copy its content to clipboard with visual feedback
- Remove individual recent files — hover X button on each recent file in the sidebar to remove it from history
- Keyboard shortcuts panel — reference panel shown in the sidebar footer
- Error notifications — visible inline banner for file read errors and unsupported file format attempts
- Close file button — button in the file info bar to close the current file
- GitHub Pages deployment — new
deploy-pages.ymlworkflow with properVITE_BASEsupport for subpath hosting - Generated app icon —
public/icon.pngwith blue-purple gradient "M" design - Multilingual READMEs — 6 translated READMEs with cross-language navigation:
README.md(🇺🇸 English US)README.en-GB.md(🇬🇧 English UK)README.it.md(🇮🇹 Italiano)README.es.md(🇪🇸 Español)README.de.md(🇩🇪 Deutsch)README.fr.md(🇫🇷 Français)
shortcutsi18n keys — added to all 6 locale files for the keyboard shortcuts panelcloseFilei18n key — added to all 6 locale files for the close file button
🐛 Bug Fixes
- Fixed identical
en-GBanden-USlocales — they were byte-for-byte identical; now properly differentiated (e.g. "dialogue" vs "dialog", "colour" vs "color" where applicable) - Fixed
FileReadermissing error handling — addedonerrorcallback with user-visible error notification (previously, a failed read would silently do nothing) - Fixed
handleFileInputtype — changed from genericReact.ChangeEventtoReact.ChangeEvent<HTMLInputElement>for type safety - Fixed
formatDate()ignoring i18n locale — now usesgetLocaleForDateFormat()to map language codes to proper locale strings (e.g.it→it-IT,de→de-DE) - Fixed hardcoded version in About dialog — replaced inline
"0.0.2"withAPP_VERSIONconstant - Fixed
i18ndetector using default localStorage key — changed tomultimdreader-languagefor namespace consistency - Fixed drag & drop state getting stuck — improved
handleDragLeavewith bounding-rect boundary checking
🔧 Refactoring
- Extracted app constants —
APP_VERSION,APP_AUTHOR,APP_WEBSITE,APP_REPOas module-level constants - Extracted utility functions —
formatFileSize(),formatDate(),getLocaleForDateFormat(),isSupportedFile()as standalone functions - Created inline SVG icon components — 14 icon components replacing any previous approach
- Added
CodeBlockcomponent — dedicated component with copy-to-clipboard functionality - Cleaned up
src/utils/cn.ts— removed unused template utility file
📦 Dependencies
- Added
@tailwindcss/typography— forprosemarkdown rendering classes - Added
i18next,i18next-browser-languagedetector,react-i18next— internationalization framework - Added
react-markdown,remark-gfm,rehype-highlight— Markdown rendering pipeline - Added
highlight.js— syntax highlighting engine withgithub-darktheme
📝 Documentation
- Added
CHANGELOG.md(this file) - Updated all version references from
0.0.2to0.0.3_ALPHA
0.0.2_ALPHA
Source code only. the release workflow didn't work now.
[0.0.2] — 2025-06-22
✨ Initial Public Release
- Markdown file reader with GitHub-style rendering
- Syntax highlighting for code blocks (100+ languages)
- 6 language support: Italiano, English (UK), English (US), Español, Deutsch, Français
- Dark / Light mode with system preference detection
- Recent files sidebar with persistent history
- Drag & drop support for opening files
- GFM support: Tables, task lists, strikethrough, autolinks
- Cross-platform: Windows (.exe), macOS (.dmg), Linux (.deb, .AppImage, .pkg.tar.zst)
- CI/CD:
build.yml(web build),release.yml(desktop releases) - Tauri v2 desktop app (Rust backend)