@knight-lab/timelinejs 3.8.15 → 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.
Files changed (305) hide show
  1. package/API.md +1 -2
  2. package/{CHANGELOG → CHANGELOG.md} +70 -8
  3. package/DEPLOYING.md +4 -0
  4. package/README.md +21 -19
  5. package/RELEASING.md +4 -4
  6. package/dist/css/fonts/font.abril-droidsans.css +143 -0
  7. package/dist/css/fonts/font.amatic-andika.css +143 -0
  8. package/dist/css/fonts/font.bevan-pontanosans.css +141 -0
  9. package/dist/css/fonts/font.bitter-raleway.css +149 -0
  10. package/dist/css/fonts/font.clicker-garamond.css +141 -0
  11. package/dist/css/fonts/font.dancing-ledger.css +143 -0
  12. package/dist/css/fonts/font.default.css +155 -0
  13. package/dist/css/fonts/font.fjalla-average.css +141 -0
  14. package/dist/css/fonts/font.georgia-helvetica.css +123 -0
  15. package/dist/css/fonts/font.knightlab.css +125 -0
  16. package/dist/css/fonts/font.lustria-lato.css +147 -0
  17. package/dist/css/fonts/font.medula-lato.css +149 -0
  18. package/dist/css/fonts/font.oldstandard.css +135 -0
  19. package/dist/css/fonts/font.opensans-gentiumbook.css +155 -0
  20. package/dist/css/fonts/font.playfair-faunaone.css +156 -0
  21. package/dist/css/fonts/font.playfair.css +143 -0
  22. package/dist/css/fonts/font.pt.css +153 -0
  23. package/dist/css/fonts/font.roboto-megrim.css +143 -0
  24. package/dist/css/fonts/font.rufina-sintony.css +149 -0
  25. package/dist/css/fonts/font.ubuntu.css +145 -0
  26. package/dist/css/fonts/font.unicaone-vollkorn.css +143 -0
  27. package/dist/css/icons/tl-icons.eot +0 -0
  28. package/dist/css/icons/tl-icons.svg +63 -0
  29. package/dist/css/icons/tl-icons.ttf +0 -0
  30. package/dist/css/icons/tl-icons.woff +0 -0
  31. package/dist/css/icons/tl-icons.woff2 +0 -0
  32. package/dist/css/themes/timeline.theme.contrast.css +3125 -0
  33. package/dist/css/themes/timeline.theme.dark.css +3125 -0
  34. package/dist/css/timeline.css +3128 -0
  35. package/dist/css/timeline.css.map +1 -0
  36. package/dist/embed/compare.html +91 -0
  37. package/dist/embed/index.html +170 -0
  38. package/dist/embed/old-index.html +170 -0
  39. package/dist/embed/popular_timelines.json +1 -0
  40. package/dist/js/locale/af.json +75 -0
  41. package/dist/js/locale/ar.json +76 -0
  42. package/dist/js/locale/be.json +75 -0
  43. package/dist/js/locale/bg.json +75 -0
  44. package/dist/js/locale/ca.json +75 -0
  45. package/dist/js/locale/cz.json +108 -0
  46. package/dist/js/locale/da.json +75 -0
  47. package/dist/js/locale/de.json +76 -0
  48. package/dist/js/locale/el.json +75 -0
  49. package/dist/js/locale/en-24hr.json +75 -0
  50. package/dist/js/locale/en-week.json +75 -0
  51. package/dist/js/locale/en.json +152 -0
  52. package/dist/js/locale/eo.json +75 -0
  53. package/dist/js/locale/es.json +76 -0
  54. package/dist/js/locale/et.json +75 -0
  55. package/dist/js/locale/eu.json +75 -0
  56. package/dist/js/locale/fa.json +74 -0
  57. package/dist/js/locale/fi.json +95 -0
  58. package/dist/js/locale/fo.json +75 -0
  59. package/dist/js/locale/fr.json +119 -0
  60. package/dist/js/locale/fy.json +75 -0
  61. package/dist/js/locale/ga.json +75 -0
  62. package/dist/js/locale/gl.json +75 -0
  63. package/dist/js/locale/he.json +76 -0
  64. package/dist/js/locale/hi.json +76 -0
  65. package/dist/js/locale/hr.json +75 -0
  66. package/dist/js/locale/hu.json +114 -0
  67. package/dist/js/locale/hy.json +75 -0
  68. package/dist/js/locale/id.json +75 -0
  69. package/dist/js/locale/is.json +75 -0
  70. package/dist/js/locale/it.json +92 -0
  71. package/dist/js/locale/iw.json +76 -0
  72. package/dist/js/locale/ja.json +75 -0
  73. package/dist/js/locale/ka.json +75 -0
  74. package/dist/js/locale/ko.json +75 -0
  75. package/dist/js/locale/lb.json +75 -0
  76. package/dist/js/locale/lt.json +75 -0
  77. package/dist/js/locale/lv.json +75 -0
  78. package/dist/js/locale/ms.json +75 -0
  79. package/dist/js/locale/my.json +124 -0
  80. package/dist/js/locale/ne.json +75 -0
  81. package/dist/js/locale/nl.json +75 -0
  82. package/dist/js/locale/no.json +76 -0
  83. package/dist/js/locale/pl.json +75 -0
  84. package/dist/js/locale/pt-br.json +78 -0
  85. package/dist/js/locale/pt.json +78 -0
  86. package/dist/js/locale/rm.json +75 -0
  87. package/dist/js/locale/ro.json +75 -0
  88. package/dist/js/locale/ru.json +75 -0
  89. package/dist/js/locale/si.json +74 -0
  90. package/dist/js/locale/sk.json +75 -0
  91. package/dist/js/locale/sl.json +75 -0
  92. package/dist/js/locale/sr-cy.json +75 -0
  93. package/dist/js/locale/sr.json +75 -0
  94. package/dist/js/locale/sv.json +86 -0
  95. package/dist/js/locale/ta.json +75 -0
  96. package/dist/js/locale/te.json +74 -0
  97. package/dist/js/locale/th.json +108 -0
  98. package/dist/js/locale/tl.json +75 -0
  99. package/dist/js/locale/tr.json +75 -0
  100. package/dist/js/locale/uk.json +75 -0
  101. package/dist/js/locale/ur.json +123 -0
  102. package/dist/js/locale/vi.json +74 -0
  103. package/dist/js/locale/zh-cn.json +76 -0
  104. package/dist/js/locale/zh-tw.json +75 -0
  105. package/dist/js/timeline-min.js +12 -0
  106. package/dist/js/timeline.js +12 -0
  107. package/dist/js/timeline.js.map +1 -0
  108. package/dist/timeline3.zip +0 -0
  109. package/index.js +1 -0
  110. package/package.json +5 -5
  111. package/src/embed/old-index.html +128 -18
  112. package/src/js/core/Browser.js +19 -19
  113. package/src/js/index.js +1 -1
  114. package/src/js/language/locale/zh-cn.json +1 -1
  115. package/src/js/media/MediaType.js +1 -1
  116. package/src/js/media/types/Audio.js +9 -0
  117. package/src/js/media/types/Video.js +11 -0
  118. package/src/js/timeline/Timeline.js +25 -20
  119. package/src/less/fonts/font.knightlab.less +2 -2
  120. package/src/template/all-media-types.json +61 -24
  121. package/src/template/index.html +39 -19
  122. package/{contrib/women_in_computing.csv → src/template/my-own-timeline.csv} +5 -5
  123. package/contrib/README.md +0 -13
  124. package/contrib/csv_to_json.py +0 -106
  125. package/contrib/docs/ImageHosting.md +0 -120
  126. package/contrib/examples/autoload.html +0 -44
  127. package/contrib/examples/iBooksAuthor/README.md +0 -37
  128. package/contrib/examples/iBooksAuthor/TimelineJS.wdgt/Default.png +0 -0
  129. package/contrib/examples/iBooksAuthor/TimelineJS.wdgt/Info.plist +0 -27
  130. package/contrib/examples/iBooksAuthor/TimelineJS.wdgt/index.html +0 -13
  131. package/contrib/examples/react.html +0 -40
  132. package/contrib/examples/vue.html +0 -29
  133. package/contrib/fedorbeets/README.md +0 -3
  134. package/contrib/fedorbeets/timeline.py.txt +0 -56
  135. package/contrib/iamamoose/README.md +0 -3
  136. package/contrib/iamamoose/timeline.py.txt +0 -53
  137. package/contrib/women_in_computing.json +0 -263
  138. package/fabfile.py +0 -64
  139. package/requirements.txt +0 -29
  140. package/util/convert_json.py +0 -96
  141. package/website/__init__.py +0 -0
  142. package/website/app.py +0 -101
  143. package/website/core/__init__.py +0 -0
  144. package/website/core/settings/__init__.py +0 -0
  145. package/website/core/settings/base.py +0 -6
  146. package/website/core/settings/loc.py +0 -16
  147. package/website/examples.json +0 -114
  148. package/website/faq.json +0 -81
  149. package/website/static/css/desert.css +0 -34
  150. package/website/static/css/site.css +0 -74
  151. package/website/static/img/TimelineJSTags.jpg +0 -0
  152. package/website/static/img/examples/houston/eyesclosedftm_10001.jpg +0 -0
  153. package/website/static/img/examples/houston/family.jpg +0 -0
  154. package/website/static/img/examples/houston/family.png +0 -0
  155. package/website/static/img/examples/houston/wh1.jpg +0 -0
  156. package/website/static/img/examples/houston/wh2.jpg +0 -0
  157. package/website/static/img/examples/houston/wh3.jpg +0 -0
  158. package/website/static/img/examples/houston/whChild.jpg +0 -0
  159. package/website/static/img/examples/houston/whlead.jpg +0 -0
  160. package/website/static/img/examples/houston/young.jpg +0 -0
  161. package/website/static/img/examples/logos/Northwestern University.png +0 -0
  162. package/website/static/img/examples/logos/Social-Logos.png +0 -0
  163. package/website/static/img/examples/logos/knightlab-logo-background.png +0 -0
  164. package/website/static/img/examples/logos/knightlab-logo-small.png +0 -0
  165. package/website/static/img/examples/logos/knightlab-logo.png +0 -0
  166. package/website/static/img/examples/logos/less-small.png +0 -0
  167. package/website/static/img/examples/logos/logo_aljazeera.png +0 -0
  168. package/website/static/img/examples/logos/logo_arte.png +0 -0
  169. package/website/static/img/examples/logos/logo_beyondtheseal.png +0 -0
  170. package/website/static/img/examples/logos/logo_centerforpublicintegrity.png +0 -0
  171. package/website/static/img/examples/logos/logo_cnn.png +0 -0
  172. package/website/static/img/examples/logos/logo_denverpost.png +0 -0
  173. package/website/static/img/examples/logos/logo_engadget.png +0 -0
  174. package/website/static/img/examples/logos/logo_gigaom.png +0 -0
  175. package/website/static/img/examples/logos/logo_ibt.png +0 -0
  176. package/website/static/img/examples/logos/logo_knightlab.png +0 -0
  177. package/website/static/img/examples/logos/logo_ksat.png +0 -0
  178. package/website/static/img/examples/logos/logo_lemonde.png +0 -0
  179. package/website/static/img/examples/logos/logo_maneater.png +0 -0
  180. package/website/static/img/examples/logos/logo_mashable.png +0 -0
  181. package/website/static/img/examples/logos/logo_radiolab.png +0 -0
  182. package/website/static/img/examples/logos/logo_time.png +0 -0
  183. package/website/static/img/examples/logos/logo_vh1.png +0 -0
  184. package/website/static/img/examples/logos/logo_vinepair.png +0 -0
  185. package/website/static/img/examples/logos/logo_wbur.png +0 -0
  186. package/website/static/img/examples/thumbs/thumb_akira.jpg +0 -0
  187. package/website/static/img/examples/thumbs/thumb_aljazeera.jpg +0 -0
  188. package/website/static/img/examples/thumbs/thumb_artetv.jpg +0 -0
  189. package/website/static/img/examples/thumbs/thumb_banana.png +0 -0
  190. package/website/static/img/examples/thumbs/thumb_bulger.jpg +0 -0
  191. package/website/static/img/examples/thumbs/thumb_denver_shooting.jpg +0 -0
  192. package/website/static/img/examples/thumbs/thumb_houston.jpg +0 -0
  193. package/website/static/img/examples/thumbs/thumb_isis.jpg +0 -0
  194. package/website/static/img/examples/thumbs/thumb_lemonde.jpg +0 -0
  195. package/website/static/img/examples/thumbs/thumb_malaysia-airlines.jpg +0 -0
  196. package/website/static/img/examples/thumbs/thumb_mandela.jpg +0 -0
  197. package/website/static/img/examples/thumbs/thumb_mobile_device.jpg +0 -0
  198. package/website/static/img/examples/thumbs/thumb_northkorea.jpg +0 -0
  199. package/website/static/img/examples/thumbs/thumb_perpwalk.jpg +0 -0
  200. package/website/static/img/examples/thumbs/thumb_radiolab-colorwalking.jpg +0 -0
  201. package/website/static/img/examples/thumbs/thumb_republican.jpg +0 -0
  202. package/website/static/img/examples/thumbs/thumb_shtpeoplesay.jpg +0 -0
  203. package/website/static/img/examples/thumbs/thumb_supremecourt.jpg +0 -0
  204. package/website/static/img/examples/thumbs/thumb_univofmissouri.jpg +0 -0
  205. package/website/static/img/examples/thumbs/thumb_userinterface.png +0 -0
  206. package/website/static/img/examples/thumbs/thumb_wine.jpg +0 -0
  207. package/website/static/img/examples/user-interface/4s.jpg +0 -0
  208. package/website/static/img/examples/user-interface/apple.jpg +0 -0
  209. package/website/static/img/examples/user-interface/input.png +0 -0
  210. package/website/static/img/examples/user-interface/palm.png +0 -0
  211. package/website/static/img/examples/user-interface/pascaline.jpg +0 -0
  212. package/website/static/img/examples/user-interface/univac.JPG +0 -0
  213. package/website/static/img/font-options.png +0 -0
  214. package/website/static/img/kl-og.png +0 -0
  215. package/website/static/img/knightlab_logo.png +0 -0
  216. package/website/static/img/loading.gif +0 -0
  217. package/website/static/img/make/abril-droidsans.png +0 -0
  218. package/website/static/img/make/amatic-andika.png +0 -0
  219. package/website/static/img/make/bevan-pontanosans.png +0 -0
  220. package/website/static/img/make/bitter-raleway.png +0 -0
  221. package/website/static/img/make/clicker-garamond.png +0 -0
  222. package/website/static/img/make/dancing-ledger.png +0 -0
  223. package/website/static/img/make/default.png +0 -0
  224. package/website/static/img/make/fakedropdown.svg +0 -1
  225. package/website/static/img/make/fjalla-average.png +0 -0
  226. package/website/static/img/make/font-options.png +0 -0
  227. package/website/static/img/make/georgia-helvetica.png +0 -0
  228. package/website/static/img/make/lustria-lato.png +0 -0
  229. package/website/static/img/make/medula-lato.png +0 -0
  230. package/website/static/img/make/oldstandard.png +0 -0
  231. package/website/static/img/make/opensans-gentiumbook.png +0 -0
  232. package/website/static/img/make/playfair-faunaone.png +0 -0
  233. package/website/static/img/make/playfair.png +0 -0
  234. package/website/static/img/make/pt.png +0 -0
  235. package/website/static/img/make/publish_to_web_browser_url.png +0 -0
  236. package/website/static/img/make/publish_to_web_button_small-od1.png +0 -0
  237. package/website/static/img/make/publish_to_web_button_small.png +0 -0
  238. package/website/static/img/make/publish_to_web_small.png +0 -0
  239. package/website/static/img/make/publish_to_web_url_small.png +0 -0
  240. package/website/static/img/make/roboto-megrim.png +0 -0
  241. package/website/static/img/make/rufina-sintony.png +0 -0
  242. package/website/static/img/make/unicaone-vollkorn.png +0 -0
  243. package/website/static/img/make/v4_step_1.png +0 -0
  244. package/website/static/img/make/v4_step_2.png +0 -0
  245. package/website/static/img/timeline.png +0 -0
  246. package/website/static/img/timeline3_intro_image.png +0 -0
  247. package/website/static/js/faq-generator.js +0 -20
  248. package/website/static/js/main.js +0 -240
  249. package/website/static/welcome/step3.png +0 -0
  250. package/website/static/welcome/welcome.json +0 -266
  251. package/website/templates/_about.html +0 -23
  252. package/website/templates/_analytics.html +0 -10
  253. package/website/templates/_banner.html +0 -26
  254. package/website/templates/_demo.html +0 -5
  255. package/website/templates/_developers.html +0 -19
  256. package/website/templates/_examples.html +0 -156
  257. package/website/templates/_faq.html +0 -117
  258. package/website/templates/_footer.html +0 -54
  259. package/website/templates/_head.html +0 -38
  260. package/website/templates/_header.html +0 -18
  261. package/website/templates/_help.html +0 -50
  262. package/website/templates/_make.html +0 -291
  263. package/website/templates/_nav.html +0 -24
  264. package/website/templates/_overview.html +0 -32
  265. package/website/templates/_roadmap.html +0 -27
  266. package/website/templates/_storytelling_tools.html +0 -35
  267. package/website/templates/base.html +0 -37
  268. package/website/templates/docs/faq.html +0 -223
  269. package/website/templates/docs/index.html +0 -57
  270. package/website/templates/docs/instantiate-a-timeline.html +0 -207
  271. package/website/templates/docs/json-format.html +0 -477
  272. package/website/templates/docs/license.html +0 -29
  273. package/website/templates/docs/media-types.html +0 -82
  274. package/website/templates/docs/options.html +0 -472
  275. package/website/templates/docs/overriding-styles.html +0 -357
  276. package/website/templates/docs/using-spreadsheets.html +0 -94
  277. package/website/templates/error.html +0 -28
  278. package/website/templates/examples/_common_example_embed.html +0 -27
  279. package/website/templates/examples/embed-test/index.html +0 -41
  280. package/website/templates/examples/example.json +0 -328
  281. package/website/templates/examples/houston/index.html +0 -40
  282. package/website/templates/examples/houston/timeline2.json +0 -218
  283. package/website/templates/examples/houston/timeline3.json +0 -271
  284. package/website/templates/examples/mediatypes/index.html +0 -61
  285. package/website/templates/examples/mediatypes/timeline3.json +0 -421
  286. package/website/templates/examples/republican/index.html +0 -49
  287. package/website/templates/examples/republican/timeline2.json +0 -0
  288. package/website/templates/examples/republican/timeline3.json +0 -238
  289. package/website/templates/examples/shit-people-say/index.html +0 -39
  290. package/website/templates/examples/shit-people-say/timeline2.json +0 -243
  291. package/website/templates/examples/shit-people-say/timeline3.json +0 -336
  292. package/website/templates/examples/soundcite/index.html +0 -42
  293. package/website/templates/examples/soundcite/timeline3.json +0 -271
  294. package/website/templates/examples/timeline3.json +0 -271
  295. package/website/templates/examples/twain/index.html +0 -85
  296. package/website/templates/examples/twain/marktwain.json +0 -502
  297. package/website/templates/examples/user-interface/index.html +0 -40
  298. package/website/templates/examples/user-interface/timeline2.json +0 -260
  299. package/website/templates/examples/user-interface/timeline3.json +0 -327
  300. package/website/templates/index.html +0 -17
  301. package/website/templates/mediatype-tests.html +0 -121
  302. package/website/templates/test/GoogleSpreadsheetFeedLegacyFormat.json +0 -1
  303. package/website/templates/test/GoogleSpreadsheetFeedTJS3Format.json +0 -1
  304. package/website/templates/test/maps.html +0 -4
  305. package/website/templates/unit-tests.html +0 -775
package/API.md CHANGED
@@ -38,7 +38,7 @@ timeline.on(event_name, function(data) {
38
38
 
39
39
  `dataloaded` _after data has been loaded_
40
40
 
41
- `hash_updated` _when the hashbookmack in the url bar is updated_
41
+ `hash_updated` _when the hashbookmark in the url bar is updated_
42
42
 
43
43
  * unique_id: string, id of the new current slide
44
44
  * hashbookmark: string, the hash
@@ -146,4 +146,3 @@ timeline.on(event_name, function(data) {
146
146
  "unique_id": <string> // optional
147
147
  };
148
148
  ```
149
-
@@ -1,109 +1,158 @@
1
+ 3.8.19 (2022-01-07)
2
+ ------------------
3
+ * #724 - Alternate syntax for compatibility with Vite, probably other tooling.
4
+
5
+ 3.8.18 (2021-06-08)
6
+ ------------------
7
+ * #699 - remove duplicate definition of _onStorySliderLoaded in Timeline.js
8
+ * #700 - remove duplicate definition of _onTimeNavLoaded in Timeline.js
9
+ * #705 - Export Timeline class and include generated CSS in npm package
10
+
11
+ 3.8.17 (2021-04-19)
12
+ ------------------
13
+ * #696 - implement pause on audio/video media types
14
+ * Add support for direct webm video URLs
15
+ * Update several npm dependencies
16
+
17
+ 3.8.16 (2021-04-02)
18
+ ------------------
19
+ * Add hash change listener so that timelines with `hash_bookmark` option respond to hash changes after loading. (#692)
20
+
1
21
  3.8.15 (2021-02-17)
22
+ ------------------
2
23
  * Fix straggling JSON syntax error in en.json example file.
3
24
  * Fix bug introduced with cosmological date formatting to do with inconsistencies between Language.js and en.json
4
25
 
5
26
  3.8.14 (2021-02-14)
27
+ ------------------
6
28
  * Make en.json proper JSON (remove comments) now that new codepath is causing it to be DOMContentLoaded
7
29
  * Add better error handling to Net.js just in case.
8
30
  * Resolve not to release code on Friday afternoon
9
31
 
10
32
  3.8.13 (2021-02-12)
33
+ ------------------
11
34
  * #682: adjust language loading to make sure its done before drawing timeline.
12
35
 
13
36
  3.8.12 (2021-01-25)
37
+ ------------------
14
38
  * #363,670: remove synchronous XMLHttpRequests
15
39
  * #672: support Spotify podcasts
16
40
  * #649: better handling of a/href tags to open in new windows, or to follow specified target values
17
41
 
18
42
  3.8.11 (2020-11-23)
43
+ ------------------
19
44
  * Improve error messaging re issues retrieving configuration data from Google.
20
45
 
21
46
  3.8.10 (2020-11-03)
47
+ ------------------
22
48
  * Change Instagram handling to catch up to their API changes. (#664)
23
49
 
24
50
  3.8.9 (2020-10-23)
51
+ ------------------
25
52
  * Fix pattern matching and URL parsing for using Google Drive documents.
26
53
  * Adjust rules for loading font to support relative/fragment URLs for `font` config option
27
54
 
28
55
  3.8.8 (2020-10-20)
56
+ ------------------
29
57
  * fix error in TL.lookupMediaType
30
58
 
31
59
  3.8.7 (2020-10-20) INVALID RELEASE DO NOT USE
60
+ ------------------
32
61
  * clearer error messaging if time is used without date
33
62
  * strip all whitespace from both ends of header cells
34
63
  * expose TL.lookupMediaType as a publicly accessible function (formerly TL.MediaType before 3.7.0)
35
64
 
36
65
  3.8.6 (2020-09-29)
66
+ ------------------
37
67
  * #659: Prevent blank column headers from derailing Timeline load
38
68
 
39
69
  3.8.5 (2020-09-28)
70
+ ------------------
40
71
  * check for null when validating date inputs from CSV
41
72
 
42
73
  3.8.4 (2020-09-28)
74
+ ------------------
43
75
  * #655: treat all-whitespace Google Sheets values as blank and don't try to process them
44
76
  * #656: chomp excess whitespace around header values/object keys.
45
77
  * #658: clean integer values for dates -- strip whitespace and comma
46
78
 
47
79
  3.8.3 (2020-09-25)
80
+ ------------------
48
81
  * Make CSV parser always return strings (fixes bug where V1 Sheets with year-only dates were assumed to be strings)
49
82
  * Log instead of throw error when trying to add an event in TimelineConfig that has no start date
50
83
 
51
84
  3.8.2 (2020-09-25)
85
+ ------------------
52
86
  * Fix a bug in ConfigFactory date processing which was adding unintended "January 1, 0" end dates.
53
87
 
54
88
  3.8.1 (2020-09-23)
89
+ ------------------
55
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.
56
91
 
57
92
  3.8.0 (2020-09-23)
93
+ ------------------
58
94
  * Discarded release: failed to merge key changes into master branch.
59
95
 
60
96
  3.7.9 (2020-09-17)
97
+ ------------------
61
98
  * #654: Attempt to avoid 'overlapping' slides. Mixed feedback on if this is a complete solution.
62
99
 
63
100
  3.7.8 (2020-09-02)
101
+ ------------------
64
102
  * #651: Restore document loading check with proper binding
65
103
 
66
104
  3.7.7 (2020-08-26)
105
+ ------------------
67
106
  * #651: rollback document loading check after error reports
68
107
 
69
108
  3.7.6 (2020-08-25)
109
+ ------------------
70
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.
71
111
  * Introduce a 'ready' event, which TimelineJS will fire after all other initialization is complete.
72
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.
73
113
  * Fix error messages in Imgur media type
74
114
 
75
115
  3.7.5 (2020-07-22)
116
+ ------------------
76
117
  * More fixes to handling default font case
77
118
  * add missing import for Wistia media type
78
119
 
79
120
  3.7.4 (2020-07-21)
121
+ ------------------
80
122
  * Fix #645: restore removeId to public API for a Timeline
81
123
  * Fix: only load font.default.css when no other font is specified; otherwise
82
124
  cascade rules are inconsistent with old behavior.
83
125
 
84
126
  3.7.3 (2020-07-16)
127
+ ------------------
85
128
  * Fix stupid bugs introduced with incomplete testing.
86
129
 
87
130
  3.7.2 (2020-07-16)
131
+ ------------------
88
132
  * Fix variable naming error when handling thrown exceptions in adding eras
89
133
  * Fix name of div in developer "embed" template to restore ability to switch data source for dev view
90
134
  * don't routinely sanitize media URLs; instead, place that responsibility on Media subclasses for which the 'url' is actually used with markup
91
135
 
92
136
  3.7.1 (2020-07-10)
137
+ ------------------
93
138
  * Protect against undefined/null options in constructor
94
139
  * Pass a valid message container for 'swipe to navigate' #644
95
140
 
96
141
  3.7.0 (2020-07-09)
142
+ ------------------
97
143
  * Internal rewrite to use modern JavaScript
98
144
  * Sanitize HTML inputs
99
145
 
100
146
  3.6.6 (2020-03-11)
147
+ ------------------
101
148
  * Replace Flickr API key
102
149
 
103
150
  3.6.5 (2019-05-01)
151
+ ------------------
104
152
  * Revert construction of Google feeds URL to pre-3.6.4 pattern which should be more universally correct.
105
153
 
106
154
  3.6.4 (2019-04-30)
155
+ ------------------
107
156
  * Fall back to Google Sheets API v4 when 500 error found using v3 (Workaround for Google API failure)
108
157
  * Issue #598 - use 24-hr time for Portuguese
109
158
  * PR #599 allow text selection on all devices
@@ -111,29 +160,37 @@
111
160
  * PR #609 fixes #577 link hover on slides w/ background images
112
161
 
113
162
  3.6.2 (2018-12-20)
163
+ ------------------
114
164
  * PR #592 adds missing woff2 font to fix nav arrows on MS Edge
115
165
  * PR #594 Updated Czech (Čeština) translations
116
166
 
117
167
  3.6.1 (2018-10-10)
168
+ ------------------
118
169
  * Correct translation of "July" in Slovenian.
119
170
 
120
171
  3.6.0 (2018-06-11)
172
+ ------------------
121
173
  * Configure Google Analytics tracking to anonymize_ip for GDPR compliance
122
174
 
123
175
  3.5.4 (2017-12-15)
176
+ ------------------
124
177
  * PR #331 fixes bug that was causing duplications of groups
125
178
  * Fix to allow missing media in JSON #565
126
179
 
127
180
  3.5.3 (2017-11-07)
181
+ ------------------
128
182
  * Remove 1px offset that causes white line along top of Timeline
129
183
 
130
184
  3.5.2 (2017-10-26)
185
+ ------------------
131
186
  * PR #554 adds direction to .tl-rtl
132
187
 
133
188
  3.5.1 (2017-05-03)
189
+ ------------------
134
190
  * PR #522 use https in wistia
135
191
 
136
192
  3.5.0 (2017-05-03)
193
+ ------------------
137
194
  * PR #510 Twitter image support
138
195
  * PR #520, #515 Imgur image support
139
196
  * PR #514 Wistia video support (URL only)
@@ -141,6 +198,7 @@
141
198
 
142
199
  3.4.9 (2017-04-10)
143
200
  ------------------
201
+ ------------------
144
202
  * PR #468 support audio and video files (.mp4, .mp3, .wav, .m4a)
145
203
  * PR #460 improve spotify documentation and support album and artist pages
146
204
  * PR #454 use the `lang` attribute set in the embed url as the lang for the iframe
@@ -148,24 +206,28 @@
148
206
 
149
207
  3.4.8 (2017-03-31)
150
208
  ------------------
209
+ ------------------
151
210
  * Fix missing accent in French translation
152
211
  * Add additional Thai translation
153
212
 
154
213
  3.4.7 (2016-01-12)
214
+ ------------------
155
215
  * PR #447 Enable Vimeo fullscreen controls
156
216
 
157
217
  3.4.6 (2016-12-12)
218
+ ------------------
158
219
  * Revert PR #387 which was causing slide cutoff on small screens
159
220
 
160
221
  3.4.5 (2016-12-07)
222
+ ------------------
161
223
  * PR #428 - Reinstate table display for IE. #427
162
224
 
163
225
  3.4.3 (2016-11-15)
164
- ------------------------
226
+ ------------------
165
227
  * Revert PR #374, reopen #277. Fix left black bar across full screen timelines.
166
228
 
167
229
  3.4.2 (2016-11-15)
168
- ------------------------
230
+ ------------------
169
231
  * PR #374 - Adds margin-top for large screen disply. Fixes #277
170
232
  * PR #401 - Adds Vietnamese translation
171
233
  * PR #419 - Removes year zero from the timeline. Fixes #328
@@ -173,16 +235,16 @@
173
235
  * PR #389 - Adds YouTube end-time feature. #388
174
236
 
175
237
  3.4.1 (2016-10-04)
176
- ------------------------
238
+ ------------------
177
239
  * PR #400 - pause Vine, DailyMotion, and Soundcloud media on slide exit (thanks @Hammman and @JustaBitDope)
178
240
  * PR #413 - French language support additions
179
241
 
180
242
  3.4.0 (2016-08-30)
181
- -------------------------
243
+ -------------------
182
244
  * Complete (?) RTL language support, removed Urdu Unicode translation bugs
183
245
 
184
246
  3.3.17 (2016-08-22)
185
- -------------------------
247
+ -------------------
186
248
  * #372 Italian translation for "Swipe to Navigate"
187
249
  * #376 Throw an error if URL is neither a Google Spreadsheet nor a source of parseable JSON
188
250
  * Chinese (traditional) (zh-cn) translation for "Swipe to Navigate"
@@ -190,18 +252,18 @@
190
252
  * added Burmese translation
191
253
 
192
254
  3.3.16 (2016-05-31)
193
- -------------------------
255
+ -------------------
194
256
  * #365 Scope vcard styles to avoid impacting pages which embed timelines without iframe
195
257
  * #366 Fix headline problem with <p> tag
196
258
 
197
259
  3.3.15 (2016-05-11)
198
- -------------------------
260
+ -------------------
199
261
  * Apply MediaType handling to thumbnails for the slider, so that people can use the same kinds of urls they use for regular media.
200
262
  * Establish correct indication of "BCE" in Swedish.
201
263
  * Establish correct indication of "BYA" abbreviations in Finnish and Hungarian.
202
264
 
203
265
  3.3.14 (2016-03-22)
204
- -------------------------
266
+ -------------------
205
267
  * Fix bug in handling imgur URLs which were to an imgur page and not directly to an image.
206
268
 
207
269
  3.3.13 (2016-02-25)
package/DEPLOYING.md CHANGED
@@ -13,6 +13,8 @@ To deploy the website, or updates to the Wordpress plugin, you must have local c
13
13
 
14
14
  ## Deploying changes to the JavaScript
15
15
 
16
+ Before beginning to deploy, make sure all changes are thoroughly tested. Update CHANGELOG to track changes and establish the release date for the version. Update package.json to the new version number.
17
+
16
18
  Deploying the JavaScript library uses `npm` scripts defined in `package.json`. To deploy to the Knight Lab CDN, use the following scripts:
17
19
 
18
20
  * npm run stage
@@ -21,6 +23,8 @@ Deploying the JavaScript library uses `npm` scripts defined in `package.json`. T
21
23
 
22
24
  To stage a new release of TimelineJS, use `npm run stage_latest`. This will ask you for a version number (tag), build the code, and copy it to the appropriate versioned subdirectory of the `cdn.knightlab.com` repository, as well as copying it to the `/latest/` directory. In the rare case when you want to tag a version, but not change `latest`, use `npm run stage` although then copying that to `/latest/` is outside the scope of these tools.
23
25
 
26
+ When a new version is deployed to the CDN, it should also be published to the npmjs repository. Do this by running `npm publish`.
27
+
24
28
  > **Note:** this does *not* deploy the new code. There is one more step--you must switch to the CDN repository, commit the new code, and deploy the repository.
25
29
 
26
30
  ### Updating the Wordpress plugin
package/README.md CHANGED
@@ -5,36 +5,38 @@ TimelineJS v3: A Storytelling Timeline built in JavaScript. https://timeline.kn
5
5
 
6
6
  ## Overview
7
7
 
8
- TimelineJS 3 is a rewrite of the popular Timeline JS software. Please be clear that this is software which "does" the same thing, but it isn't the same software, so some details will vary. See https://timeline.knightlab.com for more information.
8
+ TimelineJS is a tool designed to help people with minimal technical skill tell rich, dynamic stories on the web. Most people will create timelines using the [official authoring tool](http://timeline.knightlab.com/#make) and embed their creations using a snip of HTML code offered at the end of that process.
9
9
 
10
- ## Contributing to TimelineJS
11
- Are you trying to contribute to or develop TimelineJS3? [Here's where you should start.](https://github.com/NUKnightLab/TimelineJS3/blob/master/CONTRIBUTING.md)
12
-
13
- ## Getting Started
10
+ For users of these content management systems (CMSes), there are plugins to facilitate the embedding process:
14
11
 
15
- The [official documentation for embedding a Timeline in your page instead of using an embed](https://timeline.knightlab.com/docs/instantiate-a-timeline.html) is now maintained on the main TimelineJS website.
12
+ * [Wordpress](https://wordpress.org/plugins/knight-lab-timelinejs/)
13
+ * [MediaWiki](https://www.mediawiki.org/wiki/Extension:Modern_Timeline)
14
+ * [Drupal](https://www.drupal.org/docs/8/modules/views-timelinejs)
16
15
 
17
16
 
18
- ## Options
17
+ ## Getting Started
19
18
 
20
- The [official documentation for configuration options](https://timeline.knightlab.com/docs/options.html) is now maintained on the main TimelineJS website.
19
+ General users of TimelineJS should consult [timeline.knightlab.com](https://timeline.knightlab.com) for instructions and documentation. Information on GitHub is primarily directed at those who are interested in working with the TimelineJS source code.
21
20
 
21
+ The [authoritative documentation list](https://timeline.knightlab.com/docs/) is also on the main website, but here are some direct links which may be useful:
22
22
 
23
- ## Data file
24
- The [official documentation for the JSON format](https://timeline.knightlab.com/docs/json-format.html) is now maintained on the main TimelineJS website.
23
+ * [Available media types](https://timeline.knightlab.com/docs/media-types.html), relevant to users of any technical level
24
+ * [Instantiate a Timeline in your page instead of using an embed](https://timeline.knightlab.com/docs/instantiate-a-timeline.html)
25
+ * [Configuration options](https://timeline.knightlab.com/docs/options.html) (for more technical users)
26
+ * [JSON configuration file format](https://timeline.knightlab.com/docs/json-format.html) for those who prefer not to use Google Sheets
25
27
 
28
+ ## Contributing to TimelineJS
29
+ Are you trying to contribute to or develop TimelineJS3? [Here's where you should start.](https://github.com/NUKnightLab/TimelineJS3/blob/master/CONTRIBUTING.md)
26
30
 
27
31
  ## API
28
- See API doc here: https://github.com/NUKnightLab/TimelineJS3/blob/master/API.md
29
-
30
- ## Media Types
31
32
 
32
- The [official documentation for available media types](https://timeline.knightlab.com/docs/media-types.html) is now maintained on the main TimelineJS website.
33
+ For users who instantiate a timeline in a page (as opposed to using the iframe embed model), [this page](https://github.com/NUKnightLab/TimelineJS3/blob/master/API.md) roughly documents TimelineJS's JavaScript API, but note that because TimelineJS's primary use case is the embedded iframe, some of these methods have not been thoroughly tested.
33
34
 
35
+ ## Use via ES6 modules/webpack
34
36
 
37
+ To use in a project that uses ES6 modules and webpack, import the `Timeline` class and the CSS as follows
35
38
 
36
- ### Extending Media Types
37
- * Create a new class for the media type in `source/js/media/type`. It's easiest to duplicate an existing one and change the filename and classname.
38
- * Add the new file to the code-kit compile list inside the main `TL.Timeline.js` file. Code-kit uses the following language to prepend the file to the compile `// @codekit-prepend "media/types/TL.Media.YourMediaTypeName.js";`
39
- * Add a new object to the `media_types` array in `source/js/media/TL.MediaType.js`. Make sure to have the correct class name in `cls` and use `match_str` as a regex to help timeline figure out what type of media the given url is.
40
- * If you want icons for the media to show up in the Timeline, then you will also need to add an icon class to `source/less/icons/Icons.less` that has the name `.tl-icon-yourmediatypename`.
39
+ ```js
40
+ import { Timeline } from '@knight-lab/timelinejs';
41
+ import '@knight-lab/timelinejs/dist/css/timeline.css';
42
+ ```
package/RELEASING.md CHANGED
@@ -1,13 +1,13 @@
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
9
- 1. Execute `npm publish` (permissions required)
10
9
  1. Execute `npm run stage_latest`, which creates both a versioned edition of the library and a copy of it in the `/latest/` directory of the CDN repository.
10
+ 1. Execute `npm publish` (permissions required)
11
11
  1. Change directories to the local copy of the `cdn.knightlab.com` repository, to which files were copied by the previous step
12
12
  1. `git add app/libs/timeline3` to add the new version and updated `latest` to Git
13
13
  1. Commit those changes with a message like "TimelineJS 3.x.x"
@@ -29,4 +29,4 @@ The Wordpress plugin bundles the TimelineJS code, so when a new version of the l
29
29
 
30
30
 
31
31
 
32
- Note that releases of the JavaScript library are independent from updates to `timeline.knightlab.com`, which is deployed
32
+ Note that releases of the JavaScript library are independent from updates to `timeline.knightlab.com`, which is deployed using `fab deploy:prd` in the python environment.
@@ -0,0 +1,143 @@
1
+ /* Font Abril Fatface & Droid Sans
2
+
3
+ https://www.google.com/fonts/specimen/Abril+Fatface
4
+ https://www.google.com/fonts/specimen/Droid+Sans
5
+ ----------------------------------------------------- */
6
+ /* VARIABLES
7
+ BASE
8
+ ----------------------------------------------------- */
9
+ /* ICON PATH
10
+ ================================================== */
11
+ /* TYPEFACE
12
+ ================================================== */
13
+ /* COLOR SCHEME
14
+ ================================================== */
15
+ /* UI COLOR
16
+ ================================================== */
17
+ /* UI
18
+ ================================================== */
19
+ /* Animation
20
+ ================================================== */
21
+ /* GFX
22
+ ================================================== */
23
+ @font-face {
24
+ font-family: 'Abril Fatface';
25
+ font-style: normal;
26
+ font-weight: 400;
27
+ src: url(https://fonts.gstatic.com/s/abrilfatface/v12/zOL64pLDlL1D99S8g8PtiKchq-dmiA.ttf) format('truetype');
28
+ }
29
+ @font-face {
30
+ font-family: 'Droid Sans';
31
+ font-style: normal;
32
+ font-weight: 400;
33
+ src: url(https://fonts.gstatic.com/s/droidsans/v12/SlGVmQWMvZQIdix7AFxXkHNSaA.ttf) format('truetype');
34
+ }
35
+ @font-face {
36
+ font-family: 'Droid Sans';
37
+ font-style: normal;
38
+ font-weight: 700;
39
+ src: url(https://fonts.gstatic.com/s/droidsans/v12/SlGWmQWMvZQIdix7AFxXmMh3eDs1Yg.ttf) format('truetype');
40
+ }
41
+ /* Font Base
42
+ ----------------------------------------------------- */
43
+ .tl-timeline {
44
+ font-family: 'Droid Sans', sans-serif;
45
+ font-weight: 400;
46
+ font-size: 16px;
47
+ line-height: 1.3em;
48
+ }
49
+ .tl-timeline h1,
50
+ .tl-timeline h2,
51
+ .tl-timeline h3,
52
+ .tl-timeline h4,
53
+ .tl-timeline h5,
54
+ .tl-timeline h6 {
55
+ font-family: 'Abril Fatface', cursive;
56
+ text-transform: none;
57
+ font-weight: 700;
58
+ font-size: 46px;
59
+ line-height: 46px;
60
+ }
61
+ .tl-timeline h2.tl-headline-title {
62
+ font-size: 58px;
63
+ line-height: 58px;
64
+ }
65
+ .tl-timeline p {
66
+ font-family: 'Droid Sans', sans-serif;
67
+ font-size: 16px;
68
+ line-height: 1.3em;
69
+ }
70
+ .tl-timeline ul {
71
+ font-family: 'Droid Sans', sans-serif;
72
+ }
73
+ .tl-timeline .tl-media .tl-media-wikipedia h4 a,
74
+ .tl-timeline .tl-media h4,
75
+ .tl-timeline .tl-media h4 a {
76
+ font-family: 'Droid Sans', sans-serif;
77
+ font-weight: 700;
78
+ font-size: 24px;
79
+ line-height: 24px;
80
+ }
81
+ .tl-timeline .tl-caption,
82
+ .tl-timeline .tl-credit {
83
+ font-family: 'Droid Sans', sans-serif;
84
+ }
85
+ .tl-timeline .vcard {
86
+ font-family: 'Droid Sans', sans-serif !important;
87
+ font-weight: normal !important;
88
+ }
89
+ .tl-timeline .tl-slidenav-next,
90
+ .tl-timeline .tl-slidenav-previous,
91
+ .tl-timeline .tl-message,
92
+ .tl-timeline .tl-timegroup-message {
93
+ font-family: 'Droid Sans', sans-serif;
94
+ font-weight: 700;
95
+ text-transform: none;
96
+ }
97
+ .tl-timeline .tl-slidenav-next .tl-slidenav-title,
98
+ .tl-timeline .tl-slidenav-previous .tl-slidenav-title,
99
+ .tl-timeline .tl-message .tl-slidenav-title,
100
+ .tl-timeline .tl-timegroup-message .tl-slidenav-title {
101
+ line-height: 1.3em !important;
102
+ }
103
+ .tl-timeline .tl-headline-date,
104
+ .tl-timeline h3.tl-headline-date {
105
+ font-family: 'Droid Sans', sans-serif !important;
106
+ font-weight: normal !important;
107
+ text-transform: none !important;
108
+ }
109
+ .tl-timeline .tl-headline-date small,
110
+ .tl-timeline h3.tl-headline-date small {
111
+ font-weight: normal !important;
112
+ }
113
+ .tl-timeline .tl-timenav-slider {
114
+ font-family: 'Droid Sans', sans-serif;
115
+ font-weight: 700;
116
+ }
117
+ .tl-timeline .tl-timenav-slider h2.tl-headline {
118
+ font-family: 'Droid Sans', sans-serif;
119
+ font-weight: 700;
120
+ text-transform: none;
121
+ }
122
+ .tl-timeline .tl-timenav-slider .tl-timeaxis {
123
+ font-family: 'Droid Sans', sans-serif;
124
+ font-weight: 700;
125
+ text-transform: none;
126
+ }
127
+ .tl-timeline .tl-menubar {
128
+ font-family: 'Droid Sans', sans-serif;
129
+ }
130
+ .tl-timeline blockquote,
131
+ .tl-timeline blockquote p {
132
+ font-family: 'Droid Sans', sans-serif;
133
+ font-style: normal;
134
+ font-weight: 400;
135
+ line-height: 1.3;
136
+ }
137
+ input[type="text"].editor-headline {
138
+ font-family: 'Abril Fatface', cursive;
139
+ text-transform: none;
140
+ font-weight: 700;
141
+ font-size: 46px;
142
+ line-height: 46px;
143
+ }
@@ -0,0 +1,143 @@
1
+ /* Font Amatic & Andika
2
+
3
+ https://www.google.com/fonts/specimen/Amatic+SC
4
+ https://www.google.com/fonts/specimen/Andika
5
+ ----------------------------------------------------- */
6
+ /* VARIABLES
7
+ BASE
8
+ ----------------------------------------------------- */
9
+ /* ICON PATH
10
+ ================================================== */
11
+ /* TYPEFACE
12
+ ================================================== */
13
+ /* COLOR SCHEME
14
+ ================================================== */
15
+ /* UI COLOR
16
+ ================================================== */
17
+ /* UI
18
+ ================================================== */
19
+ /* Animation
20
+ ================================================== */
21
+ /* GFX
22
+ ================================================== */
23
+ @font-face {
24
+ font-family: 'Amatic SC';
25
+ font-style: normal;
26
+ font-weight: 400;
27
+ src: url(https://fonts.gstatic.com/s/amaticsc/v16/TUZyzwprpvBS1izr_vOECuSa.ttf) format('truetype');
28
+ }
29
+ @font-face {
30
+ font-family: 'Amatic SC';
31
+ font-style: normal;
32
+ font-weight: 700;
33
+ src: url(https://fonts.gstatic.com/s/amaticsc/v16/TUZ3zwprpvBS1izr_vOMscGKfrUH.ttf) format('truetype');
34
+ }
35
+ @font-face {
36
+ font-family: 'Andika';
37
+ font-style: normal;
38
+ font-weight: 400;
39
+ src: url(https://fonts.gstatic.com/s/andika/v12/mem_Ya6iyW-LwqgwarYV.ttf) format('truetype');
40
+ }
41
+ /* Font Base
42
+ ----------------------------------------------------- */
43
+ .tl-timeline {
44
+ font-family: 'Andika', sans-serif;
45
+ font-weight: 400;
46
+ font-size: 16px;
47
+ line-height: 1.3em;
48
+ }
49
+ .tl-timeline h1,
50
+ .tl-timeline h2,
51
+ .tl-timeline h3,
52
+ .tl-timeline h4,
53
+ .tl-timeline h5,
54
+ .tl-timeline h6 {
55
+ font-family: 'Amatic SC', cursive;
56
+ text-transform: none;
57
+ font-weight: 700;
58
+ font-size: 64px;
59
+ line-height: 64px;
60
+ }
61
+ .tl-timeline h2.tl-headline-title {
62
+ font-size: 86px;
63
+ line-height: 86px;
64
+ }
65
+ .tl-timeline p {
66
+ font-family: 'Andika', sans-serif;
67
+ font-size: 16px;
68
+ line-height: 1.3em;
69
+ }
70
+ .tl-timeline ul {
71
+ font-family: 'Andika', sans-serif;
72
+ }
73
+ .tl-timeline .tl-media .tl-media-wikipedia h4 a,
74
+ .tl-timeline .tl-media h4,
75
+ .tl-timeline .tl-media h4 a {
76
+ font-family: 'Andika', sans-serif;
77
+ font-weight: 700;
78
+ font-size: 24px;
79
+ line-height: 24px;
80
+ }
81
+ .tl-timeline .tl-caption,
82
+ .tl-timeline .tl-credit {
83
+ font-family: 'Andika', sans-serif;
84
+ }
85
+ .tl-timeline .vcard {
86
+ font-family: 'Andika', sans-serif !important;
87
+ font-weight: normal !important;
88
+ }
89
+ .tl-timeline .tl-slidenav-next,
90
+ .tl-timeline .tl-slidenav-previous,
91
+ .tl-timeline .tl-message,
92
+ .tl-timeline .tl-timegroup-message {
93
+ font-family: 'Andika', sans-serif;
94
+ font-weight: 700;
95
+ text-transform: none;
96
+ }
97
+ .tl-timeline .tl-slidenav-next .tl-slidenav-title,
98
+ .tl-timeline .tl-slidenav-previous .tl-slidenav-title,
99
+ .tl-timeline .tl-message .tl-slidenav-title,
100
+ .tl-timeline .tl-timegroup-message .tl-slidenav-title {
101
+ line-height: 1.3em !important;
102
+ }
103
+ .tl-timeline .tl-headline-date,
104
+ .tl-timeline h3.tl-headline-date {
105
+ font-family: 'Andika', sans-serif !important;
106
+ font-weight: normal !important;
107
+ text-transform: none !important;
108
+ }
109
+ .tl-timeline .tl-headline-date small,
110
+ .tl-timeline h3.tl-headline-date small {
111
+ font-weight: normal !important;
112
+ }
113
+ .tl-timeline .tl-timenav-slider {
114
+ font-family: 'Andika', sans-serif;
115
+ font-weight: 700;
116
+ }
117
+ .tl-timeline .tl-timenav-slider h2.tl-headline {
118
+ font-family: 'Andika', sans-serif;
119
+ font-weight: 700;
120
+ text-transform: none;
121
+ }
122
+ .tl-timeline .tl-timenav-slider .tl-timeaxis {
123
+ font-family: 'Andika', sans-serif;
124
+ font-weight: 700;
125
+ text-transform: none;
126
+ }
127
+ .tl-timeline .tl-menubar {
128
+ font-family: 'Andika', sans-serif;
129
+ }
130
+ .tl-timeline blockquote,
131
+ .tl-timeline blockquote p {
132
+ font-family: 'Andika', sans-serif;
133
+ font-style: normal;
134
+ font-weight: 400;
135
+ line-height: 1.3;
136
+ }
137
+ input[type="text"].editor-headline {
138
+ font-family: 'Amatic SC', cursive;
139
+ text-transform: none;
140
+ font-weight: 700;
141
+ font-size: 64px;
142
+ line-height: 64px;
143
+ }