diff --git a/URGENT b/URGENT deleted file mode 100644 index c128aa3..0000000 --- a/URGENT +++ /dev/null @@ -1 +0,0 @@ -IT DOSN'T LOAD FES diff --git a/examples/archive/Fes.toml b/bak.examples/archive/Fes.toml similarity index 100% rename from examples/archive/Fes.toml rename to bak.examples/archive/Fes.toml diff --git a/examples/archive/archive/2025/seal.png b/bak.examples/archive/archive/2025/seal.png similarity index 100% rename from examples/archive/archive/2025/seal.png rename to bak.examples/archive/archive/2025/seal.png diff --git a/examples/archive/www/index.lua b/bak.examples/archive/www/index.lua similarity index 100% rename from examples/archive/www/index.lua rename to bak.examples/archive/www/index.lua diff --git a/examples/bus/Fes.toml b/bak.examples/bus/Fes.toml similarity index 100% rename from examples/bus/Fes.toml rename to bak.examples/bus/Fes.toml diff --git a/examples/bus/www/index.lua b/bak.examples/bus/www/index.lua similarity index 100% rename from examples/bus/www/index.lua rename to bak.examples/bus/www/index.lua diff --git a/examples/canonical/Fes.toml b/bak.examples/canonical/Fes.toml similarity index 100% rename from examples/canonical/Fes.toml rename to bak.examples/canonical/Fes.toml diff --git a/examples/canonical/include/header.lua b/bak.examples/canonical/include/header.lua similarity index 100% rename from examples/canonical/include/header.lua rename to bak.examples/canonical/include/header.lua diff --git a/examples/canonical/www/404.lua b/bak.examples/canonical/www/404.lua similarity index 100% rename from examples/canonical/www/404.lua rename to bak.examples/canonical/www/404.lua diff --git a/examples/canonical/www/index.lua b/bak.examples/canonical/www/index.lua similarity index 100% rename from examples/canonical/www/index.lua rename to bak.examples/canonical/www/index.lua diff --git a/examples/error/Fes.toml b/bak.examples/error/Fes.toml similarity index 100% rename from examples/error/Fes.toml rename to bak.examples/error/Fes.toml diff --git a/examples/error/www/index.lua b/bak.examples/error/www/index.lua similarity index 100% rename from examples/error/www/index.lua rename to bak.examples/error/www/index.lua diff --git a/examples/favicon/Fes.toml b/bak.examples/favicon/Fes.toml similarity index 100% rename from examples/favicon/Fes.toml rename to bak.examples/favicon/Fes.toml diff --git a/examples/favicon/static/image/favicon.ico b/bak.examples/favicon/static/image/favicon.ico similarity index 100% rename from examples/favicon/static/image/favicon.ico rename to bak.examples/favicon/static/image/favicon.ico diff --git a/examples/favicon/www/index.lua b/bak.examples/favicon/www/index.lua similarity index 100% rename from examples/favicon/www/index.lua rename to bak.examples/favicon/www/index.lua diff --git a/examples/hello-world/Fes.toml b/bak.examples/hello-world/Fes.toml similarity index 100% rename from examples/hello-world/Fes.toml rename to bak.examples/hello-world/Fes.toml diff --git a/examples/hello-world/www/index.lua b/bak.examples/hello-world/www/index.lua similarity index 100% rename from examples/hello-world/www/index.lua rename to bak.examples/hello-world/www/index.lua diff --git a/examples/json/Fes.toml b/bak.examples/json/Fes.toml similarity index 100% rename from examples/json/Fes.toml rename to bak.examples/json/Fes.toml diff --git a/examples/json/www/index.lua b/bak.examples/json/www/index.lua similarity index 100% rename from examples/json/www/index.lua rename to bak.examples/json/www/index.lua diff --git a/examples/multi-page/Fes.toml b/bak.examples/multi-page/Fes.toml similarity index 100% rename from examples/multi-page/Fes.toml rename to bak.examples/multi-page/Fes.toml diff --git a/examples/multi-page/www/index.lua b/bak.examples/multi-page/www/index.lua similarity index 100% rename from examples/multi-page/www/index.lua rename to bak.examples/multi-page/www/index.lua diff --git a/examples/multi-page/www/page1.lua b/bak.examples/multi-page/www/page1.lua similarity index 100% rename from examples/multi-page/www/page1.lua rename to bak.examples/multi-page/www/page1.lua diff --git a/examples/multi-page/www/page2.lua b/bak.examples/multi-page/www/page2.lua similarity index 100% rename from examples/multi-page/www/page2.lua rename to bak.examples/multi-page/www/page2.lua diff --git a/examples/multi-page/www/sub/subpage.lua b/bak.examples/multi-page/www/sub/subpage.lua similarity index 100% rename from examples/multi-page/www/sub/subpage.lua rename to bak.examples/multi-page/www/sub/subpage.lua diff --git a/examples/simple/Fes.toml b/bak.examples/simple/Fes.toml similarity index 100% rename from examples/simple/Fes.toml rename to bak.examples/simple/Fes.toml diff --git a/examples/simple/www/index.lua b/bak.examples/simple/www/index.lua similarity index 100% rename from examples/simple/www/index.lua rename to bak.examples/simple/www/index.lua diff --git a/examples/static/Fes.toml b/bak.examples/static/Fes.toml similarity index 100% rename from examples/static/Fes.toml rename to bak.examples/static/Fes.toml diff --git a/examples/static/static/foo b/bak.examples/static/static/foo similarity index 100% rename from examples/static/static/foo rename to bak.examples/static/static/foo diff --git a/examples/static/www/index.lua b/bak.examples/static/www/index.lua similarity index 100% rename from examples/static/www/index.lua rename to bak.examples/static/www/index.lua diff --git a/src/new/new.go b/src/new/new.go index eaf4cf1..2fa1b0f 100644 --- a/src/new/new.go +++ b/src/new/new.go @@ -9,6 +9,7 @@ import ( "strings" ) +/* try to get git user, if not system user */ func getName() string { out, err := exec.Command("git", "config", "user.name").Output() if err == nil { @@ -21,43 +22,10 @@ func getName() string { if err == nil && u.Username != "" { return u.Username } - return "" + return "unknown" } -// func Project(dir string) error { -// if err := os.MkdirAll(filepath.Join(dir, "www"), 0755); err != nil { -// return err -// } -// indexLua := filepath.Join(dir, "www", "index.lua") -// if _, err := os.Stat(indexLua); os.IsNotExist(err) { -// content := fmt.Sprintf(`local fes = require("fes") -// local site = fes.fes() -// -// site.title = "%s" -// -// site:h1("Hello, World!") -// -// return site -// `, dir) -// if err := os.WriteFile(indexLua, []byte(content), 0644); err != nil { -// return err -// } -// } -// indexFes := filepath.Join(dir, "Fes.toml") -// if _, err := os.Stat(indexFes); os.IsNotExist(err) { -// content := fmt.Sprintf(`[app] -// -// name = "%s" -// version = "0.0.1" -// authors = ["%s"]`, dir, getName()) -// if err := os.WriteFile(indexFes, []byte(content), 0644); err != nil { -// return err -// } -// } -// fmt.Println("Created new project at", dir) -// return nil -// } - +/* helper function for writing files */ func write(path string, format string, args ...interface{}) error { dir := filepath.Dir(path) if err := os.MkdirAll(dir, 0755); err != nil { @@ -72,6 +40,7 @@ func write(path string, format string, args ...interface{}) error { return err } +/* creates a hello world project */ func Project(dir string) error { if err := os.Mkdir(dir, 0755); err != nil { return err diff --git a/src/server/server.go b/src/server/server.go index 6a314ef..ba3c9c4 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -22,11 +22,13 @@ import ( "fes/src/config" ) +/* structure of all data passed to page via fes.bus */ type reqData struct { path string params map[string]string } +/* loads directories to routes */ func handleDir(entries []os.DirEntry, dir string, routes map[string]string, base string, isStatic bool) error { for _, entry := range entries { path := filepath.Join(dir, entry.Name()) @@ -70,6 +72,7 @@ func basePath(base string) string { return base } +/* fixes empty TOML keys (e.g., key=) */ func fixMalformedToml(content string) string { re := regexp.MustCompile(`(?m)^(\s*\w+\s*=\s*)$`) return re.ReplaceAllStringFunc(content, func(match string) string { @@ -82,6 +85,7 @@ func fixMalformedToml(content string) string { }) } +/* converts markdown to html */ func markdownToHTML(mdText string) string { extensions := parser.CommonExtensions | parser.AutoHeadingIDs | parser.NoEmptyLineBeforeBlock p := parser.NewWithExtensions(extensions) @@ -92,6 +96,7 @@ func markdownToHTML(mdText string) string { return string(markdown.Render(doc, renderer)) } +/* load Lua include modules used in core/ into their table */ func loadIncludeModules(L *lua.LState, includeDir string) *lua.LTable { app := L.NewTable() ents, err := os.ReadDir(includeDir) @@ -121,6 +126,7 @@ func loadIncludeModules(L *lua.LState, includeDir string) *lua.LTable { return app } +/* load and execute lua scripts with core and user modules */ func loadLua(luaDir string, entry string, cfg *config.MyConfig, requestData reqData) (string, error) { L := lua.NewState() defer L.Close() @@ -247,6 +253,7 @@ func loadLua(luaDir string, entry string, cfg *config.MyConfig, requestData reqD return "", nil } +/* generate html index page for archive directories */ func generateArchiveIndex(fsPath string, urlPath string) (string, error) { info, err := os.Stat(fsPath) if err != nil { @@ -296,10 +303,7 @@ func generateArchiveIndex(fsPath string, urlPath string) (string, error) { return strings.ToLower(list[i].name) < strings.ToLower(list[j].name) }) - urlPath = strings.TrimPrefix(urlPath, "/archive") - if urlPath == "" { - urlPath = "/" - } + urlPath = basePath(strings.TrimPrefix(urlPath, "/archive")) var b strings.Builder b.WriteString("\nIndex of ") @@ -340,6 +344,7 @@ func generateArchiveIndex(fsPath string, urlPath string) (string, error) { return b.String(), nil } +/* start http server with features */ func Start(dir string) error { if err := os.Chdir(dir); err != nil { return fmt.Errorf("failed to change directory to %s: %w", dir, err)