save
This commit is contained in:
@@ -4,13 +4,7 @@ local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
local title = "Free Software Distributions"
|
||||
|
||||
site.title = title .. "- About"
|
||||
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
|
||||
site:banner(fes.app.header.render(std))
|
||||
fes.app.global.start(fes, site, "About")
|
||||
|
||||
site:note(u.cc({
|
||||
std.h2("Free Software Distributions"),
|
||||
@@ -50,6 +44,6 @@ site:note(u.cc({
|
||||
std.p("Except where otherwise stated, content on this site is copyright (C) 2025 by fSD and is made avaliable to you under the " .. fes.std.a("https://creativecommons.org/licenses/by-nc/4.0/", "Creative Commons Attribtuion-NonCommerical 4.0 International"))
|
||||
}))
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
local fes = require("fes")
|
||||
local std = fes.std
|
||||
local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
local title = "Free Software Distributions"
|
||||
|
||||
site.title = title .. " - Site articles"
|
||||
site.copyright = u.copyright("[https://git.vxserver.dev/fSD](https://git.vxserver.dev/fSD)", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
site:banner(fes.app.header.render(std))
|
||||
|
||||
local function url_encode(s)
|
||||
if not s then return "" end
|
||||
s = s:gsub("([^%w%-_.~])", function(c) return string.format("%%%02X", string.byte(c)) end)
|
||||
return s
|
||||
end
|
||||
|
||||
local function read_file(path)
|
||||
local f = io.open(path, "r")
|
||||
if not f then return nil end
|
||||
local data = f:read("*a")
|
||||
f:close()
|
||||
return data
|
||||
end
|
||||
|
||||
local dir = "article"
|
||||
local files = u.ls(dir)
|
||||
|
||||
local params = fes.bus.params or {}
|
||||
local article = params.article
|
||||
if type(article) == "table" then
|
||||
article = article[1]
|
||||
end
|
||||
|
||||
if article then
|
||||
local candidates = { article, article .. ".txt", article .. ".md", article .. ".html" }
|
||||
local body
|
||||
for _, c in ipairs(candidates) do
|
||||
local p = dir .. "/" .. c
|
||||
body = read_file(p)
|
||||
if body then break end
|
||||
end
|
||||
site.title = article
|
||||
if body then
|
||||
site:g("<style>h1, h2, h3, h4, h5, h6 { text-align: center; }</style>")
|
||||
site:g(fes.markdown_to_html(body))
|
||||
else
|
||||
site:note(u.cc {
|
||||
std.h1(article),
|
||||
std.p("article not found"),
|
||||
})
|
||||
end
|
||||
site:note(fes.app.footer.render(std))
|
||||
return site
|
||||
end
|
||||
|
||||
local articles = {}
|
||||
local n = 0
|
||||
for _, v in ipairs(files) do
|
||||
local display = v:gsub("%.[^%.]+$", "")
|
||||
local link = "/article?article=" .. url_encode(display)
|
||||
table.insert(articles, std.a(link, display))
|
||||
n = n + 1
|
||||
end
|
||||
|
||||
table.sort(articles, function (x, y)
|
||||
return x > y
|
||||
end)
|
||||
|
||||
if n > 0 then
|
||||
site:h1("Articles")
|
||||
site:note(std.ul(articles))
|
||||
else
|
||||
site:h1("No articles")
|
||||
end
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
|
||||
return site
|
||||
21
fsd.vxserver.dev/www/community.lua
Normal file
21
fsd.vxserver.dev/www/community.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
local fes = require("fes")
|
||||
|
||||
local std = fes.std
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
fes.app.global.start(fes, site, "Community")
|
||||
|
||||
site:h1("Community")
|
||||
|
||||
site:h2("Mailing lists")
|
||||
site:ul {
|
||||
std.element("code", nil, "hackers@fsdproject.org") .. " - " .. std.strong("only for patches") .. "Commit messages and diffs for all fSD projects can be sent here for review.",
|
||||
}
|
||||
|
||||
site:h2("Discord")
|
||||
site:p("Offical " .. std.a("https://discord.gg/A7QBvK5jhd", "discord") .. " server of the fSD project:")
|
||||
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
@@ -1,28 +0,0 @@
|
||||
local fes = require("fes")
|
||||
local std = fes.std
|
||||
local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
local title = "Free Software Distributions"
|
||||
|
||||
site.title = title .. "- FAQ"
|
||||
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
|
||||
site:banner(fes.app.header.render(std))
|
||||
|
||||
site:note(u.cc({
|
||||
std.h1("Frequently Asked Questions"),
|
||||
std.p("Welcome to the world of fSD, come here ye before thou ask thy stupid questions."),
|
||||
std.h2("Why is it called fSD?"),
|
||||
std.p([[
|
||||
The name "Free Software Distributions" is dervided from exactly what we do, we distribute free software.
|
||||
This name stems from the Berkeley Software Distribution (BSD) specifically the Software Distribution part.
|
||||
]]),
|
||||
std.p('It is worth pointing out that the word "free" is being used in two ways here: one meaning "at no cost" and the other meaning "do whatever you like".'),
|
||||
}))
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
|
||||
return site
|
||||
45
fsd.vxserver.dev/www/hacking.lua
Normal file
45
fsd.vxserver.dev/www/hacking.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
local fes = require("fes")
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
fes.app.global.start(fes, site)
|
||||
|
||||
site:h1("Hacking")
|
||||
|
||||
site:h2("Copying/license")
|
||||
site:p("We only accept contributions from individuals, not corporate entities. See the project LICENSE or equivalent file you're contributing to.")
|
||||
|
||||
site:h2("Patches")
|
||||
site:p("Please provide a clear and concise \"commit message\" for your patches.")
|
||||
|
||||
site:h3("patch filename format")
|
||||
site:p("The expected format for patches is:")
|
||||
site:p("For git revisions:")
|
||||
site:code([[
|
||||
toolname-patchname-YYYDDMM-SHORTHASH.patch
|
||||
yait-updatething-19300101-1234abc.patch
|
||||
]])
|
||||
site:p([[
|
||||
The YYYYMMDD date should correspond to the last time the patch has been
|
||||
modified. The SHORTHASH here is the seven chars git commit short hash
|
||||
corresponding to the last commit of the tool on which the patch can be applied
|
||||
correctly and is working with. You can get it by taking the first seven chars
|
||||
of the full hash or for example:
|
||||
]])
|
||||
site:code("git rev-parse --short <commit-id> (with commit-id: HEAD, commit hash, etc.)")
|
||||
|
||||
site:h2("patch generation")
|
||||
site:p("For git:")
|
||||
site:code([[
|
||||
git format-patch --stdout origin/main >toolname-patchname-YYYYDDMM-SHORTHASH.patch
|
||||
]])
|
||||
|
||||
site:h2("patch program")
|
||||
site:p("For git users:")
|
||||
site:code([[
|
||||
git apply toolname-patchname-YYYYDDMM-SHORTHASH.patch
|
||||
]])
|
||||
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
@@ -1,59 +1,17 @@
|
||||
local fes = require("fes")
|
||||
|
||||
local std = fes.std
|
||||
local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
local title = "Free Software Distributions"
|
||||
fes.app.global.start(fes, site)
|
||||
|
||||
site.title = title
|
||||
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
site:h1("Home")
|
||||
site:p(u.cc {
|
||||
std.p("Welcome to the " .. std.em("Free Software Distributions Project") .. ". This place is home to various free software."),
|
||||
})
|
||||
|
||||
site:banner(fes.app.header.render(std))
|
||||
|
||||
site:g(fes.markdown_to_html([[
|
||||
News
|
||||
===
|
||||
2026-03-01
|
||||
----------
|
||||
[fes-0.3.0](/releases/fes) released: [download](/archive/fes/fes-0.3.0.tar.gz)
|
||||
|
||||
2026-03-01
|
||||
----------
|
||||
[fes-0.2.1](/releases/fes) released: [download](/archive/fes/fes-0.2.1.tar.gz)
|
||||
|
||||
2026-03-01
|
||||
----------
|
||||
[fes-0.2.0](/releases/fes) released: [download](/archive/fes/fes-0.2.0.tar.gz)
|
||||
|
||||
2026-01-02
|
||||
----------
|
||||
Some changes were made to this site.
|
||||
[sites](https://git.vxserver.dev/fSD/sites)
|
||||
* Update fes's release page
|
||||
* Update release archive structure
|
||||
* Add way to get to archive fromr release
|
||||
|
||||
2026-01-01
|
||||
----------
|
||||
[fes-0.1.0](/releases/fes) released: [download](/archive/fes/fes-0.1.0.tar.gz)
|
||||
|
||||
2025-31-12
|
||||
----------
|
||||
Some changes were made to this site.
|
||||
[sites](https://git.vxserver.dev/fSD/sites)
|
||||
* New article
|
||||
* Update release pages
|
||||
|
||||
2025-17-12
|
||||
----------
|
||||
Some changes were made to this site.
|
||||
[sites](https://git.vxserver.dev/fSD/sites)
|
||||
* General improvments and fixes
|
||||
* Moving the news page to here.
|
||||
]]))
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
local fes = require("fes")
|
||||
local std = fes.std
|
||||
local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
local title = "Free Software Distributions"
|
||||
|
||||
site.title = title .. " - Release"
|
||||
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
|
||||
site:banner(fes.app.header.render(std))
|
||||
fes.app.global.start(fes, site, "Releases")
|
||||
|
||||
local pkgs = {
|
||||
"yait",
|
||||
@@ -27,6 +20,6 @@ end
|
||||
site:p("This directory contains the tools which have been created or maintained by the Free Software Distributions Project.")
|
||||
site:tl(directory_packages)
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
@@ -4,11 +4,7 @@ local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
site.title = "fes - Free Easy Site"
|
||||
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
|
||||
site:banner(fes.app.header.render(std))
|
||||
fes.app.global.start(fes, site, "fes")
|
||||
|
||||
site:h2("Fes")
|
||||
site:muted("fes is a lightweight, static, and optionated microframework.")
|
||||
@@ -24,7 +20,7 @@ site:p("You can deploy websites using the " ..
|
||||
std.external("https://git.vxserver.dev/fSD/-/packages/container/fes/latest", "docker") .. " image:")
|
||||
site:code("docker pull git.vxserver.dev/fsd/fes:latest")
|
||||
|
||||
local tars = u.ls("archive")
|
||||
local tars = u.ls("archive/fes")
|
||||
|
||||
local function parseVersion(pkg)
|
||||
local version = pkg:match("-(.+)$")
|
||||
@@ -72,6 +68,6 @@ site:ul {
|
||||
}
|
||||
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
|
||||
@@ -4,11 +4,7 @@ local u = fes.util
|
||||
|
||||
local site = fes.fes()
|
||||
|
||||
site.title = "yait - Yet Another Init Tool"
|
||||
site.copyright = u.copyright("https://git.vxserver.dev/fSD", "fSD")
|
||||
site.favicon = "/static/favicon.ico"
|
||||
|
||||
site:banner(fes.app.header.render(std))
|
||||
fes.app.global.start(fes, site, "yait")
|
||||
|
||||
site:h2("Yait")
|
||||
site:muted("Yait is a highly opinionated C and SH project generator.")
|
||||
@@ -20,9 +16,9 @@ site:code("git clone https://git.vxserver.dev/fSD/yait")
|
||||
site:h2("Download")
|
||||
site:ul {
|
||||
std.p(std.a("/archive/yait/yait-1.0.tar.gz", "yait-1.0") .. " (2025-31-12)"),
|
||||
std.a("/archive/yait", "Looking for specific version?")
|
||||
std.a("/archive/tools", "Looking for specific version?")
|
||||
}
|
||||
|
||||
site:note(fes.app.footer.render(std))
|
||||
fes.app.global.finish(fes, site)
|
||||
|
||||
return site
|
||||
|
||||
Reference in New Issue
Block a user