summaryrefslogtreecommitdiff
path: root/huh.lua
diff options
context:
space:
mode:
Diffstat (limited to 'huh.lua')
-rwxr-xr-xhuh.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/huh.lua b/huh.lua
new file mode 100755
index 0000000..8f834ab
--- /dev/null
+++ b/huh.lua
@@ -0,0 +1,21 @@
+#!/usr/bin/env lua
+local gumbo = require "gumbo"
+local config = require "pl.config"
+local args = require "pl.lapp" [[
+Generates an HTML document from another HTML document (huh?).
+
+Options:
+ -c, --config (default huh.conf) Configuration file
+ -h, --help Prints this help message to standard output
+
+Arguments:
+ <input> (optional string) HTML file to process
+]]
+local conf = assert(config.read(args.config))
+local document = assert(gumbo.parseFile(args.input or io.stdin))
+local head = assert(gumbo.parseFile(conf.head, {contextElement="head"}))
+for _, node in pairs(head.documentElement.childNodes) do
+ document:adoptNode(node)
+ document.head:insertBefore(node, document.head.firstChild)
+end
+document:serialize(io.stdout)