include comments.pug
mixin sc(text)
if text.toUpperCase() == text
span.all-sc= text
else if text.slice(0, -1).toUpperCase == text.slice(0, -1)
span.c2sc= text
else
span.smallcaps= text
mixin h(level, text)
#{'h' + level}(id=grimm.slugify(text, {html: true}))
if block
a(href=`#${grimm.slugify(text, {html: true})}`): block
else
a(href=`#${grimm.slugify(text, {html: true})}`)!= text
mixin h2(text)
+h(2, text)
mixin h3(text)
+h(3, text)
mixin h4(text)
+h(4, text)
mixin sn(number, display)
if block
aside.note(id=`sn-body-${number}`, 'sn-slug'=number)&attributes(attributes)
if display
a.note-number(href=`#sn-ref-${number}`)= display
else
a.note-number(href=`#sn-ref-${number}`)= snCounter(number)
div
block
else
if display
a(class=`sidenote-ref` id=`sn-ref-${number}`, href=`#sn-body-${number}`, 'sn-slug'=number)&attributes(attributes): sup.note= display
else
a(class=`sidenote-ref` id=`sn-ref-${number}`, href=`#sn-body-${number}`, 'sn-slug'=number)&attributes(attributes): sup.note= snCounter(number)
mixin flag(code, altAs = false)
- altAs = altAs || code;
img.flag(src=`/flags/${code}.png` alt=tr(`loc.country.${altAs}`))&attributes(attributes)
mixin table
if block
.table-container
table&attributes(attributes)
block
else
div [#[i No content provided]]
mixin moonPhase(boxSize, phase, angle, lightOnDark)
- const currentQuarter = Math.floor(phase * 4);
- const crescentSize = (currentQuarter % 2) ? ((phase * 20) % 5) : (5 - ((phase * 20) % 5));
- const backPath = `m${boxSize / 2},1 a${boxSize / 8},${boxSize / 8} 0 1,1 0,${boxSize - 2} a${boxSize / 8},${boxSize / 8} 0 1,1 0,-${boxSize - 2}`;
- const crescentPath = `m${boxSize / 2},1 a${crescentSize},${boxSize / 8} 0 1,${1 - currentQuarter % 2} 0,${boxSize - 2} a${boxSize / 8},${boxSize / 8} 0 1,${+lightOnDark ^ +(currentQuarter < 2)} 0,-${boxSize - 2}`
svg.svg-moon(viewBox=`0 0 ${boxSize} ${boxSize}`)&attributes(attributes)
path.svg-moon-back(d=backPath stroke="currentColor" fill="transparent")
path.svg-moon-crescent(d=crescentPath fill="currentColor")
mixin subs(source, language, isDefault)
if isDefault
track(src=source, label=grimm.dict[language].meta.name, srclang=grimm.dict[language].meta.code, kind="subtitles", default)
else
track(src=source, label=grimm.dict[language].meta.name, srclang=grimm.dict[language].meta.code, kind="subtitles")
mixin captions(source, language, isDefault)
if isDefault
track(src=source, label=grimm.dict[language].meta.name, srclang=grimm.dict[language].meta.code, kind="captions", default)
else
track(src=source, label=grimm.dict[language].meta.name, srclang=grimm.dict[language].meta.code, kind="captions")