diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-02-24 15:00:10 +0100 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-02-24 15:00:10 +0100 |
commit | 58042b5135ddf74bf5945c46eafd3828739e045c (patch) | |
tree | 76bca3d1d18c8979087660e052ddd4facd41ecc8 /_extensions/ruc-play |
initial draft
Diffstat (limited to '_extensions/ruc-play')
-rw-r--r-- | _extensions/ruc-play/stylish-report/README.md | 28 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/TODO.md | 2 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/_extension.yaml | 70 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/doc-class.tex | 74 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/revealjs-british.scss | 10 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/revealjs.scss | 4 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/styles/british.scss | 10 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/styles/common.scss | 4 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/template.tex | 455 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/title.tex | 98 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/toc.tex | 28 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-report/x/template.tex | 466 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-roles/_extension.yaml | 6 | ||||
-rw-r--r-- | _extensions/ruc-play/stylish-roles/stylish-roles.lua | 54 |
14 files changed, 1309 insertions, 0 deletions
diff --git a/_extensions/ruc-play/stylish-report/README.md b/_extensions/ruc-play/stylish-report/README.md new file mode 100644 index 0000000..d9ee44d --- /dev/null +++ b/_extensions/ruc-play/stylish-report/README.md @@ -0,0 +1,28 @@ +# Template customizations + +This directory contains Pandoc template files +derived from Quarto version 1.6.40. + +## Tagged PDF/A + +The PDF workflow is tweaked to embed semantically structured metadata, +a.k.a. [tagged PDF] files, +which conforms to the [PDF/A-2b] standard, +using experimental LaTeX hint +[`\DocumentMetadata` declaration][DocumentMetadata]. + +PDF/A comes in multiple flavors. +[Some guidelines] advice to use the 2b flavor, +so that is what is currently done. + +[tagged PDF]: https://taggedpdf.com/ + "tagged PDF - PDF containing semantically structured metadata" + +[PDF/A-2b]: https://pdfa.org/pdfa-faq/ + "PDF/A - PDF standards for archiving and long-term preservation" + +[DocumentMetadata]: https://ctan.org/pkg/latex-lab + "DocumentMetadata - LaTeX hint for generating modern tagged PDF" + +[Some guidelines] https://www.aalto.fi/en/services/creating-a-pdfa-compliant-file-of-your-thesis + "Aalto guide to creating a PDF/A -compliant file of your thesis" diff --git a/_extensions/ruc-play/stylish-report/TODO.md b/_extensions/ruc-play/stylish-report/TODO.md new file mode 100644 index 0000000..6e2de22 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/TODO.md @@ -0,0 +1,2 @@ + * Move `revealjs.scss` below `styles/` + when Quarto can resolve font paths for RevealJS from subdir diff --git a/_extensions/ruc-play/stylish-report/_extension.yaml b/_extensions/ruc-play/stylish-report/_extension.yaml new file mode 100644 index 0000000..507eeaa --- /dev/null +++ b/_extensions/ruc-play/stylish-report/_extension.yaml @@ -0,0 +1,70 @@ +name: Stylish-report +author: Jonas Smedegaard +version: 0.0.3 +contributes: + formats: + common: + pdf: + number-sections: true + toc: true + default-image-extension: tex + colorlinks: true + hyperrefoptions: + - linktoc=all + pdf-engine: lualatex + documentclass: scrbook + classoption: + - DIV=calc + - twoside=false + csquotes: true + papersize: a4 + fontsize: 12pt + template: template.tex + template-partials: + - doc-class.tex + - title.tex + - toc.tex + + include-in-header: +# declare license + - text: | + \usepackage{hyperref} + \usepackage[type={CC}, modifier={by-sa}, version={4.0}]{doclicense} + \publishers{\vspace*{\fill}\small\par\doclicenseThis} +# recalculate page margins, since mainfont was set after documentclass + - text: | + \KOMAoptions{DIV=last} +# avoid widow or orphan lines + - text: | + \usepackage[defaultlines=4,all]{nowidow} +# implement \abstract + - text: | + \newenvironment{abstract} + {\cleardoublepage\chapter*{Abstract}\thispagestyle{empty}} + {\cleardoublepage} +# use page numbers A1, A2, A3, B1, B2 etc. for appendices + - text: | + \let\oldchapter\chapter + \newcommand*{\appendixmore}{% + \setcounter{secnumdepth}{\chapternumdepth} + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand{\thechapter}{\Alph{chapter}}% + \renewcommand{\theHchapter}{\thechapter}% + \renewcommand{\thesection}{\thechapter\arabic{section}}% + \renewcommand{\thepage}{\thechapter\arabic{page}}% + \renewcommand{\chapter}[1]{% + \oldchapter{##1}% + \setcounter{page}{1}% + }% + } + + html: + html-q-tags: true + theme: + light: [flatly, styles/british.scss] + dark: [darkly, styles/british.scss] + + revealjs: + html-q-tags: true + theme: [default, revealjs-british.ccss] diff --git a/_extensions/ruc-play/stylish-report/doc-class.tex b/_extensions/ruc-play/stylish-report/doc-class.tex new file mode 100644 index 0000000..8eff486 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/doc-class.tex @@ -0,0 +1,74 @@ +\DocumentMetadata{ +% modern PDF rendering: <https://tex.stackexchange.com/a/686905/309738> +$if(lang)$ + lang={$lang$}, +$endif$ +$if(pdfversion)$ + pdfversion=$pdfversion$, +$endif$ +$for(pdfstandard)$ + pdfstandard=$pdfstandard$, +$endfor$ +$if(pdftestphase)$ +testphase= + { +$for(pdftestphase)$ + $pdftestphase$, +$endfor$ + }, +$endif$ +$if(pdfdebug)$ +debug= + { +$for(pdfdebug)$ + $pdfdebug$, +$endfor$ + }, +$endif$ +$if(pdfdebugfirstaidoff)$ +debug= + { +firstaidoff= + { +$for(pdfdebugfirstaidoff)$ + $pdfdebugfirstaidoff$, +$endfor$ + }, + }, +$endif$ +} +$if(copyright)$ +% flag as rights protected <https://tex.stackexchange.com/a/712443/309738> +\ExplSyntaxOn +\pdfmeta_xmp_add:n{<xmpRights:Marked>True</xmpRights:Marked>} +\ExplSyntaxOff +$endif$ +$if(pdftestphasestrict)$ +% fatalize tagging warnings +\ExplSyntaxOn + \msg_redirect_module:nnn { tag } { warning } { error } +\ExplSyntaxOff +$endif$ +\documentclass[ +$if(fontsize)$ + $fontsize$, +$endif$ +$if(papersize)$ + $papersize$paper, +$endif$ +$if(beamer)$ + ignorenonframetext, +$if(handout)$ + handout, +$endif$ +$if(aspectratio)$ + aspectratio=$aspectratio$, +$endif$ +$if(babel-lang)$ + $babel-lang$, +$endif$ +$endif$ +$for(classoption)$ + $classoption$$sep$, +$endfor$ +]{$documentclass$} diff --git a/_extensions/ruc-play/stylish-report/revealjs-british.scss b/_extensions/ruc-play/stylish-report/revealjs-british.scss new file mode 100644 index 0000000..4d41fb3 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/revealjs-british.scss @@ -0,0 +1,10 @@ +/*-- scss:mixins --*/ + +scss @import 'revealjs'; + +/*-- scss:rules --*/ + +// use british style quotation +q { + quotes: "‘" "’" "“" "”"; +} diff --git a/_extensions/ruc-play/stylish-report/revealjs.scss b/_extensions/ruc-play/stylish-report/revealjs.scss new file mode 100644 index 0000000..2c7c1c8 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/revealjs.scss @@ -0,0 +1,4 @@ +/*-- scss:defaults --*/ + +// avoid web-loading internally declared default Bootswatch font +$web-font-path: ""; diff --git a/_extensions/ruc-play/stylish-report/styles/british.scss b/_extensions/ruc-play/stylish-report/styles/british.scss new file mode 100644 index 0000000..613dd3f --- /dev/null +++ b/_extensions/ruc-play/stylish-report/styles/british.scss @@ -0,0 +1,10 @@ +/*-- scss:mixins --*/ + +scss @import 'common'; + +/*-- scss:rules --*/ + +// use british style quotation +q { + quotes: "‘" "’" "“" "”"; +} diff --git a/_extensions/ruc-play/stylish-report/styles/common.scss b/_extensions/ruc-play/stylish-report/styles/common.scss new file mode 100644 index 0000000..2c7c1c8 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/styles/common.scss @@ -0,0 +1,4 @@ +/*-- scss:defaults --*/ + +// avoid web-loading internally declared default Bootswatch font +$web-font-path: ""; diff --git a/_extensions/ruc-play/stylish-report/template.tex b/_extensions/ruc-play/stylish-report/template.tex new file mode 100644 index 0000000..26d8fe6 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/template.tex @@ -0,0 +1,455 @@ +% Options for packages loaded elsewhere +\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref} +\PassOptionsToPackage{hyphens}{url} +$if(colorlinks)$ +\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor} +$endif$ +$if(CJKmainfont)$ +\PassOptionsToPackage{space}{xeCJK} +$endif$ +% +$doc-class.tex()$ + +$if(beamer)$ +$if(background-image)$ +\usebackgroundtemplate{% + \includegraphics[width=\paperwidth]{$background-image$}% +} +% In beamer background-image does not work well when other images are used, so this is the workaround +\pgfdeclareimage[width=\paperwidth,height=\paperheight]{background}{$background-image$} +\usebackgroundtemplate{\pgfuseimage{background}} +$endif$ +\usepackage{pgfpages} +\setbeamertemplate{caption}[numbered] +\setbeamertemplate{caption label separator}{: } +\setbeamercolor{caption name}{fg=normal text.fg} +\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$ +$for(beameroption)$ +\setbeameroption{$beameroption$} +$endfor$ +% Prevent slide breaks in the middle of a paragraph +\widowpenalties 1 10000 +\raggedbottom +$if(section-titles)$ +\setbeamertemplate{part page}{ + \centering + \begin{beamercolorbox}[sep=16pt,center]{part title} + \usebeamerfont{part title}\insertpart\par + \end{beamercolorbox} +} +\setbeamertemplate{section page}{ + \centering + \begin{beamercolorbox}[sep=12pt,center]{section title} + \usebeamerfont{section title}\insertsection\par + \end{beamercolorbox} +} +\setbeamertemplate{subsection page}{ + \centering + \begin{beamercolorbox}[sep=8pt,center]{subsection title} + \usebeamerfont{subsection title}\insertsubsection\par + \end{beamercolorbox} +} +\AtBeginPart{ + \frame{\partpage} +} +\AtBeginSection{ + \ifbibliography + \else + \frame{\sectionpage} + \fi +} +\AtBeginSubsection{ + \frame{\subsectionpage} +} +$endif$ +$endif$ +$if(beamerarticle)$ +\usepackage{beamerarticle} % needs to be loaded first +$endif$ + +\usepackage{amsmath,amssymb} +$if(linestretch)$ +\usepackage{setspace} +$endif$ +\usepackage{iftex} +\ifPDFTeX + \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} + \usepackage[utf8]{inputenc} + \usepackage{textcomp} % provide euro and other symbols +\else % if luatex or xetex +$if(mathspec)$ + \ifXeTeX + \usepackage{mathspec} % this also loads fontspec + \else + \usepackage{unicode-math} % this also loads fontspec + \fi +$else$ + \usepackage{unicode-math} +$endif$ + \defaultfontfeatures{Scale=MatchLowercase}$-- must come before Beamer theme + \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} +\fi +$if(fontfamily)$ +$else$ +$-- Set default font before Beamer theme so the theme can override it +\usepackage{lmodern} +$endif$ +$-- Set Beamer theme before user font settings so they can override theme +$if(beamer)$ +$if(theme)$ +\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$} +$endif$ +$if(colortheme)$ +\usecolortheme{$colortheme$} +$endif$ +$if(fonttheme)$ +\usefonttheme{$fonttheme$} +$endif$ +$if(mainfont)$ +\usefonttheme{serif} % use mainfont rather than sansfont for slide text +$endif$ +$if(innertheme)$ +\useinnertheme{$innertheme$} +$endif$ +$if(outertheme)$ +\useoutertheme{$outertheme$} +$endif$ +$endif$ +$-- User font settings (must come after default font and Beamer theme) +$if(fontfamily)$ +\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} +$endif$ +\ifPDFTeX\else + % xetex/luatex font selection +$if(mainfont)$ + $if(mainfontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("mainfontfallback",{ + $for(mainfontfallback)$"$mainfontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} +$endif$ +$if(sansfont)$ + $if(sansfontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("sansfontfallback",{ + $for(sansfontfallback)$"$sansfontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$$if(sansfontfallback)$,RawFeature={fallback=sansfontfallback}$endif$]{$sansfont$} +$endif$ +$if(monofont)$ + $if(monofontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("monofontfallback",{ + $for(monofontfallback)$"$monofontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$if(monofontfallback)$,RawFeature={fallback=monofontfallback}$endif$]{$monofont$} +$endif$ +$for(fontfamilies)$ + \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$} +$endfor$ +$if(mathfont)$ +$if(mathspec)$ + \ifXeTeX + \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \else + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \fi +$else$ + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} +$endif$ +$endif$ +$if(CJKmainfont)$ + \ifXeTeX + \usepackage{xeCJK} + \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + $if(CJKsansfont)$ + \setCJKsansfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKsansfont$} + $endif$ + $if(CJKmonofont)$ + \setCJKmonofont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmonofont$} + $endif$ + \fi +$endif$ +$if(luatexjapresetoptions)$ + \ifLuaTeX + \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset} + \fi +$endif$ +$if(CJKmainfont)$ + \ifLuaTeX + \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec} + \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + \fi +$endif$ +\fi +$if(zero-width-non-joiner)$ +%% Support for zero-width non-joiner characters. +\makeatletter +\def\zerowidthnonjoiner{% + % Prevent ligatures and adjust kerning, but still support hyphenating. + \texorpdfstring{% + \TextOrMath{\nobreak\discretionary{-}{}{\kern.03em}% + \ifvmode\else\nobreak\hskip\z@skip\fi}{}% + }{}% +} +\makeatother +\ifPDFTeX + \DeclareUnicodeCharacter{200C}{\zerowidthnonjoiner} +\else + \catcode`^^^^200c=\active + \protected\def ^^^^200c{\zerowidthnonjoiner} +\fi +%% End of ZWNJ support +$endif$ +% Use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +\IfFileExists{microtype.sty}{% use microtype if available + \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype} + \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts +}{} +$if(indent)$ +$else$ +\makeatletter +\@ifundefined{KOMAClassName}{% if non-KOMA class + \IfFileExists{parskip.sty}{% + \usepackage{parskip} + }{% else + \setlength{\parindent}{0pt} + \setlength{\parskip}{6pt plus 2pt minus 1pt}} +}{% if KOMA class + \KOMAoptions{parskip=half}} +\makeatother +$endif$ +$if(verbatim-in-note)$ +\usepackage{fancyvrb} +$endif$ +\usepackage{xcolor} +$if(geometry)$ +$if(beamer)$ +\geometry{$for(geometry)$$geometry$$sep$,$endfor$} +$else$ +\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +$endif$ +$if(beamer)$ +\newif\ifbibliography +$endif$ +$if(listings)$ +\usepackage{listings} +\newcommand{\passthrough}[1]{#1} +\lstset{defaultdialect=[5.3]Lua} +\lstset{defaultdialect=[x86masm]Assembler} +$endif$ +$if(lhs)$ +\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} +$endif$ +$if(svg)$ +\usepackage{svg} +$endif$ +$if(strikeout)$ +$-- also used for underline +\ifLuaTeX + \usepackage{luacolor} + \usepackage[soul]{lua-ul} +\else + \usepackage{soul} +$if(beamer)$ + \makeatletter + \let\HL\hl + \renewcommand\hl{% fix for beamer highlighting + \let\set@color\beamerorig@set@color + \let\reset@color\beamerorig@reset@color + \HL} + \makeatother +$endif$ +$if(CJKmainfont)$ +\ifXeTeX + % soul's \st doesn't work for CJK: + \usepackage{xeCJKfntef} + \renewcommand{\st}[1]{\sout{#1}} +\fi +$endif$ +\fi +$endif$ +\setlength{\emergencystretch}{3em} % prevent overfull lines +$if(numbersections)$ +\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} +$else$ +\setcounter{secnumdepth}{-\maxdimen} % remove section numbering +$endif$ +$if(beamer)$ +$else$ +$if(block-headings)$ +% Make \paragraph and \subparagraph free-standing +\makeatletter +\ifx\paragraph\undefined\else + \let\oldparagraph\paragraph + \renewcommand{\paragraph}{ + \@ifstar + \xxxParagraphStar + \xxxParagraphNoStar + } + \newcommand{\xxxParagraphStar}[1]{\oldparagraph*{#1}\mbox{}} + \newcommand{\xxxParagraphNoStar}[1]{\oldparagraph{#1}\mbox{}} +\fi +\ifx\subparagraph\undefined\else + \let\oldsubparagraph\subparagraph + \renewcommand{\subparagraph}{ + \@ifstar + \xxxSubParagraphStar + \xxxSubParagraphNoStar + } + \newcommand{\xxxSubParagraphStar}[1]{\oldsubparagraph*{#1}\mbox{}} + \newcommand{\xxxSubParagraphNoStar}[1]{\oldsubparagraph{#1}\mbox{}} +\fi +\makeatother +$endif$ +$endif$ +$if(pagestyle)$ +\pagestyle{$pagestyle$} +$endif$ +$pandoc.tex()$ + +$if(lang)$ +\ifLuaTeX +\usepackage[bidi=basic]{babel} +\else +\usepackage[bidi=default]{babel} +\fi +$if(babel-lang)$ +\babelprovide[main,import]{$babel-lang$} +$if(mainfont)$ +\ifPDFTeX +\else +\babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} +\fi +$endif$ +$endif$ +$for(babel-otherlangs)$ +\babelprovide[import]{$babel-otherlangs$} +$endfor$ +$for(babelfonts/pairs)$ +\babelfont[$babelfonts.key$]{rm}{$babelfonts.value$} +$endfor$ +% get rid of language-specific shorthands (see #6817): +\let\LanguageShortHands\languageshorthands +\def\languageshorthands#1{} +$if(selnolig-langs)$ +\ifLuaTeX + \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures +\fi +$endif$ +$endif$ +$if(dir)$ +\ifPDFTeX + \TeXXeTstate=1 + \newcommand{\RL}[1]{\beginR #1\endR} + \newcommand{\LR}[1]{\beginL #1\endL} + \newenvironment{RTL}{\beginR}{\endR} + \newenvironment{LTR}{\beginL}{\endL} +\fi +$endif$ +$if(biblio-config)$ +$if(natbib)$ +\usepackage[$natbiboptions$]{natbib} +\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} +$endif$ +$if(biblatex)$ +\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} +$for(bibliography)$ +\addbibresource{$bibliography$} +$endfor$ +$endif$ +$endif$ +$if(nocite-ids)$ +\nocite{$for(nocite-ids)$$it$$sep$, $endfor$} +$endif$ +$if(csquotes)$ +\usepackage{csquotes} +$endif$ +\usepackage{bookmark} + +\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available +\urlstyle{same} % disable monospaced font for URLs +$if(links-as-notes)$ +% Make links footnotes instead of hotlinks: +\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}} +$endif$ +$if(verbatim-in-note)$ +\VerbatimFootnotes % allow verbatim text in footnotes +$endif$ +\hypersetup{ +$if(title-meta)$ + pdftitle={$title-meta$}, +$endif$ +$if(author-meta)$ + pdfauthor={$for(by-author)$$if(it.metadata.credit.supervision)$$else$$it.name.literal$$endif$$sep$,$endfor$}, +$endif$ +$if(lang)$ + pdflang={$lang$}, +$endif$ +$if(subject)$ + pdfsubject={$subject$}, +$endif$ +$if(keywords)$ + pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, +$endif$ +$if(colorlinks)$ + colorlinks=true, + $if(linkcolor)$linkcolor={$linkcolor$}$endif$, + $if(filecolor)$filecolor={$filecolor$}$endif$, + $if(citecolor)$citecolor={$citecolor$}$endif$, + $if(urlcolor)$urlcolor={$urlcolor$}$endif$, +$else$ +$if(boxlinks)$ +$else$ + hidelinks, +$endif$ +$endif$ + pdfcreator={LaTeX via pandoc}} + +$before-title.tex()$ + +$title.tex()$ + +\begin{document} +$before-body.tex()$ + +$for(include-before)$ +$include-before$ + +$endfor$ +$toc.tex()$ + +$if(linestretch)$ +\setstretch{$linestretch$} +$endif$ +$if(has-frontmatter)$ +\mainmatter +$endif$ +$body$ + +$before-bib.tex()$ + +$if(has-frontmatter)$ +\backmatter +$endif$ +$biblio.tex()$ + +$for(include-after)$ +$include-after$ + +$endfor$ +$after-body.tex()$ + +\end{document} diff --git a/_extensions/ruc-play/stylish-report/title.tex b/_extensions/ruc-play/stylish-report/title.tex new file mode 100644 index 0000000..8fda033 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/title.tex @@ -0,0 +1,98 @@ +$if(title)$ +\title{$title$$if(thanks)$\thanks{$thanks$}$endif$} +$endif$ +$if(subtitle)$ +$if(beamer)$ +$else$ +\usepackage{etoolbox} +\makeatletter +\providecommand{\subtitle}[1]{% add subtitle to \maketitle + \apptocmd{\@title}{\par {\large #1 \par}}{}{} +} +\makeatother +$endif$ +\subtitle{$subtitle$} +$endif$ +\usepackage{marvosym} +\usepackage{authblk,academicons} +%\renewcommand*{\Authand}{ og } +%\renewcommand*{\Authands}{ og } +\renewcommand*{\Authsep}{\authorcr} +\renewcommand*{\Authand}{\authorcr} +\renewcommand*{\Authands}{\newline} %%new line after each author +\renewcommand{\Affilfont}{\small} +\newcommand*{\orcid}[1]{\href{https://orcid.org/#1}{\textcolor[HTML]{A6CE39}{\aiOrcid}}} +\newcommand*{\rorid}[1]{\href{https://ror.org/#1}{\aiROR}} +$for(by-author)$ +$if(it.metadata.credit.supervision)$ +$else$ +\author[$for(it.affiliations)$$it.number$$endfor$$if(it.attributes.equal-contributor)$,\YinYang$endif$$if(it.attributes.corresponding)$,∗$endif$]{% + $if(it.url)$% + \href{$it.url$}{% + $endif$% + $it.name.literal$% + $if(it.metadata.alternate)$% + \ ($for(it.metadata.alternate)$$it$$sep$,$endfor$)% + $endif$% + $if(it.url)$% + }% + $endif$% + $if(it.orcid)$% + \,\orcid{$it.orcid$}% + $endif$% +} +$endif$ +$endfor$ +$for(by-author)$ +$if(it.metadata.credit.supervision)$ +\author[$for(it.affiliations)$$it.number$$endfor$]{% + \vspace{1em} + Supervisor: + $if(it.url)$% + \href{$it.url$}{% + $endif$% + $it.name.literal$% + $if(it.metadata.alternate)$% + \ ($for(it.metadata.alternate)$$it$$sep$,$endfor$)% + $endif$% + $if(it.url)$% + }% + $endif$% + $if(it.orcid)$% + \,\orcid{$it.orcid$}% + $endif$% +} +$endif$ +$endfor$ +$for(by-affiliation)$ +\affil[$it.number$]{% + $it.name$% + $if(it.department)$% + \\$it.department$% + $endif$% + $if(it.ror)$% + \,\rorid{$it.ror$}% + $endif$% +} +$endfor$ +$if(some-author-has.attributes.equal-contributor)$ +\affil[\YinYang]{These authors contributed equally to this work.} +$endif$ +$if(some-author-has.attributes.corresponding)$ +$for(by-author)$ +$if(it.attributes.corresponding)$% +\affil[∗]{Corresponding author: \href{mailto:$it.email$}{$it.email$}} +$endif$ +$endfor$ +$endif$ +\date{$date$} +$if(beamer)$ +$if(institute)$ +\institute{$for(institute)$$institute$$sep$ \and $endfor$} +$endif$ +$if(titlegraphic)$ +\titlegraphic{\includegraphics$if(titlegraphicoptions)$[$for(titlegraphicoptions)$$titlegraphicoptions$$sep$, $endfor$]$endif${$titlegraphic$}}$endif$ +$if(logo)$ +\logo{\includegraphics{$logo$}} +$endif$ +$endif$ diff --git a/_extensions/ruc-play/stylish-report/toc.tex b/_extensions/ruc-play/stylish-report/toc.tex new file mode 100644 index 0000000..95cffff --- /dev/null +++ b/_extensions/ruc-play/stylish-report/toc.tex @@ -0,0 +1,28 @@ +$if(toc)$ +$if(toc-title)$ +\renewcommand*\contentsname{$toc-title$} +$endif$ +$if(beamer)$ +\begin{frame}[allowframebreaks] +$if(toc-title)$ + \frametitle{$toc-title$} +$endif$ + \setcounter{tocdepth}{$toc-depth$} + \tableofcontents +\end{frame} +$else$ +{ +$if(colorlinks)$ +\hypersetup{$if(toccolor)$linkcolor=$toccolor$$endif$} +$endif$ +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +} +$endif$ +$endif$ +$if(lof)$ +\listoffigures +$endif$ +$if(lot)$ +\listoftables +$endif$
\ No newline at end of file diff --git a/_extensions/ruc-play/stylish-report/x/template.tex b/_extensions/ruc-play/stylish-report/x/template.tex new file mode 100644 index 0000000..f5c5055 --- /dev/null +++ b/_extensions/ruc-play/stylish-report/x/template.tex @@ -0,0 +1,466 @@ +% Options for packages loaded elsewhere +\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref} +\PassOptionsToPackage{hyphens}{url} +$if(colorlinks)$ +\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor} +$endif$ +$if(CJKmainfont)$ +\PassOptionsToPackage{space}{xeCJK} +$endif$ +% +$doc-class.tex()$ + +$if(beamer)$ +$if(background-image)$ +\usebackgroundtemplate{% + \includegraphics[width=\paperwidth]{$background-image$}% +} +% In beamer background-image does not work well when other images are used, so this is the workaround +\pgfdeclareimage[width=\paperwidth,height=\paperheight]{background}{$background-image$} +\usebackgroundtemplate{\pgfuseimage{background}} +$endif$ +\usepackage{pgfpages} +\setbeamertemplate{caption}[numbered] +\setbeamertemplate{caption label separator}{: } +\setbeamercolor{caption name}{fg=normal text.fg} +\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$ +$for(beameroption)$ +\setbeameroption{$beameroption$} +$endfor$ +% Prevent slide breaks in the middle of a paragraph +\widowpenalties 1 10000 +\raggedbottom +$if(section-titles)$ +\setbeamertemplate{part page}{ + \centering + \begin{beamercolorbox}[sep=16pt,center]{part title} + \usebeamerfont{part title}\insertpart\par + \end{beamercolorbox} +} +\setbeamertemplate{section page}{ + \centering + \begin{beamercolorbox}[sep=12pt,center]{section title} + \usebeamerfont{section title}\insertsection\par + \end{beamercolorbox} +} +\setbeamertemplate{subsection page}{ + \centering + \begin{beamercolorbox}[sep=8pt,center]{subsection title} + \usebeamerfont{subsection title}\insertsubsection\par + \end{beamercolorbox} +} +\AtBeginPart{ + \frame{\partpage} +} +\AtBeginSection{ + \ifbibliography + \else + \frame{\sectionpage} + \fi +} +\AtBeginSubsection{ + \frame{\subsectionpage} +} +$endif$ +$endif$ +$if(beamerarticle)$ +\usepackage{beamerarticle} % needs to be loaded first +$endif$ + +\usepackage{amsmath,amssymb} +$if(linestretch)$ +\usepackage{setspace} +$endif$ +\usepackage{iftex} +\ifPDFTeX + \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} + \usepackage[utf8]{inputenc} + \usepackage{textcomp} % provide euro and other symbols +\else % if luatex or xetex +$if(mathspec)$ + \ifXeTeX + \usepackage{mathspec} % this also loads fontspec + \else + \usepackage{unicode-math} % this also loads fontspec + \fi +$else$ + \usepackage{unicode-math} +$endif$ + \defaultfontfeatures{Scale=MatchLowercase}$-- must come before Beamer theme + \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} +\fi +$if(fontfamily)$ +$else$ +$-- Set default font before Beamer theme so the theme can override it +\usepackage{lmodern} +$endif$ +$-- Set Beamer theme before user font settings so they can override theme +$if(beamer)$ +$if(theme)$ +\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$} +$endif$ +$if(colortheme)$ +\usecolortheme{$colortheme$} +$endif$ +$if(fonttheme)$ +\usefonttheme{$fonttheme$} +$endif$ +$if(mainfont)$ +\usefonttheme{serif} % use mainfont rather than sansfont for slide text +$endif$ +$if(innertheme)$ +\useinnertheme{$innertheme$} +$endif$ +$if(outertheme)$ +\useoutertheme{$outertheme$} +$endif$ +$endif$ +$-- User font settings (must come after default font and Beamer theme) +$if(fontfamily)$ +\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} +$endif$ +\ifPDFTeX\else + % xetex/luatex font selection +$if(mainfont)$ + $if(mainfontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("mainfontfallback",{ + $for(mainfontfallback)$"$mainfontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} +$endif$ +$if(sansfont)$ + $if(sansfontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("sansfontfallback",{ + $for(sansfontfallback)$"$sansfontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$$if(sansfontfallback)$,RawFeature={fallback=sansfontfallback}$endif$]{$sansfont$} +$endif$ +$if(monofont)$ + $if(monofontfallback)$ + \ifLuaTeX + \usepackage{luaotfload} + \directlua{luaotfload.add_fallback("monofontfallback",{ + $for(monofontfallback)$"$monofontfallback$"$sep$,$endfor$ + })} + \fi + $endif$ + \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$if(monofontfallback)$,RawFeature={fallback=monofontfallback}$endif$]{$monofont$} +$endif$ +$for(fontfamilies)$ + \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$} +$endfor$ +$if(mathfont)$ +$if(mathspec)$ + \ifXeTeX + \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \else + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \fi +$else$ + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} +$endif$ +$endif$ +$if(CJKmainfont)$ + \ifXeTeX + \usepackage{xeCJK} + \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + $if(CJKsansfont)$ + \setCJKsansfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKsansfont$} + $endif$ + $if(CJKmonofont)$ + \setCJKmonofont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmonofont$} + $endif$ + \fi +$endif$ +$if(luatexjapresetoptions)$ + \ifLuaTeX + \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset} + \fi +$endif$ +$if(CJKmainfont)$ + \ifLuaTeX + \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec} + \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + \fi +$endif$ +\fi +$if(zero-width-non-joiner)$ +%% Support for zero-width non-joiner characters. +\makeatletter +\def\zerowidthnonjoiner{% + % Prevent ligatures and adjust kerning, but still support hyphenating. + \texorpdfstring{% + \TextOrMath{\nobreak\discretionary{-}{}{\kern.03em}% + \ifvmode\else\nobreak\hskip\z@skip\fi}{}% + }{}% +} +\makeatother +\ifPDFTeX + \DeclareUnicodeCharacter{200C}{\zerowidthnonjoiner} +\else + \catcode`^^^^200c=\active + \protected\def ^^^^200c{\zerowidthnonjoiner} +\fi +%% End of ZWNJ support +$endif$ +% Use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +\IfFileExists{microtype.sty}{% use microtype if available + \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype} + \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts +}{} +$if(indent)$ +$else$ +\makeatletter +\@ifundefined{KOMAClassName}{% if non-KOMA class + \IfFileExists{parskip.sty}{% + \usepackage{parskip} + }{% else + \setlength{\parindent}{0pt} + \setlength{\parskip}{6pt plus 2pt minus 1pt}} +}{% if KOMA class + \KOMAoptions{parskip=half}} +\makeatother +$endif$ +$if(verbatim-in-note)$ +\usepackage{fancyvrb} +$endif$ +\usepackage{xcolor} +$if(geometry)$ +$if(beamer)$ +\geometry{$for(geometry)$$geometry$$sep$,$endfor$} +$else$ +\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +$endif$ +$if(beamer)$ +\newif\ifbibliography +$endif$ +$if(listings)$ +\usepackage{listings} +\newcommand{\passthrough}[1]{#1} +\lstset{defaultdialect=[5.3]Lua} +\lstset{defaultdialect=[x86masm]Assembler} +$endif$ +$if(lhs)$ +\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} +$endif$ +$if(svg)$ +\usepackage{svg} +$endif$ +$if(strikeout)$ +$-- also used for underline +\ifLuaTeX + \usepackage{luacolor} + \usepackage[soul]{lua-ul} +\else + \usepackage{soul} +$if(beamer)$ + \makeatletter + \let\HL\hl + \renewcommand\hl{% fix for beamer highlighting + \let\set@color\beamerorig@set@color + \let\reset@color\beamerorig@reset@color + \HL} + \makeatother +$endif$ +$if(CJKmainfont)$ +\ifXeTeX + % soul's \st doesn't work for CJK: + \usepackage{xeCJKfntef} + \renewcommand{\st}[1]{\sout{#1}} +\fi +$endif$ +\fi +$endif$ +\setlength{\emergencystretch}{3em} % prevent overfull lines +$if(numbersections)$ +\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} +$else$ +\setcounter{secnumdepth}{-\maxdimen} % remove section numbering +$endif$ +$if(beamer)$ +$else$ +$if(block-headings)$ +% Make \paragraph and \subparagraph free-standing +\makeatletter +\ifx\paragraph\undefined\else + \let\oldparagraph\paragraph + \renewcommand{\paragraph}{ + \@ifstar + \xxxParagraphStar + \xxxParagraphNoStar + } + \newcommand{\xxxParagraphStar}[1]{\oldparagraph*{#1}\mbox{}} + \newcommand{\xxxParagraphNoStar}[1]{\oldparagraph{#1}\mbox{}} +\fi +\ifx\subparagraph\undefined\else + \let\oldsubparagraph\subparagraph + \renewcommand{\subparagraph}{ + \@ifstar + \xxxSubParagraphStar + \xxxSubParagraphNoStar + } + \newcommand{\xxxSubParagraphStar}[1]{\oldsubparagraph*{#1}\mbox{}} + \newcommand{\xxxSubParagraphNoStar}[1]{\oldsubparagraph{#1}\mbox{}} +\fi +\makeatother +$endif$ +$endif$ +$if(pagestyle)$ +\pagestyle{$pagestyle$} +$endif$ +$pandoc.tex()$ + +$if(lang)$ +\ifLuaTeX +$if(babel-lang)$ +% use classic babel syntax: <https://github.com/jgm/pandoc/issues/8283> +\usepackage[main=$babel-lang$,$for(babel-otherlangs)$$babel-otherlangs$$sep$,$endfor$,provide=*,bidi=basic]{babel} +$else$ +\usepackage[bidi=basic]{babel} +$endif$ +\else +\usepackage[bidi=default]{babel} +\fi +$if(babel-lang)$ +\ifLuaTeX +\else +\babelprovide[main,import]{$babel-lang$} +\fi +$if(mainfont)$ +\ifPDFTeX +\else +\babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$$if(mainfontfallback)$,RawFeature={fallback=mainfontfallback}$endif$]{$mainfont$} +\fi +$endif$ +$endif$ +\ifLuaTeX +\else +$for(babel-otherlangs)$ +\babelprovide[import]{$babel-otherlangs$} +\fi +$endfor$ +$for(babelfonts/pairs)$ +\babelfont[$babelfonts.key$]{rm}{$babelfonts.value$} +$endfor$ +% get rid of language-specific shorthands (see #6817): +\let\LanguageShortHands\languageshorthands +\def\languageshorthands#1{} +$if(selnolig-langs)$ +\ifLuaTeX + \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures +\fi +$endif$ +$endif$ +$if(dir)$ +\ifPDFTeX + \TeXXeTstate=1 + \newcommand{\RL}[1]{\beginR #1\endR} + \newcommand{\LR}[1]{\beginL #1\endL} + \newenvironment{RTL}{\beginR}{\endR} + \newenvironment{LTR}{\beginL}{\endL} +\fi +$endif$ +$if(biblio-config)$ +$if(natbib)$ +\usepackage[$natbiboptions$]{natbib} +\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} +$endif$ +$if(biblatex)$ +\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} +$for(bibliography)$ +\addbibresource{$bibliography$} +$endfor$ +$endif$ +$endif$ +$if(nocite-ids)$ +\nocite{$for(nocite-ids)$$it$$sep$, $endfor$} +$endif$ +$if(csquotes)$ +\usepackage{csquotes} +$endif$ +\usepackage{bookmark} + +\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available +\urlstyle{same} % disable monospaced font for URLs +$if(links-as-notes)$ +% Make links footnotes instead of hotlinks: +\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}} +$endif$ +$if(verbatim-in-note)$ +\VerbatimFootnotes % allow verbatim text in footnotes +$endif$ +\hypersetup{ +$if(title-meta)$ + pdftitle={$title-meta$}, +$endif$ +$if(author-meta)$ + pdfauthor={$for(by-author)$$if(it.metadata.credit.supervision)$$else$$it.name.literal$$endif$$sep$,$endfor$}, +$endif$ +$if(lang)$ + pdflang={$lang$}, +$endif$ +$if(subject)$ + pdfsubject={$subject$}, +$endif$ +$if(keywords)$ + pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, +$endif$ +$if(colorlinks)$ + colorlinks=true, + $if(linkcolor)$linkcolor={$linkcolor$}$endif$, + $if(filecolor)$filecolor={$filecolor$}$endif$, + $if(citecolor)$citecolor={$citecolor$}$endif$, + $if(urlcolor)$urlcolor={$urlcolor$}$endif$, +$else$ +$if(boxlinks)$ +$else$ + hidelinks, +$endif$ +$endif$ + pdfcreator={LaTeX via pandoc}} + +$before-title.tex()$ + +$title.tex()$ + +\begin{document} +$before-body.tex()$ + +$for(include-before)$ +$include-before$ + +$endfor$ +$toc.tex()$ + +$if(linestretch)$ +\setstretch{$linestretch$} +$endif$ +$if(has-frontmatter)$ +\mainmatter +$endif$ +$body$ + +$before-bib.tex()$ + +$if(has-frontmatter)$ +\backmatter +$endif$ +$biblio.tex()$ + +$for(include-after)$ +$include-after$ + +$endfor$ +$after-body.tex()$ + +\end{document} diff --git a/_extensions/ruc-play/stylish-roles/_extension.yaml b/_extensions/ruc-play/stylish-roles/_extension.yaml new file mode 100644 index 0000000..190c698 --- /dev/null +++ b/_extensions/ruc-play/stylish-roles/_extension.yaml @@ -0,0 +1,6 @@ +name: stylish-roles +author: Jonas Smedegaard +version: 0.0.1 +contributes: + filters: + - stylish-roles.lua diff --git a/_extensions/ruc-play/stylish-roles/stylish-roles.lua b/_extensions/ruc-play/stylish-roles/stylish-roles.lua new file mode 100644 index 0000000..50caf71 --- /dev/null +++ b/_extensions/ruc-play/stylish-roles/stylish-roles.lua @@ -0,0 +1,54 @@ +--[[ +stylish-roles - provide existence hints for attributes and CrediT roles +as authors[*].metadata.credit[role], by-author[*].metadata.credit[role], +some-author-has[*].credit[role] and some-author-has.attributes[attribute]. + +Copyright: © 2024 Jonas Smedegaard <dr@jones.dk +License: MIT – see LICENSE file for details +]] +function Meta(meta) + local attributes = {"corresponding", "equal-contributor"} + + for _, author in ipairs(meta.authors) do + if author.roles then + local _by = meta["by-author"][tonumber(author.number)] + local _some = meta["some-author-has"] + + for _, role in ipairs(author.roles) do + if role["vocab-term"] then + + -- create if missing + author.metadata.credit = author.metadata.credit or {} + _by.metadata.credit = _by.metadata.credit or {} + meta["some-author-has"] = meta["some-author-has"] or {} + meta["some-author-has"].credit = meta["some-author-has"].credit or {} + + author.metadata.credit[role["vocab-term"]] = true + _by.metadata.credit[role["vocab-term"]] = true + meta["some-author-has"].credit[role["vocab-term"]] = true + + -- debugging aid + --error(pandoc.utils.stringify(author.name.literal) + -- .. " does " .. role["vocab-term"] .. ".") + end + end + + for _, attr in ipairs(attributes) do + if author.attributes and author.attributes[attr] then + -- create if missing + meta["some-author-has"].attributes = meta["some-author-has"].attributes or {} + + meta["some-author-has"].attributes[attr] = true + end + end + end + end + + -- debugging aid + --quarto.utils.dump(meta) + --quarto.utils.dump(meta["authors"]) + --quarto.utils.dump(meta["by-author"]) + --quarto.utils.dump(meta["some-author-has"]) + + return meta +end |