jekyll-theme-conference 3.3.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32623dfa5fc548002ea9f1e8dac8b1e4c5833d33e6619bce8f77ea54c8080dc6
4
- data.tar.gz: 565f13adc6ec08fab3a2240a8ef1adf0562454f1a4d9c58585c173d9ca583ecd
3
+ metadata.gz: 50470940d27a0744cdf32312e829e73af0c6375241575e6eb074695edfee7028
4
+ data.tar.gz: 1444781b0f41ffc7d267fe324b9cfabb5afd709ee27c24d95bd6b34d02d57060
5
5
  SHA512:
6
- metadata.gz: bb1d8eae3fd5e858a24977bc77aafeebe6cdca657d4d0222afbcd40e0c4fe0011b13cacba8217cd32a68b7d6fd5fbda2756829f80bc44c601ad71aa79cc4ae36
7
- data.tar.gz: fc2f250efcff400fbc2a96243d9f63f7659a1b071eae24391c1e6820f4cf03a63db4d43b119e0e38861423d48ab511c57dd184296d67d822756450ce4164c4c3
6
+ metadata.gz: 872ad7d006fbcb1c552dc863982d037e3eb9ba2ca8e8aab9d785d9e55ba0651c19c367ce03a0280317947e5ad2352b40eefc66a47e6bb5e3cbc1a3c36d298d91
7
+ data.tar.gz: 8000b8d73b08f71554efad482cd8cf5518db22b01fc3828c985b669e5b013819785f4c41369ef5007ea375bf49f0b5b2195864e79d88c9d55bb089c9b5149388
data/README.md CHANGED
@@ -32,6 +32,7 @@ The theme was originally created for the yearly Winterkongress conference of the
32
32
  * [Collection URLs](#collection-urls)
33
33
  * [Language](#language)
34
34
  * [Navigation Bar](#navigation-bar)
35
+ * [Open Graph Link Preview](#open-graph-link-preview)
35
36
  * [Main Landing Page](#main-landing-page)
36
37
  * [Information Boxes](#information-boxes)
37
38
  * [Live Indications & Streaming](#live-indications---streaming)
@@ -169,7 +170,7 @@ In case you do not want to install the entire Ruby/Jekyll toolchain on your mach
169
170
 
170
171
  - `build.yml`: automatically builds and minimizes the website upon adding a new tag starting with a `v` (e.g. `v2020.01.01`). It then attaches the generated website as an archive to a release for easy downloading. Requires `purgecss.config.js` to be copied to the project's root too.
171
172
  - `test.yml`: automatically tries to build the website upon a new pull request. It can thus be used as status check before merging.
172
- - `schedule.yml`: automatically generates the schedule and content files when a new pull request contains a `schedule.json` file (see the _Automatic Import_subsection above). Thus, it allows quick updates of the site's content from [pretalx.com](https://pretalx.com/p/about/) exports.
173
+ - `schedule.yml`: automatically generates the schedule and content files when a new pull request contains a `schedule.json` file (see the _Automatic Import_ subsection above). Thus, it allows quick updates of the site's content from [pretalx.com](https://pretalx.com/p/about/) exports.
173
174
 
174
175
  To get started, simply copy the desired workflow file to your repository and adapt it to your needs:
175
176
 
@@ -283,9 +284,32 @@ conference:
283
284
  ...
284
285
  logo:
285
286
  name: Magic Organisation
287
+ img: 'logo.svg' # inside /assets/images/
286
288
  url: 'https://github.com'
287
289
  ```
288
290
 
291
+ ### Open Graph Link Preview
292
+
293
+ The theme automatically includes the necessary `<meta>` tags to ease link previewing when sharing links based on the [Open Graph protocol](https://ogp.me/) and [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards). These tags control how a link is presented when shared via different platform and apps. In order to disable these `<meta>` tags add the `disable: true` setting (default: `false`) to the `link_preview` property.
294
+
295
+ In order to generate a meaningful description for each of the links, the preposition for the conference title as given under the `title` property can be defined by using the `preposition` property. For example, if `title` is set to "Conference 2020" the corresponding `preposition` would be "at". The template can then use it to generate descriptions such as "Talk *at* Conference 2020".
296
+
297
+ Optionally, an image which is shown as preview for all links can be specified. For sharing via Open Graph an image ratio of 1.91:1 and an ideal size of 1200x630 pixel is recommended. For sharing via Twitter an image ratio of 1:1 and a minimal size of 600x600 pixel (better 1200x1200 pixel) is recommended. SVG image files are not supported. It is activate through the `img` property under the `link_preview` property containing an image file shown for Open Graph (`open_graph`) and on the Twitter Cards (`twitter`), whereby the path to the image file relative to the `/assets/images/` folder has to be specified.
298
+
299
+ ```yaml
300
+ title: Conference 2020
301
+ preposition: 'at'
302
+
303
+ ...
304
+
305
+ conference:
306
+ link_preview:
307
+ disable: false
308
+ img:
309
+ twitter: 'twitter_preview.png' # inside /assets/images/
310
+ open_graph: 'facebook_preview.png' # inside /assets/images/
311
+ ```
312
+
289
313
  ### Main Landing Page
290
314
 
291
315
  The main landing page is shown at the root of the website to greet new visitors. In order to show it you need to create a `index.md` file in the root of your website's folder and specify its layout as `layout: main`. The remaining customizations are specified in the `_config.yml` file.
@@ -695,6 +719,15 @@ Custom Bootstrap themes or simple color schemes such as designed with [Bootstrap
695
719
  2. Add your Bootstrap variables in front of the `@import 'conference'` line, e.g. currently the primary color is set internally to green (instead of Bootstrap's default blue): `$primary: #074 !default;`
696
720
  3. Add any additional CSS styles after it.
697
721
 
722
+ ## Development
723
+
724
+ If you want to modify this theme and see its changes on an existing project, simply indicate in your `Gemfile` that you want to use the local copy of the theme by adding a `path` indication after the gem instantiation:
725
+
726
+ ```ruby
727
+ group :jekyll_plugins do
728
+ gem "jekyll-theme-conference", path: "../[path to your local theme]"
729
+ end
730
+ ```
698
731
 
699
732
  ## License
700
733
 
@@ -4,7 +4,7 @@
4
4
  {%- unless site.conference.lang == "en" -%}
5
5
  {%- assign errors = errors | push : "The internationalization file containing different strings for this template seems to be missing. Have you copied the `_data/lang.yml` file from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/master/_data/lang.yml) to you local website folder?" -%}
6
6
  {%- endunless -%}
7
- {%- elsif site.data.lang.version != 6 -%}
7
+ {%- elsif site.data.lang.version != 7 -%}
8
8
  {%- assign errors = errors | push : "The internationalization file in `_data/lang.yml` seems to be outdated and does not correspond to the current version of the theme. Grab the current version from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/master/_data/lang.yml)." -%}
9
9
  {%- endunless -%}
10
10
  {%- unless site.conference.lang == "en" or site.conference.lang == "de" or site.conference.lang == "fr" or site.conference.lang == "pt" -%}
@@ -0,0 +1,23 @@
1
+ {%- unless site.preposition == empty -%}
2
+ {%- assign preposition = site.preposition -%}
3
+ {%- else -%}
4
+ {%- assign preposition = '-' -%}
5
+ {%- endunless -%}
6
+
7
+ {%- capture page_description -%}
8
+ {%- if page.layout == 'talk' -%}
9
+ {{ site.data.lang[site.conference.lang].talk.title | default: 'Talk' }} {{ site.data.lang[site.conference.lang].pronoun.by | default: 'by'}} {% include partials/list_speakers.html text_only=true %} {{ preposition }} {{ site.title }}
10
+ {%- elsif page.layout == 'speaker' -%}
11
+ {{ site.data.lang[site.conference.lang].speaker.title | default: 'Speaker' }} {{ preposition }} {{ site.title }}
12
+ {%- elsif site.description -%}
13
+ {{ site.description }}
14
+ {%- endif -%}
15
+ {%- endcapture -%}
16
+
17
+ {%- if page_description.empty and include.default -%}
18
+ {%- assign page_description = include.default -%}
19
+ {%- endif -%}
20
+
21
+ {%- if include.replace_quotes -%}
22
+ {%- assign page_description = page_description | replace: '"', "'" -%}
23
+ {%- endif -%}
@@ -0,0 +1,33 @@
1
+ {%- capture page_title -%}
2
+ {%- if page.layout == 'room' -%}
3
+ {{- page.name -}}
4
+ {%- elsif page.layout == 'speaker' -%}
5
+ {{- page.first_name }} {{ page.last_name -}}
6
+ {%- elsif page.layout == 'talk' -%}
7
+ {{- page.name -}}
8
+
9
+ {%- elsif page.title -%}
10
+ {{- page.title -}}
11
+
12
+ {%- else -%}
13
+ {%- if page.layout == 'location' -%}
14
+ {{- site.data.lang[site.conference.lang].location.title | default: "Location" -}}
15
+ {%- elsif page.layout == 'program' -%}
16
+ {{- site.data.lang[site.conference.lang].program.title | default: "Program" -}}
17
+ {%- elsif page.layout == 'speaker-overview' -%}
18
+ {{- site.data.lang[site.conference.lang].speaker.overview | default: "Speakers" -}}
19
+ {%- elsif page.layout == 'stream-overview' -%}
20
+ {{ site.data.lang[site.conference.lang].live.stream | default: "Live Streams" }}
21
+ {%- elsif page.layout == 'talk-overview' -%}
22
+ {{- site.data.lang[site.conference.lang].talk.overview | default: "Talks" -}}
23
+ {%- endif -%}
24
+ {%- endif -%}
25
+ {%- endcapture -%}
26
+
27
+ {%- if page_title == empty and include.default -%}
28
+ {%- assign page_title = include.default -%}
29
+ {%- endif -%}
30
+
31
+ {%- if include.replace_quotes -%}
32
+ {%- assign page_title = page_title | replace: '"', "'" -%}
33
+ {%- endif -%}
@@ -5,16 +5,19 @@
5
5
  <meta charset="utf-8" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
 
8
+ {% include partials/get_page_title.html -%}
8
9
  <title>
9
- {% unless page.name contains '.' %}{{ page.name }} - {% else %}{% if page.title %}{{ page.title }} - {% endif %}{% endunless %}{{ site.title }}
10
+ {{- page_title -}}
11
+ {%- unless page_title == empty %} - {% endunless -%}
12
+ {{- site.title -}}
10
13
  </title>
11
- <meta name="description" content="{{ site.description }}" />
14
+ {% include partials/list_page_meta.html %}
12
15
 
13
16
  <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css?t={{ site.time | date: "%s" }}" />
14
17
 
15
18
  <link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-regular-400.woff2" type="font/woff2" crossorigin="anonymous" />
16
19
  <link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-solid-900.woff2" type="font/woff2" crossorigin="anonymous" />
17
- {% if site.conference.live -%}
20
+ {%- if site.conference.live %}
18
21
  <link rel="prefetch" as="image" href="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml" crossorigin="anonymous" />
19
22
  <link rel="prefetch" as="fetch" href="{{ site.baseurl }}/assets/js/data.json" type="application/json" crossorigin="anonymous" />
20
23
  {%- endif %}
@@ -0,0 +1,23 @@
1
+ {% unless site.conference.link_preview.disable -%}
2
+ {%- include partials/get_page_title.html default=site.title replace_quotes=true -%}
3
+ {%- include partials/get_page_description.html default=site.title replace_quotes=true -%}
4
+
5
+ <meta name="description" content="{{ page_description }}" />
6
+
7
+ <meta name="twitter:card" content="summary" />
8
+ {%- if site.conference.link_preview.img and site.conference.link_preview.img.twitter %}
9
+ <meta name="twitter:image" content="{{ site.conference.link_preview.img.twitter | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
10
+ {%- endif %}
11
+ <meta name="twitter:title" content="{{ page_title }}" />
12
+ <meta name="twitter:description" content="{{ page_description }}" />
13
+
14
+ <meta property="og:site_name" content="{{ site.title }}" />
15
+ {%- if site.conference.link_preview.img and site.conference.link_preview.img.open_graph %}
16
+ <meta property="og:image" content="{{ site.conference.link_preview.img.open_graph | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
17
+ {%- endif %}
18
+ <meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url }}" />
19
+ <meta property="og:title" content="{{ page_title }}" />
20
+ <meta property="og:description" content="{{ page_description }}" />
21
+ <meta property="og:type" content="website" />
22
+
23
+ {%- endunless %}
@@ -1,4 +1,4 @@
1
- {%- for speaker_name in talk.speakers -%}
1
+ {% for speaker_name in talk.speakers -%}
2
2
  {%- assign speaker = site.speakers | where: 'name', speaker_name | first -%}
3
3
  {%- if site.conference.speakers.show_firstname -%}
4
4
  {%- assign speaker_short = speaker.first_name | append: ' ' | append: speaker.last_name -%}
@@ -6,11 +6,17 @@
6
6
  {%- assign speaker_short = speaker.first_name | slice: 0 | append : '. ' | append: speaker.last_name -%}
7
7
  {%- endif -%}
8
8
 
9
- {%- if speaker.hide -%}
10
- {{ speaker_short }}
9
+ {%- if speaker.hide or include.text_only -%}
10
+ {{- speaker_short -}}
11
11
  {%- else -%}
12
- <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">{{ speaker_short }}</a>
12
+ <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">
13
+ {{- speaker_short -}}
14
+ </a>
13
15
  {%- endif -%}
14
- {%- if forloop.last != true %}, {% endif -%}
16
+
17
+ {%- unless forloop.last %}
18
+ {%- assign forloop_index_before_last = talk.speakers.size | minus: 1 -%}
19
+ {% if forloop.index == forloop_index_before_last and include.text_only %} {{ site.data.lang[site.conference.lang].pronoun.and | default: 'and' }} {% else %}, {% endif -%}
20
+ {%- endunless -%}
15
21
 
16
22
  {%- endfor -%}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-conference
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorenz Schmid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-01 00:00:00.000000000 Z
11
+ date: 2022-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -83,12 +83,15 @@ files:
83
83
  - _includes/partials/get_link_types.html
84
84
  - _includes/partials/get_live_timestamps.html
85
85
  - _includes/partials/get_main_category.html
86
+ - _includes/partials/get_page_description.html
87
+ - _includes/partials/get_page_title.html
86
88
  - _includes/partials/get_talk_time.html
87
89
  - _includes/partials/get_talk_timestamp.html
88
90
  - _includes/partials/get_time_pronoun.html
89
91
  - _includes/partials/header.html
90
92
  - _includes/partials/info_bar.html
91
93
  - _includes/partials/list_categories.html
94
+ - _includes/partials/list_page_meta.html
92
95
  - _includes/partials/list_speakers.html
93
96
  - _includes/partials/list_sub_categories.html
94
97
  - _includes/partials/modal_link.html
@@ -280,7 +283,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
280
283
  - !ruby/object:Gem::Version
281
284
  version: '0'
282
285
  requirements: []
283
- rubygems_version: 3.2.22
286
+ rubygems_version: 3.2.32
284
287
  signing_key:
285
288
  specification_version: 4
286
289
  summary: Jekyll template for a conference website containing program, speaker, talks