40796c19-532f-4e42-9c39-74c9b15f572a
amalgam of personalities animating a combat frame
fringe is a webring server written in rust that generates and serves a basic homepage
it's compiled
with nix
using makeRustPackage
and outputs
statically linked linux-musl binaries
the readme from codeberg is below bc i aint rewriting the same information lol
"fourring" /foɹɪŋ/ "fringe" /fɹɪndʒ/
a fairly simple webring server that automatically generates a homepage
inspired by this one computerphile video i saw and erin's webring because i think it's neat
https://git.ewin.moe/erin/webring
echo "slug: url.example" > list.yaml
echo "othersite: other.example" >> list.yaml
./fringe # webring + simple homepage (see configuration)
./fringe -I # just the webring
if
conf
is specified, all other cli args will be ignoredif
html
is specified, all other homepage options will be ignored.
server options:
-c --conf configuration file
-p --port port to listen on [`1312`]
-l --list site list to use [`list.yaml`]
-I --no-index disable page generation and serving [false]
homepage options:
-H --html html file to populate with member list
-C --css css file to use for `index.html`
-n --name name of the webring ["fringe"]
-d --desc description of the webring ["welcome to the fringe!"]
-u --url url of the webring
-T --no-time disable display of last update time [false]
the same options as above in yaml
minimal config file, omitting optional arguments, identitcal to running ./fringe
:
port: 1312
list: list.yaml
no_index: false
name: fringe
desc: welcome to the fringe
no_time: false
example config file:
port: 1965
list: sattelites.yaml
no_index: false
# html option omitted in favor of further config below
name: low earth orbit
desc: imagine if they made gemini orbits, but on http...
css: capsule.css
url: https://ring.url
no_time: true
by default, 4ring generates a basic homepage listing the name, description, members, and last update time of the ring
to style the generated html, specify a css file that provides values for the following variables, styles the following classes, specific elements, and/or whatever you want
:root {
--bg-color
--mg-color
--fg-color
--tx-color
--ac-color
--padding
--margin
--text-size
--font
}
#site-list {}
.site-item {}
body {}
header {}
h1 {}
h2 {}
hr {}
ul {}
li {}
p {}
a {}
small {}
footer {}
to have 4ring populate an existing html file, specify a file with the string %member_list%
somewhere in it. 4ring will naively replace any occurances with a list of all sites in the ring, following this format
<ul id="site-list">
<li class="site-item">{slug}: <a href="{url}">{url}</a></li>
...
</ul>
thanks stella for helping me learn rust