bunk init
This commit is contained in:
commit
eef390d781
20 changed files with 322 additions and 0 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.vscode/
|
||||
site/
|
||||
wip.html
|
||||
deploy.sh
|
4
blog.html
Normal file
4
blog.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<ul>
|
||||
<li><a href="/blog/diy-sms-ftw-vs-ig-fb-etc">diy sms ftw vs ig, fb, etc. | November 2023</a></li>
|
||||
<li><a href="/blog/init">init | October 2023</a></li>
|
||||
</ul>
|
21
build.sh
Executable file
21
build.sh
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# prep for build
|
||||
rm -rf ./site
|
||||
mkdir -p ./site
|
||||
mkdir -p ./site/links
|
||||
mkdir -p ./site/blog
|
||||
|
||||
# build top-level pages
|
||||
cat head.html home.html foot.html > ./site/index.html
|
||||
cat head.html links.html foot.html > ./site/links/index.html
|
||||
cat head.html blog.html foot.html > ./site/blog/index.html
|
||||
|
||||
# copy one-offs
|
||||
cp style.css ./site/style.css
|
||||
cp robots.txt ./site/robots.txt
|
||||
|
||||
# build feed
|
||||
cp ./feed/feed.atom ./site/feed.atom
|
||||
|
||||
cp -a ./posts/. ./site/blog/.
|
14
feed/body.atom
Normal file
14
feed/body.atom
Normal file
|
@ -0,0 +1,14 @@
|
|||
<entry>
|
||||
<title>diy sms ftw vs ig, fb, etc.</title>
|
||||
<link href="https://stillgreenmoss.net/blog/diy-sms-ftw-vs-ig-fb-etc"/>
|
||||
<id>https://stillgreenmoss.net/blog/diy-sms-ftw-vs-ig-fb-etc</id>
|
||||
<updated>2023-11-17T00:00:00Z</updated>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title>init</title>
|
||||
<link href="https://stillgreenmoss.net/blog/init"/>
|
||||
<id>https://stillgreenmoss.net/blog/init</id>
|
||||
<updated>2023-10-01T00:00:00Z</updated>
|
||||
</entry>
|
||||
|
7
feed/entry-template.atom
Normal file
7
feed/entry-template.atom
Normal file
|
@ -0,0 +1,7 @@
|
|||
<entry>
|
||||
<title>TITLE</title>
|
||||
<link href="URL"/>
|
||||
<id>URL</id>
|
||||
<updated>UPDATED</updated>
|
||||
</entry>
|
||||
|
25
feed/feed.atom
Normal file
25
feed/feed.atom
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
|
||||
<title>stillgreenmoss</title>
|
||||
<link rel="self" href="https://stillgreenmoss.net/feed.atom" />
|
||||
<link href="https://stillgreenmoss.net" />
|
||||
<updated>2023-11-17T00:00:00Z</updated>
|
||||
<author><name>maren</name></author>
|
||||
<id>https://stillgreenmoss.net</id>
|
||||
|
||||
<entry>
|
||||
<title>diy sms ftw vs ig, fb, etc.</title>
|
||||
<link href="https://stillgreenmoss.net/blog/diy-sms-ftw-vs-ig-fb-etc"/>
|
||||
<id>https://stillgreenmoss.net/blog/diy-sms-ftw-vs-ig-fb-etc</id>
|
||||
<updated>2023-11-17T00:00:00Z</updated>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<title>init</title>
|
||||
<link href="https://stillgreenmoss.net/blog/init"/>
|
||||
<id>https://stillgreenmoss.net/blog/init</id>
|
||||
<updated>2023-10-01T00:00:00Z</updated>
|
||||
</entry>
|
||||
|
||||
</feed>
|
1
feed/foot.atom
Normal file
1
feed/foot.atom
Normal file
|
@ -0,0 +1 @@
|
|||
</feed>
|
10
feed/head-template.atom
Normal file
10
feed/head-template.atom
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
|
||||
<title>stillgreenmoss</title>
|
||||
<link rel="self" href="https://stillgreenmoss.net/feed.atom" />
|
||||
<link href="https://stillgreenmoss.net" />
|
||||
<updated>UPDATED</updated>
|
||||
<author><name>maren</name></author>
|
||||
<id>https://stillgreenmoss.net</id>
|
||||
|
10
feed/head.atom
Normal file
10
feed/head.atom
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
|
||||
<title>stillgreenmoss</title>
|
||||
<link rel="self" href="https://stillgreenmoss.net/feed.atom" />
|
||||
<link href="https://stillgreenmoss.net" />
|
||||
<updated>2023-11-17T00:00:00Z</updated>
|
||||
<author><name>maren</name></author>
|
||||
<id>https://stillgreenmoss.net</id>
|
||||
|
5
foot.html
Normal file
5
foot.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
<section class="foot">
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/">cc by-sa</a>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
15
head.html
Normal file
15
head.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="/style.css" />
|
||||
<title>still, green moss</title>
|
||||
</head>
|
||||
<body>
|
||||
<section class="head">
|
||||
<h1>thiss <a href="https://en.wikipedia.org/wiki/Moss">moss</a> iss <a href="https://en.wikipedia.org/wiki/Silence">still</a> <a href="https://en.wikipedia.org/wiki/Green">greenn</a></h1>
|
||||
<p>
|
||||
<a href="/">home</a> | <a href="/blog">blog</a> | <a href="/links">links</a> | <a href="/feed.atom">feed</a>
|
||||
</p>
|
||||
</section>
|
9
home.html
Normal file
9
home.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<p>hello my name is maren and this is the domain i purchased with usd.</p>
|
||||
<p>i live in the mountains in north carolina in the us.</p>
|
||||
<p>i do computer things and other things too. i think this site is mostly about the computer things</p>
|
||||
<pre>
|
||||
political commitment isn't a perimeter, sam;
|
||||
it's a parameter. don't you ever wonder?
|
||||
don't you ever doubt?
|
||||
</pre>
|
||||
<p>be well <3</p>
|
12
links.html
Normal file
12
links.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
<h2>links</h2>
|
||||
<ul>
|
||||
<li><strong>git</strong>: <a href="https://codeberg.org/stillgreenmoss">codeberg.org/stillgreenmoss</a></li>
|
||||
<li><strong>also git</strong>: <a href="https://github.com/stillgreenmoss">github.com/stillgreenmoss</a></li>
|
||||
<li><strong>mastodon</strong>: <a href="https://social.coop/@stillgreenmoss">social.coop/@stillgreenmoss</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>contact</h2>
|
||||
<ul>
|
||||
<li><strong>email</strong>: maren at this domain</li>
|
||||
<li><strong>matrix</strong>: stillgreenmoss at matrix dot org</li>
|
||||
</ul>
|
44
new-post.sh
Executable file
44
new-post.sh
Executable file
|
@ -0,0 +1,44 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
mkdir -p ./posts
|
||||
|
||||
# get name and url and other values we need
|
||||
read -p "Title of blog post: " postTitle
|
||||
read -p "URL string for blog post: " postUrl
|
||||
fullUrl='https:\/\/stillgreenmoss\.net\/blog\/'"$postUrl"
|
||||
currentMonth=$(date +%B)
|
||||
currentYear=$(date +%Y)
|
||||
postDate=$(date --rfc-3339=date)
|
||||
rssDate="$postDate"T00:00:00Z
|
||||
|
||||
# create link to post on blog.html
|
||||
sed -i "s/<ul>/<ul>\n<li><a href=\"\/blog\/$postUrl\">$postTitle | $currentMonth $currentYear<\/a><\/li>/" blog.html
|
||||
|
||||
# create folder for the post in ./posts
|
||||
mkdir -p ./posts/"$postUrl"
|
||||
|
||||
# prompt user for html for the post
|
||||
"${EDITOR:-vi}" ./posts/"$postUrl"/post.html
|
||||
|
||||
# make the post a page
|
||||
cat head.html ./posts/"$postUrl"/post.html foot.html > ./posts/"$postUrl"/index.html
|
||||
rm ./posts/"$postUrl"/post.html
|
||||
|
||||
### update atom feed
|
||||
|
||||
# make new entry
|
||||
cp ./feed/entry-template.atom ./feed/new-entry.atom
|
||||
sed -i "s/TITLE/$postTitle/" ./feed/new-entry.atom
|
||||
sed -i "s/URL/$fullUrl/g" ./feed/new-entry.atom
|
||||
sed -i "s/UPDATED/$rssDate/" ./feed/new-entry.atom
|
||||
|
||||
# add entry to body.atom
|
||||
cat ./feed/new-entry.atom ./feed/body.atom > ./feed/new-body.atom
|
||||
mv ./feed/new-body.atom ./feed/body.atom
|
||||
rm ./feed/new-entry.atom
|
||||
|
||||
# update date in head.atom
|
||||
sed "s/UPDATED/$rssDate/" ./feed/head-template.atom > ./feed/head.atom
|
||||
|
||||
# make the whole feed
|
||||
cat ./feed/head.atom ./feed/body.atom ./feed/foot.atom > ./feed/feed.atom
|
46
posts/diy-sms-ftw-vs-ig-fb-etc/index.html
Normal file
46
posts/diy-sms-ftw-vs-ig-fb-etc/index.html
Normal file
|
@ -0,0 +1,46 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="/style.css" />
|
||||
<title>still, green moss</title>
|
||||
</head>
|
||||
<body>
|
||||
<section class="head">
|
||||
<h1>thiss <a href="https://en.wikipedia.org/wiki/Moss">moss</a> iss <a href="https://en.wikipedia.org/wiki/Silence">still</a> <a href="https://en.wikipedia.org/wiki/Green">greenn</a></h1>
|
||||
<p>
|
||||
<a href="/">home</a> | <a href="/blog">blog</a> | <a href="/links">links</a> | <a href="/feed.atom">feed</a>
|
||||
</p>
|
||||
</section>
|
||||
<h2>diy sms ftw vs ig, fb, etc.</h2>
|
||||
|
||||
<p><em>november 17th 2023</em></p>
|
||||
|
||||
<p>some friends and i started working on a project today that i'm very excited about.</p>
|
||||
|
||||
<p>we're making a small go program and accompanying guide intended to help local groups, with moderate technical support, self-host infrastructure for sending out sms updates.</p>
|
||||
|
||||
<h2>backstory</h2>
|
||||
|
||||
<p>i have plans to host an event locally, but i want to notify people about the event without using social media.</p>
|
||||
|
||||
<p>after fussing with an email newsletter setup, i decided that email is too hard considering how little most people engage with their email. i don't blame individuals for this, i blame the political economy of email.</p>
|
||||
|
||||
<p>so i decided to use sms instead. first i tried using a managed "sms marketing" platform. there were a couple negative parts of this, but mostly it was just too expensive and limited and it obfuscated the underlying compliance details.</p>
|
||||
|
||||
<p>so i moved to using twilio. the onboarding experience was much better -- the details of initiating a compliant "campaign" were not obfuscated, and the cost is charged per text. however there are many more technical details to figure out, and if you want full control of your subscription list behavior while spending as little money as possible, you have to write and host your own program that interacts with the twilio api.</p>
|
||||
|
||||
<p>we're a group of computer friends, so we're excited and able to make all that happen ourselves. but most people can't do that, and i know i'm not alone in wanting to be less reliant on social media for following local events that i care about. maybe sms can be one of the digital equivalents of touching grass, much like email when used right.</p>
|
||||
|
||||
<p>so we're going to try and build this sms service for self-hosting, and clearly document it. a nontechnical person or group won't be able to host this themselves -- but if they can find a local techie or computer club who's willing to help, then they'll have a highly effective, social-media-free, but traditionally hard-to-access medium for sending updates at their disposal.</p>
|
||||
|
||||
<p>if you know of something like this that already exists, please send me an email!</p>
|
||||
|
||||
<p>i'm really excited and i hope it works out :)</p>
|
||||
|
||||
<section class="foot">
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/">cc by-sa</a>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
31
posts/init/index.html
Normal file
31
posts/init/index.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="/style.css" />
|
||||
<title>still, green moss</title>
|
||||
</head>
|
||||
<body>
|
||||
<section class="head">
|
||||
<h1>thiss <a href="https://en.wikipedia.org/wiki/Moss">moss</a> iss <a href="https://en.wikipedia.org/wiki/Silence">still</a> <a href="https://en.wikipedia.org/wiki/Green">greenn</a></h1>
|
||||
<p>
|
||||
<a href="/">home</a> | <a href="/blog">blog</a> | <a href="/links">links</a> | <a href="/feed.atom">feed</a>
|
||||
</p>
|
||||
</section>
|
||||
<h2>init</h2>
|
||||
<p><em>september 30th 2023</em></p>
|
||||
|
||||
<p>my name is maren. i use she or they pronouns and i'm a trans woman. i don't want to write about that here but i want to name it so that other transfems see me when they find me, because i like to see them when i find them too.</p>
|
||||
|
||||
<p>i use linux and care about foss and all that, but more than that i like doing computers irl with people i love towards local community ends. i'm still learning how to move that way.</p>
|
||||
|
||||
<p>i'm inspired by cooperativism and anarchism and permacomputing and diy culture and other things too.</p>
|
||||
|
||||
<p>i help <a href="https://firestorm.coop">firestorm coop</a> with tech things, and i do computer for fun with a scrappy gay cohort calling ourselves bunk computer club.</p>
|
||||
|
||||
<section class="foot">
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/">cc by-sa</a>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
5
readme.md
Normal file
5
readme.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
this is how i deploy my webiste stillgreenmoss.net
|
||||
|
||||
it requires more explanation to actually use but there's a build script ./build.sh and a new-blog-post-script ./new-post.sh
|
||||
|
||||
there's a deploy script ./deploy.sh but i don't include that in the repo. it's just ssh and rsync and chown and chmod
|
2
robots.txt
Normal file
2
robots.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
User-agent: *
|
||||
Disallow: /
|
54
style.css
Normal file
54
style.css
Normal file
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
colors:
|
||||
text: #ffffff
|
||||
green: #38471f
|
||||
brown: #47261f
|
||||
purple: #471f38
|
||||
aqua: #1f473d
|
||||
https://www.sessions.edu/color-calculator/
|
||||
*/
|
||||
|
||||
body {
|
||||
max-width: 50em;
|
||||
margin: 1em auto;
|
||||
line-height: 1.5;
|
||||
word-wrap: break-word;
|
||||
padding: 0 1em;
|
||||
background: #38471f;
|
||||
color: #ffffff;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
pre {
|
||||
background: #1f473d;
|
||||
padding: 1em;
|
||||
overflow-x: auto;
|
||||
word-wrap: normal;
|
||||
}
|
||||
a:link {
|
||||
color: #ffffff;
|
||||
}
|
||||
a:visited {
|
||||
color: #ffffff;
|
||||
}
|
||||
h2, h3, h4, h5, h6 {
|
||||
background: #47261f;
|
||||
padding: .25em;
|
||||
}
|
||||
|
||||
/* head */
|
||||
.head {
|
||||
background: #471f38;
|
||||
text-align: center;
|
||||
}
|
||||
section.head {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
/* foot */
|
||||
.foot {
|
||||
background: #471f38;
|
||||
text-align: center;
|
||||
}
|
||||
section.foot {
|
||||
padding: 1em;
|
||||
}
|
3
view.sh
Executable file
3
view.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
python3 -m http.server --directory ./site
|
Loading…
Reference in a new issue