|
59 | 59 |
|
60 | 60 | local handlers = {} |
61 | 61 |
|
| 62 | +local function read_arg(args, n) |
| 63 | + local arg = args[n or 1] |
| 64 | + local varName |
| 65 | + if arg == nil then |
| 66 | + return nil |
| 67 | + end |
| 68 | + if type(arg) ~= "string" then |
| 69 | + varName = inlinesToString(arg) |
| 70 | + else |
| 71 | + varName = arg |
| 72 | + end |
| 73 | + return varName |
| 74 | +end |
| 75 | + |
62 | 76 | function initShortcodeHandlers() |
63 | 77 |
|
64 | 78 | -- user provided handlers |
@@ -90,32 +104,35 @@ function initShortcodeHandlers() |
90 | 104 | end) |
91 | 105 | end |
92 | 106 |
|
| 107 | + local function handle_brand(args) |
| 108 | + local brand = require("modules/brand/brand") |
| 109 | + local brandCommand = read_arg(args, 1) |
| 110 | + if brandCommand ~= "color" then |
| 111 | + warn("Unknown brand command " .. brandCommand .. " specified in a brand shortcode.") |
| 112 | + return { pandoc.Strong({pandoc.Str("?brand:" .. brandCommand)}) } |
| 113 | + end |
| 114 | + local brandName = read_arg(args, 2) |
| 115 | + local brandValue = brand.get_color(brandName) |
| 116 | + if brandValue ~= nil then |
| 117 | + return { pandoc.Str(brandValue) } |
| 118 | + else |
| 119 | + warn("Unknown brand " .. brandName .. " specified in a brand shortcode.") |
| 120 | + return { pandoc.Strong({pandoc.Str("?brand:" .. brandName)}) } |
| 121 | + end |
| 122 | + end |
93 | 123 |
|
94 | 124 | -- built in handlers (these override any user handlers) |
95 | 125 | handlers['meta'] = { handle = handleMeta } |
96 | 126 | handlers['var'] = { handle = handleVars } |
97 | 127 | handlers['env'] = { handle = handleEnv } |
98 | 128 | handlers['pagebreak'] = { handle = handlePagebreak } |
| 129 | + handlers['brand'] = { handle = handle_brand } |
99 | 130 | end |
100 | 131 |
|
101 | 132 | function handlerForShortcode(shortCode) |
102 | 133 | return handlers[shortCode.name] |
103 | 134 | end |
104 | 135 |
|
105 | | -local function read_arg(args, n) |
106 | | - local arg = args[n or 1] |
107 | | - local varName |
108 | | - if arg == nil then |
109 | | - return nil |
110 | | - end |
111 | | - if type(arg) ~= "string" then |
112 | | - varName = inlinesToString(arg) |
113 | | - else |
114 | | - varName = arg |
115 | | - end |
116 | | - return varName |
117 | | -end |
118 | | - |
119 | 136 | -- Implements reading values from envrionment variables |
120 | 137 | function handleEnv(args) |
121 | 138 | if #args > 0 then |
|
0 commit comments