fes

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 311870683ed28b78561f4ea765afedba4c074c98
parent e2c6f15e5b2f9179b02fae294d35800da70a192c
Author: vx-clutch <[email protected]>
Date:   Tue, 16 Dec 2025 21:31:53 -0500

fixes

Diffstat:
Mindex.html | 95++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Msrc/server/server.go | 6+++---
2 files changed, 97 insertions(+), 4 deletions(-)

diff --git a/index.html b/index.html @@ -267,6 +267,10 @@ footer { <td><code>:custom()</code></td> <td>Add a custom string to the site body</td> </tr> + <tr> + <td><code>markdown_to_html(str: string)</code></td> + <td>Returns generated HTML from provided Markdown string.</td> + </tr> </tbody> </table> <h3>Std</h3> @@ -490,10 +494,99 @@ footer { </tr> </tbody> </table> + <h3>Bus</h3> + <table> <thead> + <tr> + <th>Name</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>bus.url</code></td> + <td>The current url that was given.</td> + </tr> + <tr> + <td><code>bus.params</code></td> + <td>A table of url parameters if any. Ex: ?foo=bar*baz=foobar</td> + </tr> + </tbody> + </table> + <h3>Site</h3> + <table> <thead> + <tr> + <th>Name</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>site.version</code></td> + <td>The version of the website found in the Fes.toml</td> + </tr> + <tr> + <td><code>site.name</code></td> + <td>The name of the website found in the Fes.toml</td> + </tr> + <tr> + <td><code>site.authors</code></td> + <td>A table of all authors defined in Fes.toml</td> + </tr> + </tbody> + </table> + <h3>App</h3> + Fes's <code>app</code> module is a special table + because it contains user defined functions. These + functions are defined in the <code>include/</code> For + example if you define a <code>include/hello.lua</code> + file with given contents: <pre><code>local hello = {} + +hello.render(std) return std.h1("Hello, World!") end + +return hello</pre></code> This can be called from another with, + <code>fes.app.hello.render(fes.std)</code>. Do with this + as you will. + <h3>Speical Directories</h3> + <table> <thead> + <tr> + <th>Name</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>www/</code></td> + <td>The main website is + contained here, this is + where www/index.lua + lives.</td> + </tr> + <tr> + <td><code>static/</code></td> + <td>All static content should + be placed here and can + be accessed at + <code>/static/path-to-file</code>.</td> + </tr> + <tr> + <td><code>include/</code></td> + <td>Contains lua files that are + preloaded and globally + accessible.</td> + </tr> + <tr> + <td><code>archive/</code></td> + <td>Files here can be viewed in + a file browser like + format at + <code>/archive/path-to-dir</code>.</td> + </tr> + </tbody> + </table> </section> <footer> - <p>Last updated: 2025-12-14</p> + <p>Last updated: 2025-12-16</p> </footer> </main> </body> diff --git a/src/server/server.go b/src/server/server.go @@ -136,7 +136,7 @@ func loadIncludeModules(L *lua.LState, includeDir string) *lua.LTable { return app } -func loadLua(luaDir string, entry string, cfg *config.MyConfig, requestData reqData) ([]byte, error) { +func loadLua(entry string, cfg *config.MyConfig, requestData reqData) ([]byte, error) { L := lua.NewState() defer L.Close() @@ -380,7 +380,7 @@ func Start(dir string) error { </html> `) if _, err := os.Stat(filepath.Join("www", "404.lua")); err == nil { - if nf, err := loadLua(dir, "www/404.lua", &cfg, reqData{}); err == nil { + if nf, err := loadLua("www/404.lua", &cfg, reqData{}); err == nil { notFoundData = nf } } else if _, err := os.Stat("www/404.html"); err == nil { @@ -444,7 +444,7 @@ func Start(dir string) error { var data []byte if strings.HasSuffix(route, ".lua") { - data, err = loadLua(dir, route, &cfg, reqData{path: r.URL.Path, params: params}) + data, err = loadLua(route, &cfg, reqData{path: r.URL.Path, params: params}) } else if strings.HasSuffix(route, ".md") { data, err = os.ReadFile(route) data = []byte(markdownToHTML(string(data)))