package main import "core:fmt" import vmem "core:mem/virtual" import "core:os" import "core:strings" main :: proc() { directory := "/Users/simon/Odin/cm/test/website/MARKDOWN/" output_dir := "/Users/simon/Odin/cm/test/website/HTML/" arena: vmem.Arena arena_err := vmem.arena_init_growing(&arena) ensure(arena_err == nil) arena_alloc := vmem.arena_allocator(&arena) defer vmem.arena_destroy(&arena) //clean md_files := walk_tree_and_get_md_names(directory, arena_alloc) for file, i in md_files { os.change_directory(directory) fmt.printfln("parsing %s to html...", file) html, parse_err := parse_file_md_to_html(file, arena_alloc) if parse_err != nil { fmt.printfln("ERROR: Could not open file %s: %s", file, os.error_string(parse_err)) } filename := strings.split(file, directory) trimmed_filename := strings.trim_right(filename[1], ".md") sb := strings.builder_make() strings.write_string(&sb, fmt.aprintf("%v", trimmed_filename, allocator = arena_alloc)) strings.write_string(&sb, ".html") os.change_directory(output_dir) full_filename := strings.to_string(sb) file, file_err := os.create(full_filename) os.write_string(file, CSS_PREFIX) os.write_string(file, MASTODON_PREFIX) os.write_string(file, html) } }