init
This commit is contained in:
+90
@@ -0,0 +1,90 @@
|
||||
package main
|
||||
|
||||
import "core:fmt"
|
||||
import "core:os"
|
||||
import "core:strings"
|
||||
import cm "vendor:commonmark"
|
||||
|
||||
MD_SUFFIX :: ".md"
|
||||
|
||||
|
||||
walk_tree_and_get_md_names :: proc(
|
||||
path: string,
|
||||
allocator := context.allocator,
|
||||
) -> [dynamic]string {
|
||||
|
||||
files := make([dynamic]string, allocator)
|
||||
|
||||
w := os.walker_create(path)
|
||||
defer os.walker_destroy(&w)
|
||||
|
||||
for info in os.walker_walk(&w) {
|
||||
//handle errors
|
||||
if path, err := os.walker_error(&w); err != nil {
|
||||
fmt.eprintfln("failed walking %s: %s", path, err)
|
||||
continue
|
||||
}
|
||||
|
||||
//Skip a dir
|
||||
if strings.has_suffix(info.fullpath, ".git") {
|
||||
os.walker_skip_dir(&w)
|
||||
continue
|
||||
}
|
||||
|
||||
if !strings.has_suffix(info.name, MD_SUFFIX) {
|
||||
continue //skip
|
||||
}
|
||||
|
||||
append(&files, strings.clone(info.fullpath, allocator))
|
||||
|
||||
}
|
||||
// Handle error if one happened during iteration at the end:
|
||||
if path, err := os.walker_error(&w); err != nil {
|
||||
fmt.eprintfln("failed walking %s: %v", path, err)
|
||||
}
|
||||
return files
|
||||
}
|
||||
|
||||
walk_tree :: proc(path: string) -> []u8 {
|
||||
filename: string
|
||||
md_file: []u8
|
||||
|
||||
w := os.walker_create(path)
|
||||
defer os.walker_destroy(&w)
|
||||
|
||||
for info in os.walker_walk(&w) {
|
||||
//handle errors
|
||||
if path, err := os.walker_error(&w); err != nil {
|
||||
fmt.eprintfln("failed walking %s: %s", path, err)
|
||||
continue
|
||||
}
|
||||
//lets play around
|
||||
filename = info.name
|
||||
if !strings.has_suffix(info.name, MD_SUFFIX) {
|
||||
continue
|
||||
} else {
|
||||
return md_file
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
parse_file_md_to_html :: proc(
|
||||
filename: string,
|
||||
allocator := context.allocator,
|
||||
) -> (
|
||||
parsed: cstring,
|
||||
err: os.Error,
|
||||
) {
|
||||
str: []u8
|
||||
str = os.read_entire_file_from_path(filename, allocator) or_return
|
||||
|
||||
root := cm.parse_document(raw_data(str), len(str), cm.DEFAULT_OPTIONS)
|
||||
defer cm.node_free(root)
|
||||
|
||||
html := cm.render_html(root, cm.DEFAULT_OPTIONS)
|
||||
defer cm.free(html)
|
||||
|
||||
return html, nil
|
||||
}
|
||||
Reference in New Issue
Block a user