diff options
Diffstat (limited to 'layouts')
-rw-r--r-- | layouts/base.lua | 63 | ||||
-rw-r--r-- | layouts/blog.lua | 8 |
2 files changed, 71 insertions, 0 deletions
diff --git a/layouts/base.lua b/layouts/base.lua new file mode 100644 index 0000000..1c585d7 --- /dev/null +++ b/layouts/base.lua @@ -0,0 +1,63 @@ +local navigation_table = { + {'home', '/index.html'}, + {'projects', '/projects/'}, + {'git', '/git'}, + {'about', '/about.html'}, +} + +local navlinks = '' + +for _, link in pairs(navigation_table) do + navlinks = navlinks .. + string.format('<a href="%s">%s</a> ', link[2], link[1]) +end +navlinks = string.sub(navlinks, 1, -4) + +local navigation = string.format('<div id="navigation"><pre>%s</pre></div>', navlinks) + +return function(html, page_tbl) + local html = string.gsub( + html, + '<h1>(.-)</h1>', + function(s) + return string.format( + '<h1>%s</h1>%s</br>', + s, string.rep('=', string.len(s)) + ) + end + ) + + html = string.gsub( + html, + '<h2>(.-)</h2>', + function(s) + return string.format( + '<h2>%s</h2>%s</br>', + s, string.rep('-', string.len(s)) + ) + end + ) + + local fmt = [[ +<!doctype html> + <html> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="icon" type="image/svg+xml" href="/favicon.svg"> + <title>%s</title> + <link rel="stylesheet" href="/style.css"> + </html> + <body> + <div id="content"> + %s + %s + </div> + </body> +</html> +]] +return string.format( + fmt, + string.format('%s | %s', page_tbl.title, argent.config.site_name), + navigation, + html) +end diff --git a/layouts/blog.lua b/layouts/blog.lua new file mode 100644 index 0000000..eaed8a2 --- /dev/null +++ b/layouts/blog.lua @@ -0,0 +1,8 @@ +local base = require('layouts.base') + +return function(html, page_tbl) + local html = string.format( + '<h1>%s</h1>\n\n%s', + page_tbl.title, html) + return base(html, page_tbl) +end |