jekyll-theme-conference 3.4.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -21
  3. data/_includes/js/conference.js +26 -16
  4. data/_includes/js/init.js +37 -0
  5. data/_includes/js/{bootstrap.js → lib/bootstrap.js} +0 -0
  6. data/_includes/js/{jquery-3.5.1.min.js → lib/jquery-3.5.1.min.js} +0 -0
  7. data/_includes/js/{leaflet-easybutton.js → lib/leaflet-easybutton.js} +0 -0
  8. data/_includes/js/{leaflet-locatecontrol.js → lib/leaflet-locatecontrol.js} +0 -0
  9. data/_includes/js/{leaflet-providers.js → lib/leaflet-providers.js} +0 -0
  10. data/_includes/js/{leaflet.js → lib/leaflet.js} +0 -0
  11. data/_includes/js/{popper.min.js → lib/popper.min.js} +0 -0
  12. data/_includes/js/{syncscroll.js → lib/syncscroll.js} +0 -0
  13. data/_includes/js/live.js +735 -0
  14. data/_includes/js/map.js +38 -0
  15. data/_includes/js/{conference-modal.js → modal.js} +13 -15
  16. data/_includes/js/{conference-program.js → program.js} +10 -16
  17. data/_includes/partials/checks.html +1 -1
  18. data/_includes/partials/footer.html +1 -1
  19. data/_includes/partials/get_live_timestamps.html +4 -4
  20. data/_includes/partials/get_page_title.html +1 -1
  21. data/_includes/partials/get_talk_timestamp.html +2 -2
  22. data/_includes/partials/header.html +1 -1
  23. data/_includes/partials/modal_live.html +3 -2
  24. data/_includes/partials/navbar.html +1 -1
  25. data/_includes/partials/show_live_button.html +2 -2
  26. data/_layouts/config.html +78 -0
  27. data/_layouts/data.html +29 -3
  28. data/_layouts/home.html +1 -1
  29. data/_layouts/location.html +1 -1
  30. data/_layouts/room.html +1 -1
  31. data/_layouts/stream-overview.html +1 -1
  32. data/assets/js/config.json +3 -0
  33. metadata +17 -14
  34. data/_includes/js/conference-live.js +0 -701
  35. data/_includes/js/conference-map.js +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50470940d27a0744cdf32312e829e73af0c6375241575e6eb074695edfee7028
4
- data.tar.gz: 1444781b0f41ffc7d267fe324b9cfabb5afd709ee27c24d95bd6b34d02d57060
3
+ metadata.gz: 0da457627a261ffda7837260a6b66294a383971e653ea3e3f05299cb8f672f8f
4
+ data.tar.gz: b02dc7da45e1e76386635952414d57c0c22727fa6e4c6e0968e5e55db58266d3
5
5
  SHA512:
6
- metadata.gz: 872ad7d006fbcb1c552dc863982d037e3eb9ba2ca8e8aab9d785d9e55ba0651c19c367ce03a0280317947e5ad2352b40eefc66a47e6bb5e3cbc1a3c36d298d91
7
- data.tar.gz: 8000b8d73b08f71554efad482cd8cf5518db22b01fc3828c985b669e5b013819785f4c41369ef5007ea375bf49f0b5b2195864e79d88c9d55bb089c9b5149388
6
+ metadata.gz: 23c9ce1a8794dc7f25d5973c3ce70fd1c3dbb599ffc73c5a5e9fe4135a001e4ca173671d2433f66b15dd0bdc517fee1637a52325a2f233107d0590b1f554563e
7
+ data.tar.gz: ab334e1c2cd367f9ff3eebbc4d00760fc19a0ea0a1a7ea20df8d3bcc8ed0740a73464bb4b29db87452c780c4ade88b094766cff5377166a0249272105c5f50ee
data/README.md CHANGED
@@ -35,20 +35,20 @@ The theme was originally created for the yearly Winterkongress conference of the
35
35
  * [Open Graph Link Preview](#open-graph-link-preview)
36
36
  * [Main Landing Page](#main-landing-page)
37
37
  * [Information Boxes](#information-boxes)
38
- * [Live Indications & Streaming](#live-indications---streaming)
38
+ * [Live Indications & Streaming](#live-indications--streaming)
39
39
  * [Map](#map)
40
40
  * [Talk Settings](#talk-settings)
41
41
  * [Speaker Settings](#speaker-settings)
42
42
  * [Location Settings](#location-settings)
43
43
  * [Program Settings](#program-settings)
44
44
  - [Content](#content)
45
- * [Schedule / Program](#schedule---program)
45
+ * [Schedule / Program](#schedule--program)
46
46
  * [Talks](#talks)
47
47
  * [Speakers](#speakers)
48
48
  * [Rooms](#rooms)
49
49
  * [Links](#links)
50
50
  - [Overview Pages](#overview-pages)
51
- * [Location / Room Overview](#location---room-overview)
51
+ * [Location / Room Overview](#location--room-overview)
52
52
  * [Live Stream Overview](#live-stream-overview)
53
53
  * [Additional Pages](#additional-pages)
54
54
  - [Design](#design)
@@ -380,27 +380,35 @@ conference:
380
380
 
381
381
  In order to help users navigating the program during the congress, a _Live_ indication can be shown next to talks which are currently taking place. A small JavaScript functions keeps the site automatically up-to-date (without the need to refresh) showing the indication as soon as the talk has started and hiding it once it is over (according to the timetable indicated in the `_data/program.yml` file).
382
382
 
383
- This can be further extended if some of the talks have an associated live stream: Upon clicking one of the live indications a modal will open containing the corresponding live stream embedded. The URL to the live stream has to be set via `live` property in each room (see the _Content_ > _Room_ section below). Instead of opening the modal an external link can also be used.
383
+ This can be further extended if some of the talks have an associated live stream: Upon clicking one of the live indications a modal will open containing the corresponding embedded live stream. The URL to the live stream has to be set via `live` property in each room (see the _Content_ > _Room_ section below). Instead of opening the modal an external link can also be used.
384
384
 
385
- In order to activate the functionality, each day in the `program.yml` file must contain a `date` property (see section _Content_ > _Schedule / Program_ below) and the `live` property has to be set in the configuration file containing
385
+ In order to activate these functionalities, each day in the `program.yml` file must contain a `date` property (see section _Content_ > _Schedule / Program_ below) and the `live` property has to be set in the configuration file containing
386
386
 
387
- - how long a pause between two consecutive talks has to be for the live indication to pause (`time_stop`),
388
- - optionally if streaming is enabled (`streaming`) with indications
389
- + how many minutes the stream goes active before a talk (`time_prepend`),
390
- + how many minutes the stream stays active after a talk (`time_extend`),
391
- + how long a pause between two consecutive talks has to be for the stream to pause (`time_pause`), and
387
+ - how long a pause between two consecutive talks has to be for the live indication to pause (`stop`),
388
+ - optionally under the `streaming` property:
389
+ + if streaming should be enabled (`enable`), and if enabled
390
+ + how many minutes the stream goes active before a talk (`prepend`),
391
+ + how many minutes the stream stays active after a talk (`extend`),
392
+ + how long a pause between two consecutive talks has to be for the stream to pause (`pause`), and
392
393
  + optionally an external (absolute) link to which the user will be redirected instead of opening the modal (`external`),
393
- - optionally a demo mode setting, whereby the JavaScript function cycles through the entire program in five minutes for demonstration purposes (`demo: true`, default: `false`).
394
+ - optionally under the `demo` property:
395
+ + if a demonstration mode should be enabled (`enable`), whereby the JavaScript function cycles continuously through the entire program in a few minutes, and if enabled
396
+ + how long the demonstration should take (`duration`), and
397
+ + how long the pause between two demonstration cycle should be (`pause`).
394
398
 
395
399
  ```yaml
396
400
  conference:
397
401
  live:
398
- time_stop: 240 # in minutes
402
+ stop: 240 # in minutes
399
403
  streaming:
400
- time_pause: 60 # in minutes
401
- time_prepend: 5 # in minutes
402
- time_extend: 5 # in minutes
403
- demo: false
404
+ enable: true
405
+ pause: 60 # in minutes
406
+ prepend: 5 # in minutes
407
+ extend: 5 # in minutes
408
+ demo:
409
+ enable: false
410
+ duration: 300 # in seconds
411
+ pause: 10 # in seconds
404
412
  ```
405
413
 
406
414
  ### Map
@@ -495,11 +503,11 @@ Example:
495
503
 
496
504
  {% include js/conference.js %}
497
505
 
498
- (function() {
499
- let map = window.conference.map;
506
+ (() => {
507
+ const map = window.conference.map;
500
508
 
501
509
  if (typeof map !== 'undefined') {
502
- var main_station = L.marker([47.37785, 8.54035], {
510
+ let main_station = L.marker([47.37785, 8.54035], {
503
511
  icon: L.divIcon({
504
512
  className: '',
505
513
  html: '<span class="fas fa-train"></span> Main Station',
@@ -590,7 +598,8 @@ Each talk is represented by a file in the `_talks/` directory. It must begin wit
590
598
  - the talk's `name` (used as identifier),
591
599
  - one or more existing `speakers` name(s),
592
600
  - optionally one or more `categories` of which one should be a main category as defined in the site's configuration,
593
- - optionally a list of `links` (see the _Links_ subsection below for the available properties per link; links with icons are treated separately and are also included on the talk overview page), and
601
+ - optionally a list of `links` (see the _Links_ subsection below for the available properties per link; links with icons are treated separately and are also included on the talk overview page),
602
+ - optionally a list of `live: links` (see the _Links_ subsection below for the available properties per link) which are shown below the live stream for the given talk in form of buttons, and
594
603
  - optionally `hide: true` if the talk's page should not be linked to.
595
604
 
596
605
  ### Speakers
@@ -611,7 +620,22 @@ Each room is represented by a file in the `_rooms/` directory. It must begin wit
611
620
 
612
621
  - the room's `name`
613
622
  - optionally `hide: true` if the room's page should not be linked to, and
614
- - optionally a URL pointing to a live stream for the given room during the conference (`live`, see the section _Live Indications & Streaming_ above).
623
+ - optionally under the `live` property a URL pointing to a live stream for the given room during the conference (see the section _Live Indications & Streaming_ above), either:
624
+ * as an `absolute_url`, or
625
+ * a `relative_url`.
626
+
627
+ Example:
628
+
629
+ ```yaml
630
+ ---
631
+ name: The Room
632
+ hide: false
633
+ live:
634
+ absolute_url: https://github.com
635
+ ---
636
+
637
+ ...
638
+ ```
615
639
 
616
640
  ### Links
617
641
 
@@ -1,32 +1,42 @@
1
- // Global app variable
2
- window.conference = {};
1
+ // Libraries
2
+ // Bootstrap (Style Framework)
3
+ {% include js/lib/jquery-3.5.1.min.js %}
4
+ {% include js/lib/popper.min.js %}
5
+ {% include js/lib/bootstrap.js %}
3
6
 
4
- // Bootstrap (Style Framework)
5
- {% include js/jquery-3.5.1.min.js %}
6
- {% include js/popper.min.js %}
7
- {% include js/bootstrap.js %}
7
+ // FontAwesome (Icons)
8
+ // Imported via CSS and webfonts
9
+
10
+ // Conference
11
+ window.conference = {
12
+ config: {
13
+ baseurl: '{{ site.baseurl }}'
14
+ }
15
+ };
8
16
 
9
- // FontAwesome (Icons)
10
- // Imported via CSS and webfonts
11
17
 
12
18
  // Program
13
- {% include js/conference-program.js %}
19
+ {% include js/lib/syncscroll.js %}
20
+ {% include js/program.js %}
14
21
 
15
22
  // Leaflet (Map Display)
16
23
  {% include partials/get_enable_map.html %}
17
24
  {% if enable_map %}
18
- {% include js/leaflet.js %}
19
- {% include js/leaflet-easybutton.js %}
20
- {% include js/leaflet-locatecontrol.js %}
21
- {% include js/leaflet-providers.js %}
25
+ {% include js/lib/leaflet.js %}
26
+ {% include js/lib/leaflet-easybutton.js %}
27
+ {% include js/lib/leaflet-locatecontrol.js %}
28
+ {% include js/lib/leaflet-providers.js %}
22
29
 
23
- {% include js/conference-map.js %}
30
+ {% include js/map.js %}
24
31
  {% endif %}
25
32
 
26
33
  // Modals ("Popups")
27
- {% include js/conference-modal.js %}
34
+ {% include js/modal.js %}
28
35
 
29
36
  // Live and Streaming
30
37
  {% if site.conference.live %}
31
- {% include js/conference-live.js %}
38
+ {% include js/live.js %}
32
39
  {% endif %}
40
+
41
+ // Load configuration and start initialization
42
+ {% include js/init.js %}
@@ -0,0 +1,37 @@
1
+ const init = () => {
2
+ // Load configuration
3
+ const request = new Request(window.conference.config.baseurl + '/assets/js/config.json');
4
+
5
+ fetch(request)
6
+ .then(response =>
7
+ response.json()
8
+ )
9
+ .then(config => {
10
+ // Add configuration to global scope
11
+ window.conference.config = Object.assign(window.conference.config, config);
12
+
13
+ // Execute initialization functions
14
+ for (const [name, module] of Object.entries(window.conference)) {
15
+ if (name == 'config') {
16
+ continue;
17
+ }
18
+
19
+ let c;
20
+ if (name in config) {
21
+ c = config[name];
22
+ }
23
+ let l;
24
+ if (name in config.lang) {
25
+ l = config.lang[name];
26
+ }
27
+
28
+ module.init(c, l)
29
+ }
30
+
31
+ })
32
+ .catch((error) => {
33
+ console.log(error);
34
+ });
35
+ };
36
+
37
+ init();
File without changes
File without changes
File without changes
File without changes