First commit

This commit is contained in:
stefan burke 2024-11-18 18:35:06 +00:00
commit 9e0fd664fc
17 changed files with 504 additions and 0 deletions

25
.build.yml Normal file
View file

@ -0,0 +1,25 @@
image: alpine/edge
packages:
- ruby-dev
- nodejs
- build-base
- libffi-dev
environment:
repo: stfn
sources:
- git@git.sr.ht/~stfn/stfn
- https://git.sr.ht/~stfn/build-scripts
secrets:
- a654fd57-a2eb-4fb3-86c8-44a6a18ffa89 # sourcehut
- 0a630b0d-08d8-47f4-8e4a-eff72043c588 # ~/.neocities/$repo
tasks:
- setup: |
sudo apk add --no-cache build-base libffi-dev
sudo gem install --no-document bundler neocities
- build: |
cd $repo
sudo sh ../build-scripts/jekyll-build
- deploy: |
cd $repo
sh ../build-scripts/neocities-deploy $repo _site

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
.bundle
_site
vendor
.jekyll-cache

11
Gemfile Normal file
View file

@ -0,0 +1,11 @@
source "https://rubygems.org"
gem "jekyll"
group :jekyll_plugins do
gem "jekyll-minifier"
end
gem "webrick", "~> 1.7"
gem 'sass-embedded', '1.80.3'

184
Gemfile.lock Normal file
View file

@ -0,0 +1,184 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
bigdecimal (3.1.8)
colorator (1.1.0)
concurrent-ruby (1.3.4)
cssminify2 (2.0.1)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
execjs (2.10.0)
ffi (1.17.0)
ffi (1.17.0-aarch64-linux-gnu)
ffi (1.17.0-aarch64-linux-musl)
ffi (1.17.0-arm-linux-gnu)
ffi (1.17.0-arm-linux-musl)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86-linux-gnu)
ffi (1.17.0-x86-linux-musl)
ffi (1.17.0-x86_64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.0-x86_64-linux-musl)
forwardable-extended (2.6.0)
google-protobuf (4.28.3)
bigdecimal
rake (>= 13)
google-protobuf (4.28.3-aarch64-linux)
bigdecimal
rake (>= 13)
google-protobuf (4.28.3-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.28.3-x86-linux)
bigdecimal
rake (>= 13)
google-protobuf (4.28.3-x86_64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.28.3-x86_64-linux)
bigdecimal
rake (>= 13)
htmlcompressor (0.4.0)
http_parser.rb (0.8.0)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
jekyll (4.3.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-minifier (0.1.10)
cssminify2 (~> 2.0)
htmlcompressor (~> 0.4)
jekyll (>= 3.5)
json-minify (~> 0.0.3)
uglifier (~> 4.1)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.8.2)
json-minify (0.0.3)
json (> 0)
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (6.0.1)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.9)
rouge (4.5.1)
safe_yaml (1.0.5)
sass-embedded (1.80.3)
google-protobuf (~> 4.28)
rake (>= 13)
sass-embedded (1.80.3-aarch64-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-aarch64-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-aarch64-linux-musl)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-aarch64-mingw-ucrt)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-arm-linux-androideabi)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-arm-linux-gnueabihf)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-arm-linux-musleabihf)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-arm64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-riscv64-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-riscv64-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-riscv64-linux-musl)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86-cygwin)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86-linux-musl)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86-mingw-ucrt)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86_64-cygwin)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86_64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86_64-linux-android)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86_64-linux-gnu)
google-protobuf (~> 4.28)
sass-embedded (1.80.3-x86_64-linux-musl)
google-protobuf (~> 4.28)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
uglifier (4.2.1)
execjs (>= 0.3.0, < 3)
unicode-display_width (2.6.0)
webrick (1.9.0)
PLATFORMS
aarch64-linux
aarch64-linux-android
aarch64-linux-gnu
aarch64-linux-musl
aarch64-mingw-ucrt
arm-linux-androideabi
arm-linux-gnu
arm-linux-gnueabihf
arm-linux-musl
arm-linux-musleabihf
arm64-darwin
riscv64-linux-android
riscv64-linux-gnu
riscv64-linux-musl
ruby
x86-cygwin
x86-linux
x86-linux-android
x86-linux-gnu
x86-linux-musl
x86-mingw-ucrt
x86_64-cygwin
x86_64-darwin
x86_64-linux-android
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES
jekyll
jekyll-minifier
sass-embedded (= 1.80.3)
webrick (~> 1.7)
BUNDLED WITH
2.5.16

5
README.md Normal file
View file

@ -0,0 +1,5 @@
# chobble.com
chobble.com - libre software dev agency
[chobble.com](https://chobble.com)

20
_config.yml Normal file
View file

@ -0,0 +1,20 @@
plugins:
- jekyll-minifier
collections:
sites:
output: false
pages:
output: true
permalink: /:name/
jekyll-minifier:
exclude: "game/*"
exclude:
- README.md
- LICENSE
- Gemfile
- Gemfile.lock
- node_modules/
- vendor/

26
_data/sites.yml Normal file
View file

@ -0,0 +1,26 @@
- name: bluepitshousingaction.co.uk
href: https://bluepitshousingaction.co.uk
source: https://git.sr.ht/~stfn/blue-pit
- name: chobble.com
href: https://chobble.com
source: https://git.sr.ht/~stfn/chobble
- name: freeholdcottage.com
href: https://freeholdcottage.com
source: https://git.sr.ht/~stfn/freehold-cottage
- name: newbarnltd.co.uk
href: https://newbarnltd.co.uk
source: https://git.sr.ht/~stfn/newbarn
- name: stefn.co.uk
href: https://stefn.co.uk
- name: thisandthatcafe.co.uk
href: https://thisandthatcafe.co.uk
source: https://git.sr.ht/~stfn/this-and-that
- name: veganprestwich.co.uk
href: https://veganprestwich.co.uk
source: https://git.sr.ht/~stfn/vegan-prestwich

2
_includes/colour Normal file
View file

@ -0,0 +1,2 @@
{% assign colour = colour | plus:1 %}
colour{{ colour | modulo: 12 }}

132
_includes/style.scss Normal file
View file

@ -0,0 +1,132 @@
@mixin glow($colour) {
color: $colour;
text-shadow: 0 0 3px $colour;
}
* {
box-sizing: border-box;
}
body {
color: #99c2f9;
font-size: 1.6em;
font-family: monospace;
background-color: black;
background-image: radial-gradient(rgba(0, 62, 0, 0.75), black 120%);
background-attachment: fixed;
height: 100vh;
&::after {
content: "";
position: fixed;
pointer-events: none;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: repeating-linear-gradient(
0deg,
rgba(black, 0.15),
rgba(black, 0.15) 1px,
transparent 1px,
transparent 2px
);
}
}
.wrapper {
max-width: 450px;
margin: 30px auto;
padding: 10px 10px 100px;
}
pre {
font-size: 0.5vw;
color: #8fdd8f;
margin: 0 auto;
}
a {
text-decoration: none;
@include glow(#fff);
&:hover {
text-decoration: underline;
}
}
.smaller {
font-size: 0.6em;
}
li {
margin: 0.5rem 0;
}
strong {
text-shadow: 0 0 1px;
}
::selection {
background: #0080ff;
text-shadow: none;
}
// colours taken from https://iamkate.com/data/12-bit-rainbow/
.colour {
&1 {
@include glow(#c1b);
}
&2 {
@include glow(#ed0);
}
&3 {
@include glow(#0bc);
}
&4 {
@include glow(#a35);
}
&5 {
@include glow(#9d5);
}
&6 {
@include glow(#09c);
}
&7 {
@include glow(#c66);
}
&8 {
@include glow(#4d8);
}
&9 {
@include glow(rgb(94, 140, 220));
}
&10 {
@include glow(#e94);
}
&11 {
@include glow(#2cb);
}
&12 {
@include glow(#639);
}
}
img.logo {
image-rendering: pixelated;
}
h1 {
font-size: 150%;
}

23
_layouts/default.html Normal file
View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>{{ page.title }}</title>
<meta
name="description"
content="stefan burke - programmer - manchester, uk"
/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
rel="icon"
href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🤘</text></svg>"
/>
{% capture styles %} {% include style.scss %} {% endcapture %}
<style>
{{ styles | scssify }}
</style>
</head>
<body>
<div class="wrapper">{{ content }}</div>
</body>
</html>

27
bin/build Executable file
View file

@ -0,0 +1,27 @@
#!/usr/bin/env bash
rm -rf _site
nix-shell -p ruby_3_3 imagemagick pkg-config --pure --command "
export JEKYLL_ENV=production
echo 'Installing bundles'
bundle config set path 'vendor/cache'
bundle install --gemfile=Gemfile
echo 'Building site'
bundle exec jekyll build
"
nix-shell -p html-minifier --pure --command "
echo 'Minifying site'
html-minifier --input-dir _site --output-dir _site --collapse-whitespace --file-ext html
"
nix-shell -p neocities-cli --command "
echo 'Pushing to Neocities'
set +x
export NEOCITIES_API_KEY=$(cat ~/.neocities/chobble)
set -x
neocities push --prune _site
"

12
bin/serve Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
rm -rf _site
nix-shell -p ruby_3_3 imagemagick pkg-config --pure --command "
echo 'Installing bundles'
bundle config set path 'vendor/cache'
bundle install --gemfile=Gemfile
echo 'Building site'
bundle exec jekyll serve
"

9
bin/upgrade Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
nix-shell -p ruby_3_3 imagemagick pkg-config --pure --command "
export JEKYLL_ENV=production
echo 'Installing bundles'
bundle config set path 'vendor/cache'
bundle install --gemfile=Gemfile
bundle update
"

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

21
index.html Normal file
View file

@ -0,0 +1,21 @@
---
layout: default
title: chobble.com
---
<img src="/static/chobble-logo.png" alt="Chobble" width="100%" class="logo" />
<h1 class="{% include colour %}">an ethical web agency</h1>
<div class="smaller">
<br />
<p class="{% include colour %}"><strong>sites we run:</strong></p>
<ul>
{% for item in site.data.sites %}
<li class="{% include colour %}">
<strong>{{ item.name }}</strong>
<a href="{{ item.href }}">visit</a>
{% if item.source %}/ <a href="{{ item.source }}">source</a>{% endif %}
</li>
{% endfor %}
</ul>
</div>

3
robots.txt Normal file
View file

@ -0,0 +1,3 @@
User-agent: ia_archiver
Disallow: /

BIN
static/chobble-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B