import os, osproc, strutils proc cutBetween(str, a, b: string): string = let cutA = str.find(a) cutB = str.find(b) if cutA == -1 or cutB == -1: return "" return str[cutA + a.len..<cutB] var md: seq[string] var exampleFiles = [ "examples/text.nim", "examples/text_spans.nim", "examples/square.nim", "examples/line.nim", "examples/rounded_rectangle.nim", "examples/heart.nim", "examples/masking.nim", "examples/gradient.nim", "examples/image_tiled.nim", "examples/shadow.nim", "examples/blur.nim", "examples/tiger.nim" ] for path in exampleFiles: discard execCmd("nim c -r " & path) let code = readFile(path) let innerCode = code.cutBetween("image.fill(rgba(255, 255, 255, 255))", "image.writeFile") if innerCode != "": let path = path.replace("\\", "/") md.add "### " & path.splitFile().name.replace("_", " ").capitalizeAscii() md.add "nim c -r [" & path & "](" & path & ")" md.add "```nim" md.add innerCode.strip() md.add "```" md.add ".replace("\\", "/") & ")" md.add "" var readme = readFile("README.md") let at = readme.find("## Examples") if at != -1: readme = readme[0 .. at] readme.add("# Examples\n\n") readme.add("`git clone https://github.com/treeform/pixie` to run examples.\n\n") readme.add(md.join("\n")) writeFile("README.md", readme)