diff options
Diffstat (limited to 'filters')
| -rw-r--r-- | filters/macros.lua | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/filters/macros.lua b/filters/macros.lua index dc04cfd..2864bef 100644 --- a/filters/macros.lua +++ b/filters/macros.lua | |||
| @@ -4,36 +4,21 @@ function note(el) | |||
| 4 | return el | 4 | return el |
| 5 | end | 5 | end |
| 6 | 6 | ||
| 7 | function gallery(el) | 7 | function figure(el) |
| 8 | el.classes = pandoc.List() | 8 | local images = pandoc.List() |
| 9 | el.classes:insert("c-gallery") | ||
| 10 | |||
| 11 | local cur = pandoc.Div(pandoc.List(), { class = "c-gallery__current" }) | ||
| 12 | local imageList = pandoc.Div(pandoc.List(), { class = "c-gallery__items" }) | ||
| 13 | |||
| 14 | pandoc.walk_block(el, { | ||
| 15 | Image = function(iel) | ||
| 16 | iel.classes = pandoc.List() | ||
| 17 | iel.classes:insert("c-gallery__img") | ||
| 18 | 9 | ||
| 19 | local lel = pandoc.Link(iel, iel.src) | 10 | pandoc.walk_block(el, { Image = function(iel) images:insert(iel) end }) |
| 20 | lel.classes = pandoc.List() | ||
| 21 | lel.classes:insert("c-gallery__item") | ||
| 22 | 11 | ||
| 23 | imageList.content:insert(lel) | 12 | return pandoc.RawBlock("html", |
| 24 | end, | 13 | "<figure><a href=\"" .. images[1].src .. "\"><img src=\"" .. images[1].src .. "\" title=\"" .. |
| 25 | }) | 14 | images[1].title .. "\" /></a></figure>") |
| 26 | |||
| 27 | el.content = { cur, imageList } | ||
| 28 | |||
| 29 | return el | ||
| 30 | end | 15 | end |
| 31 | 16 | ||
| 32 | function Div(el) | 17 | function Div(el) |
| 33 | if el.classes:includes("note") then | 18 | if el.classes:includes("note") then |
| 34 | el = note(el) | 19 | el = note(el) |
| 35 | elseif el.classes:includes("gallery") then | 20 | elseif el.classes:includes("figure") then |
| 36 | el = gallery(el) | 21 | el = figure(el) |
| 37 | end | 22 | end |
| 38 | 23 | ||
| 39 | return el | 24 | return el |
