Documentation

Fes: A lightweight, static, and opinionated microframework.

Introduction

Fes, or Free Easy Site, is a microframework used for small static sites. It is not designed for complex web applications and that is why it is good. Yes, I hate modern web and that is the reason this exists.

Installation

git clone https://git.vxserver.dev/fSD/fes
cd fes
go install fes

Usage

Typical workflows and examples.

Cli Reference

Name Description
--help Display help information
--no-color Disable color output
-p <port> Set the server port
new <project> Create a new projet called <project>
doc Open this documention page
run <project> Run the projet called <project>

Reference

All std functions have binding for the site and can be used like so: site:h1("Hello, World!"), where site is the site object.

Builtin

Name Description
fes() Generate a site object
:custom() Add a custom string to the site body

Std

Name Description
std.fes_version() Get the current version of fes.
std.site_version() Get the current version of the site, defined in Fes.toml.
std.site_name() Get the current name of the site, defined in Fes.toml.
std.site_title() Get the current name of the site, defined in Fes.toml.
std.site_authors() Get a table of the authors of the site, defined in Fes.toml.
std.join Get a table of the authors of the site, defined in Fes.toml.
std.a(link: string, str: string) Returns an anchor tag.
std.ha(link: string, str: string) Returns an anchor tag with sytiling to make it hidden.
std.external(link: string, str: string) Returns an anchor tag that opens up in a new tab.
std.note(str: string) Returns a note object.
std.muted(str: string) Returns a muted object.
std.callout(str: string) Returns a callout object.
std.h1(str: string) Returns a header level 1 object.
std.h2(str: string) Returns a header level 2 object.
std.h3(str: string) Returns a header level 3 object.
std.h4(str: string) Returns a header level 4 object.
std.h5(str: string) Returns a header level 5 object.
std.h6(str: string) Returns a header level 6 object.
std.p(str: string) Returns a paragraph object.
std.pre(str: string) Returns preformated text.
std.code(str: string) Returns a codeblock.
std.ul(items: {...strings}) Generates an unordered list from a table of strings.
std.ol(items: {...strings}) Generates an ordered list from a table of strings.
std.tl(items: {...strings}) Generates a table from a table of strings.
std.blockquote(str: string) Returns a blockquote.
std.hr() Returns a horizonal rule.
std.img(src: string, alt: string) Returns an image at location source with given alternative text.
std.strong(str: string) Returns bolded text.
std.em(str: string) Returns italicized text.
std.br() Returns a break.
std.div(content: string, class: string) Returns a div of class class with content of content.
std.spa(content: string, class: string) Returns a span of class class with content of content.
std.escape(str: string) Returns an html escaped string.
std.highlight(str: string) Returns highlighted text.
std.banner(str: string) Returns a banner that is attached to the top of the site.
std.center(str: string) Returns centered text.
std.nav(link: string, str: string) Returns a speical navigation link, used for in-site traversal.
std.rl(r: string, l: string) Right and light alight content.

Symbol

Name Symbol
symbol.copyright ©
Registered Trademark ®
Trademark

Util

Name Description
util.cc(tbl: {...strings}) Concatenate a table of strings into a single string.
util.copyright(link: string, holder: string) Used when setting the website copyright holder.

Dkjson

This is a third party object and is best documented here
Name Description
dkjson.encode(obj: {...any}) Serilize a Lua table into JSON.
dkjson.decode(obj: {...any}) Deserilize JSON into a Lua table.