Skip to content

Commit 2bff51a

Browse files
committed
[site] make program title dynamic
1 parent 9a43083 commit 2bff51a

File tree

3 files changed

+250
-265
lines changed

3 files changed

+250
-265
lines changed
Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
{{- $.Scratch.Set "first" "true" -}}
2+
{{- with .Params.icons -}}
3+
{{- $.Scratch.Set "icons" (. | upper ) -}}
4+
{{- end -}}
5+
{{- $e := partial "functions/get-event-data" . -}}
6+
{{- $p := index $.Site.Data.events (index (split (.Permalink | relURL) "/") 2) "program" -}}
7+
{{ if eq $p nil }}
8+
{{ $p = $e }}
9+
{{ end }}
10+
{{- if $e.startdate -}}
11+
{{/* {{- range where $.Site.Pages "Type" "talk" -}} */}}
12+
{{ if (where (readDir (printf "content/events/%s/" $e.name)) "Name" "program") }}
13+
{{ range os.ReadDir (printf "content/events/%s/program/" $e.name) }}
14+
{{ $filename := (printf "/events/%s/program/%s" $e.name .Name) }}
15+
{{/* {{ with $.Site.GetPage (printf "content/events/2022-chicago/program/%s" .Name) }} */}}
16+
{{ with $.Site.GetPage $filename }}
17+
{{/* {{- $talk_path := split .File.Path .Site.Params.PathSeparator -}} */}}
18+
{{- if eq (index (split (.Permalink | relURL) "/") 2) $e.name -}}
19+
{{- $.Scratch.Set "base_file_name" .File.BaseFileName -}}
20+
{{- $.Scratch.Set .File.BaseFileName .Title -}}
21+
{{- with .Params.vimeo -}}
22+
{{- $.Scratch.Set (printf "%s-video_link" ($.Scratch.Get "base_file_name")) (printf "https://player.vimeo.com/video/%s" .) }}
23+
{{- end -}}
24+
{{- with .Params.youtube -}}
25+
{{- $.Scratch.Set (printf "%s-video_link" ($.Scratch.Get "base_file_name")) (printf "https://www.youtube.com/embed/%s" .) }}
26+
{{- end -}}
27+
{{- with .Params.speakerdeck -}}
28+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) . }}
29+
{{- end -}}
30+
{{- with .Params.slideshare -}}
31+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) . }}
32+
{{- end -}}
33+
{{- with .Params.googleslides -}}
34+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) (printf "https://docs.google.com/presentation/d/%s" .) }}
35+
{{- end -}}
36+
{{- with .Params.pdf -}}
37+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) . }}
38+
{{- end -}}
39+
{{- with .Params.notist -}}
40+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) (printf "https://noti.st/%s" .) }}
41+
{{- end -}}
42+
{{- with .Params.slideslive -}}
43+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) (printf "https://slideslive.com/%s" .) }}
44+
{{- end -}}
45+
{{- with .Params.slides -}}
46+
{{- $.Scratch.Set (printf "%s-slides_link" ($.Scratch.Get "base_file_name")) . }}
47+
{{- end -}}
48+
{{- if isset .Params "speakers" -}}
49+
{{- if ne .Params.speakers "" -}}
50+
{{- $.Scratch.Set "speaker_len" (.Params.speakers | len) -}}
51+
{{- $.Scratch.Set "speaker_count" 0 -}}
52+
{{- end -}}
53+
{{- end -}}
54+
{{- range .Params.speakers -}}
55+
{{- $.Scratch.Set "speaker_count" (add ($.Scratch.Get "speaker_count") 1) -}}
56+
{{- $.Scratch.Set "speakername" . -}}
57+
{{/* {{- range where $.Site.Pages "Type" "speaker" -}}
58+
{{- if eq (index (split (.Permalink | relURL) "/") 2) $e.name -}} */}}
59+
{{ if (where (readDir (printf "content/events/%s/" $e.name)) "Name" "speakers") }}
60+
{{ range os.ReadDir (printf "content/events/%s/speakers/" $e.name) }}
61+
{{ $filename := (printf "/events/%s/speakers/%s" $e.name .Name) }}
62+
{{ with $.Site.GetPage $filename }}
63+
{{- if eq .File.BaseFileName ($.Scratch.Get "speakername") -}}
64+
{{- $.Scratch.Add (printf "%s-speaker" ($.Scratch.Get "base_file_name")) .Title -}}
65+
{{- if ne ($.Scratch.Get "speaker_count") ($.Scratch.Get "speaker_len") -}}
66+
{{- $.Scratch.Add (printf "%s-speaker" ($.Scratch.Get "base_file_name")) ", " -}}
67+
{{- end -}}
68+
{{- end -}}
69+
{{- end -}}
70+
{{- end -}}
71+
{{- end -}}
72+
{{- end -}}
73+
{{- end -}}
74+
<!-- end if eq $talk_slug $e.name -->
75+
{{- end -}}
76+
{{- end -}}
77+
{{- end -}}
78+
<!-- end range where $.Site.Pages "Type" "speaker" -->
79+
<!-- Get the dates for the program -->
80+
{{- with $p -}}
81+
{{- range .program -}}
82+
{{- $.Scratch.SetInMap "dates" .date .date -}}
83+
{{- end -}}
84+
{{- end -}}
85+
<!-- new experimental program end -->
86+
{{- if or $e.timeoffset $e.timezone -}}
87+
<script>
88+
var userLang = navigator.language || navigator.userLanguage;
89+
var date = new Date();
90+
var userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
91+
var userTimeAbbreviation = Intl.DateTimeFormat(userLang,{ timeZone: userTimeZone, timeZoneName: 'short' }).formatToParts().find(part => part.type==='timeZoneName').value;
92+
</script>
93+
{{- end -}}
94+
{{- if $e.timezone -}}
95+
<script>
96+
var eventTimeOffset = (Intl.DateTimeFormat(userLang,{ timeZone: "{{ $e.timezone }}", timeZoneName: 'longOffset' }).formatToParts().find(part => part.type==='timeZoneName').value).slice(3,99);
97+
var eventTimeAbbreviation = Intl.DateTimeFormat(userLang,{ timeZone: "{{ $e.timezone }}", timeZoneName: 'short' }).formatToParts().find(part => part.type==='timeZoneName').value;
98+
</script>
99+
{{- end -}}
100+
<div class="row">
101+
<div class="col">
102+
<div id="accordion" role="tablist" aria-multiselectable="true">
103+
{{- range ($.Scratch.GetSortedMapValues "dates") -}}
104+
{{- $.Scratch.Set "date" . -}}
105+
{{- with $p -}}
106+
{{- if .program -}}
107+
<div class="card">
108+
<div class="card-header" role="tab" id="{{printf "headingOne-%s" ($.Scratch.Get "date") }}">
109+
<h5 class="mb-0">
110+
{{- dateFormat "January 2, 2006" ($.Scratch.Get "date") -}}
111+
</a>
112+
</h5>
113+
</div>
114+
<div id='{{printf "#collapse-%s" ($.Scratch.Get "date") }}" class="collapse show" role="tabpanel" aria-labelledby="{{printf "headingOne-%s" ($.Scratch.Get "date") }}'>
115+
<div class="card-block">
116+
<div class="row">
117+
<div class="col-lg-6">
118+
{{- $program := (where .program "date" ($.Scratch.Get "date")) -}}
119+
{{- $program_len := (len $program) -}}
120+
{{- $.Scratch.Set "program_len" $program_len -}}
121+
{{- $.Scratch.Set "program_counter" 0 -}}
122+
{{- range where .program "date" ($.Scratch.Get "date") -}}
123+
{{- $.Scratch.Set "program_counter" (add ($.Scratch.Get "program_counter") 1) -}}
124+
<div class = "row program-row">
125+
<div class="col-lg-3 col-md-3 program-element {{ printf "program-%s" .type }}" {{ if .background_color }}style="background-color: {{ .background_color }}"{{end}}>
126+
{{ .start_time }}
127+
-
128+
{{ .end_time }}
129+
{{- if $e.timezone -}}
130+
&nbsp;<script>document.write(eventTimeAbbreviation)</script>
131+
{{- end -}}
132+
{{- if or $e.timeoffset $e.timezone -}}
133+
<br>
134+
{{- if $e.timeoffset -}}
135+
<script>
136+
var localstarttime = new Date("{{- dateFormat "2006-01-02" ($.Scratch.Get "date") -}}T"+{{- .start_time -}}+":00"+{{- $e.timeoffset -}});
137+
var localendtime = new Date("{{- dateFormat "2006-01-02" ($.Scratch.Get "date") -}}T"+{{- .end_time -}}+":00"+{{- $e.timeoffset -}});
138+
</script>
139+
{{- end -}}
140+
{{- if not $e.timeoffset -}}
141+
<script>
142+
var localstarttime = new Date("{{- dateFormat "2006-01-02" ($.Scratch.Get "date") -}}T"+{{ .start_time }}+":00"+eventTimeOffset);
143+
var localendtime = new Date("{{- dateFormat "2006-01-02" ($.Scratch.Get "date") -}}T"+{{ .end_time }}+":00"+eventTimeOffset);
144+
</script>
145+
{{- end -}}
146+
<script>
147+
document.write("<strong>");
148+
document.write(String(localstarttime.getHours()).padStart(2,"0")+":"+String(localstarttime.getMinutes()).padStart(2,"0"));
149+
document.write("&nbsp;-&nbsp;");
150+
document.write(String(localendtime.getHours()).padStart(2,"0")+":"+String(localendtime.getMinutes()).padStart(2,"0"));
151+
document.write("&nbsp;");
152+
document.write(userTimeAbbreviation);
153+
document.write("</strong>");
154+
</script>
155+
{{- end -}}
156+
</div>
157+
<div class="col-lg-8 col-md-6 program-element {{ printf "program-%s" .type }}" {{ if .background_color }}style="background-color: {{ .background_color }}"{{end}}>
158+
{{- if eq .type "custom" -}}
159+
{{- if .custom_url -}}
160+
<a href="{{ .custom_url | safeURL }}">{{ .title }}<br/></a>
161+
{{- else -}}
162+
{{ .title }}<br/>
163+
{{- end -}}
164+
{{- if .comments -}}
165+
<span class="program-page-desc">{{ .comments | markdownify }}<br/></span>
166+
{{- end -}}
167+
{{- else if or (eq .type "talk") (eq .type "workshop") -}}
168+
{{- if .custom_url -}}
169+
<a href="{{ .custom_url | safeURL }}">{{ $.Scratch.Get (printf "%s-speaker" .title) }} - {{ $.Scratch.Get .title }}</a><br/>
170+
{{- else -}}
171+
<a href='{{ (printf "/events/%s/program/%s" $e.name .title) }}'>{{ $.Scratch.Get (printf "%s-speaker" .title) }} - {{ $.Scratch.Get .title }}</a><br/>
172+
{{- end -}}
173+
{{- if eq ($.Scratch.Get "icons") "TRUE" -}}
174+
{{- with ($.Scratch.Get (printf "%s-video_link" .title)) -}}&nbsp;<a href="{{ . }}"><i class="fa fa-video-camera" aria-hidden="true"></i></a>&nbsp;{{- end -}}
175+
{{- with ($.Scratch.Get (printf "%s-slides_link" .title)) -}}&nbsp;<a href="{{ . }}"><i class="fa fa-file-text-o" aria-hidden="true"></i></a>&nbsp;{{- end -}}
176+
{{- end -}}
177+
{{- if .comments -}}
178+
<span class="program-page-desc">{{ .comments | markdownify }}<br/></span>
179+
{{- end -}}
180+
{{- else if eq .type "ignite" -}}
181+
{{ .title }}
182+
<!-- new ignite code start -->
183+
<ul class = "list-unstyled">
184+
{{- if .block -}}
185+
{{- $block := .block -}}
186+
{{- range $p.ignites -}}
187+
{{- if eq .block $block -}}
188+
<li>
189+
<a href="/events/{{ $e.name }}/program/{{ .title }}">{{ $.Scratch.Get (printf "%s-speaker" .title) }} - {{ $.Scratch.Get .title }}</a>
190+
{{- if eq ($.Scratch.Get "icons") "TRUE" -}}
191+
{{- with ($.Scratch.Get (printf "%s-video_link" .title)) -}}&nbsp;<a href="{{ . }}"><i class="fa fa-video-camera" aria-hidden="true"></i></a>&nbsp;{{- end -}}
192+
{{- with ($.Scratch.Get (printf "%s-slides_link" .title)) -}}&nbsp;<a href="{{ . }}"><i class="fa fa-file-text-o" aria-hidden="true"></i></a>&nbsp;{{- end -}}
193+
{{- end -}}
194+
</li>
195+
{{- end -}}
196+
{{- end -}}
197+
{{- else -}}
198+
{{- range where $p.ignites "date" ($.Scratch.Get "date") -}}
199+
{{- if not .block -}}
200+
<li>
201+
<a href="/events/{{ $e.name }}/program/{{ .title }}">{{ $.Scratch.Get (printf "%s-speaker" .title) }} - {{ $.Scratch.Get .title }}</a>
202+
{{- if eq ($.Scratch.Get "icons") "TRUE" -}}
203+
{{- with ($.Scratch.Get (printf "%s-video_link" .title)) -}}&nbsp;<a href="{{ . }}"><i class="fa fa-video-camera" aria-hidden="true"></i></a>&nbsp;{{- end -}}
204+
{{- with ($.Scratch.Get (printf "%s-slides_link" .title)) -}}&nbsp;<a href="{{ . }}"><i class="fa fa-file-text-o" aria-hidden="true"></i></a>&nbsp;{{- end -}}
205+
{{- end -}}
206+
</li>
207+
{{- end -}}
208+
{{- end -}}
209+
{{- end -}}
210+
</ul>
211+
<!-- new ignite code end -->
212+
<!-- do open-space stuff here -->
213+
{{- else if (eq .type "open-space") -}}
214+
{{- if .custom_url -}}
215+
<a href="{{ .custom_url | safeURL }}">{{ .title }}</a><br/>
216+
{{- else -}}
217+
<a href="/open-space-format/">{{ .title }}</a><br/>
218+
{{- end -}}
219+
{{- else -}}
220+
{{ .title }}
221+
{{- end -}}
222+
</div>
223+
</div>
224+
{{- if eq (div ($.Scratch.Get "program_len") 2) ($.Scratch.Get "program_counter") -}}
225+
</div>
226+
<div class="col-lg-6">
227+
{{- end -}}
228+
{{- end -}}
229+
{{- end -}}
230+
{{- end -}}
231+
</div>
232+
</div>
233+
</div>
234+
</div>
235+
</div>
236+
{{- end -}}
237+
</div>
238+
</div>
239+
</div>
240+
<!--end row-->
241+
</div>
242+
</div>
243+
{{- end -}}

0 commit comments

Comments
 (0)