| 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 |