added utf8 and footer, with comp time
This commit is contained in:
parent
7b62c1f31c
commit
33b5ee725a
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
cm
|
||||
.DS_Store
|
||||
test/
|
||||
website_update.sh
|
||||
|
||||
31
main.odin
31
main.odin
@ -4,13 +4,13 @@ import "core:fmt"
|
||||
import vmem "core:mem/virtual"
|
||||
import "core:os"
|
||||
import "core:strings"
|
||||
import "core:time"
|
||||
|
||||
print_usage :: proc() {
|
||||
fmt.println("Usage:\n\tcm [working dir] [output dir]\nNote:USE FULL PATH!")
|
||||
os.exit(0)
|
||||
}
|
||||
|
||||
|
||||
main :: proc() {
|
||||
if len(os.args) <= 2 || len(os.args) > 3 {
|
||||
print_usage()
|
||||
@ -26,10 +26,14 @@ main :: proc() {
|
||||
arena_alloc := vmem.arena_allocator(&arena)
|
||||
defer vmem.arena_destroy(&arena) //clean
|
||||
|
||||
start := time.tick_now()
|
||||
|
||||
md_files := walk_tree_and_get_md_names(directory, arena_alloc)
|
||||
end := time.tick_since(start)
|
||||
|
||||
for file, i in md_files {
|
||||
os.change_directory(directory)
|
||||
fmt.printfln("INFO: Parsing %s from .MD to HTML...", file)
|
||||
|
||||
html, parse_err := parse_file_md_to_html(file, arena_alloc)
|
||||
if parse_err != nil {
|
||||
@ -37,18 +41,35 @@ main :: proc() {
|
||||
}
|
||||
|
||||
filename := strings.split(file, directory)
|
||||
//fmt.printfln("INFO: filename: %s", filename)
|
||||
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")
|
||||
//fmt.printfln("INFO: trimmed_filename: %s", trimmed_filename)
|
||||
|
||||
os.change_directory(output_dir)
|
||||
|
||||
sb := strings.builder_make(arena_alloc)
|
||||
strings.write_string(&sb, fmt.aprintf("%v", trimmed_filename, allocator = arena_alloc))
|
||||
strings.write_string(&sb, ".html")
|
||||
full_filename := strings.to_string(sb)
|
||||
|
||||
file, file_err := os.create(full_filename)
|
||||
|
||||
os.write_string(file, UTF8_PREFIX)
|
||||
os.write_string(file, CSS_PREFIX)
|
||||
os.write_string(file, MASTODON_PREFIX)
|
||||
os.write_string(file, html)
|
||||
|
||||
if trimmed_filename == "index" {
|
||||
buf: [1024]u8
|
||||
date := time.now()
|
||||
end := time.tick_since(start)
|
||||
|
||||
os.write_string(file, "<br><footer><hr />This site was generated with love on ")
|
||||
os.write_string(file, fmt.aprintf("%s ", time.to_string_dd_mm_yy(date, buf[:])))
|
||||
os.write_string(file, fmt.aprintf("in %v ", time.duration_round(end, time.Nanosecond)))
|
||||
os.write_string(file, "<font color=#ea76cb><3</font> </footer><br>")
|
||||
}
|
||||
|
||||
fmt.printfln("INFO: Wrote %s into HTML!", md_files[i])
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,9 +8,11 @@ import cm "vendor:commonmark"
|
||||
|
||||
MD_SUFFIX :: ".md"
|
||||
|
||||
UTF8_PREFIX :: "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />"
|
||||
CSS_PREFIX :: "<head><link rel=\"stylesheet\" href=\"./css/style.css\">"
|
||||
MASTODON_PREFIX :: "<a rel=me href=https://linuxrocks.online/@simonkellet></a>"
|
||||
|
||||
|
||||
walk_tree_and_get_md_names :: proc(path: string, allocator: runtime.Allocator) -> [dynamic]string {
|
||||
|
||||
files := make([dynamic]string, allocator)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user