Compare commits
76 Commits
40509f436c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 03cc547b61 | |||
| 8395b46894 | |||
| ef95e3189c | |||
| 3f99418e28 | |||
| 70bc8e6f4d | |||
| c43ebca88e | |||
| ae6c1d9990 | |||
| 28f9c6d11a | |||
| de29021a49 | |||
| 0583c09ea8 | |||
| 2551ab367e | |||
| bbd34294fe | |||
| cc8dc7a1a8 | |||
| b60d879c40 | |||
| 3710711051 | |||
| 972651a03e | |||
| b66b6c9647 | |||
| 45e4f74a05 | |||
| ab07030452 | |||
| ae7838ae07 | |||
| 4329772b02 | |||
| 5f0cab0878 | |||
| b6554e1362 | |||
| f8fe95b754 | |||
| 54b7b17e31 | |||
| b895e20e7c | |||
| d8b5fc5cd8 | |||
| 04973ed44e | |||
| d6fc1d0d62 | |||
| d2739336c2 | |||
| f84e17598f | |||
| 7b578d46f5 | |||
| ce99862505 | |||
| 2a77e26165 | |||
| c22e152844 | |||
| 5e2c79a2b2 | |||
| 0ea47aeecd | |||
| 3e86325928 | |||
| a6ee200965 | |||
| c6a09ba2ea | |||
| 4828e2c99f | |||
| a05f79c780 | |||
| 6b9ce45c68 | |||
| 95df74bda6 | |||
| 814219308d | |||
| 4428a7130b | |||
| 4987b37fe6 | |||
| dd415df862 | |||
| 73c195cab2 | |||
| 7d6c64e964 | |||
| 2615556003 | |||
| c2ff13327c | |||
| 3f20d7317b | |||
| 66364f8e40 | |||
| 5312c4a37a | |||
| bfb03575fb | |||
| 439e207539 | |||
| b7aa9a9a62 | |||
| 2d1bfc0272 | |||
| 9b3b15ab2e | |||
| 72d5f8b2be | |||
| e3f062d335 | |||
| 159aac612a | |||
| 3a43ed9f68 | |||
| a0a1c04651 | |||
| 98d5544d0a | |||
| e9c5c32026 | |||
| a4338717e4 | |||
| 2904872e34 | |||
| e89caf9423 | |||
| 57fa31ba45 | |||
| 1ecd538c90 | |||
| f3f9c4d70e | |||
| c7b6f1a28d | |||
| a2d4dc99fb | |||
| fdd3db4e59 |
25
.drone.yml
Normal file
25
.drone.yml
Normal file
@ -0,0 +1,25 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: node:current
|
||||
environment:
|
||||
REPOSITORY: fedilearns-site
|
||||
GIT_USER: inherentlee
|
||||
GIT_TOKEN:
|
||||
from_secret: GIT_TOKEN
|
||||
commands:
|
||||
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
|
||||
- git submodule update --remote --init --merge
|
||||
- npm install
|
||||
- npm run build
|
||||
- apt-get update && apt-get install -y rsync
|
||||
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
|
||||
- cd $REPOSITORY
|
||||
- git checkout main
|
||||
- git config --global --add safe.directory /drone/src/$REPOSITORY
|
||||
- git add -A
|
||||
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
|
||||
- git push
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,2 @@
|
||||
_live
|
||||
_site
|
||||
node_modules/
|
||||
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "fedilearns-site"]
|
||||
path = fedilearns-site
|
||||
url = https://heckin.technology/inherentlee/fedilearns-site.git
|
||||
@ -1,59 +0,0 @@
|
||||
# NodeJS / 11ty on Woodpecker to codeberg pages
|
||||
#
|
||||
# This file would typically be .woodpecker.yml in the root of your repository.
|
||||
#
|
||||
# Takes a repository with 11ty source, generates the static site and
|
||||
# pushes the result to codeberg pages
|
||||
#
|
||||
#
|
||||
# SECRETS
|
||||
# https://woodpecker-ci.org/docs/usage/secrets
|
||||
# CBTOKEN needs a codeberg access token as secret in woodpecker config
|
||||
# CBEMAIL with email address for git config
|
||||
# SOURCEREPO must be replaced with the source repo
|
||||
# DESTREPO must be replaced with the target codeberg pages repo
|
||||
# CBUSERNAME must be replaced with the user/org
|
||||
#
|
||||
#
|
||||
# We also assume a domains file in the source repo that gets copied to
|
||||
# .domains in the target repo so codeberg pages works for custom domains
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
when:
|
||||
- branch: pages
|
||||
event: push
|
||||
- event: manual
|
||||
image: node
|
||||
environment:
|
||||
CBUSERNAME: inherentlee
|
||||
SOURCEREPO: fedi-skillshares-src
|
||||
DESTREPO: fedi-skillshares
|
||||
CBTOKEN:
|
||||
from_secret: CBTOKEN
|
||||
CBEMAIL:
|
||||
from_secret: CBEMAIL
|
||||
commands:
|
||||
# Avoid permission denied errors
|
||||
- chmod -R a+w .
|
||||
# Set up git in a working way
|
||||
- git config --global --add safe.directory /woodpecker/src/codeberg.org/$CBUSERNAME/$SOURCEREPO/_site
|
||||
- git config --global user.email "$CBEMAIL"
|
||||
- git config --global user.name "CI Builder"
|
||||
# clone and move the target repo
|
||||
- git clone -b pages https://codeberg.org/$CBUSERNAME/$DESTREPO.git _site
|
||||
- chmod -R a+w _site
|
||||
- cd _site
|
||||
# Prepare for push
|
||||
- git remote set-url origin https://$CBTOKEN@codeberg.org/$CBUSERNAME/$DESTREPO.git
|
||||
- cd ..
|
||||
# Run 11ty build stage
|
||||
- npm install
|
||||
- npm run build-codeberg
|
||||
# Only needed for custom domains
|
||||
#- cp domains _site/.domains
|
||||
# Push to target
|
||||
- cd _site
|
||||
- git add --all
|
||||
- git commit -m "Woodpecker CI 11ty Build at $( env TZ=America/Chicago date +"%Y-%m-%d %X %Z" )"
|
||||
- git push -u origin pages
|
||||
@ -1,7 +1,9 @@
|
||||
import { DateTime } from "luxon";
|
||||
|
||||
export default function(eleventyConfig) {
|
||||
/* Filter by date */
|
||||
eleventyConfig.addFilter("filterByDate", (listings, date) => {
|
||||
if (date === null) return listings;
|
||||
date = DateTime.fromISO(date, { zone: "utc" });
|
||||
return listings.filter((listing) => {
|
||||
let postDate = DateTime.fromJSDate(listing.data.date, { zone: "utc" });
|
||||
@ -9,12 +11,17 @@ export default function(eleventyConfig) {
|
||||
});
|
||||
})
|
||||
|
||||
/* Filter by tag */
|
||||
eleventyConfig.addFilter("filterByTag", (listings, tag) => {
|
||||
return listings.filter(listing => listing.data.tags.includes(tag));
|
||||
});
|
||||
|
||||
// Return the keys used in an object
|
||||
eleventyConfig.addFilter("getKeys", target => {
|
||||
return Object.keys(target);
|
||||
});
|
||||
|
||||
/* */
|
||||
/* Taglines for each category */
|
||||
eleventyConfig.addFilter("getTagline", tag => {
|
||||
let tagline;
|
||||
switch (tag) {
|
||||
@ -33,7 +40,7 @@ export default function(eleventyConfig) {
|
||||
case "food and drink":
|
||||
tagline = "good eatin'";
|
||||
break;
|
||||
case "history and science":
|
||||
case "history science and languages":
|
||||
tagline = "book learnin'"
|
||||
break;
|
||||
case "miscellany and more":
|
||||
@ -68,11 +75,17 @@ export default function(eleventyConfig) {
|
||||
|
||||
/* Filter out structural tags */
|
||||
eleventyConfig.addFilter("removeCoreTags", (tags) => {
|
||||
return tags.filter(tag => ["all", "ads", "daily"].indexOf(tag) === -1);
|
||||
return tags.filter(tag => ["all", "daily", "offers", "requests"].indexOf(tag) === -1);
|
||||
});
|
||||
|
||||
/* What it says on the tin */
|
||||
eleventyConfig.addFilter("sortAlphabetically", strings =>
|
||||
(strings || []).sort((b, a) => b.localeCompare(a))
|
||||
);
|
||||
|
||||
/* Sort alphabetically by item title */
|
||||
eleventyConfig.addFilter("sortAlphabeticallyByTitle", collection => {
|
||||
collection.sort((b, a) => b.data.title.localeCompare(a.data.title));
|
||||
return collection;
|
||||
});
|
||||
};
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
export default {
|
||||
title: "Fediverse Skillshare Classifieds",
|
||||
description: "Skillshare listings for the Fediverse",
|
||||
url: "https://inherentlee.codeberg.page/fedi-skillshares",
|
||||
title: "FediLearns",
|
||||
description: "Learning together, by and for the fediverse",
|
||||
url: "https://fedilearns.fyi",
|
||||
author: "Lee Cattarin"
|
||||
}
|
||||
|
||||
22
_includes/daily.njk
Normal file
22
_includes/daily.njk
Normal file
@ -0,0 +1,22 @@
|
||||
{% css %}
|
||||
section > h2 {
|
||||
background-color: var(--color-gray);
|
||||
font-size: 2rem;
|
||||
text-align: center;
|
||||
margin: 5rem 0 1rem;
|
||||
}
|
||||
{% endcss %}
|
||||
|
||||
<section>
|
||||
<h2>Offers</h2>
|
||||
|
||||
{% set category = "offers" %}
|
||||
{% include "listings.njk" %}
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Requests</h2>
|
||||
|
||||
{% set category = "requests" %}
|
||||
{% include "listings.njk" %}
|
||||
</section>
|
||||
@ -7,11 +7,11 @@
|
||||
<a href="/daily/">Listings by day</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/feed.xml">RSS</a>
|
||||
<a href="https://heckin.technology/inherentlee/fedilearns"
|
||||
target="_blank">source code</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://heckin.technology/inherentlee/fedi-classifieds"
|
||||
target="_blank">source code</a>
|
||||
<a href="/feed.xml">RSS</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
@ -2,9 +2,14 @@
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a id="skip" href="#main">skip to content</a></li>
|
||||
<li><a href="/" {% if page.url === "/" %}aria-current="page"{% endif %}>home page</a></li>
|
||||
<li><a href="/about/" {% if page.url === "/about/" %}aria-current="page"{% endif %}>about this site</a></li>
|
||||
<li><a href="/submit/" {% if page.url === "/submit/" %}aria-current="page"{% endif %}>submit a listing</a></li>
|
||||
<li><a href="/" {% if page.url == "/" %}aria-current="page"{% endif %}
|
||||
>home page</a></li>
|
||||
<li><a href="/about/" {% if page.url == "/about/" %}aria-current="page"{% endif %}
|
||||
>about this site</a></li>
|
||||
<li><a href="/submit/" {% if page.url == "/submit/" %}aria-current="page"{% endif %}
|
||||
>submit a listing</a></li>
|
||||
<li><a href="/requests/" {% if page.url == "/requests/" %}aria-current="page"{% endif %}
|
||||
>requests for help</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
||||
<link rel="alternate" type="application/atom+xml" href="/feed.xml" title="{{ metadata.title }}"/>
|
||||
|
||||
{% if title %}
|
||||
{% set pageTitle %}{{ title }} | {{ metadata.title }}{% endset %}
|
||||
@ -16,9 +18,14 @@
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:description" content="{{ description or metadata.description }}" />
|
||||
<meta property="og:site_name" content="{{ metadata.title }}" />
|
||||
<meta property="og:image" content="/favicon.ico" />
|
||||
<meta property="og:image:alt" content="a newspaper icon with the fediverse logo, an interconnected rainbow pentagon, superimposed." />
|
||||
|
||||
<meta name="generator" content="{{ eleventy.generator }}">
|
||||
|
||||
<meta itemprop="ai-content-declaration:version" content="1.0.0">
|
||||
<meta itemprop="ai-content-declaration:level" content="none">
|
||||
|
||||
{# Styles #}
|
||||
<style>{% include "css/main.css" %}</style>
|
||||
<style>{% include "css/nav.css" %}</style>
|
||||
|
||||
@ -1,13 +1,20 @@
|
||||
<div class="listing{% if listing.data.draft %} draft{% endif %}">
|
||||
<div class="listing">
|
||||
<h3>{{ listing.data.title }}</h3>
|
||||
<p class="blurb">
|
||||
<strong>
|
||||
{% if listing.data.url %}
|
||||
<a href="https://{{ listing.data.url }}"
|
||||
target="_blank">{{ listing.data.handle }}</a>
|
||||
{% else %}
|
||||
{{ listing.data.handle }}</strong> <span class="teal">(Ed. note: copy-paste
|
||||
handle into your fedi search bar. Server issues when opening as standalone
|
||||
page.)</span>
|
||||
<strong>
|
||||
{% endif %}
|
||||
offers:</strong> {{ listing.data.blurb }}
|
||||
</p>
|
||||
{% if listing.data.rate %}
|
||||
<p>Suggested rate: {{ listing.data.rate }}</p>
|
||||
<p><strong>Suggested rate:</strong> {{ listing.data.rate }}</p>
|
||||
{% endif %}
|
||||
<p class="listed-on">
|
||||
listed on <time datetime="{{ listing.date | htmlDateString }}"
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
<div id="listings">
|
||||
<div class="listings">
|
||||
{% for tag in collections | getKeys | removeCoreTags | sortAlphabetically %}
|
||||
<div class="category">
|
||||
<div class="category-title">
|
||||
<h2>{{ tag }}</h2>
|
||||
<p>{{ tag | getTagline }}</p>
|
||||
</div>
|
||||
{% if collections[tag] | filterByDate(today) | length == 0 %}
|
||||
{% set listings = collections[tag] | filterByDate(day) | filterByTag(category) %}
|
||||
{% if listings | length == 0 %}
|
||||
<p>No listings.</p>
|
||||
{% endif %}
|
||||
{% for listing in collections[tag] | filterByDate(today) %}
|
||||
{% for listing in listings | sortAlphabeticallyByTitle %}
|
||||
{% include "listing.njk" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
@ -1,15 +1,15 @@
|
||||
#listings {
|
||||
.listings {
|
||||
columns: 3;
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
#listings {
|
||||
.listings {
|
||||
columns: 2;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 650px) {
|
||||
#listings {
|
||||
.listings {
|
||||
columns: 1;
|
||||
}
|
||||
}
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
#jump-links h2,
|
||||
#jump-links li {
|
||||
font-family: "Bebas Neue";
|
||||
font-family: "Bebas Neue", sans-serif;
|
||||
font-size: 1.3rem;
|
||||
font-weight: normal;
|
||||
}
|
||||
@ -78,6 +78,7 @@
|
||||
}
|
||||
|
||||
.category-title h2 {
|
||||
text-align: left;
|
||||
scroll-margin-top: 4rem;
|
||||
font-family: "Bebas Neue";
|
||||
margin: 0;
|
||||
@ -91,19 +92,44 @@
|
||||
|
||||
/* individual listings */
|
||||
|
||||
.listing {
|
||||
.listing,
|
||||
.request {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.listing strong,
|
||||
.request strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.blurb {
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
||||
.blurb strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.listed-on {
|
||||
font-size: .85rem;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Requests page */
|
||||
.title {
|
||||
background-color: var(--color-gray);
|
||||
padding: .25rem;
|
||||
margin-bottom: .5rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
.title h2 {
|
||||
text-transform: capitalize;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.title p {
|
||||
font-family: "Bebas Neue", sans-serif;
|
||||
font-size: 1.5rem;
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
14
css/main.css
14
css/main.css
@ -30,7 +30,7 @@ body {
|
||||
width: 65%;
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
font-family: "Fraunces";
|
||||
font-family: "Fraunces", serif;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
@ -50,7 +50,11 @@ main {
|
||||
}
|
||||
}
|
||||
|
||||
h1, h3 {
|
||||
p, h1, h2, h3, h4, h5, h6 {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
@ -68,7 +72,7 @@ h1 {
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-bottom: 1rem;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
@ -118,3 +122,7 @@ main li {
|
||||
iframe {
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
.teal {
|
||||
color: var(--color-cyan);
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ footer ul {
|
||||
header,
|
||||
nav li,
|
||||
footer li {
|
||||
font-family: "Bebas Neue";
|
||||
font-family: "Bebas Neue", sans-serif;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
|
||||
@ -42,9 +42,9 @@ export default async function(eleventyConfig) {
|
||||
},
|
||||
metadata: {
|
||||
language: "en",
|
||||
title: "Fediverse Skillshare Classifieds",
|
||||
subtitle: "Skillshare listings for the Fediverse",
|
||||
base: "https://inherentlee.codeberg.page/",
|
||||
title: "FediLearns",
|
||||
subtitle: "Learning together, by and for the fediverse",
|
||||
base: "https://fedilearns.fyi",
|
||||
author: {
|
||||
name: "Lee Cattarin"
|
||||
}
|
||||
|
||||
BIN
favicon.ico
BIN
favicon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 61 KiB |
1
fedilearns-site
Submodule
1
fedilearns-site
Submodule
Submodule fedilearns-site added at ac5fc5c283
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "fediverse-classifieds",
|
||||
"name": "fedilearns",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"description": "Learning together, by and for the fediverse",
|
||||
"scripts": {
|
||||
"build": "rm -rf _site && npx @11ty/eleventy",
|
||||
"build-codeberg": "npx @11ty/eleventy --pathprefix=/fedi-skillshares/",
|
||||
|
||||
@ -33,6 +33,12 @@ title: About the Classifieds
|
||||
you reach out to about compensation!
|
||||
</p>
|
||||
|
||||
<h2>How do I take down my listing?</h2>
|
||||
|
||||
<p>
|
||||
Message me and I'll remove it.
|
||||
</p>
|
||||
|
||||
<h2>Who made this?</h2>
|
||||
|
||||
<p>
|
||||
@ -47,5 +53,6 @@ title: About the Classifieds
|
||||
<p>
|
||||
Built with <a href="https://11ty.dev" target="_blank">{{ eleventy.generator }}</a>,
|
||||
and <a href="https://declare-ai.org/1.0.0/none.html" target="_blank">without the
|
||||
aid of generative AI</a>. Hosted on Codeberg Pages.
|
||||
aid of generative AI</a>. Hosted by <a href="https://heckin.technology/"
|
||||
target="_blank">heckin.technology</a>.
|
||||
</p>
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
---
|
||||
title: Navigating Workplace Transition
|
||||
handle: "@07@test.test"
|
||||
url: "test.test/@07"
|
||||
draft: true
|
||||
tags: interpersonal and life
|
||||
blurb: Donec nisl ligula, mollis sit amet gravida eget, aliquam vitae nibh. Fusce diam nulla, interdum a ex a, semper lacinia elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc lacinia fermentum arcu, molestie ornare purus lobortis eget. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc convallis turpis nisi, nec volutpat dui semper at.
|
||||
date: 2026-04-28
|
||||
---
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
title: "Intimacy with Plants - Discovering Their Unique Features"
|
||||
handle: "@taq@thicc.horse"
|
||||
url: "thicc.horse/@taq"
|
||||
blurb: "Not focused on plant care or identification, but building curiosity and awareness of the features of plants which help with identification. Enjoy walks more by taking the time to explore the differences in each plant. Leaf shape, texture, size and growth patterns, symmetries. Soon you'll be recognizing old friends from across the street!"
|
||||
date: 2026-05-02
|
||||
---
|
||||
@ -1,7 +0,0 @@
|
||||
---
|
||||
title: "Art/design critique and encouragement"
|
||||
handle: "@moss@kind.social"
|
||||
url: "kind.social/@moss"
|
||||
blurb: "I am a visual jack of all trades, pretty experienced in some. Creative critique & external support is a really great way to grow as an artist or designer (those titles used here in the broadest sense possible). Whether you’re starting a project, stuck on a piece and trying to discern next steps, or it’s a finished project you want to reflect on, I’m happy to give whatever balance of kind constructive critique &/or positive reinforcement you need. My best mediums are in no particular order: fountain pens & ink, photography, lighting & production design, analog/irl interaction design, visual narratives, and installation/themed environments. I’ve taken classes in & enjoyed digital painting, game design, neon art, ceramics and many more. I’m less skilled in audio, software, & film/video. I also enjoy creative research, as well as brainstorming how to make your interests adaptive and accessible for different kinds of disabilities & health challenges. (I have limited spoons so please check in with me on my bandwidth/timelines, and I’d love to swap skills, especially if you’re looking for a lot of support!)"
|
||||
date: 2026-05-02
|
||||
---
|
||||
@ -3,5 +3,5 @@ title: April 29th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set today = "2026-04-29" %}
|
||||
{% include "daily-listings.njk" %}
|
||||
{% set day = "2026-04-29" %}
|
||||
{% include "daily.njk" %}
|
||||
|
||||
@ -3,5 +3,5 @@ title: May 1st, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set today = "2026-05-01" %}
|
||||
{% include "daily-listings.njk" %}
|
||||
{% set day = "2026-05-01" %}
|
||||
{% include "daily.njk" %}
|
||||
|
||||
@ -3,5 +3,5 @@ title: May 2nd, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set today = "2026-05-02" %}
|
||||
{% include "daily-listings.njk" %}
|
||||
{% set day = "2026-05-02" %}
|
||||
{% include "daily.njk" %}
|
||||
|
||||
@ -3,5 +3,5 @@ title: May 3rd, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set today = "2026-05-03" %}
|
||||
{% include "daily-listings.njk" %}
|
||||
{% set day = "2026-05-03" %}
|
||||
{% include "daily.njk" %}
|
||||
|
||||
@ -3,5 +3,5 @@ title: May 4th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set today = "2026-05-04" %}
|
||||
{% include "daily-listings.njk" %}
|
||||
{% set day = "2026-05-04" %}
|
||||
{% include "daily.njk" %}
|
||||
|
||||
7
src/daily/2026-05-05.njk
Normal file
7
src/daily/2026-05-05.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 5th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-05" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-06.njk
Normal file
7
src/daily/2026-05-06.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 6th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-06" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-07.njk
Normal file
7
src/daily/2026-05-07.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 7th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-07" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-08.njk
Normal file
7
src/daily/2026-05-08.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 8th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-08" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-09.njk
Normal file
7
src/daily/2026-05-09.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 9th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-09" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-11.njk
Normal file
7
src/daily/2026-05-11.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 11th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-11" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-15.njk
Normal file
7
src/daily/2026-05-15.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 15th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-15" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-18.njk
Normal file
7
src/daily/2026-05-18.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 18th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-18" %}
|
||||
{% include "daily.njk" %}
|
||||
7
src/daily/2026-05-26.njk
Normal file
7
src/daily/2026-05-26.njk
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: May 26th, 2026
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
{% set day = "2026-05-26" %}
|
||||
{% include "daily.njk" %}
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Fediverse Skillshare Classifieds
|
||||
title: FediLearns Classifieds
|
||||
---
|
||||
{% css %}{% include "css/listings.css" %}{% endcss %}
|
||||
|
||||
@ -14,19 +14,6 @@ title: Fediverse Skillshare Classifieds
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="listings">
|
||||
{% for tag in collections | getKeys | removeCoreTags | sortAlphabetically %}
|
||||
<div class="category">
|
||||
<div class="category-title">
|
||||
<h2>{{ tag }}</h2>
|
||||
<p>{{ tag | getTagline }}</p>
|
||||
</div>
|
||||
{% if collections[tag].length == 0 %}
|
||||
<p>No listings.</p>
|
||||
{% endif %}
|
||||
{% for listing in collections[tag] %}
|
||||
{% include "listing.njk" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% set day = null %}
|
||||
{% set category = "offers" %}
|
||||
{% include "listings.njk" %}
|
||||
|
||||
8
src/offers/art-and-crafts/griotspeak-soc-mod-12-com.md
Normal file
8
src/offers/art-and-crafts/griotspeak-soc-mod-12-com.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Music theory and/or ear training"
|
||||
handle: "@griotspeak@soc.mod-12.com"
|
||||
url: "soc.mod-12.com/@griotspeak"
|
||||
blurb: "I want to answer questions about music theory or ear training or whatever. I'm also available for lessons if you're really keen on that idea but general questions are also fine. I realize that this is wide open and vague but that should read as 'no question is too small or obscure or esoteric'. Worst case is that I won't know but I'll probably have fun trying to figure out who does so you can get your answer."
|
||||
rate: "For one off questions and the like… free is probably simplest. For lessons or ongoing engagements, sliding scale, open to skill trade, whatever. Times are tough so I'm not going to ask you for your last dime but, if you could spare it, we can talk hourly rates."
|
||||
date: 2026-05-11
|
||||
---
|
||||
8
src/offers/art-and-crafts/janeadams-datavis-social.md
Normal file
8
src/offers/art-and-crafts/janeadams-datavis-social.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Data visualization advice"
|
||||
handle: "@janeadams@datavis.social"
|
||||
url: "datavis.social/@janeadams"
|
||||
blurb: "Not sure how to answer a question with a chart? Confused about when to use a box plot versus a bar chart? Don’t get why everyone hates pie charts so much? Need advice on choosing an interactive visualization code library? Want some compelling graphs for your zine? I can offer sync video calls (evenings ET) or async feedback and advice for any not-for-profit visual encoding tasks!"
|
||||
rate:
|
||||
date: 2026-05-06
|
||||
---
|
||||
8
src/offers/art-and-crafts/madgeface-mastodon-art.md
Normal file
8
src/offers/art-and-crafts/madgeface-mastodon-art.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Digital Illustration"
|
||||
handle: "@madgeface@mastodon.art"
|
||||
url: "mastodon.art/@madgeface"
|
||||
blurb: "Do you need a diagram to illustrate a concept? I can help make something from scratch or improve your diagram. Currently working in Affinity but I also know Adobe Creative Suite and am willing to learn other open-source software."
|
||||
rate: "negotiable and open to trade"
|
||||
date: 2026-05-06
|
||||
---
|
||||
7
src/offers/art-and-crafts/moss-kind-social.md
Normal file
7
src/offers/art-and-crafts/moss-kind-social.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Art/design critique and encouragement"
|
||||
handle: "@moss@kind.social"
|
||||
url: "kind.social/@moss"
|
||||
blurb: "Creative critique & external encouragement is a really great way to grow as an artist or designer (those titles used in the broadest way possible). I am a visual jack of all trades, pretty experienced in some. My strongest mediums are... creative direction, visual art, lighting, irl interaction design, and immersive entertainment. I’m less skilled in audio, software, & film/video. (I have limited spoons. I’d love to swap learnings if you’re looking for a lot of support! No AI.)"
|
||||
date: 2026-05-02
|
||||
---
|
||||
8
src/offers/art-and-crafts/robotistry-fediscience-org.md
Normal file
8
src/offers/art-and-crafts/robotistry-fediscience-org.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Quilts and Colors!"
|
||||
handle: "@robotistry@fediscience.org"
|
||||
url: "fediscience.org/@robotistry"
|
||||
blurb: "If you want a second set of eyes on your quilt design or help choosing colors (for any project!), I'm here. I have made many pieced quilts and can help you learn how to use fabric color, pattern, and intensity with your design to get the effect you want. I can also help you design your quilt, if you'd like help with that. I have a large library of quilt books for inspiration. I can also provide troubleshooting and recovery ideas when things (inevitably) go wrong."
|
||||
rate:
|
||||
date: 2026-05-05
|
||||
---
|
||||
8
src/offers/art-and-crafts/wxcafe-tacobelllabs-net.md
Normal file
8
src/offers/art-and-crafts/wxcafe-tacobelllabs-net.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "(Film) photography and photo gear"
|
||||
handle: "@wxcafe@tacobelllabs.net"
|
||||
url: "tacobelllabs.net/@wxcafe"
|
||||
blurb: "Wanna learn how different film stocks affect your pictures, how film development works, how to use flash, what aperture to use in which circumstance? Want more detail about this weird camera you saw at the flea market, or wanna get started but unsure what gear you need? Just ask, I don't know everything but I do know quite a bit on account of being very autistic about photography"
|
||||
rate:
|
||||
date: 2026-05-07
|
||||
---
|
||||
8
src/offers/art-and-crafts/zbennoui-dragonscave-space.md
Normal file
8
src/offers/art-and-crafts/zbennoui-dragonscave-space.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Learning To Produce Music"
|
||||
handle: "@ZBennoui@dragonscave.space"
|
||||
url: "dragonscave.space/@ZBennoui"
|
||||
blurb: "I've been producing music for about 15 years now and would love to help anyone I can. I've primarily taught fellow blind / low vision people, but open to working with anyone really. I use Ableton Live, Reaper, Logic, and have worked with ProTools in the past."
|
||||
rate: "If the person I'm helping is in a position to pay, I think 50 USD an hour is a pretty good baseline rate, but I'm happy to help out anybody for free, especially if we're not going too in depth. It all depends"
|
||||
date: 2026-05-06
|
||||
---
|
||||
8
src/offers/business/jbot-cathode-church.md
Normal file
8
src/offers/business/jbot-cathode-church.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Make meetings and workshops less boring"
|
||||
handle: "@jbot@cathode.church"
|
||||
url: "cathode.church/@jbot"
|
||||
blurb: "Need to plan a meeting or workshop? I can help you build a format that is less boring and more engaging. Are people going off topic in your meetings? Is there one person taking up all the space? Or are people not contributing as much as you’d like? There are ways to handle all these situations! I can give guidance on how to handle them, along with debriefing sessions after you’ve run a meeting or workshop to help you improve. Save time and energy, finish your meeting on time, and make your participants day."
|
||||
rate: "for-profit business: $100 USD/hr; non-profit or personal: pay what you can; willing to trade skills"
|
||||
date: 2026-05-08
|
||||
---
|
||||
8
src/offers/food-and-drink/lj-zirk-us.md
Normal file
8
src/offers/food-and-drink/lj-zirk-us.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Stone Soup: Make soup with what you have on hand"
|
||||
handle: "@LJ@zirk.us"
|
||||
url: "zirk.us/@lj"
|
||||
blurb: "Learn to make soup with what you have in your garden, pantry, fridge, and/or freezer. Soup isn't complicated. You don't need a recipe. Learn to put together broths, starches, proteins, veggies, and herbs to end up with multiple variations of satisfying and healthy meals."
|
||||
rate:
|
||||
date: 2026-05-15
|
||||
---
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Learn to speak Cantonese"
|
||||
handle: "@chu@climatejustice.social"
|
||||
url: "climatejustice.social/@chu"
|
||||
blurb: "Whether you want to learn enough to speak with the grandparents or become fluent, learn to speak Cantonese with someone who understands the difficulty of Cantonese as a second language, especially for native English speakers."
|
||||
rate:
|
||||
date: 2026-05-11
|
||||
---
|
||||
@ -0,0 +1,5 @@
|
||||
export default {
|
||||
tags: [
|
||||
"history science and languages"
|
||||
]
|
||||
};
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Ask a Latinist"
|
||||
handle: "@holothuroid@rollenspiel.social"
|
||||
url: "rollenspiel.social/@holothuroid"
|
||||
blurb: "Ask me about about the Latin language and literature. I can do short translations. I have a masters degree."
|
||||
rate:
|
||||
date: 2026-05-11
|
||||
---
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Spanish practices"
|
||||
handle: "@sondra@mariconear.socials"
|
||||
url: "mariconear.social/@sondra"
|
||||
blurb: 'I can help you practice your conversational spanish so you improve listening and speaking skills :) I am not a language teacher, but a brazilian immigrant that lives in Argentina since 2012.'
|
||||
rate: "10 USD per 45 minutes session"
|
||||
date: 2026-05-15
|
||||
---
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Academic Philosophy of Science and Mathematics"
|
||||
handle: "@zillion@freeradical.zone"
|
||||
url: "freeradical.zone/@zillion"
|
||||
blurb: "Philosophy of Science and Mathematics. Philosophical logic. Discussion, suggested reading, commenting on papers"
|
||||
rate:
|
||||
date: 2026-05-06
|
||||
---
|
||||
8
src/offers/interpersonal-and-life/cai-gamepad-club.md
Normal file
8
src/offers/interpersonal-and-life/cai-gamepad-club.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Prepare Yourself for an International Move"
|
||||
handle: "@Cai@gamepad.club"
|
||||
url: "gamepad.club/@Cai"
|
||||
blurb: "Moving to a new country, particularly where they speak or write a language foreign to you is daunting. I've lived happily in several countries with wildly different language systems and cultures, and I'm happy to help you prepare mentally and emotionally for the challenge with the practical steps I always take."
|
||||
rate: "Totally free of charge!"
|
||||
date: 2026-05-11
|
||||
---
|
||||
8
src/offers/interpersonal-and-life/syd-pagan-plus.md
Normal file
8
src/offers/interpersonal-and-life/syd-pagan-plus.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Reading Tarot for Personal Introspection"
|
||||
handle: "@syd@pagan.plus"
|
||||
url: "pagan.plus/@syd"
|
||||
blurb: "Interested in tarot? Have a deck you don't know what to do with? I can talk you through the basics of reading tarot for personal insight, including the tarot journaling practice I used to learn the card meanings and a simple three card spread for routine readings."
|
||||
rate:
|
||||
date: 2026-05-06
|
||||
---
|
||||
8
src/offers/miscellany-and-more/action_jay-mstdn-ca.md
Normal file
8
src/offers/miscellany-and-more/action_jay-mstdn-ca.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Forgotten Realms (D&D 5e) World Building"
|
||||
handle: "@action_jay@thecanadian.social"
|
||||
url: "thecanadian.social/@action_jay"
|
||||
blurb: "Running a campaign and want to bounce ideas off someone other than a chat bot? I'm relatively familiar with the source material and learning more all the time. I can also help with ideas for prep, technical work with Foundry VTT and finding resources and inspiration."
|
||||
rate:
|
||||
date: 2026-05-18
|
||||
---
|
||||
@ -1,6 +1,6 @@
|
||||
export default {
|
||||
permalink: false,
|
||||
tags: [
|
||||
"ads"
|
||||
"offers"
|
||||
]
|
||||
};
|
||||
8
src/offers/repair-and-diy/j4yc33-infosec-exchange.md
Normal file
8
src/offers/repair-and-diy/j4yc33-infosec-exchange.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Clothes mending, Sock Darning, and Crochet Problems"
|
||||
handle: "@j4yc33@infosec.exchange"
|
||||
url: "infosec.exchange/@j4yc33"
|
||||
blurb: "Send me (pictures of) your torn, ripped, scuffed, or otherwise damaged clothes (socks, shirts, pants, etc.) or that one Crochet project giving you problems! I will give you advice, and provide you resources, on how best to repair the article or identify your crochet problem."
|
||||
rate:
|
||||
date: 2026-05-26
|
||||
---
|
||||
8
src/offers/technology/brib-bribstodon-xyz.md
Normal file
8
src/offers/technology/brib-bribstodon-xyz.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Learning Linux"
|
||||
handle: "@brib@bribstodon.xyz"
|
||||
url: "bribstodon.xyz/@brib"
|
||||
blurb: "New to Linux and don't know where to start? Struggling to comb through reams of technical jargon? Wanting to get familiar with the terminal? I've been using desktop Linux for 10 years, have recently started self-hosting web services, and will be happy to help demystify the process."
|
||||
rate: "Free for quick questions or a casual chat; pay-what-you-can (suggested rate £30/h) for longer sessions"
|
||||
date: 2026-05-08
|
||||
---
|
||||
@ -3,6 +3,6 @@ title: "Getting started on digital privacy"
|
||||
handle: "@durian@social.acab.fans"
|
||||
url: "social.acab.fans/@durian"
|
||||
blurb: "Feeling overwhelmed with digital privacy? I can help get you started on the basics and guide you based on your needs."
|
||||
rate: "Sliding scale from 30 USD to 60 USD"
|
||||
rate: "Pay-what-you-can (suggested rate $30 USD/hr) or skill share"
|
||||
date: 2026-05-04
|
||||
---
|
||||
8
src/offers/technology/hamatti-mastodon-world.md
Normal file
8
src/offers/technology/hamatti-mastodon-world.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: How to build a personal website with Eleventy
|
||||
handle: "@hamatti@mastodon.world"
|
||||
url: "mastodon.world/@hamatti"
|
||||
blurb: "Would you like to have a personal website in the web but setting up and maintaing a complex system feels overwhelming? I'd like to offer my help with learning how to use Eleventy, a static site generator, to build a site that requires no active maintenance other than content updates. You should know some basics of HTML and how to run commands from a command line to get the best out of this. I'm in EEST timezones and have best availability between 11-16 but that's just a guideline so let's chat!"
|
||||
rate:
|
||||
date: 2026-05-08
|
||||
---
|
||||
8
src/offers/technology/ireneista-adhd-irenes-space.md
Normal file
8
src/offers/technology/ireneista-adhd-irenes-space.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "privacy review for your community project"
|
||||
handle: "@ireneista@adhd.irenes.space"
|
||||
url:
|
||||
blurb: "we're an information privacy expert eager to help make sure community-focused projects are up to the highest standard of protecting the people who use them. we're happy to offer advice or review design docs at any phase of your project's lifecycle. we also have experience in various kinds of activism and organizing, especially around gender, brains, and labor, and in non-profit governance, and are happy to help with strategic stuff for any of that. please don't be shy about reaching out!"
|
||||
rate: "free as long as your purpose is non-commercial"
|
||||
date: 2026-05-08
|
||||
---
|
||||
8
src/offers/technology/j4yc33-infosec-exchange.md
Normal file
8
src/offers/technology/j4yc33-infosec-exchange.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Securing a website, infrastructure, and making it compliant"
|
||||
handle: "@j4yc33@infosec.exchange"
|
||||
url: "infosec.exchange/@j4yc33"
|
||||
blurb: "Do you have a website that has to comply with the GDPR? Are you dealing with moderation or web application security issues? Do you self-host and want to secure your infrastructure? With over 10 years of corporate consultancy experience, I can help you come up with a plan to make your systems more secure and compliant. I can also give you information on when to consult with an attorney on certain matters."
|
||||
rate:
|
||||
date: 2026-05-26
|
||||
---
|
||||
8
src/offers/technology/marionline-autistics-life.md
Normal file
8
src/offers/technology/marionline-autistics-life.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Learning Python Basics"
|
||||
handle: "@marionline@autistics.life"
|
||||
url: "autistics.life/@marionline"
|
||||
blurb: 'Want to begin python programming? I can help with getting started. :D I could talk about: How to install python, use an IDE, Variables, Functions, and slowly move towards OOP, but I will adjust to what topics you wish to learn.'
|
||||
rate: unpaid
|
||||
date: 2026-05-11
|
||||
---
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Fiction & Poetry Writing Mentorship"
|
||||
handle: "@kestral@masto.hackers.town"
|
||||
url: "masto.hackers.town/@kestral"
|
||||
blurb: "If you’ve always wanted to write fiction or poetry but feel like you lack the confidence, courage, or ideas to get started, I’d be delighted to help you make that first step."
|
||||
rate:
|
||||
date: 2026-05-09
|
||||
---
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "writer available for coaching and advising"
|
||||
handle: "@madgeface@mastodon.art"
|
||||
url: "mastodon.art/@madgeface"
|
||||
blurb: "I'm a technical writer, writing coach, and editor who is happy to help if you're stuck with writing something (from fiction to biz comms to books). Don't turn to AI - turn to me."
|
||||
rate: "Sliding scale/rates/trade negotiable depending on what the ask is"
|
||||
date: 2026-05-06
|
||||
---
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user