diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | config.def.lua | 16 | ||||
-rwxr-xr-x | maker | 88 |
3 files changed, 52 insertions, 53 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/config.def.lua b/config.def.lua new file mode 100644 index 0000000..c4f2d80 --- /dev/null +++ b/config.def.lua @@ -0,0 +1,16 @@ +config.title = "~maker~" +config.input = "/srv/artikler" +config.output = "/srv/www" + +config.css = "/maker.css" + +config.nav = [[ +<nav> +</nav> +]] + +config.footer = [[ +<footer> +</footer> +]] + @@ -1,15 +1,12 @@ #!/usr/bin/env lua -TITLE = "radionova" -INPUT = "/srv/www/tears/artikler" -OUTPUT = "/srv/www/" - -os.setlocale("no_NO") - lfs = require "lfs" posix = require "posix" require "corz" +config = {} +dofile 'config.lua' + function lup(file) local raw, data = "", {} local stat = posix.stat(file) @@ -42,59 +39,45 @@ function header(data) print("<!doctype html>\n") print("<meta charset='utf-8'>\n") if data.overskrift then - print("<title>%s · %s</title>\n", data.overskrift or "", TITLE) + print("<title>%s · %s</title>\n", data.overskrift or "", config.title) else - print("<title>%s</title>\n", TITLE) + print("<title>%s</title>\n", config.title) end - print("<link href='/radionova.css' rel='stylesheet'>\n") + if config.css then + print("<link href='%s' rel='stylesheet'>\n", config.css) + end + + print("<meta name='viewport' content='width=device-width'>") + print("<meta name='viewport' content='initial-scale=1.0'>") print([[ <header> <h1>%s</h1> </header> -]], TITLE) +]], config.title) - print([[ -<nav> -<ul> -<li><a href='/'>Radio Nova</a> -<li><a href='/'>Programmer</a> -<li><a href='/'>Sendeplan</a> -<li><a href='/'>Studentnyhetene</a> -</ul> -</nav> -]]) + if config.nav then + print(config.nav) + end print("<main>") end function footer(data) print("</main>") - print [[ -<footer> - <div class=spiller> - <p class=spiller-program>0900 - 1000 : Skumma Kultur - <p class=spiller-naa>Spilles nå: blah blah blah - </div> -</footer> -]] + if config.footer then + print(config.footer) + end end -function html(text, data, simple) - if not simple then - header(data) - print "<section>" - print [[ - <aside> - </aside> - ]] - end +function preview(text, data) + article(text, data) +end +function article(text, data) print("<article>") if simple then if data.picto and #data.picto > 0 then print('<p><img src="%s">', data.picto) - else - print('<p><img src="/article.jpg">') end if data.path then print("<h2><a href='/%s/%s'>%s</a></h2>", data.date, data.path, data.overskrift or "") @@ -103,51 +86,50 @@ function html(text, data, simple) end else print("<h2>%s</h2>", data.overskrift or "") - print("<p>skrevet %s, av %s for %s", data.date, data.author, data.group) + print("<p>posted %s, by %s", data.date, data.author) print('<p class="lead">%s', data.lead or "") - corz.marxup(text) + corz.marxup(text, io.output()) end print "</article>\n" - if not simple then - print "</section>" - footer(data) - end end -root = INPUT -finder = ("find %s -readable -not -iname '*~' -type f | sort -n"):format(root) +root = config.input +finder = ("find %s -readable -not -iname '*~' -type f | sort -rn"):format(root) files = {} for file in io.popen(finder):read("*a"):gmatch("[^\n]+") do table.insert(files, file) end --- alle tingene for n, file in ipairs(files) do url = file:match(root .. "/(.+)%..*") - dir = OUTPUT .. posix.dirname(url) - out = OUTPUT .. url .. ".html" + dir = config.output .. posix.dirname(url) + out = config.output .. url .. ".html" if not posix.stat(out) or posix.stat(file).mtime > posix.stat(out).mtime then if not posix.stat(dir) then os.execute("mkdir -p " .. dir) end io.output(out) text, data = lup(file) - html(text, data) + header(data) + article(text, data) + footer(data) end io.output(io.stdout) end +posix.setenv("MARXUP_HEADER", "3"); + -- forside -out = OUTPUT .. "index.html" +out = config.output .. "index.html" io.output(out) header({}) for n=1,8 do if files[n] then text, data = lup(files[n]) data.path = posix.basename(files[n]):gsub(".txt$", ".html") - html(text, data, true) + preview(text, data) end end footer({}) |