- Update for Google Analytics 4 (GA4)
- #812 don't throw an error when attempting to report an error fetching config data
- #799 Deprecate / remove DOMUtil (should be invisible but simplifies code)
- #796 support Wikipedia image page URLs
- #808 Add support for en-GB locale (UK-style date formatting, eg 2 Dec 2022)
- #814 Ensure that buttons are created with type="button"
- Adapted to a change in Google Drive sharing links which caused TimelineJS to no longer select the correct media type.
- Fix rare date formatting issues
- #803 support m.youtube.com URLs same as other YouTube URLs
- A bounty of accessibility improvements contributed by @OleksandrDanylchenko: #744, #747, #749, #750, #756, #758, #760, #764, #766, #768, #770, #783, #786, #787 and one from @madhaze #789
- #792 adds a "go to end" button to the menu bar.
- #794 fixes a CSS problem with background colors and the dark theme
- #704 honor "start_at_end" option when also using "hash_bookmark" option
- #730 Improved Norwegian translations for both bøkmal and nynorsk.
- #710 Improve tests by setting timezone (and adjusting the async handling in
Timeline.test.js
)
- #719 - Support Dropbox URL rewriting for audio and video as well as images. Thanks @Simonkcaon !
- #724 - Alternate syntax for compatibility with Vite, probably other tooling.
- #699 - remove duplicate definition of _onStorySliderLoaded in Timeline.js
- #700 - remove duplicate definition of _onTimeNavLoaded in Timeline.js
- #705 - Export Timeline class and include generated CSS in npm package
- #696 - implement pause on audio/video media types
- Add support for direct webm video URLs
- Update several npm dependencies
- Add hash change listener so that timelines with
hash_bookmark
option respond to hash changes after loading. (#692)
- Fix straggling JSON syntax error in en.json example file.
- Fix bug introduced with cosmological date formatting to do with inconsistencies between Language.js and en.json
- Make en.json proper JSON (remove comments) now that new codepath is causing it to be DOMContentLoaded
- Add better error handling to Net.js just in case.
- Resolve not to release code on Friday afternoon
- #682: adjust language loading to make sure its done before drawing timeline.
- #363,670: remove synchronous XMLHttpRequests
- #672: support Spotify podcasts
- #649: better handling of a/href tags to open in new windows, or to follow specified target values
- Improve error messaging re issues retrieving configuration data from Google.
- Change Instagram handling to catch up to their API changes. (#664)
- Fix pattern matching and URL parsing for using Google Drive documents.
- Adjust rules for loading font to support relative/fragment URLs for
font
config option
- fix error in TL.lookupMediaType
- clearer error messaging if time is used without date
- strip all whitespace from both ends of header cells
- expose TL.lookupMediaType as a publicly accessible function (formerly TL.MediaType before 3.7.0)
- #659: Prevent blank column headers from derailing Timeline load
- check for null when validating date inputs from CSV
- #655: treat all-whitespace Google Sheets values as blank and don't try to process them
- #656: chomp excess whitespace around header values/object keys.
- #658: clean integer values for dates -- strip whitespace and comma
- Make CSV parser always return strings (fixes bug where V1 Sheets with year-only dates were assumed to be strings)
- Log instead of throw error when trying to add an event in TimelineConfig that has no start date
- Fix a bug in ConfigFactory date processing which was adding unintended "January 1, 0" end dates.
- Change Timeline's Google Sheets access method in advance of the discontinuation of Google Sheets API v3. See https://knightlab.northwestern.edu/2020/09/16/timelinejs-update-2/index.html for more information. All self-hosted timeline users should update to this version before 2020-09-30.
- Discarded release: failed to merge key changes into master branch.
- #654: Attempt to avoid 'overlapping' slides. Mixed feedback on if this is a complete solution.
- #651: Restore document loading check with proper binding
- #651: rollback document loading check after error reports
- Add a check of the document's loading status, and defer layout until DOMContentLoaded, in response to reports of timelines where all slide content overlaps.
- Introduce a 'ready' event, which TimelineJS will fire after all other initialization is complete.
- Support a Timeline option,
soundcite
, which triggers the loading of Knight Lab's SoundciteJS code, enabling the use of SoundCite markup in all HTML-capable Timeline fields. - Fix error messages in Imgur media type
- More fixes to handling default font case
- add missing import for Wistia media type
- Fix #645: restore removeId to public API for a Timeline
- Fix: only load font.default.css when no other font is specified; otherwise cascade rules are inconsistent with old behavior.
- Fix stupid bugs introduced with incomplete testing.
- Fix variable naming error when handling thrown exceptions in adding eras
- Fix name of div in developer "embed" template to restore ability to switch data source for dev view
- don't routinely sanitize media URLs; instead, place that responsibility on Media subclasses for which the 'url' is actually used with markup
- Protect against undefined/null options in constructor
- Pass a valid message container for 'swipe to navigate' #644
- Internal rewrite to use modern JavaScript
- Sanitize HTML inputs
- Replace Flickr API key
- Revert construction of Google feeds URL to pre-3.6.4 pattern which should be more universally correct.
- Fall back to Google Sheets API v4 when 500 error found using v3 (Workaround for Google API failure)
- Issue #598 - use 24-hr time for Portuguese
- PR #599 allow text selection on all devices
- PR #608 allow video start times (and end times for youtube)
- PR #609 fixes #577 link hover on slides w/ background images
- PR #592 adds missing woff2 font to fix nav arrows on MS Edge
- PR #594 Updated Czech (Čeština) translations
- Correct translation of "July" in Slovenian.
- Configure Google Analytics tracking to anonymize_ip for GDPR compliance
- PR #331 fixes bug that was causing duplications of groups
- Fix to allow missing media in JSON #565
- Remove 1px offset that causes white line along top of Timeline
- PR #554 adds direction to .tl-rtl
- PR #522 use https in wistia
- PR #510 Twitter image support
- PR #520, #515 Imgur image support
- PR #514 Wistia video support (URL only)
- PR #508 Fixes to local previews for development
- PR #468 support audio and video files (.mp4, .mp3, .wav, .m4a)
- PR #460 improve spotify documentation and support album and artist pages
- PR #454 use the
lang
attribute set in the embed url as the lang for the iframe - PR #453 add support for title and alt tags on images
- Fix missing accent in French translation
- Add additional Thai translation
- PR #447 Enable Vimeo fullscreen controls
- Revert PR #387 which was causing slide cutoff on small screens
- PR #428 - Reinstate table display for IE. #427
- Revert PR #374, reopen #277. Fix left black bar across full screen timelines.
- PR #374 - Adds margin-top for large screen disply. Fixes #277
- PR #401 - Adds Vietnamese translation
- PR #419 - Removes year zero from the timeline. Fixes #328
- PR #387 - Fixes background image scrolling on long slide. #360
- PR #389 - Adds YouTube end-time feature. #388
- PR #400 - pause Vine, DailyMotion, and Soundcloud media on slide exit (thanks @Hammman and @JustaBitDope)
- PR #413 - French language support additions
- Complete (?) RTL language support, removed Urdu Unicode translation bugs
- #372 Italian translation for "Swipe to Navigate"
- #376 Throw an error if URL is neither a Google Spreadsheet nor a source of parseable JSON
- Chinese (traditional) (zh-cn) translation for "Swipe to Navigate"
- Norwegian translation for "Swipe to Navigate"
- added Burmese translation
- #365 Scope vcard styles to avoid impacting pages which embed timelines without iframe
- #366 Fix headline problem with
tag
- Apply MediaType handling to thumbnails for the slider, so that people can use the same kinds of urls they use for regular media.
- Establish correct indication of "BCE" in Swedish.
- Establish correct indication of "BYA" abbreviations in Finnish and Hungarian.
- Fix bug in handling imgur URLs which were to an imgur page and not directly to an image.
- Fix API calls for Soundcloud, DailyMotion, Instagram, Spotify and Vine which used http and thus would fail in cross-protocol situations.
- #342 test for 'start at end' to support boolean true as well as 'true'
- #340 docfix: syntax highlighting for code snippets on GitHub Markdown
- #323 more careful for loop in case people extend the Array prototype; fix build problem for Linux user-select
- translate "swipe_to_navigate" for German (de)
- add Urdu (ur) translation
- back out header validation, interfered with too many random changes in the wild
- improved validation/messaging during authoring: changes to headers, eras without end dates (#287)
- Improved support for PDF files from Dropbox
- Make sure 'invalid_date_err' gets translated, esp so detail message gets displayed
- Fix Document Cloud URL bug
- Fix bug in Twitter embed (#282) (thanks @Newman101)
- Support media-type image inference for background images (eg flickr, imgur, dropbox) (#268)
- Have TimelineConfig validate date parts as integers (#269)
- Support Twitter embed markup in media (in addition to a direct URL to a tweet)
- support flic.kr URLs for Flickr images in addition fo flickr.com
- add Imgur to supported media types
- don't duplicate tl-storyslider class (#223)
- Improved support for error message I18N
- remove default target for links added by code.
- implement PDF media type (#205)
- Fix small offset in marker group alignment (#259)
- Fix text-shadow appearing on slides with backgrounds (#260)
- Added Bevan-PontanoSans font combo
- Support for IE9 officially ruled out
- Fixes to blockquote style
- default TL.debug to false.
This version of Timeline officially replaces the previous one.