WPI
This commit is contained in:
@@ -167,11 +167,11 @@ end
|
|||||||
|
|
||||||
function M:build()
|
function M:build()
|
||||||
if self.proto == "http" then
|
if self.proto == "http" then
|
||||||
local header = self.header:gsub("{{TITLE}}", self.title or "Document")
|
local header = self.default_header:gsub("{{TITLE}}", self.title or "Document")
|
||||||
local favicon_html = self.favicon or '<link rel="icon" href="data:image/svg+xml,<svg xmlns=%%22http://www.w3.org/2000/svg%%22 viewBox=%%220 0 100 100%%22><text y=%%22.9em%%22 font-size=%%2290%%22>🔥</text></svg>">'
|
local favicon_html = self.favicon or '<link rel="icon" href="data:image/svg+xml,<svg xmlns=%%22http://www.w3.org/2000/svg%%22 viewBox=%%220 0 100 100%%22><text y=%%22.9em%%22 font-size=%%2290%%22>🔥</text></svg>">'
|
||||||
header = header:gsub("{{FAVICON}}", favicon_html)
|
header = header:gsub("{{FAVICON}}", favicon_html)
|
||||||
local footer = self.footer:gsub("{{COPYRIGHT}}", self.copyright or symbol.legal.copyright .. "The Copyright Holder")
|
local footer = self.default_footer:gsub("{{COPYRIGHT}}", self.copyright or symbol.legal.copyright .. "The Copyright Holder")
|
||||||
return header .. table.concat(self.parts, "\n") .. footer
|
return header .. table.concat(self.parts, "\n") .. default_footer
|
||||||
end
|
end
|
||||||
return table.concat(self.parts, "\n")
|
return table.concat(self.parts, "\n")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -74,14 +74,9 @@ local site = fes.fes()
|
|||||||
|
|
||||||
-- site.copyright = fes.util.copyright("https://example.com", "%s")
|
-- site.copyright = fes.util.copyright("https://example.com", "%s")
|
||||||
|
|
||||||
site:h1("Hello, World!")
|
site:h(1, "Hello, World!")
|
||||||
|
|
||||||
return site`, name)
|
return site`, name)
|
||||||
write("Fes.toml", `[app]
|
|
||||||
|
|
||||||
name = "%s"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["%s"]`, dir, name)
|
|
||||||
write("README.md", strings.ReplaceAll(`# %s
|
write("README.md", strings.ReplaceAll(`# %s
|
||||||
|
|
||||||
$$$$$$
|
$$$$$$
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "archive"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# archive
|
|
||||||
|
|
||||||
This example demonstrates the archive feature of Fes it is useful for file
|
|
||||||
sharing purposes.
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
Pinnipeds [2] are the seals and their relatives, a group of semi-aquatic marine
|
|
||||||
mammals. The Pinnipedia is in the Order Carnivora. There are three seal
|
|
||||||
families: Odobenidae (walruses), Otariidae (eared seals, including sea lions
|
|
||||||
and fur seals), and Phocidae (true seals).[3]
|
|
||||||
|
|
||||||
Seals are sleek-bodied and barrel-shaped. Their bodies are well adapted to the
|
|
||||||
aquatic habitat where they spend most of their lives. Pinnipeds have flippers
|
|
||||||
for hands, big bulky bodies, doggish faces, and big eyes. Unlike cetaceans,
|
|
||||||
pinnipeds have their noses on their faces, and each nostril of the nose closes
|
|
||||||
when the pinniped goes underwater. Like cetaceans, pinnipeds have a thick layer
|
|
||||||
of blubber (fat) just under their skin: this blubber keeps them warm in cold
|
|
||||||
waters and keeps them fed during times when food is not easily found. When they
|
|
||||||
cannot find food, they live off the fat in the blubber.
|
|
||||||
|
|
||||||
Pinnipeds are carnivorous. This means they eat only meat (such as fish or
|
|
||||||
squid) and not plants. However, almost all pinnipeds can be eaten by polar
|
|
||||||
bears, sharks and killer whales.
|
|
||||||
|
|
||||||
Seals are often trained in zoos or aquariums to put on shows. However, in
|
|
||||||
Sweden, it is illegal to train a seal to balance a ball on its nose.[4]
|
|
||||||
|
|
||||||
From [Pinniped Wikipedia](https://simple.wikipedia.org/wiki/Pinniped)
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 MiB |
@@ -1,10 +0,0 @@
|
|||||||
local fes = require("fes")
|
|
||||||
local site = fes.fes()
|
|
||||||
|
|
||||||
site.copyright = fes.util.copyright("https://fsd.vxserver.dev", "fSD")
|
|
||||||
|
|
||||||
site:h1("Hello, World!")
|
|
||||||
|
|
||||||
site:a("/archive", fes.std.h2("To the file room!"))
|
|
||||||
|
|
||||||
return site
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "hello"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# hello
|
|
||||||
|
|
||||||
This is a very simple hello world program, the only difference between this and
|
|
||||||
default is this README.
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
local fes = require("fes")
|
|
||||||
local site = fes.fes()
|
|
||||||
|
|
||||||
site.copyright = fes.util.copyright("https://fsd.vxserver.dev", "fSD")
|
|
||||||
|
|
||||||
site:h1("Hello, World!")
|
|
||||||
|
|
||||||
return site
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "best"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# best
|
|
||||||
|
|
||||||
This is an example of best practices for the Fes framework.
|
|
||||||
|
|
||||||
## Parts
|
|
||||||
|
|
||||||
With best practice we can break our sites into a few parts.
|
|
||||||
|
|
||||||
## Index
|
|
||||||
|
|
||||||
The main page of the site loads in the header and the footer, as well as shows
|
|
||||||
some core information
|
|
||||||
|
|
||||||
## Include
|
|
||||||
|
|
||||||
Within include the header and footer are defined.
|
|
||||||
|
|
||||||
* **Header:** Site navigation and name display
|
|
||||||
* **Footer:** Extra and external information.
|
|
||||||
|
|
||||||
## Static
|
|
||||||
|
|
||||||
This is where we store our favicon.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
local footer = {}
|
|
||||||
|
|
||||||
footer.render = function(std)
|
|
||||||
return table.concat({
|
|
||||||
std.h2("Other resources"),
|
|
||||||
std.tl({
|
|
||||||
std.external("https://git.vxserver.dev/fSD/fes", "Fes source"),
|
|
||||||
std.external("https://docs.vxserver.dev/static/fes.html", "Documentation"),
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
return footer
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
local header = {}
|
|
||||||
|
|
||||||
header.render = function(std)
|
|
||||||
return std.center(std.ha("/", std.h1("Best Practices")))
|
|
||||||
end
|
|
||||||
|
|
||||||
return header
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,20 +0,0 @@
|
|||||||
local fes = require("fes")
|
|
||||||
local std = fes.std
|
|
||||||
local u = fes.util
|
|
||||||
|
|
||||||
local site = fes.fes()
|
|
||||||
|
|
||||||
site.copyright = fes.util.copyright("https://fsd.vxserver.dev", "fSD")
|
|
||||||
site.title = "Best practices"
|
|
||||||
site.favicon = "/static/favicon.ico"
|
|
||||||
|
|
||||||
site:banner(fes.app.header.render(std))
|
|
||||||
|
|
||||||
site:note(u.cc {
|
|
||||||
std.h2("Hello, World!"),
|
|
||||||
std.p("This is an example of the best practices/canonical Fes site.")
|
|
||||||
})
|
|
||||||
|
|
||||||
site:note(fes.app.footer.render(std))
|
|
||||||
|
|
||||||
return site
|
|
||||||
8
test/default/www/index.lua
Normal file
8
test/default/www/index.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
local fes = require("fes")
|
||||||
|
local site = fes.fes()
|
||||||
|
|
||||||
|
-- site.copyright = fes.util.copyright("https://example.com", "vx-clutch")
|
||||||
|
|
||||||
|
site:h(1, "Hello, World!")
|
||||||
|
|
||||||
|
return site
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "default"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
local fes = require("fes")
|
|
||||||
local site = fes.fes()
|
|
||||||
|
|
||||||
site.copyright = fes.util.copyright("https://fsd.vxserver.dev", "fSD")
|
|
||||||
|
|
||||||
site:h1("Hello, World!")
|
|
||||||
|
|
||||||
return site
|
|
||||||
7
test/error/README.md
Normal file
7
test/error/README.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# error
|
||||||
|
|
||||||
|
This is expected to return the following error:
|
||||||
|
|
||||||
|
```
|
||||||
|
Error loading page: www/index.lua line:6(column:6) near 'return': syntax error
|
||||||
|
```
|
||||||
6
test/error/www/index.lua
Normal file
6
test/error/www/index.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
local fes = require("fes")
|
||||||
|
local site = fes.fes()
|
||||||
|
|
||||||
|
site.
|
||||||
|
|
||||||
|
return site
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "error"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# error
|
|
||||||
|
|
||||||
This shows what a Lua error looks like to the user. Lua errors are the most
|
|
||||||
common and the most critical so that is why they are shown to the user. Other,
|
|
||||||
lesser errors, are only shown to the developer because of their different
|
|
||||||
nature.
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
local fes = require("fes")
|
|
||||||
local site = fes.fes()
|
|
||||||
|
|
||||||
site.copyright = fes.util.copyright("https://fsd.vxserver.dev", "fSD")
|
|
||||||
|
|
||||||
This is what an error looks like
|
|
||||||
|
|
||||||
site:h1("Hello, World!")
|
|
||||||
|
|
||||||
return site
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "markdown"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# markdown
|
|
||||||
|
|
||||||
This example demonstrate Fes's ability to handle markdown routes.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Markdown!
|
|
||||||
|
|
||||||
**Fes** also supports markdown routes!
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
[app]
|
|
||||||
|
|
||||||
name = "simple"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["vx-clutch"]
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# simple
|
|
||||||
|
|
||||||
This simple example shows the extensibility of the Fes framework. It shows the
|
|
||||||
you do not necessarily need to use the site object (although it is recommended)
|
|
||||||
you can define your own site, similar to how Lisps do things.
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
return "Hello, World!"
|
|
||||||
Reference in New Issue
Block a user