Version 1.0.5
was released on 10 October 2019.
This release includes the following (notable) new features, improvements and bug fixes:
- Screen reader compatibility: the webview that renders EPUB HTML documents is now hard-refreshed to ensure NVDA, etc. track DOM changes reliably
- Keyboard interaction: SHIFT+CTRL+ALT LEFT/RIGHT-ARROW to quickly navigate previous/next spine items (works on Windows, including with NVDA, but minus ALT on MacOS for VoiceOver compatibility)
- File extension
.epub
association (EPUB "open with" or double-click to launch from Windows File explorer, MacOS Finder, and Linux desktop managers) - Fixed interaction problems in publication import (mouse vs. keyboard bugs)
- Fixed broken publication export
- Added OPDS feed pagination, including search results
- Publications imported from OPDS catalogs now have an initial list of (user-editable) tags extracted from the feed metadata
- Corrected handling of OPDS relative URLs
- Detection of internet connectivity, friendlier messages during OPDS navigation
- Support for
javascript:
hyperlinks in EPUB HTML documents - Protection against broken hyperlinks in non-valid EPUBs (HTTP 404)
- Improved feedback during publication download, error cases
- Added dark and sepia colour themes in User Interface (was only in EPUB documents)
- Fixed Command Line Interface on MacOS
- Bookmarks labels now checked for empty string
- Publication info dialog has a "see more" expand/collapse button for long descriptions (library and reader views)
- Fixed crash when removing publication in scroll list
- Miscellaneous User Interface improvements and bug fixes: publication list alignment, goto page, OPDS search breadcrumb, bookmark display (long label ellipsis, padding), reader view settings initial state
- Significant under-the-hood code refactorings to improve the developer experience and the robustness of the codebase (TypeScript strict typing, error handling / border cases)
(previous v1.0.4 changelog)
Git commit diff since v1.0.4
:
https://github.com/readium/readium-desktop/compare/v1.0.4...v1.0.5
=> 53 GitHub Pull Requests or high-level Git commits.
Here is the complete list of commits, ordered by descending date:
- (_) chore(doc): README (PR #778)
- (_) fix(ui): improved publication list view, row items alignement (PR #777 Fixes #691)
- (_) fix(CLI): MacOS command line argument with single dash/hyphen
-psn
is now filtered out (PR #775) - (_) hotfix(lint): fixes minor linting errors introduced by the previous commit (electron-builder patch)
- (_) fix: Windows AppX electron-builder patch to support fileAssociations (Fixes #697)
- (_) hotfix(npm): package updates to include latest r2-navigator-js component which fixes support for javascript: hyperlinks.
- (_) chore: replace MSI with NSIS electron-builder target for Windows installer (PR #776)
- (_) fix: publication export (PR #746 Fixes #724)
- (_) fix(ui): "go to page" disabled mouse cursor (PR #774 Fixes #760)
- (_) hotfix(npm): the "inner" package.json was lacking the yargs update, follow-up to PR #771
- (_) fix(opds): breadcrumb path for search keywords was percent-encoded (PR #767 Fixes #751)
- (_) chore(npm): latest "safe" package updates, minor semver + one safe major (PR #771)
- (_) fix: in library view, deleting + scrolling publications does not crash anymore (PR #768 Fixes #750)
- (_) fix(ui): corrected hairline misalignment of icon buttons in reader window (PR #764 Fixes #741)
- (_) fix(ui): dark / sepia colour schemes applied to reader interface (PR #755 Fixes #83)
- (_) fix(opds): publication tags are now imported from the feed source (PR #757 Fixes #299)
- (_) hotfix(ui): publication "info" dialog in reader window, now correct "see more" button state (Fixes #759 )
- (_) hotfix(a11y): special treatment on MacOS for spine-level navigation keyboard shortcut (no ALT modifier key, just CTRL+SHIFT with LEFT/RIGHT arrows)
- (_) hotfix(a11y): NVDA SHIFT+CTRL+ALT LEFT/RIGHT-ARROW works to navigate spine items
- (_) fix(a11y): NVDA screen reader now reliably detects changed EPUB documents (HTML URLs) during WebView refresh (PR #758)
- (_) fix(ui): popup modal dialogs did not include all CSS (PR #756)
- (_) fix(opds): feed pagination, including search results (PR #733 Fixes #462)
- (_) fix(opds): feed URLs can be relative, now resolve to absolute (PR #753 Fixes #748)
- (_) fix(bookmarks): empty string label now rejected (PR #737 Fixes #723)
- (_) fix(ui): bookmark label was overflowing, now ellipsis (PR #754 Fixes #745)
- (_) hotfix(opds): NPM package update r2-opds-js (Fixes #752)
- (_) hotfix: publication import using the + plus button was failing when used multiple times for the same file (Fixes #740)
- (_) hotfix: prevent badly-authored EPUB links to trigger external web browser handler, r2-navigator-js package update (Fixes #738)
- (_) fix(opds): publication download, error feedback (PR #749 Fixes #743)
- (_) fix(opds): updated NPM packages + minor follow-up to PR #696 (PR #747 Fixes #744)
- (_) chore(refactor): replace "withApi" React HigherOrderComponent (Redux state management layer, over Electron IPC main/renderer process sync), improved TypeScript API, strong types (PR #696)
- (_) fix: mouse and keyboard interaction for bookmarks (PR #734 Fixes #722 Fixes #721)
- (_) hotfix(security): Electron BrowserWindow webSecurity enabled in webPreferences (Fixes #736)
- (_) chore: NPM package updates (PR #731)
- (_) fix: improved OPDS network connectivity message display (PR #729 follows PR #727)
- (_) fix: OPDS view, detection of internet connectivity to avoid scary / hard-to-understand error messages (PR #727 Fixes #726)
- (_) fix: reader view, default settings / initial configuration state (PR #716 Fixes #685)
- (_) fix(ui): extra padding in bookmarks section when empty (PR #720 Fixes #507)
- (_) fix(a11y): accessible label for bookmark button (PR #719 Fixes #571)
- (_) fix(CLI): "default command" now more explicit (PR #715 Fixes #699)
- (_) fix(CLI): import EPUB and OPDS feed (PR #714 Fixes #701)
- (_) fix: follow-up to PR #659, regression bug "about publication / info box" (PR #713 Fixes #712)
- (_) hotfix: follow-up to PR #659, fixes #709, fixes #711
- (_) hotfix: follow-up to PR #659, fixes #709
- (_) hotfix: follow-up to PR #489 await illegal on non-promise function return type, see comment https://github.com/readium/readium-desktop/commit/bc3f1337bf50c857bf7a0a48f57e1c076056a697#r35171002
- (_) hotfix: follow-up to PR #659 see comment #659
- (_) chore: NPM updates - r2-xxx-js packages, ReduxSaga with better typings, CrossEnv which drops support for older NodeJS versions (PR #707)
- (_) fix(typing): Dependency Injection, Higher Order Component API and Translator (PR #659)
- (_) chore(npm): updated package dependencies, fixed --help CLI in package.json script (PR #703)
- (_) fix(ui): publication description metadata, long text height computation after CSS layout/render pass (PR #694 Fixes #689)
- (_) fix(ui): publication tags, visual spacing (PR #693 Fixes #690)
- (_) fix: OPDS breadcrumb line-breaking path separators (PR #688 Fixes #621)
- (_) chore: version bump 1.0.5-rc.0
Developer Notes:
- The standard-changelog utility (
npx standard-changelog --first-release
) somehow only generates a limited number of commits, so we use a one-liner command line / shell script instead: git --no-pager log --decorate=short --pretty=oneline v1.0.4...v1.0.5 | cut -d " " -f 1- | sed -En '/^([0-9a-zA-Z]+)[[:space:]]([^:]+):(.+)$/!p;s//\1 __\2:__\3/p' | sed -En 's/^(.+)$/* \1/p' | sed -En '/PR[[:space:]]*#([0-9]+)/!p;s//PR [#\1](https:\/\/github.com\/readium\/readium-desktop\/pull\/\1)/gp' | sed -En '/\(#([0-9]+)/!p;s//(PR [#\1](https:\/\/github.com\/readium\/readium-desktop\/pull\/\1)/gp' | sed -En '/(Fixes|See|Fix|Fixed)[[:space:]]*#([0-9]+)/!p;s//\1 [#\2](https:\/\/github.com\/readium\/readium-desktop\/issues\/\2)/gp' | sed -En '/^.[[:space:]]([0-9a-zA-Z]+)[[:space:]]/!p;s//* [(_)](https:\/\/github.com\/readium\/readium-desktop\/commit\/\1) /p' | sed -En '/[[:space:]]#([0-9]+)/!p;s// [#\1](https:\/\/github.com\/readium\/readium-desktop\/issues\/\1)/gp'
- ...append
| pbcopy
on MacOS to copy the result into the clipboard. - ...append
| wc -l
to verify that the result actually matches the number of Git commits.