feat: Added Unified file system / default layout mounts.

This commit is contained in:
Spencer Brower
2026-07-17 13:24:51 -04:00
parent fdd9ef4d46
commit 528bef3941
14 changed files with 251 additions and 113 deletions
+11
View File
@@ -13,6 +13,8 @@ import "core:strings"
Site :: struct {
arena: mem.Dynamic_Arena,
pages: [dynamic]Page,
modules: [dynamic]string,
vfs: VFS,
title: string,
description: string,
author: string,
@@ -62,6 +64,7 @@ Config_File :: struct {
layouts_dir: string,
markdown_extensions: json.Value,
params: json.Value,
modules: json.Value,
}
// Configuration loaded from command line arguments. Gets folded in to Site
@@ -161,6 +164,14 @@ site_apply_config :: proc(site: ^Site, config: Config_File, config_dir: string)
if ext_obj, ok := config.markdown_extensions.(json.Object); ok {
apply_extension_config(&site.markdown_extensions, ext_obj)
}
if modules_arr, ok := config.modules.(json.Array); ok {
for &item in modules_arr {
if s, ok2 := item.(json.String); ok2 {
append(&site.modules, fmt.tprintf("%s/%s", config_dir, s))
}
}
}
}
site_apply_path_defaults :: proc(site: ^Site, config_dir: string) {