summaryrefslogtreecommitdiffstats
path: root/filters/macros.lua
blob: dc04cfd6818439a93e74c90f8a8dbf389815a4b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function note(el)
    el.classes = pandoc.List()
    el.classes:insert("c-note")
    return el
end

function gallery(el)
    el.classes = pandoc.List()
    el.classes:insert("c-gallery")

    local cur = pandoc.Div(pandoc.List(), { class = "c-gallery__current" })
    local imageList = pandoc.Div(pandoc.List(), { class = "c-gallery__items" })

    pandoc.walk_block(el, {
        Image = function(iel)
            iel.classes = pandoc.List()
            iel.classes:insert("c-gallery__img")

            local lel = pandoc.Link(iel, iel.src)
            lel.classes = pandoc.List()
            lel.classes:insert("c-gallery__item")

            imageList.content:insert(lel)
        end,
    })

    el.content = { cur, imageList }

    return el
end

function Div(el)
    if el.classes:includes("note") then
        el = note(el)
    elseif el.classes:includes("gallery") then
        el = gallery(el)
    end

    return el
end