- Feature: New option to control unviewable page image:
unviewablePageURI
@cdrini
- Dev: Update test dependencies @cdrini
- Dev: Update build dependencies @cdrini
- Fix: BookReader buttons inherit font @rebecca-shoptaw
- Fix: Better visual adjustment text @rebecca-shoptaw
- Dev: Fix/modernize IIIF demo @cdrini
- Dev: Fix sharing panel erroring when no IA item metadata specified @cdrini
- Fix: Firefox not scrolling to selected volume in the volume side panel @nsharma123
- Fix: Add button outline to some of the controls @cdrini
- Fix: side panels - show downloads before visual adjustments @iisa
- Fix: Update bookNavigator shortcut menu ordering @dualcnhq
- Dev: Update deps via renovatebot
- Dev: Add .env file in .gitignore
- Dev: Update CHANGELOG.md @eltociear
- Feature: Add ToC icon if enableChapterPlugin @dualcnhq
- See 5.0.0-75
- Feature: Add
table_of_contents
option to work with chapters plugin @cdrini - Fix: Simple demos not working @xonx4l
- Dev: Update test/build dependencies @cdrini
- Fix: Play/pause button out of sync with ReadAloud @sbwhitt
- Fix: BookReader not loading in sandboxed iframe @cdrini
- Dev: Fix noisy sentry error firing on any selection @cdrini
- Dev: Update to Node 20 @cdrini
- Dev: update jest monorepo @renovate
- Fix: Share & Mutliple View menu panel refactor @iisa
- Feature: Remember ReadAloud voice selection @sbwhitt
- Fix: Support page numbers that require url encoding @cdrini
- Fix: Handle ppi incorrectly set to one @cdrini
- Fix: 1up zoom wrong on start/entering full screen @cdrini
- Dev: BREAKING: delete
plugin.mobile_nav.js
no longer used @cdrini - Dev: Move page 1 label correction logic to BookReaderJSIA @cdrini
- Feature: Re-enable chapters plugin + migrate off mmenu @cdrini
- Fix: Disable tooltips on touchscreens + fix on IA @cdrini
- Dev: Remove core-js update block; issue resolved in core-js @cdrini
- Fix: Pinch zooming on iPad/iPhone, Samsung Internet @cdrini
- Dev: Remove Debug console dev helper @cdrini
- Dev: Fix deno esm.sh esbuild erroring @cdrini
- Dev: Update test/build deps @cdrini
- Dev: update dependencies @renovate
- Dev: update build step @cdrini
- Fix: Search inside option for {{{/}}} + http support @cdrini
Fix: Don't limit autoFit zoom to real world size @cdrini Dev: Update test deps @cdrini
- Fix: Make text selection work in Safari 15.4+ @cdrini
- Fix: Rewrite/improvements to text selection UX @cdrini
- Switches from SVG text layer to HTML text layer
- Fix: Mode2up preview pages hanging on first click @cdrini
- Dev: Add analytics event for text layer page selection @cdrini
- Fix: Update modal manager to fix duplicate definitions warnings on IA @cdrini
- Fix: Common Sentry error
.spread
undefined @cdrini - Fix: entering page appearing early in flip anim @cdrini
- Fix: preview pages not working in 1up @cdrini
- Dev: Make serve-dev not do full production babeling (This makes it waaaay easier/faster to debug things like promises) @cdrini
- Dev: Log an error if search inside fails for sentry @cdrini
- Dev: Make dev server support CORS to allow testing via ngrok @cdrini
- Refactor: Rm redundant archive_analytics checks @cdrini
- Refactor: Dissolve a-search-result.js component @cdrini
- Rewrite 2up view to use css transforms and lit @cdrini
- Pretty substantial change. Lots of breaking changes to public methods.
- Fix BookReader sometimes failing to load when starting in Mode1Up @cdrini
- Update testing dependencies @cdrini
- Fix - do not show Download pane when there aren't any available @iisa
- Fix DOMException in sandboxed iframe in chrome @cdrini
- Fix BookReader going to 1up in fullscreen on desktop @mheiman
- Support BookReader running in sandboxed (cookie-less) iframe @cdrini
- Update IA dependencies to avoid duplicate dependencies @cdrini
- Dev: Dispatch custom event from bookreader for ia-book-actions @nsharma123
- Dev: update icons & lit versions to help a.o build @iisa
- Fix: Bookmark with subfiles was broken @nsharma123
- Feature: Default 1up mode and options.defaults mode override exiting mode @nsharma123
Fix: Search results display @latonv
- Dev: remove class shims, v5 deprecations @cdrini
- Dev: update dependency (@open-wc/testing-helpers) @renovate
- Dev: e2e - remove ia test + export DesktopNav for external usage @iisa
- Fix: move analytics to sample bucket @iisa
- Dev: update dependencies (concurrently, jest) @renovate
- Fix: XSS vulnerability in search results @latonv
- Dev: Update jQuery to v3 BREAKING @cdrini
- If you were importing
BookReader/jquery-1.10.1.js
you will need to change it toBookReader/jquery-3.js
- Also ensure if other code was using this jquery that it works with jQuery 3!
- If you were importing
- Dev: Update testing dependencies (jest, testcafe) @renovate
Fix: Leaf positioning during RTL fliip animation @latonv Dev: dependency updates @renovate Fix: Disable contextmenu for restricted books @iisa
Fix: dynamic q=<term>
url parameter @iisa
Dev: dependency updates @renovate
Fix: search results panel display asserted page numbers @cdrini Dev: dependency updates @renovate Dev: node-fetch update @cdrini
Dev: update testing dependencies @renovate
Dev: update <ia-item-navigator>
@iisa
Fix: Better search highlights @cdrini Dev: update lit 2 components @iisa Dev: update lit @renovate
Fix: Performance improvements to scroll/zooming when text layer is larger @cdrini Fix: Update zoom in/out icons to match iconochive glyphs @pezvi Dev: update dependencies @renovate
Dev: Add Renovate Bot @cdrini
Dev: Update node-fetch @cdrini
Fix: Search request promise err & fix tests @cdrini
Dev: Split node workflow into different jobs @cdrini
Dev: Give cache steps better names in GHA @cdrini
Dev: Update concurrently + Small speedup to build & test @cdrini
Dev: Renovate - Auto-update dev dependencies for minor/patch @cdrini
Fix: Better MS Edge voice selection @cdrini
Dev: Allow small drops in codecov coverage (< 0.5%) @cdrini
Dev: Renovate - add ^@internetarchive/icon-
@cdrini
Fix: Update all .then()
to async/await @sancodes
Fix: Upgrade to Lit 2 @Aadilhassan
Dev: Update to Node v16.x @duggiefresh
Dev: Remove unused demo bundle @cdrini
Dev: Fix README broken link for plugin directory @duggiefresh
Dev: Update sharing options menu to lit2 @iisa
Dev: Remove package publishing from GHA @cdrini
Fix: Readaloud scrolls along with dext @cdrini Dev: ES6 var to let/const updates @sancodes Dev: ES6 async/await updates @sancodes Dev: Re-enable testcafe tests in GH action @iisa Fix: Search results bar clears and closes properly @iisa
Fix: global style leak specify colorbox styles @iisa Fix: br menu reinits with shared ro load @iisa Fix: url plugin does not rewrite with multiple slashes @iisa
Dev: update test dependencies @cdrini Fix: Update hyphen stitching regex to include dangling "¬" @cdrini Fix: pop open multiple files menu at proper width @iisa
Fix: restricted books get cover image @iisa
Fix: fetch bookmarks from service when logged in @iisa Fix: adjust css to help shadydom render properly @iisa
Fix: modal loads into dom from <ia-bookreader>
@iisa
<ia-bookreader>
is top-most web component @iisa
- import ia-item-navigator for menu management @iisa
- url plugin: suppress default state on load @dualcnhq
Dev: Refactor URLPlugin + sync volumes sorting state to URL @dualcnhq @cdrini
Dev: eslint fix for $.browser @homewardgamer Fix: cache search inside requests @iisa
Fix: read aloud play/pause button @nsharma123 Dev: strict keyboard shortcuts @mc2 Dev: update IA demo page @iisa
Fix: book-nav side panel zoom out @mc2 Dev: refactor zoom code @mc2
Fix: Darken scrollbars in Safari @pezvi Fix: Bookmarks service calls when reader is logged in @mc2 Dev: Move jest tests into separate directory @cdrini
- Dev: remove deprecated embed nav view, use standard default @iisa
- Dev: Toggle view=theater in fullscreen @mc2
- Feature: Add voice selection dropdown to ReadAloud! @mekarpeles
- Dev: Make jest support root-level imports with "@" @cdrini
- Dev: Make it easy to run e2e tests on archive.org/browserstack @cdrini
- Dev: Refactor dragscrollable from a jquery plugin to a JS class @cdrini
- Dev: Fix jquery eslint errors @cdrini
- Dev: Replace deprecated babel-eslint with successor @cdrini
- Fix: BR not working on iOS 9 / iOS 10! @cdrini, @iisa
- Added webcomponents, ResizeObserver polyfill
- ES5-ify lit node_modules
- Dev: Update a number of dependencies @cdrini
- Dev: Added eslint-plugin-no-jquery @soham4abc
- Feature: Add continuous pinch zooming for touch screens and trackpads! @cdrini
- This is a big change to the codebase. It involved rewriting 1 up mode in LitElement. This means that BookReader now need webcomponents to function.
- Breaking changes (unlikely to be used by anyone):
- Most Mode1Up Bookreader global functions removed (unlikely to be used):
drawLeafsOnePage
,onePageGetAutofitWidth
,onePageGetAutofitHeight
,onePageGetPageTop
,onePageCalculateReductionFactors
,centerX1up
,centerY1up
- Some Mode2Up cleanups: Removed
setClickHandler2UP
,setMouseHandlers2UP
- Web components now must be supported
- Reduction factors options no longer applies to 1up
- Most Mode1Up Bookreader global functions removed (unlikely to be used):
- Fix: focus in a textarea disables keyboard shortcuts @cdrini
- Dev: remove unused menu toggle plugin @iisa
- Fix: Book nav loader safari update @iisa
- Fix: Typing -/+ in search box no longer zooms @cdrini
- Dev: Add script for updating dev deps @cdrini
- Refactor/Fix: Convert search/TTS highlights to use SVG layer @cdrini
- Fix TTS highlights not positioned correctly in Mode1Up
- Breaking changes (unlikely these are used by anyone):
- Remove public method
BookReader.prototype.keyboardNavigationIsDisabled
- Remove public method
BookReader.util.sleep
- Remove public method
BookReader.prototype.updateSearchHilites1UP
- Remove public method
BookReader.prototype.updateSearchHilites2UP
- Remove public attribute
BookReader.prototype.ttsHilites
- Remove public method
- Fix: Url search param
q=
updates dynamically @nsharma123 - Fix: Downloads menu text updates @dualcnhq
- Fix: Volumes updates - icons, labelling, open menu onload @iisa
- Enhancement: Add neutral state for sorting volumes @dualcnhq
- Enhancement: Update subfiles/volumes title sorting logic by filename -> title_asc -> title_desc order then back to filename @dualcnhq
- Fix: Volume item index count display @dualcnhq
- Fix: new side panel: sortable multiple volumes @dualcnhq @iisa
- Fix: sharing side panel can share subfile/volume @iisa
- Fix: standardize button style for download panel @nsharma123
- Fix: Make 1up default to full width (up to real world size) @cdrini
- Fix: Remove "page" from toolbar @cdrini
- Dev: Update menu slider @iisa
- Dev: Add semi-colons eslint rule @iisa
- Fix: search-inside results check for page's index via
leafNum
@nsharma123
- Fix: cancel search fix naming var @iisa
- Fix: cancel search @iisa
- Dev: remove dead css @cdrini
- Dev: GHA node_modules caching @cdrini
- Fix: Fullscreen toggle sets/unsets animating flag @iisa
- Fix: Book Nav: resize only when bookreader is not animating @iisa
- Fix: Web components register themselves at EOF @iisa
- Dev: update dependencies with dependabot @drini
- Dev: update bookmarks login archive_analytics @iisa @dualcnhq
- Fix: bookmarks panel has login CTA @dualcnhq @iisa
- Dev: update testing dependencies @cdrini
- Dev: update dev-flow dependencies @cdrini
- Dev: reorganize core BR files @cdrini
- Dev: update build files @cdrini
- Fix: update needed imports for older iOS versions @cdrini
- Fix:
<ia-bookreader>
does not use full browser width to fit into container @iisa - Fix: updates to
<book-navigator>
to upgrade archive.org's liner notes display to v5 @iisa
- Actually delete the files mentioned in previous release @cdrini
- Dev: Organize BookNavigator files @iisa
- Fix: Search results not in correct place in Mode1Up @cdrini
First beta release of v5! Lots of breaking changes:
- Files deleted from
BookReader/
. These are all no longer needed, or bundled in other BookReader JS files- jquery.bt.min.js
- plugin.theme.js - including methods:
- BookReader.prototype.themes
- BookReader.prototype.updateTheme
- BookReader.prototype.default_theme
- BookReader.prototype.theme
- option enableThemesPlugin
- excanvas.compiled.js
- plugin.print.js - including methods:
- BookReader.prototype.printPage
- BookReader.prototype.getPrintURI
- BookReader.prototype.getPageFile
- jquery.browser.min.js
- soundmanager/*
- jquery.ui.touch-punch.min.js
- mmenu/*
- jquery-ui-1.12.0.min.js
- BookReader now also requires web components; more documentation on how to use will be coming in the next beta versions.
- BookNavigator is a web component wrapper around core BookReader
- Add Karma for testing web components
- Switch to npm module type to allow importing of web components
- Use submenu web components for search, book info, and other
- New Bookmark managing submenu
- Bug fixes
- BookReader/ build files directory is now completely disposable
-Fix: page container has data-side
attr @iisa
- Fix: Support /search/TERM in url @nsharma123
- Dev: Fix reference to deprecated pruneUnused @cdrini
- Dev: Separate ModeThumb into separate file @cdrini
- Feature: Progressive loading of higher resolution images @cdrini
- Potentially breaking change:
data-(side|leaf|reduce|row)
no longer set - Potentially breaking change: mode class no longer set on page container
- A number of deprecated methods converted to no-ops with
console.warn
- Potentially breaking change:
- Feature: pow2 reduce by default @cdrini
- New option:
reduceSet: 'pow2' | 'integer' = 'pow2'
limits reduce variables sent to getURI to be powers of 2
- New option:
- Dev: Add esbuild to
npm run serve-dev
@iisa - Fix: BookNavigator loaded after JSIAInit @cdrini
- Hotfix: Fix iOS 8 erroring since 4.39.0 @cdrini
- Dev: update Readme @Himanshunitrr
- Dev: in-file typo fixes @cclauss
- Fix: v5 booknav refresh @iisa @dualcnhq
- Dev: update Readme @Himanshunitrr
- Fix: v5 bookmarks menu update @iisa @dualcnhq
- Feature: Mode1Up DPI awareness @cdrini
- Introduces two new optional options:
ppi
andPageData.ppi
- Potentially breaking change: zooming in Mode1Up will now zoom at different intervals
- Introduces two new optional options:
Dev: update dependencies @cdrini Dev: replace travis badge with GHA badge @cdrini Feature: Thumbnail/Gallery view reusing best scaled images @iisa Fix: simplify ImageCache dictionary @iisa
Fix: new ImageCache that keeps track of requested images & their scale factor @iisa Fix: 2up mode's use of ImageCache @iisa
Fix: More image caching - 2up, some sharing with thumbnail draw @iisa
Fix: 2up, baseLeafCss
- use function to find "top" value @iisa
Fix: show text selection layer if word count is less than 2,500 @cdrini Fix: 2up, only resize spread if current image is better than next size @iisa
Fix: exist fullscreen will change to 2up if 2up is available @iisa
Fix: use optional srcSet
in 1up mode @iisa
Fix: slim down prefetch group @iisa Fix: TTS caches xml @cdrini
Dev: demo cleanup with @cdrini Fix: 2up - pass reduction factors when creating image urls @iisa
Fix: all view modes on desktop & view mode toggl on mobile are now default. @nsharma123
Fix: adding alt tags to images @nsharma123
Fix: update init function to use new flag autoResize
@iisa
Fix: images - useSrcSet
flag to determine when we fill srcSet
attribute @iisa
Patch: Text selection layer does not get made in thumbnail view @dualcnhq
Dev: move to Github actions @cdrini Dev: version bumps @dependabot Fix: Text selection layer gets created for first page, does not get created for last page @dualcnhq
Fix: Helper changes for stream redirection to read hash fragment params from URL @nsharma123
Fix: Bookreader layout when initialized in "ReadAloud" mode @nsharma123
Fix: first search result click now updates url @nsharma123
Fix: update non-asserted page labelling next to nav scrubber @iisa
- Fix: Search Plugin Updates (#556) @iisa
- always display search results markers
- update search results nav tap targets & style
- Search Results Nav - extend click events
- add new click event to help toggle side menu
- add new test file for Search view
- Dev: move search plugin test files to their own directory (#556) @iisa
- Fix: Handle empty dejavu.xml files in text selection plugin @iisa
- Dev: Update 9 dependencies (including webpack, sass, @babel/*) @dependabot-preview + @cdrini
- Dev: Move dragscroll code into src @cdrini
- Dev: Make webpack treat jquery as an external dependency @cdrini
- Fix: Samsung Internet not loading BR on IA @cdrini
- Fix:
<br>
rendered in search panel @ArunTeltia - Fix: TTS speed dropdown has white text on white in Chrome @participator
- Dev: Replace dependency copies with npm packages (jquery, jquery-ui, mmenu, colorbox, touch-punch, jquery.browser) @cdrini
- Fix: Use serif font for advance/review icons @Eilima
- Fix: Table of contents has black text on black background @xhalin01
- Dev: Delete empty files (BookReaderEmbed.css, mmenu/demo.css) @cdrini
- Dev: Move images into src directory and compress SVG files @cdrini
- Fix: TTS toolbar should not be in tab order when invisible @shaneriley @cdrini
- Fix: Text selection not working in demos @cdrini
- Fix: Text selection throwing error on page with index=-1 @cdrini
Fix: update fullscreen toggle methods to fire behaviors in an expected way @iisa
- Fix: use fullscreen toggle flow when starting fullscreen (#499) @iisa
- Fix: Waits to resize until first result flipped to (#498) @shaneriley
- Fix: Adds data attribute to 2up page containers for side designation @shaneriley
- Fix: Apdate interstitial modal to fixed with & clean up messaging @iisa
- Fix: Enrich context to search emitted events @iisa
- Fix: Hides directional buttons and shows viewmode buttons on mobile viewports @shaneriley
- Fix: Search plugin fixes (#491) @shaneriley
- Fix: Skips subsequent creation of search views when setup called 1+n times @shaneriley
- Dev: Add eslint for
space-after-keywords
,space-before-blocks
,only-multiline
@Yashs911 - Dev: Update eslint, sinon, @types/jest, testcafe, sass, webpack @dependabot-preview + @cdrini
- Dev: Add 3 more files to eslint @Yashs911
- Feature: New options for text selection plugin: single page DJVU XML url @cdrini
- Fix: text selection on Safari @cdrini
- Feature: Search results navigation bar @shaneriley
- Dev: Emit custom event to trigger @iisa
- Feature: Text selection plugin @Pyrojet99
- Fix: Wrong openlibrary URL @cdrini
- Dev: update sinon, jest, concurrently, testcafe, eslint, @types/jest, webpack-cli, @babel/core, @babel/preset-env, node-fetch @dependabot-preview + @cdrini
- Fix: Flaky TestCafe tests (#436) @cdrini
- Fix: Search plugin fixes (#443) @shaneriley
- Dev: Upgrade to Webpack 5 @cdrini
- Fix: Polyfill CustomEvent constructor @cdrini
- Fix: HTML escaping to prevent XSS (#434) @nsharma123
- Dev: update lodash dependency @dependabot-preview + @cdrini
- Dev: Moves /BookReaderDemo/index.html to /index.html (#394) @anirbansaha782
- Fix: Prevents page flipping to last page if navigating to previous page from a book's cover (#419) @iisa
- Feature: Splits search plugin controller and view, updates mobile menu styles (#420) @shaneriley
- Dev: Updates to e2e testing navigation model & base tests (#421) @iisa
- Fix: Zoom buttons missing on mobile + other chrome fixes (#416) @shaneriley
- Dev: Make npm package public (#414) @cdrini
- Dev: Automate npm publishing on github release (#409, #412) @cdrini
- Dev: Simplify webpack file (#373) @cdrini
- Feature: One page/Two page/Thumbnail view now one button toggler (#375) @shaneriley
- Fix: Advanced page demo broken (#383) @Pyrojet99
- Fix: Pages randomly flipping on /stream endpoint (#386) @Pyrojet99
- Feature: Display high quality images on high resolution displays (#378) @Pyrojet99
- Dev: Add eslint for newline at end of file (#396) @JanviMahajan14
- Dev: update a bunch of dependencies @dependabot-preview + @cdrini
- Dev: Speed up Travis (a bit) by making it run testcafe concurrently (#407) @cdrini
- Feature: New chrome for BookReader! (#381) @shaneriley
- Fix: Toc entries not showing page number on desktop (#369) @cdrini
- Fix: BookReader.unbind not actually unbinding (#360) @shaneriley
- Dev: New demo with configurable IA id:
demo-internetarchive.html?ocaid=foo
(#356) @Pyrojet99 - Dev: Add E2E tests for right-to-left books (#350) @Pyrojet99
- Dev: Update core-js, webpack, @types/jest, regenerator-runtime @dependabot-preview + @cdrini
- Fix: Remembers page for multi-book items on IA (#359) @mc2
- Feature: Table of contents panel in mobile view (#351) @Pyrojet99
- Fix: Test command for Windows users @cdrini
- Dev: Autoplay e2e test @pyrojet99
- Dev: Enable eslint for tests @Kartik1397
- Dev: Mobile search e2e test @pyrojet99
- Fix: Extra querystring after hash @kristopolous
- Dev: Update websocket-extensions, sinon, testcafe @cdrini
- Feature: Visual adjustments checkboxes on mobile @pyrojet99
- Fix: search urls now redirect to query parameter
q=foo
@mc2
- Dev: Add E2E tests for searching on desktop @Pyrojet99
- Fix: Search result not highlighted when landing on page with matches @iisa
- Dev: Remove console logs from jest tests @NayamAmarshe
- Dev: Add eslint for space-infix-ops @JanviMahajan14
- Fix: Bugs in search results in preview books @iisa
- Fix:
startFullscreen
option only working for mode2up @shaneriley - Fix: Prefetch viewable pages in preview books for smoother flipping @cdrini
- Dev: Add dependabot for JS dependencies @cdrini
- Dev: Update codecov, iso-language-codes @dependabot-preview + @cdrini
- Fix: BR shouldn't change URL until the user interacts with the page @mc2
- Feature: Add
startFullscreen
option to launch in fullscreen @shaneriley - Feature (beta): Preview pages can be swapped out with search pin clicking @cdrini
- Fix: -/+ buttons not zooming in Chrome @ishank-dev
- Add chapters demo to e2e tests @ishank-dev
- Make Travis testcafe runs less flaky @shaneriley
- Pin npm version dependencies for consistent builds @cdrini
- Standardize HTML structure for pages across view modes @shaneriley
- WARNING: Some of the html elements/classes have changed. Potentially breaking change.
- Feature (beta): Preview pages. Specifying
viewable: false
on pages causes them to render a preview image placeholder. @cdrini - Remove deprecated QUnit tests @Pyrojet99
- Remove console.logs in test output @NayamAmarshe
- Adds customizable layout controls @shaneriley
- Add new parameters to analytics @bfalling
Big change: All of BookReader core is now compiled to es5, and a large number of chunks have been re-written in es6. Care has been taken to ensure no public APIs have changed, but note this was a big change.
- Extract large chunks of BookReader.js into separate files, into es6; @cdrini
- Increase jest coverage 47% → 58%; @cdrini
- Increase testcafe coverage; @iisa @shaneriley
Big change: all the plugins are now written in es6, and compiled to es5. There should be no observable changes, but note this was a big change.
- Fix: UI on archive.org not consistent with demos due to CSS conflicts; @rchrd2
- Convert all plugins to es6 + webpack; @cdrini @iisa @nsharma123
- Increase jest coverage 39% → 47%; @cdrini @iisa @nsharma123
- Increase testcafe coverage; @iisa
- Add testcafe to travis; @cdrini
- Add more/enforce more lint rules; @cdrini
- Make demo pages more in sync with Internet Archive pages; @mc2
- Add
npm run serve-dev
for auto-watching + auto-refreshing dev server; @cdrini
- Fix: Click-to-flip now works in 2up mode zoomed in
- Fix: Image panning sometimes not working
- Fix #144: Hamburger icon only clickable on lines
- Add TestCafe support
- ReadAloud now supports jumping backwards
- Pressing -/= (or -/+ on numpad) zooms out/in
- FIX #179: ReadAloud now ignores hyphens between lines
- more robust menu toggle plugin, working well with zoom & panning around in zoom
- more tests
- Remove accidental es6 syntax in BookReader.js (breaking IE11)
- New ReadAloud controls + engine. Uses browser's SpeechSynthesis API instead of server-side test-to-speech
- menu toggle plugin, now applies to in-page & fullscreen views + early escapes when navbar isn't present
- New plugin,
fullscreen_menu_toggle
, allowing center-tap to hide UI - TTS Plugin logs analytics events (if enabled)
- ES6 compilation step no longer performed on client; build files are included in repo so clients have no build step
- Large refactor of plugin.tts.js
- ES6 compilation step
- Known bug: Clicking on page while TTS is playing won't stop the playback
- Skips initialization of vendor fullscreen plugin when on a mobile device
- Creates vendor native fullscreen plugin and example use page
- Adds options for flipSpeed and flipDelay, the latter used for autoplay
- Fix rapid reload bug from thumbnail view
- Add eslint
- Fix issue analytics plugin
- Make the page display more extendable by splitting it into two functions
- Change BookReader.js function comments to JSDoc
- Move autoplay feature into an optional plugin
- Change the format of the current page string in the navbar. eg "1 / 100 (Cover)"
- Add BookReader.prototype.updateFirstIndex and use instead of setting this.firstIndex directly
- Simplify BookReader.prototype.init
- Add options.navBarTitle, which gets shown to the left of the scrubber.
- Fix issue where there was a 1px border on cover leafEdge
V4 was driven by updating BookReader to work inline on the archive.org details page. This required code refactoring (eg: changing ids to classes), and also updating the design so it integrates well within the details page theatre section.
- BookReader selectors made relative to BookReader. This means it shouldn't interfere with parent page, and also more than one BookReader instance can be on the page.
- CSS converted to SASS and refactored.
- New design with full-screen support.
- URL plugin is extended to support replaceState, and also configure which params are reflected into the URL fragment.
- In transition: JavaScript code is formatted with 2 spaces instead of 4
- Fix so initParams normalizes params.page to params.index, to prevent complexity of priority of page versus index.
On Archive.org, we needed a way to pass in a default start page for books. These changes make that easier.
- Update the way bookreader inits from various params contexts
- Add
defaults
to the init options - Update so that mode is only reflected on URL if user has made a change.
- Update to handle both params.index and params.page when provided in defaults. Separate page parsing into separate method.
- Add new IFrame plugin to enable two-way communication between a BookReader inside an
<iframe>
and its parent window. - Move the
paramsFromCurrent
,paramsFromFragment
, andfragmentFromParams
methods back into BookReader core and out of the URL Plugin. This change should be backwards-compatible with previous versions. - Fire a new event,
fragmentChange
, on BookReader when the reader’s state changes.
- Add additional tracking event when view changes
- Fix: Assign options.titleLeaf to this.titleLeaf
- Another fix for plugin.search.js. The path GET param should not have a trailing slash.
- Hotfix for plugin.search.js. Fixes issue where search results were not rendered on page flip.
- Hotfix for plugin.search.js. Fixes fulltext search for some books on Archive.org
- Add more options: showToolbar, showLogo
- Add this.options field, which stores the options last used in setup call
- Improve
_getDataFlattened
to have simple cache breaker - Fix: don't show search UI if this.enableSearch is false
- Fix: add missing 'defaults' option to search plugin
- Move constants out of instance, and into class (eg BookReader.constMode1up)
In the process of upgrading IA, to use the new BookReader API, more changes/fixes were made.
- Separate default options into BookReader.defaultOptions. This allows clients which use Internet Archive's JSIA endpoint (see demo-ia-plato.html) to have a hook into changing options. Also update plugins, to extend defaultOptions instead of modifying options in setup functions.
- Add BookReader.version, which helps IA support older versions in the JSIA endpoint (eg https://archive.org/bookreader/BookReaderJSLocate.php?id=theworksofplato01platiala&subPrefix=theworksofplato01platiala).
- Bring some IA-specific code into plugin.chapters.js
- Add more options that were previously missed (protected, olHost, subPrefix, bookPath, zip, imageFormat, bookId). These are mostly for plugins. If you intend on using any of the plugins, you can see the full config options there.
- Fix issue setting info and share dialogs
Version 3.0.0 is an effort to make BookReader more modular, extensible, and easier to use.
Changes include:
- Make BookReader easier to use, by adding
options
to the constructor, and adding newoptions.data
option. The old way of overriding properties should still work, but it is deprecated. Withoptions.data
, all BookReader needs is the image URLs and dimensions. To have dynamic image URLs (eg for scaling), omit the URL fromoptions.data
, and includeoptions.getPageURI
. - Factor out extra features into plugins. See
plugins
directory. Example plugins include:- plugins.chapters.js - render chapter markers
- plugins.search.js - add search ui, and callbacks
- plugins.tts.js - add tts (read aloud) ui, sound library, and callbacks
- plugins.url.js - automatically updates the browser url
- plugins.resume.js - uses cookies to remember the current page
- plugins.mobile_nav.js - adds responsive mobile nav to BookReader Note that there is minor overhead added when loading multiple script tags. If this is a concern, a build step, can be used to concatenate the files into a single JS file.
- Clean up code: Remove a lot of commented-out code. Remove some unused methods.
- Change some, but not all, CSS ids to classes.
- DEPRECATED: Use options to configure BookReader. It is now deprecated to change properties directly.
- DEPRECATED: CSS ids are being removed, (eg #BookReader is now .BookReader), with the goal to entirely use classes instead. This is in progress, but it is considered deprecated to use the ids directly. We would like to remove all ids for the next major release.
- BREAKING: If features that are now in plugins were used, the plugin's JS file will need to be included as well. Note, we would also like to separate the CSS into a separate file for the next major release.
- Add auto mode to 1up autosize (in addition to height and width)
- Remove the old responsiveAutofit (which is not needed anymore)
- Fix regex issue when searching
- Make the search api endpoint configurable
- Add package.json and CHANGELOG
- Remove more IA-specific code
- Major release
- Many changes from updated Archive.org bookreader brought back to this open source project.