| Index: resources/slides_utils.lua
|
| diff --git a/resources/slides_utils.lua b/resources/slides_utils.lua
|
| index 29c0c7176cf6164c77461c07750a1a46ac3c7311..a0b42b4425883da30f879024902a495e2e46f03a 100644
|
| --- a/resources/slides_utils.lua
|
| +++ b/resources/slides_utils.lua
|
| @@ -29,30 +29,11 @@ function count_hypens(s)
|
| return string.len(s) - string.len(leftover)
|
| end
|
|
|
| -function parse_file(file)
|
| - local slides = {}
|
| - local block = {}
|
| -
|
| - for line in file:lines() do
|
| - local s = trim_ws(line)
|
| - if #s == 0 then -- done with a block
|
| - if #block > 0 then
|
| - slides[#slides + 1] = block
|
| - block = {}
|
| - end
|
| - else
|
| - local n = count_hypens(s)
|
| - block[#block + 1] = {
|
| - indent = n,
|
| - text = trim_ws(s:sub(n + 1, -1))
|
| - }
|
| - end
|
| - end
|
| - return slides
|
| -end
|
| -
|
| function pretty_print_slide(slide)
|
| io.write("{\n")
|
| + if slide.transition then
|
| + io.write(" transition = \"", slide.transition, "\",\n")
|
| + end
|
| for i = 1, #slide do
|
| local node = slide[i]
|
| for j = 0, node.indent do
|
| @@ -73,3 +54,35 @@ function pretty_print_slides(slides)
|
| io.write("}\n")
|
| end
|
|
|
| +function parse_transition_type(s)
|
| + return s:match("^<%s*transition%s*=%s*(%a+)%s*>$")
|
| +end
|
| +
|
| +function parse_file(file)
|
| + local slides = {}
|
| + local block = {}
|
| +
|
| + for line in file:lines() do
|
| + local s = trim_ws(line)
|
| + if #s == 0 then -- done with a block
|
| + if #block > 0 then
|
| + slides[#slides + 1] = block
|
| + block = {}
|
| + end
|
| + else
|
| + local transition_type = parse_transition_type(s)
|
| + if transition_type then
|
| + block["transition"] = transition_type
|
| + else
|
| + local n = count_hypens(s)
|
| + block[#block + 1] = {
|
| + indent = n,
|
| + text = trim_ws(s:sub(n + 1, -1))
|
| + }
|
| + end
|
| + end
|
| + end
|
| +-- pretty_print_slides(slides)
|
| + return slides
|
| +end
|
| +
|
|
|