From 9a51c988fedef7624a3f999a8e6c8dab057429b6 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Fri, 17 Jun 2022 12:14:08 +0200 Subject: Make some page elements wide --- filters/macros.lua | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) (limited to 'filters/macros.lua') diff --git a/filters/macros.lua b/filters/macros.lua index ca0b487..df08676 100644 --- a/filters/macros.lua +++ b/filters/macros.lua @@ -1,9 +1,20 @@ +function wide(el) + local els = pandoc.List() + + els:insert(pandoc.RawBlock("html", "")) + els:insert(el) + els:insert(pandoc.RawBlock("html", "
")) + + return els +end + function alert(el) el.classes = pandoc.List() el.classes:insert("o-alert") el.classes:insert("o-alert--primary") el.classes:insert("s-alerts__alert") - return el + + return wide(el) end function figure(el) @@ -11,12 +22,14 @@ function figure(el) pandoc.walk_block(el, { Image = function(iel) images:insert(iel) end }) - return pandoc.RawBlock("html", + el = pandoc.RawBlock("html", "
\ \ \ \
") + + return wide(el) end function Div(el) @@ -28,3 +41,43 @@ function Div(el) return el end + +function CodeBlock(el) + if el.classes[1] == "plain" then + el = pandoc.Div({ el }, { class = 's-code' }) + elseif el.classes[1] then + local formatted = pandoc.pipe('pygmentize', { + '-l', el.classes[1], '-f', 'html', '-O', 'cssclass=s-code s-code--highlight', + }, el.text) + + if formatted then el = pandoc.RawBlock('html', formatted) end + end + + return wide(el) +end + +function Header(el) + if el.level <= 3 then + local newchildren = pandoc.List() + newchildren:insert(pandoc.Span(el.content, { class = 's-headings__primary' })) + el.content = newchildren + end + + return el +end + +function Table(el) + return wide(el) +end + +function Str(el) + local icon = el.text:match('^:(.*):$') + + if icon then + return pandoc.RawInline('html', + '') + end + + return el +end -- cgit v1.2.3-54-g00ecf