diff options
Diffstat (limited to 'plugins/external-urls.lua')
-rw-r--r-- | plugins/external-urls.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/external-urls.lua b/plugins/external-urls.lua new file mode 100644 index 0000000..7ab72da --- /dev/null +++ b/plugins/external-urls.lua @@ -0,0 +1,28 @@ +function mark(name) + return ' <span class="icon"><svg><use href="/img/icons.svg#' + .. name .. + '"></use></svg></span>' +end + +links = HTML.select(page, "a") + +index, link = next(links) + +while index do + href = HTML.get_attribute(link, "href") + todo = not HTML.get_attribute(link, "marked") + + if href and todo then + if Regex.match(href, "^https?://github.com") then + icon = HTML.parse(mark("github")) + HTML.insert_after(link, icon) + elseif Regex.match(href, "^https?://") then + icon = HTML.parse(mark("external-link")) + HTML.insert_after(link, icon) + end + + HTML.set_attribute(link, "marked", "") + end + + index, link = next(links, index) +end |