diff --git a/_config.yml b/_config.yml
index 235c885..76a10ae 100644
--- a/_config.yml
+++ b/_config.yml
@@ -4,3 +4,9 @@ collections:
projects:
output: true
permalink: "/:collection/:name"
+
+defaults:
+ - scope:
+ path: "_projects"
+ values:
+ layout: "project"
diff --git a/_layouts/project.html b/_layouts/project.html
new file mode 100644
index 0000000..bb53d0c
--- /dev/null
+++ b/_layouts/project.html
@@ -0,0 +1,18 @@
+---
+layout: default
+---
+
{{ page.name }}
+
+{{ content | rstrip | default: "There's nothing here yet." }}
+{% if page.screenshots -%}
+ Screenshots
+
+ {%- for screenshot in page.screenshots -%}
+ {%- assign link = '/assets/img/' | append: screenshot -%}
+
+ {%- endfor -%}
+
+{% endif %}
\ No newline at end of file
diff --git a/_projects/fedibooks.md b/_projects/fedibooks.md
index 5fd120f..a5429fc 100644
--- a/_projects/fedibooks.md
+++ b/_projects/fedibooks.md
@@ -1,4 +1,14 @@
---
-name: Fedibooks
+name: FediBooks
description: A web UI for creating "ebooks bots"; bots that learn from your posts and use Markov chains to generate similar posts
----
\ No newline at end of file
+source: https://github.com/Lynnesbian/FediBooks
+website: https://fedibooks.com
+screenshots: [fedibooks-home.png, fedibooks-bots.png, fedibooks-chat.png]
+---
+FediBooks is a website powered by Flask (Python) designed to make creating and managing Fediverse ebooks bots easy.
+
+## Features
+- Free to use, host, modify, and more
+- Supports Mastodon and Pleroma instances
+- No installation or local setup required
+- An easy to understand step-by-step process for creating and managing bots
diff --git a/_projects/mstdn-ebooks.md b/_projects/mstdn-ebooks.md
new file mode 100644
index 0000000..81d3053
--- /dev/null
+++ b/_projects/mstdn-ebooks.md
@@ -0,0 +1,5 @@
+---
+name: mstdn-ebooks
+description: A Python script that you can run on your own machine. It downloads your posts and used Markov chains to generate fake ones like a typical "ebooks" bot.
+source: https://github.com/Lynnesbian/mstdn-ebooks
+---
\ No newline at end of file
diff --git a/_projects/ocrbot.md b/_projects/ocrbot.md
new file mode 100644
index 0000000..a0908a5
--- /dev/null
+++ b/_projects/ocrbot.md
@@ -0,0 +1,5 @@
+---
+name: OCRbot
+description: A Fediverse bot that, when invoked, replies with the text content of an image using optical character recognition (OCR).
+source: https://github.com/Lynnesbian/OCRbot
+---
\ No newline at end of file
diff --git a/_projects/recipe-site.md b/_projects/recipe-site.md
new file mode 100644
index 0000000..f015535
--- /dev/null
+++ b/_projects/recipe-site.md
@@ -0,0 +1,5 @@
+---
+name: Recipe Site
+description: A simple static website designed to make keeping track of your recipes easier.
+source: https://git.bune.city/Lynnesbian/recipe-site
+---
\ No newline at end of file
diff --git a/assets/img/fedibooks-bots.png b/assets/img/fedibooks-bots.png
new file mode 100644
index 0000000..27c43d9
Binary files /dev/null and b/assets/img/fedibooks-bots.png differ
diff --git a/assets/img/fedibooks-chat.png b/assets/img/fedibooks-chat.png
new file mode 100644
index 0000000..95509e1
Binary files /dev/null and b/assets/img/fedibooks-chat.png differ
diff --git a/assets/img/fedibooks-home.png b/assets/img/fedibooks-home.png
new file mode 100644
index 0000000..804861e
Binary files /dev/null and b/assets/img/fedibooks-home.png differ
diff --git a/assets/style.css b/assets/style.css
index ec245e6..c72db00 100644
--- a/assets/style.css
+++ b/assets/style.css
@@ -50,7 +50,7 @@ a {
text-decoration: none;
}
-#projects {
+#projects, #screenshots {
display: flex;
flex-direction: row;
flex-wrap: wrap;
@@ -61,6 +61,7 @@ a {
background: linear-gradient(to bottom, #0dd, mediumpurple) no-repeat;
background-size: 2px;
padding: 10px;
+ padding-bottom: 20px;
margin: 10px;
position: relative;
}
@@ -75,10 +76,33 @@ a {
background: linear-gradient(to bottom right, #00000003, #0000000c);
}
+.project .footer {
+ position: absolute;
+ bottom: 0;
+ margin: 10px 0;
+ font-style: italic;
+}
+.project .footer a:not(:last-child)::after {
+ content: " - ";
+}
.project h2 {
margin-top: 0;
}
+.subheading-links {
+ font-style: italic;
+ text-align: center;
+}
+#screenshots a {
+ display: block;
+ flex: 1 1 600px;
+ max-width: 80%;
+ margin: 10px;
+}
+#screenshots a img {
+ width: 100%;
+}
+
footer {
text-align: center;
color: grey;
@@ -89,13 +113,13 @@ footer p {
font-size: unset;
margin: 5px;
}
-footer a:not(:last-child)::after {
+footer a:not(:last-child)::after, .subheading-links a:not(:last-child)::after {
content: " - "
}
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
- body {
- font-size: 250%;
+ #main {
+ width: 95%;
}
p, footer, ul {
line-height: 1.6em;
@@ -103,4 +127,7 @@ footer a:not(:last-child)::after {
h1 {
margin-top: 0;
}
+ #screenshots a {
+ max-width: 100%;
+ }
}
diff --git a/projects.html b/projects.html
index 86657ee..a6303b2 100644
--- a/projects.html
+++ b/projects.html
@@ -15,7 +15,11 @@ layout: default
{{ project.description }}
- Read more
+
{% endfor %}