@knight-lab/timelinejs 3.8.18 → 3.8.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,122 +1,158 @@
1
+ 3.8.19 (2022-01-07)
2
+ ------------------
3
+ * #724 - Alternate syntax for compatibility with Vite, probably other tooling.
4
+
1
5
  3.8.18 (2021-06-08)
6
+ ------------------
2
7
  * #699 - remove duplicate definition of _onStorySliderLoaded in Timeline.js
3
8
  * #700 - remove duplicate definition of _onTimeNavLoaded in Timeline.js
4
9
  * #705 - Export Timeline class and include generated CSS in npm package
5
10
 
6
11
  3.8.17 (2021-04-19)
12
+ ------------------
7
13
  * #696 - implement pause on audio/video media types
8
14
  * Add support for direct webm video URLs
9
15
  * Update several npm dependencies
10
16
 
11
17
  3.8.16 (2021-04-02)
18
+ ------------------
12
19
  * Add hash change listener so that timelines with `hash_bookmark` option respond to hash changes after loading. (#692)
13
20
 
14
21
  3.8.15 (2021-02-17)
22
+ ------------------
15
23
  * Fix straggling JSON syntax error in en.json example file.
16
24
  * Fix bug introduced with cosmological date formatting to do with inconsistencies between Language.js and en.json
17
25
 
18
26
  3.8.14 (2021-02-14)
27
+ ------------------
19
28
  * Make en.json proper JSON (remove comments) now that new codepath is causing it to be DOMContentLoaded
20
29
  * Add better error handling to Net.js just in case.
21
30
  * Resolve not to release code on Friday afternoon
22
31
 
23
32
  3.8.13 (2021-02-12)
33
+ ------------------
24
34
  * #682: adjust language loading to make sure its done before drawing timeline.
25
35
 
26
36
  3.8.12 (2021-01-25)
37
+ ------------------
27
38
  * #363,670: remove synchronous XMLHttpRequests
28
39
  * #672: support Spotify podcasts
29
40
  * #649: better handling of a/href tags to open in new windows, or to follow specified target values
30
41
 
31
42
  3.8.11 (2020-11-23)
43
+ ------------------
32
44
  * Improve error messaging re issues retrieving configuration data from Google.
33
45
 
34
46
  3.8.10 (2020-11-03)
47
+ ------------------
35
48
  * Change Instagram handling to catch up to their API changes. (#664)
36
49
 
37
50
  3.8.9 (2020-10-23)
51
+ ------------------
38
52
  * Fix pattern matching and URL parsing for using Google Drive documents.
39
53
  * Adjust rules for loading font to support relative/fragment URLs for `font` config option
40
54
 
41
55
  3.8.8 (2020-10-20)
56
+ ------------------
42
57
  * fix error in TL.lookupMediaType
43
58
 
44
59
  3.8.7 (2020-10-20) INVALID RELEASE DO NOT USE
60
+ ------------------
45
61
  * clearer error messaging if time is used without date
46
62
  * strip all whitespace from both ends of header cells
47
63
  * expose TL.lookupMediaType as a publicly accessible function (formerly TL.MediaType before 3.7.0)
48
64
 
49
65
  3.8.6 (2020-09-29)
66
+ ------------------
50
67
  * #659: Prevent blank column headers from derailing Timeline load
51
68
 
52
69
  3.8.5 (2020-09-28)
70
+ ------------------
53
71
  * check for null when validating date inputs from CSV
54
72
 
55
73
  3.8.4 (2020-09-28)
74
+ ------------------
56
75
  * #655: treat all-whitespace Google Sheets values as blank and don't try to process them
57
76
  * #656: chomp excess whitespace around header values/object keys.
58
77
  * #658: clean integer values for dates -- strip whitespace and comma
59
78
 
60
79
  3.8.3 (2020-09-25)
80
+ ------------------
61
81
  * Make CSV parser always return strings (fixes bug where V1 Sheets with year-only dates were assumed to be strings)
62
82
  * Log instead of throw error when trying to add an event in TimelineConfig that has no start date
63
83
 
64
84
  3.8.2 (2020-09-25)
85
+ ------------------
65
86
  * Fix a bug in ConfigFactory date processing which was adding unintended "January 1, 0" end dates.
66
87
 
67
88
  3.8.1 (2020-09-23)
89
+ ------------------
68
90
  * 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.
69
91
 
70
92
  3.8.0 (2020-09-23)
93
+ ------------------
71
94
  * Discarded release: failed to merge key changes into master branch.
72
95
 
73
96
  3.7.9 (2020-09-17)
97
+ ------------------
74
98
  * #654: Attempt to avoid 'overlapping' slides. Mixed feedback on if this is a complete solution.
75
99
 
76
100
  3.7.8 (2020-09-02)
101
+ ------------------
77
102
  * #651: Restore document loading check with proper binding
78
103
 
79
104
  3.7.7 (2020-08-26)
105
+ ------------------
80
106
  * #651: rollback document loading check after error reports
81
107
 
82
108
  3.7.6 (2020-08-25)
109
+ ------------------
83
110
  * 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.
84
111
  * Introduce a 'ready' event, which TimelineJS will fire after all other initialization is complete.
85
112
  * 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.
86
113
  * Fix error messages in Imgur media type
87
114
 
88
115
  3.7.5 (2020-07-22)
116
+ ------------------
89
117
  * More fixes to handling default font case
90
118
  * add missing import for Wistia media type
91
119
 
92
120
  3.7.4 (2020-07-21)
121
+ ------------------
93
122
  * Fix #645: restore removeId to public API for a Timeline
94
123
  * Fix: only load font.default.css when no other font is specified; otherwise
95
124
  cascade rules are inconsistent with old behavior.
96
125
 
97
126
  3.7.3 (2020-07-16)
127
+ ------------------
98
128
  * Fix stupid bugs introduced with incomplete testing.
99
129
 
100
130
  3.7.2 (2020-07-16)
131
+ ------------------
101
132
  * Fix variable naming error when handling thrown exceptions in adding eras
102
133
  * Fix name of div in developer "embed" template to restore ability to switch data source for dev view
103
134
  * don't routinely sanitize media URLs; instead, place that responsibility on Media subclasses for which the 'url' is actually used with markup
104
135
 
105
136
  3.7.1 (2020-07-10)
137
+ ------------------
106
138
  * Protect against undefined/null options in constructor
107
139
  * Pass a valid message container for 'swipe to navigate' #644
108
140
 
109
141
  3.7.0 (2020-07-09)
142
+ ------------------
110
143
  * Internal rewrite to use modern JavaScript
111
144
  * Sanitize HTML inputs
112
145
 
113
146
  3.6.6 (2020-03-11)
147
+ ------------------
114
148
  * Replace Flickr API key
115
149
 
116
150
  3.6.5 (2019-05-01)
151
+ ------------------
117
152
  * Revert construction of Google feeds URL to pre-3.6.4 pattern which should be more universally correct.
118
153
 
119
154
  3.6.4 (2019-04-30)
155
+ ------------------
120
156
  * Fall back to Google Sheets API v4 when 500 error found using v3 (Workaround for Google API failure)
121
157
  * Issue #598 - use 24-hr time for Portuguese
122
158
  * PR #599 allow text selection on all devices
@@ -124,29 +160,37 @@
124
160
  * PR #609 fixes #577 link hover on slides w/ background images
125
161
 
126
162
  3.6.2 (2018-12-20)
163
+ ------------------
127
164
  * PR #592 adds missing woff2 font to fix nav arrows on MS Edge
128
165
  * PR #594 Updated Czech (Čeština) translations
129
166
 
130
167
  3.6.1 (2018-10-10)
168
+ ------------------
131
169
  * Correct translation of "July" in Slovenian.
132
170
 
133
171
  3.6.0 (2018-06-11)
172
+ ------------------
134
173
  * Configure Google Analytics tracking to anonymize_ip for GDPR compliance
135
174
 
136
175
  3.5.4 (2017-12-15)
176
+ ------------------
137
177
  * PR #331 fixes bug that was causing duplications of groups
138
178
  * Fix to allow missing media in JSON #565
139
179
 
140
180
  3.5.3 (2017-11-07)
181
+ ------------------
141
182
  * Remove 1px offset that causes white line along top of Timeline
142
183
 
143
184
  3.5.2 (2017-10-26)
185
+ ------------------
144
186
  * PR #554 adds direction to .tl-rtl
145
187
 
146
188
  3.5.1 (2017-05-03)
189
+ ------------------
147
190
  * PR #522 use https in wistia
148
191
 
149
192
  3.5.0 (2017-05-03)
193
+ ------------------
150
194
  * PR #510 Twitter image support
151
195
  * PR #520, #515 Imgur image support
152
196
  * PR #514 Wistia video support (URL only)
@@ -154,6 +198,7 @@
154
198
 
155
199
  3.4.9 (2017-04-10)
156
200
  ------------------
201
+ ------------------
157
202
  * PR #468 support audio and video files (.mp4, .mp3, .wav, .m4a)
158
203
  * PR #460 improve spotify documentation and support album and artist pages
159
204
  * PR #454 use the `lang` attribute set in the embed url as the lang for the iframe
@@ -161,24 +206,28 @@
161
206
 
162
207
  3.4.8 (2017-03-31)
163
208
  ------------------
209
+ ------------------
164
210
  * Fix missing accent in French translation
165
211
  * Add additional Thai translation
166
212
 
167
213
  3.4.7 (2016-01-12)
214
+ ------------------
168
215
  * PR #447 Enable Vimeo fullscreen controls
169
216
 
170
217
  3.4.6 (2016-12-12)
218
+ ------------------
171
219
  * Revert PR #387 which was causing slide cutoff on small screens
172
220
 
173
221
  3.4.5 (2016-12-07)
222
+ ------------------
174
223
  * PR #428 - Reinstate table display for IE. #427
175
224
 
176
225
  3.4.3 (2016-11-15)
177
- ------------------------
226
+ ------------------
178
227
  * Revert PR #374, reopen #277. Fix left black bar across full screen timelines.
179
228
 
180
229
  3.4.2 (2016-11-15)
181
- ------------------------
230
+ ------------------
182
231
  * PR #374 - Adds margin-top for large screen disply. Fixes #277
183
232
  * PR #401 - Adds Vietnamese translation
184
233
  * PR #419 - Removes year zero from the timeline. Fixes #328
@@ -186,16 +235,16 @@
186
235
  * PR #389 - Adds YouTube end-time feature. #388
187
236
 
188
237
  3.4.1 (2016-10-04)
189
- ------------------------
238
+ ------------------
190
239
  * PR #400 - pause Vine, DailyMotion, and Soundcloud media on slide exit (thanks @Hammman and @JustaBitDope)
191
240
  * PR #413 - French language support additions
192
241
 
193
242
  3.4.0 (2016-08-30)
194
- -------------------------
243
+ -------------------
195
244
  * Complete (?) RTL language support, removed Urdu Unicode translation bugs
196
245
 
197
246
  3.3.17 (2016-08-22)
198
- -------------------------
247
+ -------------------
199
248
  * #372 Italian translation for "Swipe to Navigate"
200
249
  * #376 Throw an error if URL is neither a Google Spreadsheet nor a source of parseable JSON
201
250
  * Chinese (traditional) (zh-cn) translation for "Swipe to Navigate"
@@ -203,18 +252,18 @@
203
252
  * added Burmese translation
204
253
 
205
254
  3.3.16 (2016-05-31)
206
- -------------------------
255
+ -------------------
207
256
  * #365 Scope vcard styles to avoid impacting pages which embed timelines without iframe
208
257
  * #366 Fix headline problem with <p> tag
209
258
 
210
259
  3.3.15 (2016-05-11)
211
- -------------------------
260
+ -------------------
212
261
  * Apply MediaType handling to thumbnails for the slider, so that people can use the same kinds of urls they use for regular media.
213
262
  * Establish correct indication of "BCE" in Swedish.
214
263
  * Establish correct indication of "BYA" abbreviations in Finnish and Hungarian.
215
264
 
216
265
  3.3.14 (2016-03-22)
217
- -------------------------
266
+ -------------------
218
267
  * Fix bug in handling imgur URLs which were to an imgur page and not directly to an image.
219
268
 
220
269
  3.3.13 (2016-02-25)
package/RELEASING.md CHANGED
@@ -1,8 +1,8 @@
1
- # Steps to cut a new release of the TimelineJS JavaScript lbirary
1
+ # Steps to cut a new release of the TimelineJS JavaScript library
2
2
 
3
3
  The primary action for "releasing" TimelineJS is pushing a new version to `cdn.knightlab.com` but as of mid-2020, we also publish new versions to the `npmjs` package registry.
4
4
 
5
- 1. Before cutting a release, test thoroughly. Is this an opportunity to add new unit tests? Develop functional testing? If nothing else, `npm run compare` provides a way to see how some historical timelines would function with the new code.
5
+ 1. Before cutting a release, test thoroughly. Is this an opportunity to add new unit tests? Develop functional testing? If nothing else, `npm run compare` provides a way to see how some historical timelines would function with the new code. (Note that because of Google Sheets API changes, compare now compares back to the oldest release in the 3.8.x series instead of the pre-webpack version)
6
6
  1. Update `package.json` to have the correct version.
7
7
  1. Update `CHANGELOG` to indicate the release date. Hopefully you've been incrementally updating the file with relevant changes so that this is just editing the version "header"
8
8
  1. Push all changes to GitHub
@@ -24,7 +24,7 @@ https://www.google.com/fonts/specimen/Pontano+Sans
24
24
  font-family: 'Bevan';
25
25
  font-style: normal;
26
26
  font-weight: 400;
27
- src: url(https://fonts.gstatic.com/s/bevan/v12/4iCj6KZ0a9NXjG8dWC4.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/bevan/v18/4iCj6KZ0a9NXjG8dWC4.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Pontano Sans';
@@ -24,25 +24,25 @@ https://www.google.com/fonts/specimen/Raleway
24
24
  font-family: 'Bitter';
25
25
  font-style: normal;
26
26
  font-weight: 700;
27
- src: url(https://fonts.gstatic.com/s/bitter/v17/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8RHYOLjOWA.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/bitter/v19/raxhHiqOu8IVPmnRc6SY1KXhnF_Y8RHYOLjOWA.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Raleway';
31
31
  font-style: normal;
32
32
  font-weight: 200;
33
- src: url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVtaorCIPrQ.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVtaorCIPrQ.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Raleway';
37
37
  font-style: normal;
38
38
  font-weight: 300;
39
- src: url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVuEorCIPrQ.ttf) format('truetype');
39
+ src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVuEorCIPrQ.ttf) format('truetype');
40
40
  }
41
41
  @font-face {
42
42
  font-family: 'Raleway';
43
43
  font-style: normal;
44
44
  font-weight: 700;
45
- src: url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrQ.ttf) format('truetype');
45
+ src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrQ.ttf) format('truetype');
46
46
  }
47
47
  /* Font Base
48
48
  ----------------------------------------------------- */
@@ -30,7 +30,7 @@ https://www.google.com/fonts/specimen/EB+Garamond
30
30
  font-family: 'EB Garamond';
31
31
  font-style: normal;
32
32
  font-weight: 400;
33
- src: url(https://fonts.gstatic.com/s/ebgaramond/v15/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkBI96.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/ebgaramond/v19/~ChoKC0VCIEdhcmFtb25kOgsI9NCduwcVAADIQxAHIAA=.ttf) format('truetype');
34
34
  }
35
35
  /* Font Base
36
36
  ----------------------------------------------------- */
@@ -24,13 +24,13 @@ https://www.google.com/fonts/specimen/Ledger
24
24
  font-family: 'Dancing Script';
25
25
  font-style: normal;
26
26
  font-weight: 400;
27
- src: url(https://fonts.gstatic.com/s/dancingscript/v16/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup5.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup5.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Dancing Script';
31
31
  font-style: normal;
32
32
  font-weight: 700;
33
- src: url(https://fonts.gstatic.com/s/dancingscript/v16/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B1i03Sup5.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B1i03Sup5.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Ledger';
@@ -24,13 +24,13 @@ https://www.google.com/fonts/specimen/Lato
24
24
  font-family: 'Lato';
25
25
  font-style: italic;
26
26
  font-weight: 400;
27
- src: url(https://fonts.gstatic.com/s/lato/v17/S6u8w4BMUTPHjxsAXC-v.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/lato/v20/S6u8w4BMUTPHjxsAXC-v.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Lato';
31
31
  font-style: normal;
32
32
  font-weight: 400;
33
- src: url(https://fonts.gstatic.com/s/lato/v17/S6uyw4BMUTPHjx4wWw.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/lato/v20/S6uyw4BMUTPHjx4wWw.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Lustria';
@@ -24,19 +24,19 @@ https://www.google.com/fonts/specimen/Lato
24
24
  font-family: 'Lato';
25
25
  font-style: italic;
26
26
  font-weight: 300;
27
- src: url(https://fonts.gstatic.com/s/lato/v17/S6u_w4BMUTPHjxsI9w2_Gwfo.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/lato/v20/S6u_w4BMUTPHjxsI9w2_Gwfo.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Lato';
31
31
  font-style: normal;
32
32
  font-weight: 400;
33
- src: url(https://fonts.gstatic.com/s/lato/v17/S6uyw4BMUTPHjx4wWw.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/lato/v20/S6uyw4BMUTPHjx4wWw.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Lato';
37
37
  font-style: normal;
38
38
  font-weight: 700;
39
- src: url(https://fonts.gstatic.com/s/lato/v17/S6u9w4BMUTPHh6UVSwiPHA.ttf) format('truetype');
39
+ src: url(https://fonts.gstatic.com/s/lato/v20/S6u9w4BMUTPHh6UVSwiPHA.ttf) format('truetype');
40
40
  }
41
41
  @font-face {
42
42
  font-family: 'Medula One';
@@ -36,13 +36,15 @@ http://www.google.com/webfonts/specimen/Gentium+Book+Basic
36
36
  font-family: 'Open Sans';
37
37
  font-style: normal;
38
38
  font-weight: 400;
39
- src: url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVZ0e.ttf) format('truetype');
39
+ font-stretch: normal;
40
+ src: url(https://fonts.gstatic.com/s/opensans/v27/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVc.ttf) format('truetype');
40
41
  }
41
42
  @font-face {
42
43
  font-family: 'Open Sans';
43
44
  font-style: normal;
44
45
  font-weight: 800;
45
- src: url(https://fonts.gstatic.com/s/opensans/v20/mem5YaGs126MiZpBA-UN8rsOUuhs.ttf) format('truetype');
46
+ font-stretch: normal;
47
+ src: url(https://fonts.gstatic.com/s/opensans/v27/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgshZ1x4gaVc.ttf) format('truetype');
46
48
  }
47
49
  /* Font Base
48
50
  ----------------------------------------------------- */
@@ -25,13 +25,13 @@ https://www.google.com/fonts/specimen/Unica+One
25
25
  font-family: 'Playfair Display';
26
26
  font-style: normal;
27
27
  font-weight: 400;
28
- src: url(https://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDXbtY.ttf) format('truetype');
28
+ src: url(https://fonts.gstatic.com/s/playfairdisplay/v25/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDXbtY.ttf) format('truetype');
29
29
  }
30
30
  @font-face {
31
31
  font-family: 'Playfair Display';
32
32
  font-style: normal;
33
33
  font-weight: 700;
34
- src: url(https://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDXbtY.ttf) format('truetype');
34
+ src: url(https://fonts.gstatic.com/s/playfairdisplay/v25/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDXbtY.ttf) format('truetype');
35
35
  }
36
36
  @font-face {
37
37
  font-family: 'Playfair Display SC';
@@ -24,13 +24,13 @@ https://www.google.com/fonts/specimen/Playfair+Display+SC
24
24
  font-family: 'Playfair Display';
25
25
  font-style: normal;
26
26
  font-weight: 400;
27
- src: url(https://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDXbtY.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/playfairdisplay/v25/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvXDXbtY.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Playfair Display';
31
31
  font-style: normal;
32
32
  font-weight: 700;
33
- src: url(https://fonts.gstatic.com/s/playfairdisplay/v22/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDXbtY.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/playfairdisplay/v25/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDXbtY.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Playfair Display SC';
@@ -30,13 +30,13 @@ https://www.google.com/fonts/specimen/Megrim
30
30
  font-family: 'Roboto Slab';
31
31
  font-style: normal;
32
32
  font-weight: 300;
33
- src: url(https://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjo0oSmb2Rm.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/robotoslab/v16/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjo0oSmb2Rm.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Roboto Slab';
37
37
  font-style: normal;
38
38
  font-weight: 400;
39
- src: url(https://fonts.gstatic.com/s/robotoslab/v13/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojISmb2Rm.ttf) format('truetype');
39
+ src: url(https://fonts.gstatic.com/s/robotoslab/v16/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojISmb2Rm.ttf) format('truetype');
40
40
  }
41
41
  /* Font Base
42
42
  ----------------------------------------------------- */
@@ -24,13 +24,13 @@ https://www.google.com/fonts/specimen/Unica+One
24
24
  font-family: 'Vollkorn';
25
25
  font-style: italic;
26
26
  font-weight: 400;
27
- src: url(https://fonts.gstatic.com/s/vollkorn/v13/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DJGWlmeObE.ttf) format('truetype');
27
+ src: url(https://fonts.gstatic.com/s/vollkorn/v17/0ybuGDoxxrvAnPhYGxksckM2WMCpRjDj-DJGWlmeObE.ttf) format('truetype');
28
28
  }
29
29
  @font-face {
30
30
  font-family: 'Vollkorn';
31
31
  font-style: normal;
32
32
  font-weight: 400;
33
- src: url(https://fonts.gstatic.com/s/vollkorn/v13/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2MHGeHmmZ.ttf) format('truetype');
33
+ src: url(https://fonts.gstatic.com/s/vollkorn/v17/0ybgGDoxxrvAnPhYGzMlQLzuMasz6Df2MHGeHmmZ.ttf) format('truetype');
34
34
  }
35
35
  @font-face {
36
36
  font-family: 'Unica One';
@@ -8,8 +8,21 @@
8
8
  <meta name="apple-mobile-web-app-capable" content="yes">
9
9
  <meta name="apple-touch-fullscreen" content="yes">
10
10
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
11
- <link rel="icon" type="image/png" href="https://cdn.knightlab.com/libs/purpleline/latest/img/favicon.png">
12
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
11
+ <!-- FAVICONS -->
12
+ <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.knightlab.com/libs/orangeline/latest/assets/favicons/apple-touch-icon.png">
13
+ <link rel="icon" type="image/png" href="https://cdn.knightlab.com/libs/orangeline/latest/assets/favicons/favicon-32x32.png" sizes="32x32">
14
+ <link rel="icon" type="image/png" href="https://cdn.knightlab.com/libs/orangeline/latest/assets/favicons/favicon-16x16.png" sizes="16x16">
15
+ <link rel="manifest" href="https://cdn.knightlab.com/libs/orangeline/latest/assets/favicons/manifest.json">
16
+ <link rel="mask-icon" href="https://cdn.knightlab.com/libs/orangeline/latest/assets/favicons/safari-pinned-tab.svg" color="#5bbad5">
17
+ <!--
18
+ If we want to support loading different versions of timeline like we used to,
19
+ this isn't good enough. We used that to get the non-minimized version, for debugging,
20
+ but now maybe sourcemaps are a better alternative?
21
+ -->
22
+ <script id='timeline-script-tag' type="text/javascript" src="https://cdn.knightlab.com/libs/timeline3/3.8.1/js/timeline.js"></script>
23
+ <link rel="stylesheet" href="https://cdn.knightlab.com/libs/timeline3/3.8.1/css/timeline.css">
24
+ <!-- Google Analytics should be handled by Timeline -->
25
+
13
26
  <base target="_blank">
14
27
 
15
28
  <!-- Style-->
@@ -36,25 +49,122 @@
36
49
  <div id="timeline-embed"></div>
37
50
  <!-- Override -->
38
51
  <script type="text/javascript">
39
- var lang = window.location.href.match(/&lang=([a-zA-Z]*)&?/);
52
+ function ready(fn) {
53
+ if (document.readyState != 'loading') {
54
+ fn();
55
+ } else {
56
+ document.addEventListener('DOMContentLoaded', fn);
57
+ }
58
+ }
59
+
60
+ function setPageLanguage() {
61
+ var lang = window.location.href.match(/&lang=([a-zA-Z]*?)&?/);
62
+
63
+ if (lang) {
64
+ document.getElementsByTagName('html')[0].setAttribute('lang', lang[1]);
65
+ }
40
66
 
41
- if (lang) {
42
- document.getElementsByTagName('html')[0].setAttribute('lang', lang[1]);
43
67
  }
44
- var trim_point = window.location.href.indexOf('embed/index.html');
45
- if (trim_point > 0) {
46
- var embed_path = window.location.href.substring(0, trim_point); // supports https access via https://s3.amazonaws.com/cdn.knightlab.com/libs/timeline/latest/embed/index.html
47
- } else {
48
- var embed_path = "https://cdn.knightlab.com/libs/timeline3/3.6.6/";
68
+
69
+ function computeEmbedPath() {
70
+ var trim_point = window.location.href.indexOf('embed/index.html');
71
+ if (trim_point > 0) {
72
+ return window.location.href.substring(0, trim_point); // supports https access via https://s3.amazonaws.com/cdn.knightlab.com/libs/timeline/latest/embed/index.html
73
+ }
74
+ return "https://cdn.knightlab.com/libs/timeline3/latest/";
75
+ }
76
+
77
+ function addOembedTag() {
78
+ // it's not clear that any tools execute this JS to get the URL, but maybe?
79
+ var oembed_link = document.createElement('link');
80
+ oembed_link['rel'] = 'alternate';
81
+ oembed_link['type'] = 'application/json+oembed';
82
+ oembed_link['href'] = 'https://oembed.knightlab.com/timeline/?url=' + encodeURIComponent(window.location.href);
83
+ document.head.appendChild(oembed_link);
84
+ }
85
+
86
+ function createEmbedDiv(containerId, width, height) {
87
+
88
+ if (typeof(width) != 'string' && typeof(width) != 'number') {
89
+ width = '100%'
90
+ }
91
+
92
+ if (typeof(height) != 'string' && typeof(height) != 'number') {
93
+ height = '100%'
94
+ }
95
+
96
+ // default containerId would be 'timeline-embed'
97
+ t = document.createElement('div');
98
+ t.style.position = 'relative';
99
+
100
+ te = document.getElementById(containerId);
101
+ te.appendChild(t);
102
+ te.classList.add("tl-timeline-embed");
103
+
104
+ if (width.toString().match("%")) {
105
+ te.style.width = width.split("%")[0] + "%";
106
+ } else {
107
+ width = Number(width) - 2;
108
+ te.style.width = (width) + 'px';
109
+ }
110
+
111
+ if (height.toString().match("%")) {
112
+ te.style.height = height;
113
+ te.classList.add("tl-timeline-full-embed");
114
+ } else if (width.toString().match("%")) {
115
+ te.classList.add("tl-timeline-full-embed");
116
+ height = Number(height) - 16;
117
+ te.style.height = (height) + 'px';
118
+ } else {
119
+ height = height - 16;
120
+ te.style.height = (height) + 'px';
121
+ }
49
122
  }
50
- var oembed_link = document.createElement('link');
51
- oembed_link['rel'] = 'alternate';
52
- oembed_link['type'] = 'application/json+oembed';
53
- oembed_link['href'] = 'https://oembed.knightlab.com/timeline/?url=' + encodeURIComponent(window.location.href);
54
- document.head.appendChild(oembed_link);
123
+
124
+ /**
125
+ * Parse all URL parameters as possible Timeline options.
126
+ * Timeline itself will use or ignore these based on actual
127
+ * supported options.
128
+ */
129
+ function optionsFromUrlParams() {
130
+ var param_str = window.location.href.slice(window.location.href.indexOf('?') + 1);
131
+
132
+ if (param_str.match('#')) {
133
+ param_str = param_str.split('#')[0];
134
+ }
135
+
136
+ param_str = param_str.split('&');
137
+
138
+ var url_vars = {}
139
+
140
+ for (var i = 0; i < param_str.length; i++) {
141
+ var uv = param_str[i].split('=');
142
+ url_vars[uv[0]] = uv[1];
143
+ }
144
+
145
+ return url_vars;
146
+ };
147
+
148
+ ready(function() {
149
+ setPageLanguage();
150
+ var embed_path = computeEmbedPath();
151
+ addOembedTag();
152
+
153
+ var options = optionsFromUrlParams();
154
+ createEmbedDiv('timeline-embed', options.width, options.height);
155
+ // ga_property_id is not something we let users override
156
+ options.ga_property_id = 'UA-27829802-4';
157
+ if (typeof(options.source) == 'undefined') {
158
+ options.source = '1xuY4upIooEeszZ_lCmeNx24eSFWe0rHe9ZdqH2xqVNk' // women in computing
159
+ }
160
+
161
+ options.soundcite = true;
162
+
163
+ window.options = options
164
+ window.timeline = new TL.Timeline('timeline-embed', options.source, options)
165
+
166
+ })
55
167
  </script>
56
- <script type="text/javascript" src="https://cdn.knightlab.com/libs/timeline3/3.6.6/js/timeline-embed-cdn.js"></script>
57
- <!-- END Timeline Embed-->
58
168
  </body>
59
169
 
60
- </html>
170
+ </html>