Skip to content

Commit c65f4ab

Browse files
committed
✨ Add presentation on rewriting git history
1 parent c5c37a8 commit c65f4ab

32 files changed

Lines changed: 1724 additions & 0 deletions
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/.quarto/
2+
output
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
title: Reveal.js quarto extension with corporate identity of the Flemish government
2+
author: Thierry Onkelinx
3+
version: 0.0.1
4+
contributes:
5+
knitr:
6+
opts_chunk:
7+
echo: false
8+
message: false
9+
warning: false
10+
fig-height: 5.7
11+
fig-width: 12
12+
formats:
13+
revealjs:
14+
theme: [default, slides.scss]
15+
css: entity.css
16+
transition: convex
17+
width: 1244
18+
height: 700
19+
navigation-mode: vertical
20+
controls-layout: bottom-right
21+
controls-tutorial: true
22+
slide-number: c/t
23+
show-slide-number: all
24+
slide-level: 2
25+
email-obfuscation: javascript
26+
embed-resources: true
27+
chalkboard: false
28+
preview-links: true
29+
output-file: index.html
30+
df-print: kable
31+
progress: true
32+
csl: research-institute-for-nature-and-forest.csl
33+
template: partials/template.html
34+
template-partials:
35+
- partials/title-slide.html
36+
format-resources:
37+
- research-institute-for-nature-and-forest.csl
38+
- css/entity.css
39+
- fonts/FlandersArtSans-Bold.ttf
40+
- fonts/FlandersArtSans-Light.ttf
41+
- fonts/FlandersArtSans-Medium.ttf
42+
- fonts/FlandersArtSans-Regular.ttf
43+
- fonts/Inconsolata-Bold.ttf
44+
- fonts/Inconsolata-Light.ttf
45+
- fonts/Inconsolata-Medium.ttf
46+
- fonts/Inconsolata-Regular.ttf
47+
- img/flanders-en-intermediate.png
48+
- img/flanders-en-slide.png
49+
- img/flanders-en-title.png
50+
- img/flanders-nl-intermediate.jpg
51+
- img/flanders-nl-slide.jpg
52+
- img/flanders-nl-transparent.png
53+
- img/flanders-nl-title.png
54+
- img/inbo-en-black.jpg
55+
- img/inbo-en-title.png
56+
- img/inbo-en-white.png
57+
- img/inbo-nl-black.png
58+
- img/inbo-nl-title.png
59+
- img/inbo-nl-white.png
60+
filters:
61+
- filters/translations.lua
62+
- filters/url.lua
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
.trapezium {
2+
background: var(--flandersqmd-level1-trapezium);
3+
}
4+
5+
.reveal h1, .reveal h1 code {
6+
color: var(--flandersqmd-level1-colour);
7+
}
8+
9+
.reveal h2, .reveal h2 code {
10+
color: var(--flandersqmd-level2-colour);
11+
}
12+
13+
.reveal .title, .reveal .title code {
14+
color: var(--flandersqmd-title-colour);
15+
}
16+
17+
.sidebar {
18+
background-color: var(--flandersqmd-sidebar-bg);
19+
}
20+
21+
.sidebar-tussen {
22+
background-color: var(--flandersqmd-level1-bg);
23+
}
24+
25+
.sidebar-url {
26+
color: var(--flandersqmd-sidebar-colour);
27+
}
28+
29+
.sidebar-url-tussen {
30+
color: var(--flandersqmd-sidebar-tussen-colour);
31+
}
32+
33+
.title-entity {
34+
color: var(--flandersqmd-title-border);
35+
}
36+
37+
caption {
38+
color: var(--flandersqmd-level2-colour);
39+
}
40+
41+
figcaption {
42+
color: var(--flandersqmd-level2-colour);
43+
}
44+
45+
.reveal .slide aside, .reveal .slide div.aside {
46+
color: var(--flandersqmd-footnote);
47+
}
48+
49+
.panel-tabset [role=tablist] {
50+
border-bottom-color: var(--flandersqmd-border);
51+
}
52+
53+
.panel-tabset [role=tab] {
54+
border-top-color: var(--flandersqmd-border);
55+
border-left-color: var(--flandersqmd-border);
56+
border-right-color: var(--flandersqmd-border);
57+
}
58+
59+
.panel-tabset [role=tab][aria-selected=true] {
60+
border-top-color: var(--flandersqmd-border);
61+
border-left-color: var(--flandersqmd-border);
62+
border-right-color: var(--flandersqmd-border);
63+
}
64+
65+
.reveal div.callout.callout-note {
66+
border-left-color: var(--flandersqmd-callout-note-border);
67+
}
68+
69+
.reveal div.callout.callout-note.callout-style-default .callout-title{
70+
background-color: var(--flandersqmd-callout-note-bg);
71+
}
72+
73+
.reveal div.callout.callout-tip {
74+
border-left-color: var(--flandersqmd-callout-tip-border);
75+
}
76+
77+
.reveal div.callout.callout-tip.callout-style-default .callout-title{
78+
background-color: var(--flandersqmd-callout-tip-bg);
79+
}
80+
81+
.reveal div.callout.callout-caution {
82+
border-left-color: var(--flandersqmd-callout-caution-border);
83+
}
84+
85+
.reveal div.callout.callout-caution.callout-style-default .callout-title{
86+
background-color: var(--flandersqmd-callout-caution-bg);
87+
}
88+
89+
.reveal div.callout.callout-warning {
90+
border-left-color: var(--flandersqmd-callout-warning-border);
91+
}
92+
93+
.reveal div.callout.callout-note.warning-style-default .callout-title{
94+
background-color: var(--flandersqmd-callout-warning-bg);
95+
}
96+
97+
.reveal div.callout.callout-important {
98+
border-left-color: var(--flandersqmd-callout-important-border);
99+
}
100+
101+
.reveal div.callout.callout-important.callout-style-default .callout-title{
102+
background-color: var(--flandersqmd-callout-important-bg);
103+
}
104+
105+
.photographer {
106+
color: var(--flandersqmd-title-colour);
107+
}
Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
function is_empty(s)
2+
return s == nil or s == ''
3+
end
4+
5+
function entity_en(entity, level)
6+
local result
7+
if (entity == "INBO") then
8+
result = {
9+
url = "https://www.vlaanderen.be/inbo/en",
10+
entity_name = "Research Institute for Nature and Forest (INBO)",
11+
}
12+
if is_empty(level) or tonumber(pandoc.utils.stringify(level)) < 2 then
13+
result.entity_title_logo = "inbo-en-black.jpg"
14+
else
15+
result.entity_title_logo = "inbo-en-white.png"
16+
end
17+
else
18+
result = {
19+
url = "invalid `flandersqmd.entity`"
20+
}
21+
end
22+
result.flanders_title_logo = "flanders-en-title.png"
23+
result.flanders_alt = "Flanders, state of the art"
24+
result.title_logo_style = "max-width: 205px;"
25+
return result
26+
end
27+
28+
function entity_nl(entity, level)
29+
local result
30+
if (entity == "INBO") then
31+
result = {
32+
url = "https://www.vlaanderen.be/inbo",
33+
entity_name = "Instituut voor Natuur- en Bosonderzoek (INBO)",
34+
flanders_alt = "Vlaanderen is wetenschap"
35+
}
36+
if is_empty(level) or tonumber(pandoc.utils.stringify(level)) < 2 then
37+
result.flanders_title_logo = "flanders-nl-intermediate.jpg"
38+
result.entity_title_logo = "inbo-nl-black.png"
39+
result.title_logo_style = "max-width: 245px;"
40+
else
41+
result.flanders_title_logo = "flanders-nl-transparent.png"
42+
result.entity_title_logo = "inbo-nl-white.png"
43+
result.title_logo_style = "max-width: 250px;"
44+
end
45+
else
46+
result = {
47+
url = "invalid `flandersqmd.entity`"
48+
}
49+
end
50+
return result
51+
end
52+
53+
function translation(lang, entity, level)
54+
if (lang == "nl-BE") then
55+
result = entity_nl(entity, level)
56+
else
57+
result = entity_en(entity, level)
58+
end
59+
return result
60+
end
61+
62+
function display_person (person, i)
63+
res = ""
64+
if is_empty(person.name) then
65+
res = '<h1 class = "missing">!!! flandersqmd.authors element ' .. i .. ' has no name element!!!</h1>'
66+
return res
67+
end
68+
if is_empty(person.name.given) then
69+
res = '<h1 class = "missing">!!! flandersqmd.authors element ' .. i .. ' has no given element under name!!!</h1>'
70+
return res
71+
end
72+
if is_empty(person.name.family) then
73+
res = '<h1 class = "missing">!!! flandersqmd.authors element ' .. i .. ' has no given element under name!!!</h1>'
74+
return res
75+
end
76+
if is_empty(person.email) then
77+
res = pandoc.utils.stringify(person.name.given) .. ' ' .. pandoc.utils.stringify(person.name.family)
78+
else
79+
res = res .. '<a href= "mailto:' .. pandoc.utils.stringify(person.email) .. '" class = "title email">' .. pandoc.utils.stringify(person.name.given) .. ' ' .. pandoc.utils.stringify(person.name.family) .. '</a>'
80+
end
81+
if (is_empty(person.orcid)) then
82+
return res
83+
end
84+
res = res .. '<a href="https://orcid.org/' .. pandoc.utils.stringify(person.orcid) .. '" class="quarto-title-author-orcid"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=="></a>'
85+
return res
86+
end
87+
88+
function title_author(author)
89+
if is_empty(author) then
90+
return '!!! Missing flandersqmd.author !!!'
91+
end
92+
z =''
93+
for i, person in pairs(author) do
94+
z = z .. display_person(person, i) .. '&emsp;'
95+
end
96+
return pandoc.RawInline('html', z)
97+
end
98+
99+
function levelcss (entity)
100+
local css
101+
css = ':root {\n'
102+
css = css .. ' --flanders-white: #FFFFFF;\n'
103+
css = css .. ' --inbo-darkblue: #282A72;\n'
104+
css = css .. ' --inbo-darkblue-40: #282A7266;\n'
105+
css = css .. ' --inbo-darkgreen: #006635;\n'
106+
css = css .. ' --inbo-darkgreen-40: #00663566;\n'
107+
css = css .. ' --inbo-orange: #EF972C;\n'
108+
css = css .. ' --inbo-orange-40: #EF972C66;\n'
109+
css = css .. ' --inbo-yellow: #FFCD34;\n'
110+
css = css .. ' --inbo-yellow-40: #FFCD3466;\n'
111+
css = css .. ' --inbo-red: #BE3254;\n'
112+
css = css .. ' --inbo-red-40: #BE325466;\n'
113+
if (entity == "inbo") then
114+
css = css .. ' --inbo-black: #000000;\n'
115+
css = css .. ' --inbo-gray: #8E9DA7;\n'
116+
css = css .. ' --inbo-fushia: #C04384;\n'
117+
css = css .. ' --inbo-blue: #356196;\n'
118+
css = css .. ' --inbo-lightblue: #BDDDD7;\n'
119+
120+
css = css .. ' --flandersqmd-border: var(--inbo-fushia);\n'
121+
css = css .. ' --flandersqmd-callout-note-border: var(--inbo-darkblue);\n'
122+
css = css .. ' --flandersqmd-callout-note-bg: var(--inbo-darkblue-40);\n'
123+
css = css .. ' --flandersqmd-callout-tip-border: var(--inbo-darkgreen);\n'
124+
css = css .. ' --flandersqmd-callout-tip-bg: var(--inbo-darkgreen-40);\n'
125+
css = css .. ' --flandersqmd-callout-caution-border: var(--inbo-orange);\n'
126+
css = css .. ' --flandersqmd-callout-caution-bg: var(--inbo-orange-40);\n'
127+
css = css .. ' --flandersqmd-callout-warning-border: var(--inbo-yellow);\n'
128+
css = css .. ' --flandersqmd-callout-warning-bg: var(--inbo-yellow-40);\n'
129+
css = css .. ' --flandersqmd-callout-important-border: var(--inbo-red);\n'
130+
css = css .. ' --flandersqmd-callout-important-bg: var(--inbo-red-40);\n'
131+
css = css .. ' --flandersqmd-footnote: var(--inbo-gray);\n'
132+
css = css .. ' --flandersqmd-level1-colour: var(--flanders-white);\n'
133+
css = css .. ' --flandersqmd-level1-trapezium: var(--inbo-fushia);\n'
134+
css = css .. ' --flandersqmd-level2-colour: var(--inbo-fushia);\n'
135+
css = css .. ' --flandersqmd-link-colour: var(--inbo-blue);\n'
136+
css = css .. ' --flandersqmd-sidebar-bg: var(--inbo-fushia);\n'
137+
css = css .. ' --flandersqmd-sidebar-colour: var(--flanders-white);\n'
138+
css = css .. ' --flandersqmd-sidebar-tussen-colour: var(--inbo-fushia);\n'
139+
css = css .. ' --quarto-hl-fu-color: var(--inbo-black);\n'
140+
css = css .. ' --r-link-color: var(--inbo-blue);\n'
141+
css = css .. ' --r-link-color-hover: var(----inbo-lightblue);\n'
142+
css = css .. ' --r-main-color: var(--inbo-black);\n'
143+
else
144+
css = css .. ' --flanders-canary-yellow: #FFED00;\n'
145+
css = css .. ' --flanders-dark-yellow: #F0D70F;\n'
146+
css = css .. ' --flanders-black: #3C3D3C;\n'
147+
css = css .. ' --flanders-gray: #D5D5D5;\n'
148+
css = css .. ' --flanders-dark-blue: #215E9E;\n'
149+
css = css .. ' --flanders-light-blue: #32B2E9;\n'
150+
151+
css = css .. ' --flandersqmd-border: var(--flanders-dark-yellow);\n'
152+
css = css .. ' --flandersqmd-footnote: var(--flanders-gray);\n'
153+
css = css .. ' --flandersqmd-level1-trapezium: var(--flanders-canary-yellow);\n'
154+
css = css .. ' --flandersqmd-level1-colour: var(--flanders-black);\n'
155+
css = css .. ' --flandersqmd-level2-colour: var(--flanders-dark-yellow);\n'
156+
css = css .. ' --flandersqmd-link-colour: var(--flanders-dark-blue);\n'
157+
css = css .. ' --flandersqmd-sidebar-bg: var(--flanders-canary-yellow);\n'
158+
css = css .. ' --flandersqmd-sidebar-colour: var(--flanders-black);\n'
159+
css = css .. ' --flandersqmd-sidebar-tussen-colour: var(--flanders-black);\n'
160+
css = css .. ' --quarto-hl-fu-color: var(--flanders-black);\n'
161+
css = css .. ' --r-link-color: var(--flanders-dark-blue);\n'
162+
css = css .. ' --r-link-color-hover: var(--flanders-dark-blue);\n'
163+
css = css .. ' --r-main-color: var(--flanders-black);\n'
164+
end
165+
css = css .. ' --flandersqmd-callout-note-border: var(--inbo-darkblue);\n'
166+
css = css .. ' --flandersqmd-callout-note-bg: var(--inbo-darkblue-40);\n'
167+
css = css .. ' --flandersqmd-callout-tip-border: var(--inbo-darkgreen);\n'
168+
css = css .. ' --flandersqmd-callout-tip-bg: var(--inbo-darkgreen-40);\n'
169+
css = css .. ' --flandersqmd-callout-caution-border: var(--inbo-orange);\n'
170+
css = css .. ' --flandersqmd-callout-caution-bg: var(--inbo-orange-40);\n'
171+
css = css .. ' --flandersqmd-callout-warning-border: var(--inbo-yellow);\n'
172+
css = css .. ' --flandersqmd-callout-warning-bg: var(--inbo-yellow-40);\n'
173+
css = css .. ' --flandersqmd-callout-important-border: var(--inbo-red);\n'
174+
css = css .. ' --flandersqmd-callout-important-bg: var(--inbo-red-40);\n'
175+
css = css .. ' --flandersqmd-title-colour: var(--flanders-white);\n'
176+
css = css .. ' --flandersqmd-title-border: var(--flanders-white);\n'
177+
css = css .. ' --flandersqmd-level1-bg: var(--flanders-white);\n'
178+
css = css .. ' --r-main-font: flanders_art_sanslight, Calibri, Source Sans Pro, Helvetica, sans-serif;\n'
179+
css = css .. ' --r-heading-font-weight: 400;\n'
180+
css = css .. '}\n'
181+
return css
182+
end
183+
184+
return {
185+
{
186+
Meta = function(meta)
187+
if is_empty(meta.flandersqmd) then
188+
meta.title = "No `flandersqmd` entry found in yaml"
189+
meta.entitycolours = 'flanders'
190+
meta.translation = translation(
191+
pandoc.utils.stringify(meta.lang), "INBO"
192+
)
193+
else
194+
if is_empty(meta.flandersqmd.entity) then
195+
meta.translation = translation(
196+
pandoc.utils.stringify(meta.lang), "INBO", meta.flandersqmd.level
197+
)
198+
else
199+
meta.translation = translation(
200+
pandoc.utils.stringify(meta.lang),
201+
pandoc.utils.stringify(meta.flandersqmd.entity),
202+
meta.flandersqmd.level
203+
)
204+
end
205+
if is_empty(meta.flandersqmd.title) then
206+
meta.title = "missing `flandersqmd:title`"
207+
else
208+
meta.title = pandoc.utils.stringify(meta.flandersqmd.title)
209+
end
210+
if is_empty(meta.flandersqmd.level) or tonumber(pandoc.utils.stringify(meta.flandersqmd.level)) < 2 then
211+
meta.entitycolours = 'flanders'
212+
else
213+
if is_empty(meta.flandersqmd.entity) then
214+
meta.entitycolours = 'inbo'
215+
else
216+
meta.entitycolours = pandoc.text.lower(pandoc.utils.stringify(meta.flandersqmd.entity))
217+
end
218+
end
219+
meta.title_author = title_author(meta.flandersqmd.author)
220+
end
221+
meta.entitycss = levelcss(meta.entitycolours)
222+
return meta
223+
end,
224+
}
225+
}

0 commit comments

Comments
 (0)