40796c19

-532f-4e42-9c39-74c9b15f572a

▘▖▌▘▌▘▌▌▌▖▘▘▌▖▖▘▘▘▌ ╽│││╽┃╿╽╽╿┃││╽╿╽

amalgam of personalities animating a combat frame

code

webbed ring, as it were

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


4ring

"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://youtu.be/7GBlCinu9yg

https://git.ewin.moe/erin/webring

generated homepage from 4ring

usage

			
				echo "slug: url.example" > list.yaml
				echo "othersite: other.example" >> list.yaml
				./fringe # webring + simple homepage (see configuration)
				./fringe -I # just the webring
			
		

linking

configuration

if conf is specified, all other cli args will be ignored

if html is specified, all other homepage options will be ignored.

cli args

			
				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]
			
		

config file

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
			
		

generated pages

by default, 4ring generates a basic homepage listing the name, description, members, and last update time of the ring

styling the generated homepage

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 {}
			
		

populating an existing homepage

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>
			
		

yippee

thanks stella for helping me learn rust