Compare commits
25 Commits
017f26545f
...
b5a8bf3d6b
Author | SHA1 | Date |
---|---|---|
Case Duckworth | b5a8bf3d6b | |
Case Duckworth | d2e44f5378 | |
Case Duckworth | abaf0b721c | |
Case Duckworth | 29e50f0cfd | |
Case Duckworth | 3da5078dcb | |
Case Duckworth | 282e1c2e3b | |
Case Duckworth | 80bcc7bb81 | |
Case Duckworth | 5c187b1a47 | |
Case Duckworth | 3bdb2575a2 | |
Case Duckworth | 38058d57ab | |
Case Duckworth | 55f866a066 | |
Case Duckworth | cc4f2a0637 | |
Case Duckworth | dcb921b4a3 | |
Case Duckworth | 5da12dc8a1 | |
Case Duckworth | 66f47174b9 | |
Case Duckworth | aa246556ba | |
Case Duckworth | 11bed443ad | |
Case Duckworth | cfa01d9d00 | |
Case Duckworth | a39356b2a6 | |
Case Duckworth | 3a25966ced | |
Case Duckworth | 2d03c4c0f2 | |
Case Duckworth | cfab0ef908 | |
Case Duckworth | 5191bae3b9 | |
Case Duckworth | f2c4da25d2 | |
Case Duckworth | a60a7b6b08 |
|
@ -0,0 +1 @@
|
|||
O
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "breadpunk.club",
|
||||
"url": "https://breadpunk.club",
|
||||
"signup_url": "https://breadpunk.club/join",
|
||||
"user_count": "$(getent group|grep '^bakers:'|cut -d: -f4|tr , '\n'|wc -l)",
|
||||
"want_users": true,
|
||||
"admin_email": "breadpunk@acdw.net",
|
||||
"description": "We are a shared Unix computer focused on bread: baking it, eating it, using it as fiat currency in the event of a cataclysm, that sort of thing.",
|
||||
"users": [
|
||||
$(lastuser="$(getent group|grep '^bakers:'|cut -d: -f4|tr , '\n'|tail -n1)"
|
||||
for user in $(getent group|grep '^bakers:'|cut -d: -f4|tr , '\n'); do
|
||||
cat <<-ENDUSER
|
||||
{
|
||||
"username": "$user",
|
||||
"title": "$(awk '/<title>/{gsub("</?title>","");
|
||||
sub(/^[ ]/,"");sub(/[ ]$/,"");
|
||||
print;}' /home/$user/public_html/index.html)",
|
||||
"mtime": "$(stat -c %Y /home/$user/public_html/index.html)"
|
||||
}$( [ "$lastuser" = "$user" ] || printf ',' )
|
||||
ENDUSER
|
||||
done
|
||||
)
|
||||
]
|
||||
}
|
BIN
I/S/bread.png
BIN
I/S/bread.png
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 11 KiB |
|
@ -1,23 +1,54 @@
|
|||
* { position: relative; }
|
||||
body,
|
||||
html {
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font: 18px/1.3 monospace;
|
||||
background: url("/S/bread.png") repeat, wheat;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
font: 18px/1.3 CMUTypewriterTextRegular, monospace;
|
||||
background-color: wheat;
|
||||
background: url("/S/bread.png") repeat;
|
||||
}
|
||||
main {
|
||||
max-width: 70ch;
|
||||
padding: 2ch;
|
||||
#main {
|
||||
max-width: 40em;
|
||||
padding: 1em;
|
||||
margin: auto;
|
||||
background: white;
|
||||
}
|
||||
footer {
|
||||
#footer {
|
||||
margin-top: 1em;
|
||||
text-align: center;
|
||||
}
|
||||
#header,
|
||||
#footer {
|
||||
background: white;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
padding: 1ch;
|
||||
}
|
||||
#header {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
#header .nav {
|
||||
z-index: 100;
|
||||
background: white;
|
||||
padding-right: 1em;
|
||||
}
|
||||
#header * {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline;
|
||||
}
|
||||
.nav li:after {
|
||||
content: " (#) ";
|
||||
}
|
||||
.subtitle {
|
||||
font-style: italic;
|
||||
}
|
||||
pre,
|
||||
code {
|
||||
font: 14px/1.1 monospace;
|
||||
background: #ddd;
|
||||
}
|
||||
#users {
|
||||
text-align: right;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 759 B |
Binary file not shown.
After Width: | Height: | Size: 318 B |
|
@ -0,0 +1,19 @@
|
|||
title docs
|
||||
|
||||
$([ -d "$BREADDOCS" ] &&
|
||||
for F in $(find "$BREADDOCS" -path "$BREADDOCS/.git" -prune -o -type f -print); do
|
||||
case "$F" in
|
||||
*manifesto.md) ;;
|
||||
*man*) continue;;
|
||||
esac
|
||||
l "doc: $F"
|
||||
dir="$UNKO/docs/$(NN)"
|
||||
rm -rf "$dir"
|
||||
mkdir -p "$dir"
|
||||
X "$UNKL" > "$dir/index.html"
|
||||
|
||||
cat <<ENDOFITEM
|
||||
- [$(M title)](/docs/$(NN))
|
||||
ENDOFITEM
|
||||
done
|
||||
)
|
18
I/index.md
18
I/index.md
|
@ -1,9 +1,25 @@
|
|||
title BREADPUNK
|
||||
subtitle baking the net since 2020
|
||||
|
||||
Hello, and welcome to breadpunk.club.
|
||||
Hello, and welcome to **breadpunk.club**.
|
||||
We are a shared Unix computer focused on bread:
|
||||
baking it,
|
||||
eating it,
|
||||
using it as fiat currency in the event of a cataclysm,
|
||||
that sort of thing.
|
||||
|
||||
we're also dedicated to the ideas outlined
|
||||
in our [manifesto](/docs/manifesto),
|
||||
namely *anti-commoditization*,
|
||||
*self-reliance*,
|
||||
and *radical cooperation*.
|
||||
|
||||
$(for s in "$UNKI/index_sections"/*; do
|
||||
cat <<-ENDSECTION
|
||||
<div class="section" id="$(M id "$s")">
|
||||
<div class="header">$(M title "$s" |wrapstr h1)$(M subtitle "$s" |wrapstr p class=subtitle)
|
||||
</div>$(C "$s" | X | $DISCOUNT)
|
||||
</div>
|
||||
ENDSECTION
|
||||
done
|
||||
)
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
id joining
|
||||
title join us!
|
||||
|
||||
we're still a pretty small server:
|
||||
we only have $(ls /home|wc -l) bakers!
|
||||
we're all pretty friendly and would love to have you along.
|
||||
|
||||
check out our [joining page](/join)
|
||||
to apply for membership to breadpunk.club.
|
|
@ -0,0 +1,11 @@
|
|||
title news
|
||||
id news
|
||||
|
||||
<ul>
|
||||
$(for art in $(find "$BREADNEWS" -path "$BREADNEWS/.git" -prune -o -type f -print | sort -nr|head -n3); do
|
||||
cat <<-ENDOFARTICLE
|
||||
<li>$(M date "$art"|defstr $(NN "$art")|wrapstr span class="time")
|
||||
<a href="/news#$(NN "$art")">$(M title "$art")</a></li>
|
||||
ENDOFARTICLE
|
||||
done)
|
||||
</ul>
|
|
@ -0,0 +1,14 @@
|
|||
title bakers
|
||||
subtitle in order of most recent bake
|
||||
id bakers
|
||||
|
||||
<ul>
|
||||
$(for u in $(
|
||||
find /home/*/public_html -maxdepth 0 -printf '%T@\t%p\n'|
|
||||
sort -nr |
|
||||
cut -f2- |
|
||||
sed 's,/home/\(.*\)/public_html,\1,')
|
||||
do
|
||||
p "<li><a href=\"/~$u\">~$u</a></li>"
|
||||
done)
|
||||
</ul>
|
|
@ -1,11 +0,0 @@
|
|||
id joining
|
||||
title how to join
|
||||
|
||||
to become a baker,
|
||||
just send an email to [breadw](/~breadw/)
|
||||
with your SSH key,
|
||||
desired username (must be bread-oriented),
|
||||
realname (can be your "normal" username),
|
||||
and what shell you'd like to use (we have sh, bash, and zsh).
|
||||
|
||||
we'll see you around the bakery!
|
|
@ -0,0 +1,16 @@
|
|||
title joining
|
||||
|
||||
breadpunk.club is open to anyone. it's suggested that you look at our
|
||||
[manifesto](/docs/manifesto) and make sure it's something you're interested in,
|
||||
as well as our [code of conduct](/docs/code-of-conduct) to make sure you agree
|
||||
with our terms.
|
||||
|
||||
to become a baker, just send an email to [breadw](/~breadw) with your SSH key (attached, please!),
|
||||
desired username (must be bread-oriented), realname (can be your “normal”
|
||||
username), and what shell you’d like to use (we have
|
||||
$(cat /etc/shells|
|
||||
awk -F/ '/^#/{next}/tmux$/{next}/screen$/{next}
|
||||
{if (!match(shs, $NF)) shs = (shs ? shs", " : shs) $NF}
|
||||
END{sub(/[^,]+$/," and&",shs);print shs}')).
|
||||
|
||||
we’ll see you around the bakery!
|
|
@ -1,48 +0,0 @@
|
|||
title manifesto
|
||||
|
||||
>%epigraph%
|
||||
>Man cannot live on bread alone.
|
||||
>— Jesus of Nazareth
|
||||
|
||||
>%epigraph%
|
||||
>They say bread is life.
|
||||
>— Ronny Cammareri of Brooklyn
|
||||
|
||||
Bread was invented tens of thousands of years ago,
|
||||
probably by someone drunk because they had the munchies.
|
||||
It's been made continuously since then
|
||||
by people of varying degrees of sobriety
|
||||
and to varying degrees of success.
|
||||
For nearly its entire history,
|
||||
bread has been made using stale dough from earlier bread,
|
||||
or from a fresh-made pool of fermented wheat and water.
|
||||
It took time,
|
||||
but it was good,
|
||||
and we had time.
|
||||
|
||||
Of course,
|
||||
the Market came along,
|
||||
and with it hunger:
|
||||
the hunger of the working-class,
|
||||
who did not have time to
|
||||
sit and wait for bread.
|
||||
We invented instant yeast in a lab,
|
||||
we invented styrofoam bread with no taste
|
||||
but fast turnaround,
|
||||
and we called it good.
|
||||
But we knew not what we did —
|
||||
or at least, many of us didn't.
|
||||
|
||||
The alphabet, they say, was invented only once.
|
||||
Bread is invented every time, anew.
|
||||
It's life itself.
|
||||
And life is not for sale.
|
||||
|
||||
Breadpunk rejects the commoditization of life by market capitalism.
|
||||
Breadpunk is an attitude that something our ancestors made largely for free
|
||||
is not something we should be spending money on.
|
||||
Breadpunk is the idea that we have time again,
|
||||
that industrialism gives us time to bake bread.
|
||||
|
||||
Breadpunk is simple:
|
||||
**MAKE YOUR OWN DAMN BREAD.**
|
|
@ -0,0 +1,12 @@
|
|||
title news
|
||||
|
||||
$(for art in $(find "$BREADNEWS" -path "$BREADNEWS/.git" -prune -o -type f -print | sort -nr); do
|
||||
l "news: $art"
|
||||
cat <<-ENDOFARTICLE
|
||||
<div class="article" id="$(NN "$art")">
|
||||
<div class="header">$(M title "$art"|wrapstr h1)
|
||||
$(M date "$art"|wrapstr span class="time")
|
||||
$(C "$art"|X|$DISCOUNT)
|
||||
</div>
|
||||
ENDOFARTICLE
|
||||
done)
|
|
@ -0,0 +1,10 @@
|
|||
title recipes
|
||||
|
||||
$(mkdir "$UNKO/recipes")
|
||||
<ul>
|
||||
$(for r in /bread/cookbook/html/*; do
|
||||
l "recipe: $r"
|
||||
echo "<li><a href=\"/recipe/$(NN "$r")\">$(NN "$r")</a></li>"
|
||||
|
||||
done)
|
||||
</ul>
|
68
L
68
L
|
@ -1,44 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<!-- updated $(date) -->
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<meta name="description" content="a collaborative bread-positive space">
|
||||
<title>$(M title|addstr ' | ')BREADPUNK</title>
|
||||
<link rel="stylesheet" type="text/css" href="/S/breadpunk.css" />
|
||||
<link rel="stylesheet" media="screen" type="text/css"
|
||||
href="https://fontlibrary.org/face/cmu-typewriter" >
|
||||
<link rel="stylesheet" type="text/css" href="/S/breadpunk.css" >
|
||||
<link rel="icon" type="image/png" href="/S/breadpunk.png">
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<section id=intro>
|
||||
<header>
|
||||
$(M title | wrapstr h1)
|
||||
$(M subtitle | wrapstr h2)
|
||||
</header>
|
||||
$(C|$DISCOUNT)
|
||||
</section>
|
||||
$([ -d "$UNKI/$(N)_sections" ] &&
|
||||
for s in "$UNKI/$(N)_sections"/*; do
|
||||
cat <<-ENDSECTION
|
||||
<section>
|
||||
<header>
|
||||
$(M title "$s" |wrapstr h1)
|
||||
$(M subtitle "$s" |wrapstr h2)
|
||||
</header>
|
||||
$(C "$s" | $DISCOUNT)
|
||||
</section>
|
||||
ENDSECTION
|
||||
done
|
||||
)
|
||||
</main>
|
||||
<footer>
|
||||
$([ "$(N)" = index ] && {
|
||||
p "<marquee>"
|
||||
sed 's/#.*//' /bread/index-footer.txt
|
||||
p "</marquee>"
|
||||
} || {
|
||||
cat <<-ENDFOOTER
|
||||
<a href=/>back</a>
|
||||
ENDFOOTER
|
||||
<div id="header">
|
||||
<div class="nav">
|
||||
$(cat header.txt)
|
||||
$([ "$(N)" = index ] || {
|
||||
cat <<-ENDHEADER
|
||||
(#) <a href="/">home</a>
|
||||
ENDHEADER
|
||||
})
|
||||
</footer>
|
||||
</div>
|
||||
<marquee id="users">
|
||||
$(./update-footer.awk footer.txt | sed 's/#.*//')
|
||||
</marquee>
|
||||
</div>
|
||||
<div id="main">
|
||||
<div class="header">
|
||||
$(M title | wrapstr h1)
|
||||
$(M subtitle | wrapstr p class=subtitle)
|
||||
$(M author | wrapstr p class=author)
|
||||
</div>
|
||||
$(C|X|$DISCOUNT)
|
||||
</div>
|
||||
<div id="footer">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<!-- vim: ft=unk
|
||||
|
|
9
Makefile
9
Makefile
|
@ -1,5 +1,7 @@
|
|||
# breadpunk.club
|
||||
DEBUG ?= false
|
||||
BREADNEWS ?= /bread/news
|
||||
BREADDOCS ?= /bread/docs
|
||||
|
||||
RSYNC_EXCLUDES := \
|
||||
.well-known \
|
||||
|
@ -18,7 +20,8 @@ RSYNC := rsync \
|
|||
SERVE ?= php -S 127.0.0.1:2733 -t O/
|
||||
|
||||
WATCH := I/* I/*/* \
|
||||
unk lib.sh L
|
||||
unk lib.sh L *.txt \
|
||||
$(BREADNEWS)/* $(BREADDOCS)/*
|
||||
|
||||
watch:
|
||||
@echo entr -d -r $(MAKE) _serve
|
||||
|
@ -32,7 +35,7 @@ _serve: build
|
|||
$(SERVE)
|
||||
|
||||
publish: build
|
||||
$(RSYNC) O/ /var/www/breadpunk.club/
|
||||
$(RSYNC) O/ /var/www/breadpunk.club/
|
||||
|
||||
# push: publish
|
||||
# @test -z "$$(git status --porcelain)" && \
|
||||
|
@ -40,6 +43,6 @@ publish: build
|
|||
# echo "Commit changes!"
|
||||
|
||||
build:
|
||||
DEBUG=$(DEBUG) ./unk
|
||||
DEBUG=$(DEBUG) BREADNEWS=$(BREADNEWS) BREADDOCS=$(BREADDOCS) ./unk
|
||||
|
||||
PHONY: build _serve publish watch
|
||||
|
|
BIN
O/S/bread.png
BIN
O/S/bread.png
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB |
|
@ -1,23 +0,0 @@
|
|||
body,
|
||||
html {
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font: 18px/1.3 monospace;
|
||||
background: url("/S/bread.png") repeat, wheat;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
}
|
||||
main {
|
||||
max-width: 70ch;
|
||||
padding: 2ch;
|
||||
margin: auto;
|
||||
background: white;
|
||||
}
|
||||
footer {
|
||||
background: white;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
padding: 1ch;
|
||||
}
|
56
O/index.html
56
O/index.html
|
@ -1,56 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>BREADPUNK | BREADPUNK</title>
|
||||
<link rel="stylesheet" type="text/css" href="/S/breadpunk.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<section id=intro>
|
||||
<header>
|
||||
<h1>BREADPUNK</h1>
|
||||
<h2>baking the net since 2020</h2>
|
||||
</header>
|
||||
<p>Hello, and welcome to breadpunk.club.
|
||||
We are a shared Unix computer focused on bread:
|
||||
baking it,
|
||||
eating it,
|
||||
using it as fiat currency in the event of a cataclysm,
|
||||
that sort of thing.</p>
|
||||
</section>
|
||||
<section>
|
||||
<header>
|
||||
<h1>history</h1>
|
||||
</header>
|
||||
<p>breadpunk.club was envisioned by some folx over at
|
||||
<tilde.town> as a new tilde server,
|
||||
where we could talk about bread all day.</p>
|
||||
|
||||
<p>for more information, see our <a href="/manifesto/">manifesto</a>.</p>
|
||||
</section>
|
||||
<section>
|
||||
<header>
|
||||
<h1>how to join</h1>
|
||||
</header>
|
||||
<p>to become a baker,
|
||||
just send an email to <a href="/~breadw/">breadw</a>
|
||||
with your SSH key,
|
||||
desired username (must be bread-oriented),
|
||||
realname (can be your “normal” username),
|
||||
and what shell you’d like to use (we have sh, bash, and zsh).</p>
|
||||
|
||||
<p>we’ll see you around the bakery!</p>
|
||||
</section>
|
||||
</main>
|
||||
<footer>
|
||||
4
|
||||
bakers;
|
||||
9
|
||||
baking now
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
<!-- vim: ft=unk
|
||||
-->
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>manifesto | BREADPUNK</title>
|
||||
<link rel="stylesheet" type="text/css" href="/S/breadpunk.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<section id=intro>
|
||||
<header>
|
||||
<h1>manifesto</h1>
|
||||
|
||||
</header>
|
||||
<div class="epigraph"><p>Man cannot live on bread alone.
|
||||
— Jesus of Nazareth</p></div>
|
||||
|
||||
<div class="epigraph"><p>They say bread is life.
|
||||
— Ronny Cammareri of Brooklyn</p></div>
|
||||
|
||||
<p>Bread was invented tens of thousands of years ago,
|
||||
probably by someone drunk because they had the munchies.
|
||||
It’s been made continuously since then
|
||||
by people of varying degrees of sobriety
|
||||
and to varying degrees of success.
|
||||
For nearly its entire history,
|
||||
bread has been made using stale dough from earlier bread,
|
||||
or from a fresh-made pool of fermented wheat and water.
|
||||
It took time,
|
||||
but it was good,
|
||||
and we had time.</p>
|
||||
|
||||
<p>Of course,
|
||||
the Market came along,
|
||||
and with it hunger:
|
||||
the hunger of the working-class,
|
||||
who did not have time to
|
||||
sit and wait for bread.
|
||||
We invented instant yeast in a lab,
|
||||
we invented styrofoam bread with no taste
|
||||
but fast turnaround,
|
||||
and we called it good.
|
||||
But we knew not what we did —
|
||||
or at least, many of us didn’t.</p>
|
||||
|
||||
<p>The alphabet, they say, was invented only once.
|
||||
Bread is invented every time, anew.
|
||||
It’s life itself.
|
||||
And life is not for sale.</p>
|
||||
|
||||
<p>Breadpunk rejects the commoditization of life by market capitalism.
|
||||
Breadpunk is an attitude that something our ancestors made largely for free
|
||||
is not something we should be spending money on.
|
||||
Breadpunk is the idea that we have time again,
|
||||
that industrialism gives us time to bake bread.</p>
|
||||
|
||||
<p>Breadpunk is simple:
|
||||
<strong>MAKE YOUR OWN DAMN BREAD.</strong></p>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<a href=/>back</a>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
<!-- vim: ft=unk
|
||||
-->
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>BREADPUNK</title>
|
||||
<style>
|
||||
body,html {
|
||||
min-height: 100vh;
|
||||
font: 18px/1.3 monospace;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
main {
|
||||
max-width: 70ch;
|
||||
padding: 2ch;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<section id=intro>
|
||||
<header>
|
||||
<h1>BREADPUNK</h1>
|
||||
<h2>baking the net since 2020</h2>
|
||||
</header>
|
||||
|
||||
<p>
|
||||
Hello, and welcome to breadpunk.club.
|
||||
We are a shared Unix computer focused on bread:
|
||||
baking it, eating it,
|
||||
using it as fiat currency in the event of cataclysm,
|
||||
that sort of thing.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section id=history>
|
||||
<h2>history</h2>
|
||||
|
||||
<p>breadpunk.club was envisioned by
|
||||
some folx over at <a href="https://tilde.town">tilde.town</a>
|
||||
as a new tilde server,
|
||||
where we could talk about bread all day.
|
||||
</p>
|
||||
<p>
|
||||
for more information, see our
|
||||
<a href="/manifesto">manifesto</a>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section id=joining>
|
||||
<h2>how to join</h2>
|
||||
|
||||
<p>to become a baker,
|
||||
just send an email to <a href="http://breadpunk.club/~breadw">breadw</a>
|
||||
with your SSH key,
|
||||
desired username (must include a pun on bread),
|
||||
realname (can be your "normal" username),
|
||||
and what shell you'd like (we have sh, bash, zsh).
|
||||
</p>
|
||||
|
||||
<p>we'll see you around the bakery!</p>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
|
@ -1,84 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>BREADPUNK</title>
|
||||
<style>
|
||||
body,html {
|
||||
min-height: 100vh;
|
||||
font: 18px/1.3 monospace;
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
main {
|
||||
max-width: 70ch;
|
||||
padding: 2ch;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>BREADPUNK</h1>
|
||||
<h2>manifesto</h2>
|
||||
|
||||
<p class=epigraph>
|
||||
Man cannot live on bread alone.
|
||||
— Jesus of Nazareth
|
||||
</p>
|
||||
|
||||
<p class=epigraph>
|
||||
They say bread is life.
|
||||
— Ronny Cammareri of Brooklyn
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Bread was invented tens of thousands of years ago,
|
||||
probably by someone drunk because they had the munchies.
|
||||
It's been made continuously since then
|
||||
by people of varying degrees of sobriety
|
||||
and to varying degrees of success.
|
||||
For nearly its entire history,
|
||||
bread has been made using stale dough from earlier bread,
|
||||
or from a fresh-made pool of fermented wheat and water.
|
||||
It took time,
|
||||
but it was good,
|
||||
and we had time.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Of course,
|
||||
the Market came along,
|
||||
and with it hunger:
|
||||
the hunger of the working-class,
|
||||
who did not have time to
|
||||
sit and wait for bread.
|
||||
We invented instant yeast in a lab,
|
||||
we invented styrofoam bread with no taste
|
||||
but fast turnaround,
|
||||
and we called it good.
|
||||
But we knew not what we did —
|
||||
or at least, many of us didn't.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The alphabet, they say, was invented only once.
|
||||
Bread is invented every time, anew.
|
||||
It's life itself.
|
||||
And life is not for sale.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Breadpunk rejects the commoditization of life by market capitalism.
|
||||
Breadpunk is an attitude that something our ancestors made largely for free
|
||||
is not something we should be spending money on.
|
||||
Breadpunk is the idea that we have time again,
|
||||
that industrialism gives us time to bake bread.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Breadpunk is simple:
|
||||
<strong>MAKE YOUR OWN DAMN BREAD.</strong>
|
||||
</p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
|
@ -1,8 +1,7 @@
|
|||
title history
|
||||
id history
|
||||
|
||||
breadpunk.club was envisioned by some folx over at
|
||||
<tilde.town> as a new tilde server,
|
||||
[tilde.town](https://tilde.town) as a new tilde server,
|
||||
where we could talk about bread all day.
|
||||
|
||||
for more information, see our [manifesto](/manifesto/).
|
|
@ -0,0 +1,5 @@
|
|||
4 # USERS_TOTAL
|
||||
bakers
|
||||
/
|
||||
9 # USERS_CURRENT
|
||||
baking now
|
|
@ -0,0 +1,5 @@
|
|||
<ul>
|
||||
<li><a href="/news">news</a></li>
|
||||
<li><a href="/join">join</a></li>
|
||||
<li><a href="/docs">docs</a></li>
|
||||
</ul>
|
3
lib.sh
3
lib.sh
|
@ -7,12 +7,13 @@ DISCOUNT="markdown -f links,image,pants,html,autolink,fencedcode"
|
|||
alias p=echo
|
||||
alias l='p >&2'
|
||||
N(){ f="${1:-$F}";n="${f#$UNKI/}";p "${n%.*}";}
|
||||
NN(){ f="${1:-$F}";n="${f##*/}";p "${n%%.*}";}
|
||||
N_(){ f="${1:-$F}";n="$(N "$f")";p "${n#_}";}
|
||||
M(){ sed '/^$/q' "${2:-$F}"|grep "^$1"|cut -f2-;}
|
||||
C(){ sed '1,/^$/d' "${1:-$F}";}
|
||||
X(){
|
||||
Xd=$((Xd+1));
|
||||
eval "$(p "set -e";p "cat<<$UNKZ$Xd";cat "${1:--}";p;p "$UNKZ$Xd")";
|
||||
eval "$(p "set -e";p "cat<<$UNKZ$Xd";cat "${1:--}"|sed 's/`/\\`/g';p;p "$UNKZ$Xd")";
|
||||
}
|
||||
|
||||
modmsg()
|
||||
|
|
3
unk
3
unk
|
@ -6,7 +6,6 @@ set -e
|
|||
: "${UNKI:=I}"
|
||||
: "${UNKO:=O}"
|
||||
: "${UNKL:=L}"
|
||||
: "${UNKF:=La}"
|
||||
: "${UNKS:=$UNKI/S}"
|
||||
|
||||
. ./lib.sh
|
||||
|
@ -51,3 +50,5 @@ do [ -d "$F" ] && continue
|
|||
done
|
||||
|
||||
#X "$UNKF" > "$UNKO/atom.xml"
|
||||
l "Building DP"
|
||||
X Dp > "$UNKO/tilde.json"
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/awk -f
|
||||
|
||||
/USERS_TOTAL/ {
|
||||
"ls /home|wc -l" | getline $1;
|
||||
}
|
||||
/USERS_CURRENT/ {
|
||||
"users|tr ' ' '\n'|sort -u|wc -l" | getline $1;
|
||||
}
|
||||
|
||||
{ print; }
|
Loading…
Reference in New Issue