handlers/render.lua

changeset 23
0ea4b0786b43
parent 22
8c8e70569d81
child 25
11ae9103f59d
equal deleted inserted replaced
22:8c8e70569d81 23:0ea4b0786b43
24 local in_meta = false 24 local in_meta = false
25 local linenum=1 25 local linenum=1
26 local meta = {} 26 local meta = {}
27 27
28 for l in f:lines() do 28 for l in f:lines() do
29 if string.match(l, config.meta_marker) then 29 if (linenum==1 or in_meta) and string.match(l, config.meta_marker) then
30 in_meta = not in_meta 30 in_meta = not in_meta
31 elseif in_meta then 31 elseif in_meta then
32 local key, val = string.match(l, "%s*([^:]*)%s*:%s*(.*)%s*") 32 local key, val = string.match(l, "%s*([^:]*)%s*:%s*(.*)%s*")
33 if key and val then 33 if key and val then
34 -- very primitive quoting, primarily as a hack to 34 -- very primitive quoting, primarily as a hack to
35 -- not need converting my files that much from Webgen. 35 -- not need converting my files that much from Webgen.
36 local val_unq=string.match(val, '^"(.*)"$') 36 local val_unq=string.match(val, '^"(.*)"$')
37 meta[key] = val_unq or val 37 meta[key] = val_unq or val
38 else 38 else
39 err.file_pos(file, linenum, "meta data syntax error") 39 err.file_pos(file, linenum, "meta data syntax error: " .. l)
40 end 40 end
41 else 41 else
42 if data then 42 if data then
43 data = data.."\n"..l 43 data = data.."\n"..l
44 elseif not string.match(l, "%s") then 44 elseif not string.match(l, "%s") then

mercurial