-- hyperlinks.lua -- End URLs in hyperlinks with {blank}, {parent}, {top}, or {self} to have the appropriate target added to the link. local suffixes = { 'blank', 'parent', 'top', 'self', 'frame-content' } function targetAdjust(elem, suffix, targetDest) local url = elem.target:sub(1, -string.len(suffix) - 1) local targetNameParts = {} for i = 1, #elem.content do table.insert(targetNameParts, elem.content[i].text) end local targetName = table.concat(targetNameParts, ' ') return pandoc.RawInline('html', string.format("%s", url, targetDest, targetName)) end return { { Link = function(elem) for i = 1, #suffixes do local suffix = suffixes[i] local suffixFull = '%7B' .. suffix .. '%7D' if elem.target:sub(-string.len(suffixFull)) == suffixFull then return targetAdjust(elem, suffixFull, '_' .. suffix) end end return elem end, } }