Version 1.6.0
was released on 16 February 2021.
This release includes the following (notable) new features, improvements and bug fixes:
- Thorium is now based on Electron version 11.
- The Windows installer is now code-signed (no more scary warning messages)
- Localization: updated Japanese and Spanish translations, added Finnish, Russian, Chinese translation.
- Accessibility: improved screen reader detection to trigger force-refresh in the content webview.
- Support for DAISY3 audio-only, audio+text and text-only talking books.
- OPDS authentication: OAuth2 access/refresh token, HTTP cookies, SAML for Library Simplified (Lyrasis).
- OPDS browser: better UI layout (navigation links, facets, groups).
- The "about Thorium" information is now an automatically-generated Web Publication which opens in the reader view.
- LCP: clarified error message for license rights.start in the future, vs. LSD expired status, added sanity check / safeguard for not-well-formed licenses (e.g. HTTP response error code body, or corrupted local file), localized URL hint hyperlink.
- PDF: significant improvements, performance, bug fixes, layout features (still based on Mozilla PDF.js).
- Library / bookshelf: fixed open publication from filesystem / drag-and-drop, removed unnecessary confirm dialog for importing a small number of publications using drag-drop.
- User interface: fixed long unbreakable titles in publication info dialog, title/author ellipsis on 2-lines max layout.
- Reader view: added support for user-installed system fonts (in addition to ReadiumCSS predefined typefaces), reflowable documents are now paginated by default (was scroll mode before), fixed the hyperlink :target CSS styles (temporary green outline), prevent mouse-drag on UI controls, links, etc. inside EPUB HTML, PDF documents.
- Reader settings: Reduce Motion and Disable Footnotes display settings (+ moved MathJax toggle).
- New reader navigation feature: goto begin/end of publication, CTRL HOME/END keyboard shortcuts, and shift-click on left/right arrow button icons.
- Reader "goto page" now has a keyboard shortcut, and works with authored pageList as well as intrinsic page units such as with fixed layout FXL publications, PDF, etc.
- Reader interaction: mouse wheel scroll and touchpad two-finger swipe/drag to turn pages left/right (on bottom footer progress bar and arrows).
- Reader navigation panel: increased table of contents interline.
- Reader footnotes: fixed same-document content restriction.
- Search: fixed DOM / XHTML parsing issue, added keyboard shortcuts for find previous/next commands.
- Divina: audio/video streaming now works.
- Database: internal application state saved at every 3 minutes interval, plus persistence guaranteed on app shutdown (was too frequent before).
- Development: added WebPack bundle analyser (dependency analysis), replaced deprecated TSLint with ESLint + Prettier (code linting / formatting checks).
- ... and many more smaller changes listed below.
(previous v1.5.0 changelog)
Git commit diff since v1.5.0
:
https://github.com/edrlab/thorium-reader/compare/v1.5.0...v1.6.0
=> 134 GitHub Pull Requests or high-level Git commits.
- (_) chore(NPM): package updates
- (_) chore(dev): replace deprecated TSLint with ESLint + Prettier (PR #1374 Fixes #625 )
- (_) fix (l10n): updated Japanese Translation (PR #1372 )
- (_) chore(code): cleanup redundant OPDS auth key/value escaping (decodeURIComponent)
- (_) fix(OPDS): slow servers tolerance, increased from 5s to 10s
- (_) fix(ilnt): code checks via TSLint are unreliable, time to migrate to ESLint (see #625 )
- (_) fix(OPDS): username/password for auth data was not decodeURIComponent'ed (incorrect base64 HTTP auth basic header was causing 401 status codes)
- (_) feat: user-installed system fonts, in addition to ReadiumCSS predefined typefaces (PR #1373 Fixes #766 Fixes #765 )
- (_) chore(NPM): package updates
- (_) chore(NPM): package updates
- (_) fix: code fixes for absolute URL resolving, handling of Windows filepaths, and percent-encoded hrefs (PR #1370)
- (_) feat(l10n): XHTML "about Thorium" documents (PR #1371)
- (_) fix(about): follow-up PR #1370 and commit a47e73f4f339e7436bcf08a84ea6f704b17508d3
- (_) fix(about): about publication always re-generated (Fixes #1369)
- (_) chore(a47e73f4f339e7436bcf08a84ea6f704b17508d3) lint previous commit
- (_) fix(about) os windows path error on both images and xhtml (fixes #1328)
- (_) fix(catalog): undefined publication on lastReadedPublication finder
- (_) chore(NPM): package updates
- (_) feat(OPDS): SAML authentication for Library Simplified, Lyrasis (PR #1366 original PR #1272 Fixes #1237)
- (_) chore(NPM): package updates, including minor Electron v11 VoiceOver fixes, etc.
- (_) fix(OPDS): feed navigation menu on the left, publications on the right (PR #1363 Fixes #1294)
- (_) chore(NPM): package updates
- (_) feat(OPDS): group navigation label (PR #1360 Fixes #1295)
- (_) chore: code cleanup, remove unused translated locale names (PR #1365)
- (_) chore(l10n): XHTML formatting ('es' and 'ja' only, 'en' and 'fi' are ok)
- (_) feat(l10n): Finnish translation (PR #1364 Original PR: #1362)
- (_) fix: instead of saving the internal state every second into the database, increase the interval to 3 minutes (state is persisted on app shutdown too) (PR #1359 Related issue: #1274 )
- (_) chore(ci): NPM v7 was breaking the build, so now ensure NPM v6 is used
- (_) chore(ci): troubleshooting GitHub Actions which has entered an infinite loop of doom (NPM ERR! repeated for 6 hours until VM is shutdown)
- (_) chore(NPM): package updates
- (_) fix(UI): long unbreakable titles in publication info dialog, and title/author ellipsis on 2-lines max layout (Fixes #1345 Fixes #1358 )
- (_) fix(l10n): updated Spanish translation, including new XHTML "about Thorium" info (PR #1353)
- (_) fix(LCP): correct UI message for license rights.start in the future, vs. LSD expired status (PR #1357 Fixes #1351 )
- (_) chore(release): first-pass documentation for 1.6.0 release (changelog, distillation of 100+ commits into human-readable release notes)
- (_) fix(UI): delete publication wap primary button (fixes #1352)
- (_) fix(about): about filter by tags disabled (fixes #1350 twice)
- (_) fix(about): about book visible in search query result (fixes #1350)
- (_) doc: updates Japanese translation (PR #1344)
- (_) feat: Electron v11, r2-streamer-js HTTP server (activated by default) + optional no-HTTP streamer (Session.protocol.registerStreamProtocol currently buggy) (PR #1258)
- (_) chore(dev): code cleanup, removed unused sections [skip ci]
- (_) fix: removed redundant PDF.js-related electron-builder packaged files (Fixes #1317 )
- (_) fix: PDF cover image and metadata extraction using same PDF.js build as reader/renderer (PR #1338 Fixes #1335)
- (_) fix: Electron deprecation of remote module, routing of context-menu event, accessibility / screen reader detection, and r2-navigator-js update to match (added API)
- (_) chore(NPM): minor package updates
- (_) feat: goto begin/end of publication, CTRL HOME/END keyboard shortcuts, and shift-click on left/right arrow button icons (PR #1341 Fixes #1247)
- (_) chore(dev): code cleanup, removal of unnecessary generic specifier in TypeScript function (TaJsonDeserialize)
- (_) fix(LCP): sanity check / safeguard for not-well-formed licenses (e.g. HTTP response error code body, or corrupted local file) Fixes #1254
- (_) fix(8bbba718297d768086b439657a9965e823d35583): lint
- (_) fix(PDF): replace registerBufferProtocol with registerFileProtocol
- (_) fix(PDF): bus subscribe of keyup and keydown event in driver.ts. I moved it in the reader.tsx init.
- (_) fix: PDF reader options had incorrect menu (MathJax, Popup Footnotes, Reduce Motion). Also updated to latest PDF.js build from EDRLab fork, built from source ( https://github.com/edrlab/pdf.js/blob/master/THORIUM_BUILD.md )
- (_) chore(doc): PDF.js -related documentation (forking)
- (_) fix(PDF.js): added TypeScript type definitions, see https://github.com/edrlab/pdf.js/blob/master/TYPESCRIPT_TYPE_DEFINITIONS.md (follows commit 73d4165b3a427522d027a18ae451100b5e1a7321, see issue #1335 )
- (_) lint(73d4165b3a427522d027a18ae451100b5e1a7321)
- (_) fix(PDF): remove pdfjs-dist it was used only for typed index_pdf.ts and toc.ts in the webview. I replace some type with any. not a big deal. (fixes #1335 partially)
- (_) chore(NPM): package update r2-streamer-js (notably: HTTP caching disabled for encrypted resources)
- (_) chore(NPM): package updates
- (_) fix(LCP): url hint hyperlink is localized (fixes #1263 twice)
- (_) fix(b9c7210ff107cdc466af6504bbb28dfa7796aeca): follow-up of the previous commit
- (_) fix(PDF): disable 'autmatic' columns -> doesn't supported in the pdfjs viewer (fixes #1334)
- (_) feat: Reduce Motion and Disable Footnotes display settings (+ moved MathJax toggle) (PR #1333 Fixes #1286)
- (_) fix(OPDS): undefined book extension in import button (fixes #1302)
- (_) fix: undefined type value in updateOpdsInfoWithEntryLink() (fixes #1324)
- (_) chore(lint): catalog.ts import sorting
- (_) fix(about): about epub displayed in "all book" section (fixes #1318)
- (_) Merge branch 'develop' of https://github.com/edrlab/thorium-reader into develop
- (_) fix(about): disable about modal for nnecessary "about Thorium" publication requests (fixes #1325)
- (_) chore(dev): added start:dev:quick NPM command
- (_) fix(a11y): keyboard shortcut for search previous/next commands was incorrect (KeyG instead of G)
- (_) chore(pdfjs fork documentation) update readme with last commit hash
- (_) fix: disable print feature in mozilla pdf viewer (fixes #1320)
- (_) fix: downgrade pdfjs.extract from 0.1.5 to 0.1.4 (fixes #1316) pdf import fail with npm run start
- (_) fix: "goto page" feature now has a keyboard shortcut, and works with authored pageList as well as intrinsic page units such as with fixed layout FXL publications, PDF, etc. (PR #1319)
- (_) chore(NPM): package updates, notably minor Electron release, and r2-shared-js with a LCP PDF fix
- (_) fix(a11y): keyboard shortcuts for search previous/next commands, now with alternative option (Fixes #1214)
- (_) fix(OPDS): facets and navigation above publication listing now occupies available horizontal space (PR #1309 Fixes #1218)
- (_) chore(NPM): package updates
- (_) fix: about dialog box now a publication to open in reader view, with full document accessibility, including readaloud (PR #1199 Fixes #992 Fixes #576)
- (_) fix(PDF): new Mozilla-based viewer / renderer with search and multipage (PR #1285 Fixes #1192 Fixes #1190 Fixes #1194 Fixes #1193 Fixes #1191)
- (_) fix(dev): Redux Devtools CLI is now disabled (SQLite3 v5 compile issues)
- (_) chore(NPM): package updates, including r2-shared-js with support for DAISY3 audio-only talking books
- (_) fix(linux): installer in Office category (Fixes #1242)
- (_) fix(UI): removed unnecessary confirm dialog for importing a small number of publications during drag-drop (Fixes #1129)
- (_) feat(UI): mouse wheel scroll and touchpad two finger swipe / drag to turn pages left/right (on bottom footer progress bar and arrows)
- (_) fix(UI): table of contents line height / interline of heading text (Fixes #1164)
- (_) fix(search): added missing previous/next keyboard shortcuts (Fixes #1214)
- (_) fix(search): double-click on list item closes menu, just like pressing enter (Fixes #1229)
- (_) fix: improved homescreen bookshelf design (PR #1292 Fixes #1273)
- (_) chore: code consistency, R2 imports
- (_) fix(LCP): URL hint was missing in passphrase dialog (PR #1264 Fixes #1263)
- (_) fix(improve): book catalog update from setReduxState (PR #1291)
- (_) feat(refactor): OPDS authentication, OAuth2 access/refresh token, HTTP cookies (PR #1252 Fixes #899 See #1237)
- (_) feat(l10n): Russian localization (PR #1307 based on PR #1287)
- (_) feat(l10n): Chinese UI translation (PR #1306 based on PR #1271)
- (_) chore(l10n): i18n types update (alphabetical sort)
- (_) fix: DOM search (PR #1305 Fixes #1304)
- (_) fix: typo in XHTML content type
- (_) fix(c0ddd1923048dec8d030b6f02afa9db0c70a0e14): packager resources path in the zip
- (_) chore: documentation and debug in lock.ts (PR #1301)
- (_) fix[packager]: resources path in the zip is the same that resources path in the rwpm (PR #1298, fixes #1303)
- (_) fix: removed the possibility for protocol.registerSchemesAsPrivileged to be called after Electron app ready state (PR #1300 Fixes #1299)
- (_) chore: replace debug filename of publication/import
- (_) chore(NPM): package updates, including R2 OPDS JS with important bug fixes
- (_) chore(npm): minor package updates
- (_) chore(NPM): package updates
- (_) fix: SQLite3 Electron build (v9.4.0) in postinstall
- (_) chore(NPM): package updates, notably: pdf-extract.js on the NodeJS backend require("canvas") ignored by WebPack config (breaking change due to PDF.js update in pdf-extract's own bundle)
- (_) fix: converter from W3C Web Publications to Readium2 format, links vs. resources, typings + NPM updates and necessary code cleanup (stricter compiler checks) (PR #1278 Fixes #1280)
- (_) chore(NPM): package updates, stricter TypeScript Promise checks
- (_) fix(OPDS): filter rel='alternate', improved contentType parsing (PR #1275 Fixes #1148)
- (_) (saad/develop) fix: WebPub content-type accepted in OPDS feeds, etc. (PR #1248)
- (_) chore(NPM): package update, including important r2-shared-js update
- (_) chore(NPM): package update r2-shared-js (DAISY support)
- (_) chore(NPM): r2-shared-js package update
- (_) chore(NPM): misc. package updates, R2 navigator and shared-js components
- (_) chore(CI): second attempt at fixing Travis CI (Windows was failing)
- (_) chore(CI): attempt to fix GitHub Actions (replacement of set-env command)
- (_) chore(NPM): package update (R2 shared)
- (_) chore(NPM): R2 navigator package update, fixes footnotes same-document content restriction, and DOM :target CSS styles
- (_) chore(NPM): minor package updates, notably: DAISY support
- (_) feat: support for DAISY3 audio+text and text-only publications (PR #1257)
- (_) fix: Divina audio/video streaming now works (problem was related to Session.protocol.registerStreamProtocol() vs Session.protocol.registerHttpProtocol())
- (_) chore(NPM): package dependencies (minor updates)
- (_) fix: added missing paragraph spacing UI (PR #1239 Fixes #1100)
- (_) fix: PDF pagination overflow, now doesn't exceed last page (PR #1240 Fixes #1215)
- (_) fix: reflowable documents are now paginated by default, was scrolling (PR #1238 Fixes #1222)
- (_) fix(l10n): Updated Spanish translation (PR #1232)
- (_) chore(dev (PR #1235 Fixes #636)
- (_) fix: open publication from filesystem or drag-and-drop only opened library window (PR #1221 Fixes #1220 Fixes #1123)
- (_) dev: WebPack bundle analyser (see #1226 )
- (_) fix: prevent mouse drag on links, etc. in PDF rendering (Fixes #918 )
- (_) fix: prevent mouse drag on UI controls, links, etc. including inside EPUB HTML documents (Fixes #918 )
- (_) chore(release): version bump 1.6 alpha
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.5.0...v1.6.0 | 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\/edrlab\/thorium-reader\/pull\/\1)/gp' | sed -En '/\(#([0-9]+)/!p;s//(PR [#\1](https:\/\/github.com\/edrlab\/thorium-reader\/pull\/\1)/gp' | sed -En '/(Fixes|See|Fix|Fixed)[[:space:]]*#([0-9]+)/!p;s//\1 [#\2](https:\/\/github.com\/edrlab\/thorium-reader\/issues\/\2)/gp' | sed -En '/^.[[:space:]]([0-9a-zA-Z]+)[[:space:]]/!p;s//* [(_)](https:\/\/github.com\/edrlab\/thorium-reader\/commit\/\1) /p' | sed -En '/[[:space:]]#([0-9]+)/!p;s// [#\1](https:\/\/github.com\/edrlab\/thorium-reader\/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.