Many other changes

... I did the thing again.  Here's a summary:

- added docs/*
- changed templates
- added shortcodes
- see https://tildegit.org/breadpunk/scripts/src/branch/master/site/bin for
the script that updates these
- update config
- update .gitignore
- and more! ...
This commit is contained in:
Case Duckworth 2021-11-21 12:33:15 -06:00
parent 0b9aa0ac9f
commit e2f2c21a25
29 changed files with 612 additions and 16 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
O
public
#.*

View File

@ -7,6 +7,8 @@ compile_sass = true
# Whether to build a search index to be used later on by a JavaScript library
build_search_index = false
title = "BREADPUNK"
[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola

View File

@ -16,8 +16,18 @@ namely *anti-commoditization*,
*self-reliance*,
and *radical cooperation*.
## news
## join us!
if you like to bake, want to learn more about baking,
or just love bread, come [join us](/join)!
it's easy to apply for membership and we're looking forward to having you.
## bakers
> in order of their most recent bake
{{ users() }}

4
content/docs/_index.md Normal file
View File

@ -0,0 +1,4 @@
+++
title = "docs"
sort_by = "title"
+++

View File

@ -0,0 +1,20 @@
+++
title = "breadtimer"
author = "sauerteig"
+++
`breadtimer` is a simple timer that notifies you when your bread needs
to be taken out of the oven. Before it turns to ash.
## using breadtimer
`breadtimer [option] time`
The only option is -h for help. The baking time is given in minutes.
## see also
`man breadtimer`

View File

@ -0,0 +1,127 @@
+++
title = "code of conduct"
author = "breadw"
+++
> this code of conduct is based on
> [tilde.town's](http://tilde.town/wiki/conduct.html),
> which is in turn based on the
> [Citizen Code of Conduct](http://citizencodeofconduct.org/),
> released under the
> [CC-BY-SA](http://creativecommons.org/licenses/by-sa/3.0/<Paste>)
> license.
> as such, this code of conduct is released under the same terms.
# purpose
a primary goal of breadpunk.club is to be as inclusive to the largest number
of contributors, with the most varied and diverse backgrounds, as possible. as
such, we are committed to providing a friendly, safe and welcoming environment
for all, regardless of gender, sexual orientation, ability, ethnicity,
socioeconomic status, and religion (or lack thereof).
this code of conduct outlines our expectations for all those who participate
in our community, as well as the consequences for unacceptable behavior.
we invite all those who participate in breadpunk.club to help us create safe
and positive experiences for everyone.
# vision of breadpunk.club
**breadpunk.club exists to provide a safe, non-judgmental, and fun place to
explore creative projects and crafts of all kinds and to see an intentional
digital community.**
we are here to redefine the boundaries and meanings of community in a
post-google era of the internet. we are here to provide and to create for each
other a space free from the constant consumerist messaging the wider internet
inundates us with. in the same way the simple act of making our own bread
frees us from the market forces that cause needless suffering and
commoditization of human life, interacting on tilde servers such as
breadpunk.club frees us from the consumer-producer dichotomy inherent in the
wider culture.
for more information on breadpunk.club's vision, refer to the
[manifesto](/docs/manifesto).
to that end, breadpunk.club strives to be a radically inclusive community
where people of all backgrounds and all technological and gastronomical
experience levels can come together for peer education, to delight in one
another's creations, and to make good conversation.
# expected behavior
the following behaviors are expected and requested of all community members:
- participate in an authentic and active way. in doing so, you contribute to
the health and longevity of this community.
- exercise consideration and respect in your speech and actions.
- attempt collaboration before conflict.
- refrain from demeaning, discriminatory, or harassing behavior and speech.
- if anyone asks you to stop a particular kind of behavior, always err on the
side of respecting their wishes. if you believe their request is
unreasonable or unfair, ask an admin, but don't respond with hostility.
- be mindful of your surroundings and of your fellow participants. alert
community leaders if you notice a dangerous situation, someone in distress,
or violations of this code of conduct, even if they seem inconsequential.
# unacceptable behavior
unacceptable behaviors include: intimidating, harassing, abusive,
discriminatory, derogatory, or demeaning speech or actions by any
breadpunk.club user online, at any related events, or in one-on-one
communications carried out in the conduct of breadpunk.club related projects.
community event venues -- physical or digital -- may be shared with members of
the public, so please be respectful to everyone at those locations.
harassment includes the following: harmful or prejudicial verbal or written
comments related to gender, age, sexual orientation, race, religious choices,
or disability; inappropriate use of nudity and/or sexual images in public
places (like your `~/public_html` pages); deliberate intimidation, stalking or
following; harassing recording; sustained disruption of the work of others;
and unwelcome sexual attention.
# consequences of unacceptable behavior
unacceptable behavior from any community member, including those with decision
making authority or sudo access, will not be tolerated.
anyone asked to stop unacceptable behavior is expected to comply immediately.
if a community member engages in unacceptable behavior, the breadpunk.club
admins my take any action they deem appropriate, up to and including a
temporary ban or permanent expulsion from breadpunk.club (meaning your account
would be revoked and ~ deleted) without warning.
# if you witness or are subject to unacceptable behavior
if you are subject to or witness of unacceptable behavior, or have any other
concerns, please see the contact information below.
additionally, help engaging with law enforcement is always available.
# addressing grievances
if you feel you have been falsely or unfairly accused of violating this code
of conduct, use the contact information below to send a concise description of
your grievance.
# scope
we expect all breadpunk.club members to abide by this code of conduct while
- engaging with others locally on the server
- publishing content hosted on breadpunk.club
- engaging in community activities, whether in cyber- or bread-space
# contact information
breadpunk.club admin
- [~breadw](/~breadw) @ **breadpunk at acdw dot net**
volunteer and other admins
- [~lucitoast](/~lucitoast) @ [contact info](https://tilde.town/~lucidiot/contact.html)
admins can be reached privately
- on IRC using `/msg breadw hi`
- via local breadpunk.club email, e.g. `breadw@breadpunk.club`
- or via normal email at the addresses above

10
content/docs/history.md Normal file
View File

@ -0,0 +1,10 @@
+++
title = "history"
author = "breadw"
+++
breadpunk.club was envisioned by some folx over at
[tilde.town](https://tilde.town) as a new tilde server,
where we could talk about bread all day.
for more information, see our [manifesto](/docs/manifesto/).

102
content/docs/irc.md Normal file
View File

@ -0,0 +1,102 @@
+++
title = "IRC"
author = "breadw and lucitoast"
+++
## what is IRC
Internet Relay Chat has been around for like, a long time.
I won't bore you with all the details; that's what
[Wikipedia](https://en.wikipedia.org/wiki/Internet_Relay_Chat)
is for.
however, here at breadpunk.club we use IRC a lot.
we chat on it,
we're eventually going to have bots with it,
as well as inside jokes, and all sorts of fun stuff.
the breadpunk club uses the InspIRCd server,
which probably doesn't mean much,
unless you're an admin,
but there's the info.
## connecting to IRC
to join on IRC, just run `weechat` or `irssi` from
your [ssh](/docs/ssh)'d terminal.
you might also want to set up a [magic tunnel](/docs/magic-tunnel)
so you can use IRC from your own computer.
here's a list of channels we have on breadpunk.club:
- `#bread`
## registering your nick
to prevent others from using your nickname, and to allow registering
channels, setting your pronouns or other contact info, or receiving memos
from other users, you will need to register your nickname. it's easy:
```
/msg NickServ REGISTER [password] [username]@breadpunk.club
```
you should use your breadpunk username here as this is your local e-mail
address, which will be used to send you a confirmation code. The e-mail with
your confirmation code will tell you how to confirm your registration.
later, to log in, you can use `/msg NickServ IDENTIFY [password]`.
### your personal info
when you are registered, anyone can type in `/msg NickServ INFO [yourname]`
and get a little bit of info about who you are. we created a few custom commands
so that you can set some more useful metadata about you:
* `MSN`: your msn messenger contact info.
if you set this, you are probably using a custom server;
we encourage you to also put a link to your msn server so that others can join you.
* `FEDIVERSE`: your fediverse account(s).
* `URL`: whatever URL you want; usually a link to your personal website.
* `PRONOUNS`: the pronouns one should use to talk about you.
* `ICE`: **i**n **c**ase of **e**mergency - the kind of info we could use
if we wanted to make sure you are doing okay: how to get in touch with someone
that can find you irl or help you out in any way.
* `GREET`: a rather well known
all of this information is of course optional, though the use of `PRONOUNS` and `ICE`
is encouraged. you can set all of this using the following command:
```
/msg NickServ SET PRONOUNS she/her
```
same goes for all of the other items mentioned above. then, with `INFO`,
other users will see something along the lines of `PRONOUNS: she/her`.
use `/msg NickServ HELP` and `HELP SET` to learn more about all of this.
### auto-login on weechat
to automatically log-in to NickServ on weechat, you can set weechat to execute
`IDENTIFY` on connect with:
```
/set irc.server.[servername].command "/msg NickServ IDENTIFY [password]"
```
this however poses the issue of storing your password unencrypted in your
weechat configuration files. thankfully, weechat has a solution for this!
First, set a passphrase that you will be required to type on each weechat startup:
```
/secure passphrase [password]
```
you can then set any kind of encrypted data using `/secure set` and
use it anywhere using `sec.data` variables:
```
/secure set bread_password hunter2
/set irc.server.breadpunk.command "/msg NickServ IDENTIFY \${sec.data.bread_password}"
```

View File

@ -0,0 +1,34 @@
+++
title = "magic tunnel"
author = "breadw"
+++
if you want to use IRC to chat with your friends on breadpunk,
but don't want to ssh in to the server every time,
you can set up a magic tunnel.
all you have to do is run this command on your own computer:
```
ssh -N user@breadpunk.club -L localhost:6667:localhost:6667 &
```
replacing `user` with your breadpunk username
and the first `6667` with the port you want to listen on.
then, in your IRC client, create a new server
with that port and connect to it.
in weechat, you'd do this:
```
/server add breadpunk localhost/6667 -autoconnect
/connect breadpunk
```
## further reading
this information is a shorter version of the text found
on [~nick's page](https://tilde.town/~nick/sshtunnel.html).
breadw has also written a utility to make it easy
to open tunnels, called
[mrgrctrnl](https://git.sr.ht/~acdw/mrgrctrnl).

48
content/docs/manifesto.md Normal file
View File

@ -0,0 +1,48 @@
+++
title = "manifesto"
+++
>*Man cannot live on bread alone.*
>&mdash; Jesus of Nazareth
>*They say bread is life.*
>&mdash; 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 &mdash;
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.**

53
content/docs/news.md Normal file
View File

@ -0,0 +1,53 @@
+++
title = "nntp"
author = "lucitoast"
+++
breadpunk has a local-only NNTP server available. NNTP (Network News Transfer
Protocol) is a protocol designed for the same use cases as forums and mailing
lists, except everything is federated. It is usually better known as Usenet or
simply as newsgroups.
Our NNTP server is however not connected to the rest of Usenet. Tildeverse.org
should provide a [news server](http://news.tildeverse.org/) for interested
tildes, but it is currently announced as down, so our server is completely
alone. It currently has the following groups:
* `local.test`: A default group from our server software which you can use for
various testing purposes.
* `bread.general`: For all general discussions, when something does not fit any
other group.
* `bread.recipes`: For sharing all your bread recipes!
* `bread.meta`: Discussions about breadpunk.club itself.
* `bread.nomic`: Discussions about the game of Nomic
Before joining the news server, it is strongly recommended to read some of the
typical [Usenet guidelines](http://lol-russ.umn.edu/webruss/WebRuss/russ1102/comphelp/netiquet.html).
## slrn setup
To reach our server using `slrn`, a rather simple news reader allowing you to
use your own editor of choice to post, you can use a similar process as the one
described on the Tildeverse server:
1. Get a sample `.slrnrc` file from the project on Sourceforge:
`wget -qO ~/.slrnrc http://slrn.sourceforge.net/docs/slrn.rc`
2. Edit `~/.slrnrc`
3. Uncomment (remove the leading `%`) the line defining `username` and set it
to your bakername
4. Uncomment `hostname` and set it to `breadpunk.club`
5. Uncomment `realname` and set it to whatever you want to have as your real
name: it will be displayed in all posts as
`From: realname <username@breadpunk.club>`
6. If your editor of choice is Vim, uncomment the `set editor_command` line and
set it to `vim '+set tw=72 cc=+1 +%d '%s'`. This will help you with the 72
character line limit of newsgroups and display a visual cue of this limit;
see `:help textwidth` and `:help colorcolumn` in Vim to learn more.
7. Set up slrn by running `slrn --create`.
8. Use the arrow keys to browse the list of groups and press `s` to subscribe or
`u` to unsubscribe. Unsubscribed groups have an uppercase `U` next to them.
9. Save your subscriptions and close by pressing `q` then `y`.
You can later run `slrn` to view your subscribed newsgroups and read, post or
reply to articles. If you prefer to use a [magic tunnel](/docs/magic-tunnel/) to
access the newsgroup from a local client, you will want to forward port **119**.

60
content/docs/ssh.md Normal file
View File

@ -0,0 +1,60 @@
+++
title = "ssh"
author = "breadw"
+++
> a lot of this has been pulled from
> [trash.town](https://trash.town/signup.html),
> at the permission of [~loaf](/~loaf).
Signing up for a breadpunk.club account requires you
to generate a **public key** and a **private key**
using a tool called SSH.
## requirements
- a unix-like environment, such as
- ubuntu/linux/\*bsd
- macOS
- windows subsystem for linux
- [scoop.sh](https://scoop.sh/)
- SSH
## generating your public and private keys
much like the keys to your house,
SSH keys prevent unknown and unwanted users from
accessing a system.
if you don't have your keys,
you can't get in!
since computers aren't houses, though,
they don't work exactly the same:
instead of a key and a lock,
you get two keys: a *private key*,
which is only for you and should be kept secret,
and a *public key*,
which can be shared (and in fact must be for you to log in).
**make sure to run these commands inside a unix-like environment**
1. run `ssh-keygen -t ed25519 -f ~/.ssh/breadpunk.club`
2. enter a password, or press enter if you don't need one
3. enter the password again, or press enter again
this process has generated two files:
- your **private** key `~/.ssh/breadpunk.club` -- *don't* share this with anyone!
- your **public** key `~/.ssh/breadpunk.club.pub`
## sending your public key to breadpunk.club
basically, follow the directions to [join](/join) the club,
and attach your public key `~/.ssh/bredpunk.club.pub` to the email.
## more information
if this is still confusing you,
peruse the information at
[tilde.town](https://tilde.town/wiki/getting-started/ssh.html)
or use [their key generator](https://cgi.tilde.town/users/keymachine).

View File

@ -0,0 +1,42 @@
+++
title = "the bread tool"
author = "breadw"
+++
`bread` is a great tool to interact with some of the aspects of the town.
here are the subcommands:
## news
`bread news` lets you read the latest news.
typed by itself, it'll show you the latest four news items.
you can change the number of shown items by running
`bread news -n NUM`.
if there's a specific word or phrase you're looking for,
you can search all the news with `bread news -s QUERY`.
if you're an admin, you can write an article
using `bread news -w`.
the article will show up on the web site in [news](/news).
later, it'd be nice if users could use `bread news`
to write their own news that could be linked from the main news feed.
eventually, we're going to generate gopher, gemini, and RSS pages
from the news as well.
## docs
`bread docs` lets you read breadpunk.club's [documentation](/docs).
it's kind of like a wiki,
except the pages aren't automatically linked.
typed by itself, it'll let you select a document to read
(type `q` or `CTRL-D` to quit).
you can search for a specific phrase by running `bread docs -s QUERY`.
you can write a new document using `bread docs -n`
(though if it has the same name as another document, it'll fail--
but you can still retrieve it from /tmp).
to edit a document, run `bread docs -e QUERY`,
and choose the one you'd like to edit.
docs are editable by every baker!
so be kind.

View File

@ -0,0 +1,40 @@
+++
title = "writing docs"
author = "breadw"
+++
## using `bread`
you can use the [`bread`](/docs/the-bread-tool) tool to write a new document.
just run `bread docs -n`.
if you want to edit an existing document,
run `bread docs -e QUERY`.
that'll search the docs for the text and let you choose which one to edit.
whichever you do,
you'll edit the doc in your \$EDITOR.
## authoring tips
these documents use markdown, specifically
[discount](http://www.pell.portland.or.us/~orc/Code/discount/),
specifically, this command:
`$(echo "$DISCOUNT")`.
you can read the documentation for discount
to see how those change your authoring process.
instead of YAML or Pandoc-style frontmatter,
breadpunk.club uses a custom style
where the first paragraph of the file is a metadata block
with tab-delimited keys and values.
for example, the top of this file looks like this:
```
title writing docs
these documents use markdown, specifically
```
other than that, it's pretty self-explanatory.
if you want to link to other docs,
use a markdown link: `[title](/docs/<doc-name>)`.

View File

@ -1,5 +1,5 @@
+++
title = "joining"
title = "join"
+++
breadpunk.club is open to anyone. it's suggested that you look at our
@ -7,8 +7,10 @@ breadpunk.club is open to anyone. it's suggested that you look at our
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
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 youd like to use.
be your "normal" username), and what shell youd like to use.
well see you around the bakery!
{{ shells() }}

View File

@ -4,9 +4,9 @@ author = "breadw"
date = 2021-01-30
+++
breadpunk.club just welcomed its <strong>FORTIETH</strong> baker tonight!
breadpunk.club just welcomed its <strong>FORTIETH</strong> baker tonight!
We've had a bit of an uptick in new registrations,
and there's a bunch of great content they've put together.
and there's a bunch of great content they've put together.
I'm just happy that this dumb website, started out of a joke on IRC,
is such a fun place for so many people.

View File

@ -4,4 +4,7 @@ author = "breadw"
date = 2021-02-06
+++
Since breadpunk.club has grown a lot since its founding last year, I've created a new [/donate](/donate) page. Breadpunk is, and will always be, 100% free to use, but we're a cooperative bunch here. 100% of donations will fund the operations and hosting costs of breadpunk.club. Thanks!
Since breadpunk.club has grown a lot since its founding last year, I've created
a new [/donate](/donate) page. Breadpunk is, and will always be, 100% free to
use, but we're a cooperative bunch here. 100% of donations will fund the
operations and hosting costs of breadpunk.club. Thanks!

View File

@ -1 +1 @@
*{position:relative}body,html{width:100%;margin:0;padding:0;font:18px/1.3 CMUTypewriterTextRegular, monospace;background-color:wheat;background:url("/bread.png") repeat}#main{max-width:40em;padding:1em;margin:auto;background:white}#footer{margin-top:1em;text-align:center}#header,#footer{background:white;width:100%}#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}
*{position:relative}body,html{width:100%;margin:0;padding:0;font:18px/1.3 CMUTypewriterTextRegular, monospace;background-color:wheat;background:url("/bread.png") repeat}#main{max-width:40em;padding:1em;margin:auto;background:white}#footer{margin-top:1em;text-align:center}#header,#footer{background:white;width:100%}#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,blockquote{font-style:italic}pre,code{font:14px/1.1 monospace;background:#ddd}#users{text-align:right;position:absolute;right:0}

View File

@ -1 +0,0 @@
acdw@larry.114172:1636293848

View File

@ -39,7 +39,7 @@ html {
.nav li:after {
content: " (#) ";
}
.subtitle {
.subtitle,blockquote {
font-style: italic;
}
pre,

5
static/shells.toml Normal file
View File

@ -0,0 +1,5 @@
# THIS FILE IS AUTOGENERATED BY ../scripts/site/bin/update-data.sh
# DO NOT HAND-EDIT
data = [
"sh", "bash", "rbash", "dash",
]

8
static/users.toml Normal file
View File

@ -0,0 +1,8 @@
# THIS FILE IS AUTOGENERATED BY ../scripts/site/bin/update-data.sh
# DO NOT HAND-EDIT
all = [
"acdw",
]
login = [
"acdw",
]

View File

@ -1 +0,0 @@
acdw@larry.114172:1636293848

View File

@ -12,7 +12,7 @@
{{ config.description }}
{%- endblock desc -%}">
{%- endblock head_meta %}
<title>{% block title %}{% endblock title %}</title>
<title>{% block title %}{{ config.title }}{% endblock title %}</title>
{% block head_links -%}
<link rel="stylesheet" media="screen" type="text/css"
href="https://fontlibrary.org/face/cmu-typewriter" >
@ -35,7 +35,13 @@
</ul>
{%- endblock sitenav %}
</div>
{% block users %}<marquee id="users"></marquee>{% endblock users %}
{% block users -%}
<marquee id="users">
{% set user_data = load_data(path="static/users.toml") %}
{{ user_data.all | length }} bakers /
{{ user_data.login | length }} online now
</marquee>
{%- endblock users %}
{%- endblock header -%}
</div>
<div id="main">

View File

@ -1,5 +1,4 @@
{% extends "base.html" %}
{% block title %}BREADPUNK{% endblock title %}
{% block main_content %}
{{ section.content | safe }}
{% endblock main_content %}

View File

@ -1,5 +1,12 @@
{% extends "base.html" %}
{% block title %}{{ page.title }}{% endblock title %}
{% block title %}{{ page.title }} | {{ super() }}{% endblock title %}
{% block main_header %}
{{ super() }}
<p class="date">{{ page.date }}</p>
{% endblock main_header %}
{% block main_content %}
{{ page.content | safe }}
{% endblock main_content %}

View File

@ -1,5 +1,5 @@
{% extends "index.html" %}
{% block title %}{{ section.title }}{% endblock title %}
{% block title %}{{ section.title }} | {{ super() }}{% endblock title %}
{% block main_content %}
<div class="section_header">
{%- block section_header -%}

View File

@ -0,0 +1,9 @@
{% set shell_data = load_data(path="static/shells.toml") %}
<h2>available shells</h2>
<p>As of {{ now() | date(format="%F") }}, the following shells are installed:
<ul id="shells">
{% for sh in shell_data.data %}
<li>{{ sh }}</li>
{% endfor %}
</ul>
</p>

View File

@ -0,0 +1,6 @@
{% set user_data = load_data(path="static/users.toml") %}
<ul>
{% for u in user_data.all -%}
<li><a href="~{{ u }}/">~{{ u }}</a></li>
{%- endfor %}
</ul>