Add library export options#12
Open
kvmgithub wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This change adds a library export panel to the main Library screen. Users can export the currently searched and filtered library to CSV, JSON, XLSX, TXT, and PNG, or copy the formatted TXT export directly to the system clipboard.
What changed
Copy TXTaction that places the same formatted TXT output on the Android system clipboard.User impact
Users can now export their library in the formats supported by Libation-style workflows, plus a visual PNG summary of the library view. The export respects the active search/filter scope and can be organized by title, length, author, and series.
The TXT format is useful for quick sharing and note-taking because it is readable without spreadsheet software. The clipboard action avoids creating a file when users only need to paste a structured list into another app.
Implementation notes
The XLSX export is generated directly as a minimal Office Open XML workbook so no new JavaScript dependency is required.
The PNG export uses the Android native bridge because the current app does not have a cross-platform view-capture or canvas dependency. The renderer builds a single image from the same normalized export rows used by the other formats and attempts to load cover images when available.
The clipboard feature uses Android's native
ClipboardManagerthrough the existing Expo Rust bridge module, avoiding an additional clipboard package.Validation
Automated validation:
npm run typecheck./gradlew :app:compileDebugKotlingit diff --checkManual Android validation:
npm run build:rust:androidnpx expo run:android