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
|
cm
|
||||||
.DS_Store
|
.DS_Store
|
||||||
test/
|
test/
|
||||||
|
website_update.sh
|
||||||
|
|||||||
31
main.odin
31
main.odin
@ -4,13 +4,13 @@ import "core:fmt"
|
|||||||
import vmem "core:mem/virtual"
|
import vmem "core:mem/virtual"
|
||||||
import "core:os"
|
import "core:os"
|
||||||
import "core:strings"
|
import "core:strings"
|
||||||
|
import "core:time"
|
||||||
|
|
||||||
print_usage :: proc() {
|
print_usage :: proc() {
|
||||||
fmt.println("Usage:\n\tcm [working dir] [output dir]\nNote:USE FULL PATH!")
|
fmt.println("Usage:\n\tcm [working dir] [output dir]\nNote:USE FULL PATH!")
|
||||||
os.exit(0)
|
os.exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
main :: proc() {
|
main :: proc() {
|
||||||
if len(os.args) <= 2 || len(os.args) > 3 {
|
if len(os.args) <= 2 || len(os.args) > 3 {
|
||||||
print_usage()
|
print_usage()
|
||||||
@ -26,10 +26,14 @@ main :: proc() {
|
|||||||
arena_alloc := vmem.arena_allocator(&arena)
|
arena_alloc := vmem.arena_allocator(&arena)
|
||||||
defer vmem.arena_destroy(&arena) //clean
|
defer vmem.arena_destroy(&arena) //clean
|
||||||
|
|
||||||
|
start := time.tick_now()
|
||||||
|
|
||||||
md_files := walk_tree_and_get_md_names(directory, arena_alloc)
|
md_files := walk_tree_and_get_md_names(directory, arena_alloc)
|
||||||
|
end := time.tick_since(start)
|
||||||
|
|
||||||
for file, i in md_files {
|
for file, i in md_files {
|
||||||
os.change_directory(directory)
|
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)
|
html, parse_err := parse_file_md_to_html(file, arena_alloc)
|
||||||
if parse_err != nil {
|
if parse_err != nil {
|
||||||
@ -37,18 +41,35 @@ main :: proc() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
filename := strings.split(file, directory)
|
filename := strings.split(file, directory)
|
||||||
|
//fmt.printfln("INFO: filename: %s", filename)
|
||||||
trimmed_filename := strings.trim_right(filename[1], ".md")
|
trimmed_filename := strings.trim_right(filename[1], ".md")
|
||||||
|
//fmt.printfln("INFO: trimmed_filename: %s", trimmed_filename)
|
||||||
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)
|
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)
|
full_filename := strings.to_string(sb)
|
||||||
|
|
||||||
file, file_err := os.create(full_filename)
|
file, file_err := os.create(full_filename)
|
||||||
|
|
||||||
|
os.write_string(file, UTF8_PREFIX)
|
||||||
os.write_string(file, CSS_PREFIX)
|
os.write_string(file, CSS_PREFIX)
|
||||||
os.write_string(file, MASTODON_PREFIX)
|
os.write_string(file, MASTODON_PREFIX)
|
||||||
os.write_string(file, html)
|
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"
|
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\">"
|
CSS_PREFIX :: "<head><link rel=\"stylesheet\" href=\"./css/style.css\">"
|
||||||
MASTODON_PREFIX :: "<a rel=me href=https://linuxrocks.online/@simonkellet></a>"
|
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 {
|
walk_tree_and_get_md_names :: proc(path: string, allocator: runtime.Allocator) -> [dynamic]string {
|
||||||
|
|
||||||
files := make([dynamic]string, allocator)
|
files := make([dynamic]string, allocator)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user