About Social Code
summaryrefslogtreecommitdiff
path: root/tools/note.lua
blob: 16acbc88bd23ead0460c9184f244ae91dc0ab3dc (plain)
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
local stringify = (require 'pandoc.utils').stringify
local meta_tools = require("tools/meta_tools")

local status_map = {"seedling", "budding", "evergreen"}

function Link(link)
    if not string.find(link.target, "://") then
        local note = meta_tools.get_note(link.target)
        return {pandoc.Link(note["title"], "/notes/"..link.target..".html")}
    else
        return link  
    end
end

function Pandoc(doc)
    doc.meta["main_class"] = "html-note-page"
    doc.meta["main_container"] = "main-container"
    doc.meta["front_page"] = false

    local status = stringify(doc.meta["status"])
    local status_name = status_map[tonumber(status)]
    local text = pandoc.Para(status_name)
    local image = pandoc.RawBlock("html", string.format("<img src=\"/assets/%s.svg\">", status_name))

    local status_div = pandoc.Div({text})
    status_div.classes = {"plant-status-text"}
    local div = pandoc.Div({image, status_div})
    div.classes = {"plant-status"}

    local status_info = pandoc.MetaBlocks(div)
    doc.meta["note_status"] = status_info
    return pandoc.Pandoc(doc.blocks, doc.meta)
end