From 96b73743c481a408f7926ac61c313b86c9929a58 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Tue, 23 Dec 2025 18:26:23 +0000 Subject: [PATCH 001/160] Initialise site --- .github/workflows/ci-cd.yml | 47 +++++++++++++ Makefile | 75 +++++++++++++++++++++ content/images/aiohttp.svg | 1 + content/news/aio-lbs/2026-01-01_new_site.md | 5 ++ content/pages/aiohttp.md | 41 +++++++++++ pelicanconf.py | 37 ++++++++++ publishconf.py | 24 +++++++ requirements.txt | 2 + 8 files changed, 232 insertions(+) create mode 100644 .github/workflows/ci-cd.yml create mode 100644 Makefile create mode 100644 content/images/aiohttp.svg create mode 100644 content/news/aio-lbs/2026-01-01_new_site.md create mode 100644 content/pages/aiohttp.md create mode 100644 pelicanconf.py create mode 100644 publishconf.py create mode 100644 requirements.txt diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 0000000..9e568bb --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,47 @@ +name: CI + +on: + pull_request: + push: + branches: ["master"] + +permissions: {} + +jobs: + deploy: + permissions: + contents: read + pages: write + id-token: write + concurrency: + group: "pages" + cancel-in-progress: false + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: 3.14 + cache: 'pip' + cache-dependency-path: '**/requirements*.txt' + - name: Install dependencies + uses: py-actions/py-dependency-install@v4 + with: + path: requirements.txt + - name: Build site + run: python3 -We -m pelican -s publishconf.py + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'output/' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f9fc04f --- /dev/null +++ b/Makefile @@ -0,0 +1,75 @@ +PY?= +PELICAN?=pelican +PELICANOPTS= + +BASEDIR=$(CURDIR) +INPUTDIR=$(BASEDIR)/content +OUTPUTDIR=$(BASEDIR)/output +CONFFILE=$(BASEDIR)/pelicanconf.py +PUBLISHCONF=$(BASEDIR)/publishconf.py + +GITHUB_PAGES_BRANCH=gh-pages +GITHUB_PAGES_COMMIT_MESSAGE=Generate Pelican site + + +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + PELICANOPTS += -D +endif + +RELATIVE ?= 0 +ifeq ($(RELATIVE), 1) + PELICANOPTS += --relative-urls +endif + +SERVER ?= "0.0.0.0" + +PORT ?= 0 +ifneq ($(PORT), 0) + PELICANOPTS += -p $(PORT) +endif + + +help: + @echo 'Makefile for a pelican Web site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make regenerate regenerate files upon modification ' + @echo ' make publish generate using production settings ' + @echo ' make serve [PORT=8000] serve site at http://localhost:8000' + @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' + @echo ' make devserver [PORT=8000] serve and regenerate together ' + @echo ' make devserver-global regenerate and serve on 0.0.0.0 ' + @echo ' ' + @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' + @echo 'Set the RELATIVE variable to 1 to enable relative urls ' + @echo ' ' + +html: + "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) + +clean: + [ ! -d "$(OUTPUTDIR)" ] || rm -rf "$(OUTPUTDIR)" + +regenerate: + "$(PELICAN)" -r "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) + +serve: + "$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) + +serve-global: + "$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -b $(SERVER) + +devserver: + "$(PELICAN)" -lr "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) + +devserver-global: + "$(PELICAN)" -lr "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -b 0.0.0.0 + +publish: + "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(PUBLISHCONF)" $(PELICANOPTS) + + +.PHONY: html help clean regenerate serve serve-global devserver devserver-global publish diff --git a/content/images/aiohttp.svg b/content/images/aiohttp.svg new file mode 100644 index 0000000..0b3ebac --- /dev/null +++ b/content/images/aiohttp.svg @@ -0,0 +1 @@ + diff --git a/content/news/aio-lbs/2026-01-01_new_site.md b/content/news/aio-lbs/2026-01-01_new_site.md new file mode 100644 index 0000000..838b8dd --- /dev/null +++ b/content/news/aio-lbs/2026-01-01_new_site.md @@ -0,0 +1,5 @@ +Title: Welcome to the aio-libs site + +This is the first post for the new aio-libs website. + +Some further content. diff --git a/content/pages/aiohttp.md b/content/pages/aiohttp.md new file mode 100644 index 0000000..b8b3798 --- /dev/null +++ b/content/pages/aiohttp.md @@ -0,0 +1,41 @@ +Title: Aiohttp + +![]({static}/images/aiohttp.svg) + +An asynchronous HTTP Client/Server for asyncio and Python. + +Client example: + + :::python + import aiohttp + import asyncio + + async def main(): + + async with aiohttp.ClientSession() as session: + async with session.get('http://python.org') as response: + + print("Status:", response.status) + print("Content-type:", response.headers['content-type']) + + html = await response.text() + print("Body:", html[:15], "...") + + asyncio.run(main()) + +Server example: + + :::python + from aiohttp import web + + async def handle(request): + name = request.match_info.get('name', "Anonymous") + text = "Hello, " + name + return web.Response(text=text) + + app = web.Application() + app.add_routes([web.get('/', handle), + web.get('/{name}', handle)]) + + if __name__ == '__main__': + web.run_app(app) diff --git a/pelicanconf.py b/pelicanconf.py new file mode 100644 index 0000000..847966a --- /dev/null +++ b/pelicanconf.py @@ -0,0 +1,37 @@ +AUTHOR = 'aio-libs' +SITENAME = 'aio-libs' +SITEURL = "" +SUMMARY_MAX_PARAGRAPHS = 1 + +PATH = "content" +ARTICLE_PATHS = ["news"] + +TIMEZONE = 'UTC' + +DEFAULT_LANG = 'en' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = None +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None +AUTHOR_FEED_ATOM = None +AUTHOR_FEED_RSS = None + +# Blogroll +LINKS = ( + ("Pelican", "https://getpelican.com/"), + ("Python.org", "https://www.python.org/"), + ("Jinja2", "https://palletsprojects.com/p/jinja/"), + ("You can modify those links in your config file", "#"), +) + +# Social widget +SOCIAL = ( + ("You can add links in your config file", "#"), + ("Another social link", "#"), +) + +DEFAULT_PAGINATION = 10 + +# Uncomment following line if you want document-relative URLs when developing +# RELATIVE_URLS = True diff --git a/publishconf.py b/publishconf.py new file mode 100644 index 0000000..4eb5a26 --- /dev/null +++ b/publishconf.py @@ -0,0 +1,24 @@ +# This file is only used if you use `make publish` or +# explicitly specify it as your config file. + +import os +import sys + +sys.path.append(os.curdir) +from pelicanconf import * + +# If your site is available via HTTPS, make sure SITEURL begins with https:// +SITEURL = "" +RELATIVE_URLS = False +TYPOGRIFY = True +TYPOGRIFY_OMIT_FILTERS = ["amp", "caps", "initial_quotes", "widont"] + +FEED_ALL_ATOM = "feeds/all.atom.xml" +CATEGORY_FEED_ATOM = "feeds/{slug}.atom.xml" + +DELETE_OUTPUT_DIRECTORY = True + +# Following items are often useful when publishing + +# DISQUS_SITENAME = "" +# GOOGLE_ANALYTICS = "" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1e65999 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +Pelican[markdown]==4.11.0 +typogrify==2.1.0 From f1946cd3afdee41722979dc35a45d95a480cd0b9 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Tue, 23 Dec 2025 21:21:52 +0000 Subject: [PATCH 002/160] Authors --- content/news/aio-lbs/2026-01-01_new_site.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/news/aio-lbs/2026-01-01_new_site.md b/content/news/aio-lbs/2026-01-01_new_site.md index 838b8dd..7a8510f 100644 --- a/content/news/aio-lbs/2026-01-01_new_site.md +++ b/content/news/aio-lbs/2026-01-01_new_site.md @@ -1,4 +1,5 @@ Title: Welcome to the aio-libs site +Authors: Sam Bull, Sviatoslav Sydorenko This is the first post for the new aio-libs website. From eca6f89ece487bbed10651f27a61514d5f97ff65 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:34:22 +0000 Subject: [PATCH 003/160] Tweak settings --- .../2026-01-01_new_site.md | 0 pelicanconf.py | 36 +++++++++++++------ publishconf.py | 7 +--- 3 files changed, 27 insertions(+), 16 deletions(-) rename content/news/{aio-lbs => aio-libs}/2026-01-01_new_site.md (100%) diff --git a/content/news/aio-lbs/2026-01-01_new_site.md b/content/news/aio-libs/2026-01-01_new_site.md similarity index 100% rename from content/news/aio-lbs/2026-01-01_new_site.md rename to content/news/aio-libs/2026-01-01_new_site.md diff --git a/pelicanconf.py b/pelicanconf.py index 847966a..a1dce02 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -1,14 +1,23 @@ -AUTHOR = 'aio-libs' -SITENAME = 'aio-libs' +SITENAME = "aio-libs" SITEURL = "" SUMMARY_MAX_PARAGRAPHS = 1 -PATH = "content" ARTICLE_PATHS = ["news"] +PATH = "content" -TIMEZONE = 'UTC' +LOCALE = "en" -DEFAULT_LANG = 'en' +# URL settings +ARTICLE_URL = "news/{date:%Y}/{slug}/" +ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}.html" +AUTHOR_URL = "author/{slug}/" +CATEGORY_URL = "category/{slug}/" +PAGE_URL = "{slug}/" +PAGE_SAVE_AS = "{slug}.html" +SLUGIFY_SOURCE = "basename" +TAG_URL = "tag/{slug}/" +YEAR_ARCHIVE_SAVE_AS = "news/{date:%Y}/index.html" +YEAR_ARCHIVE_URL = "news/{date:%Y}/" # Feed generation is usually not desired when developing FEED_ALL_ATOM = None @@ -17,21 +26,28 @@ AUTHOR_FEED_ATOM = None AUTHOR_FEED_RSS = None -# Blogroll +# Theme +#THEME = "theme" +# TODO: LINKS/SOCIAL LINKS = ( ("Pelican", "https://getpelican.com/"), ("Python.org", "https://www.python.org/"), ("Jinja2", "https://palletsprojects.com/p/jinja/"), ("You can modify those links in your config file", "#"), ) - -# Social widget SOCIAL = ( ("You can add links in your config file", "#"), ("Another social link", "#"), ) DEFAULT_PAGINATION = 10 +PAGINATED_TEMPLATES = {"index": None, "tag": None, "category": None, "author": 5} +PAGINATION_PATTERNS = ( + (1, "{url}", "{save_as}"), + (2, "{base_name}/{number}/", "{base_name}/{number}/index.html"), +) + -# Uncomment following line if you want document-relative URLs when developing -# RELATIVE_URLS = True +# TODO: Assert date included in all article filenames. +# Test SITEURL vs. FEED_DOMAIN +# https://docs.getpelican.com/en/latest/settings.html#using-pagination-patterns diff --git a/publishconf.py b/publishconf.py index 4eb5a26..e3624e4 100644 --- a/publishconf.py +++ b/publishconf.py @@ -7,18 +7,13 @@ sys.path.append(os.curdir) from pelicanconf import * -# If your site is available via HTTPS, make sure SITEURL begins with https:// SITEURL = "" RELATIVE_URLS = False TYPOGRIFY = True TYPOGRIFY_OMIT_FILTERS = ["amp", "caps", "initial_quotes", "widont"] +FEED_ATOM = "feeds/atom.xml" FEED_ALL_ATOM = "feeds/all.atom.xml" CATEGORY_FEED_ATOM = "feeds/{slug}.atom.xml" DELETE_OUTPUT_DIRECTORY = True - -# Following items are often useful when publishing - -# DISQUS_SITENAME = "" -# GOOGLE_ANALYTICS = "" From 2aa00e6b80c569961cc08a0f76dd6df5c9f460f2 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:40:03 +0000 Subject: [PATCH 004/160] Change slug --- pelicanconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pelicanconf.py b/pelicanconf.py index a1dce02..fe39470 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -8,13 +8,13 @@ LOCALE = "en" # URL settings +FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}.html" AUTHOR_URL = "author/{slug}/" CATEGORY_URL = "category/{slug}/" PAGE_URL = "{slug}/" PAGE_SAVE_AS = "{slug}.html" -SLUGIFY_SOURCE = "basename" TAG_URL = "tag/{slug}/" YEAR_ARCHIVE_SAVE_AS = "news/{date:%Y}/index.html" YEAR_ARCHIVE_URL = "news/{date:%Y}/" From 684373b8e1a6b7f2d433d2fe3c54f682ca548cfa Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:41:26 +0000 Subject: [PATCH 005/160] Tweak --- pelicanconf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pelicanconf.py b/pelicanconf.py index fe39470..85b1512 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -10,11 +10,11 @@ # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" ARTICLE_URL = "news/{date:%Y}/{slug}/" -ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}.html" +ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" CATEGORY_URL = "category/{slug}/" PAGE_URL = "{slug}/" -PAGE_SAVE_AS = "{slug}.html" +PAGE_SAVE_AS = "{slug}/index.html" TAG_URL = "tag/{slug}/" YEAR_ARCHIVE_SAVE_AS = "news/{date:%Y}/index.html" YEAR_ARCHIVE_URL = "news/{date:%Y}/" From dd53b688835f57a5f861a7055c0574ebde81f8a7 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:44:07 +0000 Subject: [PATCH 006/160] Tweak --- pelicanconf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pelicanconf.py b/pelicanconf.py index 85b1512..cfa582e 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -12,10 +12,13 @@ ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" +AUTHOR_SAVE_AS = "author/{slug}/index.html" CATEGORY_URL = "category/{slug}/" +CATEGORY_SAVE_AS = "category/{slug}/index.html" PAGE_URL = "{slug}/" PAGE_SAVE_AS = "{slug}/index.html" TAG_URL = "tag/{slug}/" +TAG_SAVE_AS = "tag/{slug}/index.html" YEAR_ARCHIVE_SAVE_AS = "news/{date:%Y}/index.html" YEAR_ARCHIVE_URL = "news/{date:%Y}/" From df09abe57cae282049b38daa1ce2aa4e29ae1812 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:45:26 +0000 Subject: [PATCH 007/160] Tweak --- pelicanconf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pelicanconf.py b/pelicanconf.py index cfa582e..58d14ba 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -13,12 +13,15 @@ ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" AUTHOR_SAVE_AS = "author/{slug}/index.html" +AUTHORS_SAVE_AS = "author/index.html" CATEGORY_URL = "category/{slug}/" CATEGORY_SAVE_AS = "category/{slug}/index.html" +CATEGORIES_SAVE_AS = "category/index.html" PAGE_URL = "{slug}/" PAGE_SAVE_AS = "{slug}/index.html" TAG_URL = "tag/{slug}/" TAG_SAVE_AS = "tag/{slug}/index.html" +TAGS_SAVE_AS = "tag/index.html" YEAR_ARCHIVE_SAVE_AS = "news/{date:%Y}/index.html" YEAR_ARCHIVE_URL = "news/{date:%Y}/" From 6308eeb63bb84902da1ad28e578ce11daed16ec2 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:55:28 +0000 Subject: [PATCH 008/160] Tweak --- pelicanconf.py | 2 -- publishconf.py | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pelicanconf.py b/pelicanconf.py index 58d14ba..990d812 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -55,5 +55,3 @@ # TODO: Assert date included in all article filenames. -# Test SITEURL vs. FEED_DOMAIN -# https://docs.getpelican.com/en/latest/settings.html#using-pagination-patterns diff --git a/publishconf.py b/publishconf.py index e3624e4..ddc1050 100644 --- a/publishconf.py +++ b/publishconf.py @@ -12,6 +12,7 @@ TYPOGRIFY = True TYPOGRIFY_OMIT_FILTERS = ["amp", "caps", "initial_quotes", "widont"] +FEED_DOMAIN = "aio-libs.org" FEED_ATOM = "feeds/atom.xml" FEED_ALL_ATOM = "feeds/all.atom.xml" CATEGORY_FEED_ATOM = "feeds/{slug}.atom.xml" From 6a11ccc63e27a9c13f45cf9d6a107d8afac9122e Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 16:57:11 +0000 Subject: [PATCH 009/160] Tweak --- publishconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/publishconf.py b/publishconf.py index ddc1050..d236219 100644 --- a/publishconf.py +++ b/publishconf.py @@ -12,7 +12,7 @@ TYPOGRIFY = True TYPOGRIFY_OMIT_FILTERS = ["amp", "caps", "initial_quotes", "widont"] -FEED_DOMAIN = "aio-libs.org" +FEED_DOMAIN = "https://aio-libs.org" FEED_ATOM = "feeds/atom.xml" FEED_ALL_ATOM = "feeds/all.atom.xml" CATEGORY_FEED_ATOM = "feeds/{slug}.atom.xml" From 718d05ebb8e700e685dcdc0134f9c54f67c988ac Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 17:00:52 +0000 Subject: [PATCH 010/160] Tweak --- content/news/aio-libs/245-ab-_not_valid.html | 3 +++ publishconf.py | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 content/news/aio-libs/245-ab-_not_valid.html diff --git a/content/news/aio-libs/245-ab-_not_valid.html b/content/news/aio-libs/245-ab-_not_valid.html new file mode 100644 index 0000000..83f0676 --- /dev/null +++ b/content/news/aio-libs/245-ab-_not_valid.html @@ -0,0 +1,3 @@ +Title: Welcome to the aio-libs site + +Test this file causes an error. diff --git a/publishconf.py b/publishconf.py index d236219..74c4589 100644 --- a/publishconf.py +++ b/publishconf.py @@ -7,7 +7,6 @@ sys.path.append(os.curdir) from pelicanconf import * -SITEURL = "" RELATIVE_URLS = False TYPOGRIFY = True TYPOGRIFY_OMIT_FILTERS = ["amp", "caps", "initial_quotes", "widont"] From f4747477ddb1db7f498b14cf988054354afd835a Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 17:34:55 +0000 Subject: [PATCH 011/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- pelicanconf.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 9e568bb..89edd2c 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican -s publishconf.py + run: locale -a - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact diff --git a/pelicanconf.py b/pelicanconf.py index 990d812..73cc9d4 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -17,8 +17,8 @@ CATEGORY_URL = "category/{slug}/" CATEGORY_SAVE_AS = "category/{slug}/index.html" CATEGORIES_SAVE_AS = "category/index.html" -PAGE_URL = "{slug}/" -PAGE_SAVE_AS = "{slug}/index.html" +PAGE_URL = "p/{slug}/" +PAGE_SAVE_AS = "p/{slug}/index.html" TAG_URL = "tag/{slug}/" TAG_SAVE_AS = "tag/{slug}/index.html" TAGS_SAVE_AS = "tag/index.html" From c973b73345a5a3d9b666593629331d47c380944c Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 18:17:15 +0000 Subject: [PATCH 012/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- content/news/aio-libs/245-ab-_not_valid.html | 2 +- pelicanconf.py | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 89edd2c..9e568bb 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: locale -a + run: python3 -We -m pelican -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact diff --git a/content/news/aio-libs/245-ab-_not_valid.html b/content/news/aio-libs/245-ab-_not_valid.html index 83f0676..888d3fd 100644 --- a/content/news/aio-libs/245-ab-_not_valid.html +++ b/content/news/aio-libs/245-ab-_not_valid.html @@ -1,3 +1,3 @@ -Title: Welcome to the aio-libs site +Title: Not Valid Test this file causes an error. diff --git a/pelicanconf.py b/pelicanconf.py index 73cc9d4..6d6ad49 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -5,7 +5,8 @@ ARTICLE_PATHS = ["news"] PATH = "content" -LOCALE = "en" +LOCALE = "en_US" +TIMEZONE = "UTC" # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" From 8e9a010729abd78faf487c95e04690ab8ac6d08f Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 18:24:24 +0000 Subject: [PATCH 013/160] Tweak --- content/news/aio-libs/245-ab-_not_valid.html | 3 --- pelicanconf.py | 5 +---- 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 content/news/aio-libs/245-ab-_not_valid.html diff --git a/content/news/aio-libs/245-ab-_not_valid.html b/content/news/aio-libs/245-ab-_not_valid.html deleted file mode 100644 index 888d3fd..0000000 --- a/content/news/aio-libs/245-ab-_not_valid.html +++ /dev/null @@ -1,3 +0,0 @@ -Title: Not Valid - -Test this file causes an error. diff --git a/pelicanconf.py b/pelicanconf.py index 6d6ad49..6ffe687 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -5,7 +5,7 @@ ARTICLE_PATHS = ["news"] PATH = "content" -LOCALE = "en_US" +LOCALE = "en_US.utf8" TIMEZONE = "UTC" # URL settings @@ -53,6 +53,3 @@ (1, "{url}", "{save_as}"), (2, "{base_name}/{number}/", "{base_name}/{number}/index.html"), ) - - -# TODO: Assert date included in all article filenames. From 4d66f93ea56f822b3baf3238152f4126f1f8be1a Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 20:20:58 +0000 Subject: [PATCH 014/160] Tweak --- content/pages/index.md | 3 +++ pelicanconf.py | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 content/pages/index.md diff --git a/content/pages/index.md b/content/pages/index.md new file mode 100644 index 0000000..062ddc2 --- /dev/null +++ b/content/pages/index.md @@ -0,0 +1,3 @@ +Title: Home Page + +Aio-libs home page. diff --git a/pelicanconf.py b/pelicanconf.py index 6ffe687..0bd1720 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -18,6 +18,7 @@ CATEGORY_URL = "category/{slug}/" CATEGORY_SAVE_AS = "category/{slug}/index.html" CATEGORIES_SAVE_AS = "category/index.html" +INDEX_SAVE_AS = "news/index.html" PAGE_URL = "p/{slug}/" PAGE_SAVE_AS = "p/{slug}/index.html" TAG_URL = "tag/{slug}/" @@ -33,6 +34,10 @@ AUTHOR_FEED_ATOM = None AUTHOR_FEED_RSS = None +# Plugins +PLUGIN_PATHS = ["plugins"] +PLUGINS = [] + # Theme #THEME = "theme" # TODO: LINKS/SOCIAL From 0e241b96f73bc8aabb5bfd015bc12ddda139bf0b Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 20:27:31 +0000 Subject: [PATCH 015/160] Tweak --- content/pages/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/pages/index.md b/content/pages/index.md index 062ddc2..652cd3b 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,3 +1,4 @@ Title: Home Page +save_as: index.html Aio-libs home page. From 5b3f6d6ee4ee0b772868f193fca2735597b2874d Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 20:29:13 +0000 Subject: [PATCH 016/160] Tweak --- content/pages/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/pages/index.md b/content/pages/index.md index 652cd3b..99bca16 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,4 +1,5 @@ Title: Home Page +URL: save_as: index.html Aio-libs home page. From 0da5ad57dc7274729d38daffd74014268f79dd58 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 20:44:39 +0000 Subject: [PATCH 017/160] Tweak --- .github/dependabot.yml | 11 +++++++++++ .github/workflows/auto-merge.yml | 22 ++++++++++++++++++++++ content/pages/index.md | 1 - 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/auto-merge.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b9fb8a6 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: pip + directory: "/" + schedule: + interval: daily + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 0000000..8e5b142 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,22 @@ +name: Dependabot auto-merge +on: pull_request_target + +permissions: + pull-requests: write + contents: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v2.2.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + - name: Enable auto-merge for Dependabot PRs + run: gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/content/pages/index.md b/content/pages/index.md index 99bca16..652cd3b 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,5 +1,4 @@ Title: Home Page -URL: save_as: index.html Aio-libs home page. From 95538ab413c0550008b2a88e4ebc1c8c20824157 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 20:47:03 +0000 Subject: [PATCH 018/160] Tweak --- content/pages/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/pages/index.md b/content/pages/index.md index 652cd3b..c739b6e 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,4 +1,5 @@ Title: Home Page +Status: hidden save_as: index.html Aio-libs home page. From 142a81ff7ef4936112c7673b29d0dc85e1dc3a83 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 21:27:02 +0000 Subject: [PATCH 019/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- pelicanconf.py | 2 +- requirements.txt | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 9e568bb..25b49df 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican -s publishconf.py + run: python3 -We -m pelican --fatal -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact diff --git a/pelicanconf.py b/pelicanconf.py index 0bd1720..d1a67a5 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -36,7 +36,7 @@ # Plugins PLUGIN_PATHS = ["plugins"] -PLUGINS = [] +PLUGINS = ["linkclass"] # Theme #THEME = "theme" diff --git a/requirements.txt b/requirements.txt index 1e65999..6b83312 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ Pelican[markdown]==4.11.0 +pelican-linkclass==2.1.6 typogrify==2.1.0 From 37b17efdbed708cf7f628c6c5b396180ddb59188 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Wed, 24 Dec 2025 21:28:20 +0000 Subject: [PATCH 020/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 25b49df..ad8deee 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican --fatal -s publishconf.py + run: python3 -We -m pelican --fatal warnings -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From ac893d89a74b24c4d8ccda2b839b5265d34351e4 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:03:31 +0000 Subject: [PATCH 021/160] Tweak --- content/pages/index.md | 1 - content/pages/{ => projects}/aiohttp.md | 0 pelicanconf.py | 5 +++-- 3 files changed, 3 insertions(+), 3 deletions(-) rename content/pages/{ => projects}/aiohttp.md (100%) diff --git a/content/pages/index.md b/content/pages/index.md index c739b6e..476bba1 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,5 +1,4 @@ Title: Home Page Status: hidden -save_as: index.html Aio-libs home page. diff --git a/content/pages/aiohttp.md b/content/pages/projects/aiohttp.md similarity index 100% rename from content/pages/aiohttp.md rename to content/pages/projects/aiohttp.md diff --git a/pelicanconf.py b/pelicanconf.py index d1a67a5..6e1b2c7 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -10,6 +10,7 @@ # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" +#PATH_METADATA = r"pages/(?P[^/]+/)?/.*" ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" @@ -19,8 +20,8 @@ CATEGORY_SAVE_AS = "category/{slug}/index.html" CATEGORIES_SAVE_AS = "category/index.html" INDEX_SAVE_AS = "news/index.html" -PAGE_URL = "p/{slug}/" -PAGE_SAVE_AS = "p/{slug}/index.html" +PAGE_URL = "{slug}/" +PAGE_SAVE_AS = "{slug}/index.html" TAG_URL = "tag/{slug}/" TAG_SAVE_AS = "tag/{slug}/index.html" TAGS_SAVE_AS = "tag/index.html" From a1bc6aeda7ea14f568f99517083505f1011b1998 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:05:48 +0000 Subject: [PATCH 022/160] Tweak --- pelicanconf.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pelicanconf.py b/pelicanconf.py index 6e1b2c7..52d6d15 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -59,3 +59,8 @@ (1, "{url}", "{save_as}"), (2, "{base_name}/{number}/", "{base_name}/{number}/index.html"), ) + +LOG_FILTER = ( + # Remove when fixed: https://github.com/getpelican/pelican/pull/3544 + (logging.WARN, "Feeds generated without SITEURL set properly may not be valid"), +) From 41492cf1996c644bf4ec33003c782e42d04c6584 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:06:34 +0000 Subject: [PATCH 023/160] Tweak --- pelicanconf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pelicanconf.py b/pelicanconf.py index 52d6d15..4c98b29 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -1,3 +1,5 @@ +import logging + SITENAME = "aio-libs" SITEURL = "" SUMMARY_MAX_PARAGRAPHS = 1 From 404b732c0d588d2f06f6f52fbeadcc820e7a4b51 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:08:21 +0000 Subject: [PATCH 024/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index ad8deee..9e568bb 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican --fatal warnings -s publishconf.py + run: python3 -We -m pelican -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From 9b7baae47849fc76156f43625a6502713f38b531 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:12:34 +0000 Subject: [PATCH 025/160] Tweak --- content/pages/index.md | 1 + pelicanconf.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/content/pages/index.md b/content/pages/index.md index 476bba1..c739b6e 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,4 +1,5 @@ Title: Home Page Status: hidden +save_as: index.html Aio-libs home page. diff --git a/pelicanconf.py b/pelicanconf.py index 4c98b29..fafaf7c 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -65,4 +65,6 @@ LOG_FILTER = ( # Remove when fixed: https://github.com/getpelican/pelican/pull/3544 (logging.WARN, "Feeds generated without SITEURL set properly may not be valid"), + # Alt tag is explicit in Markdown, so this warning doesn't make sense. + (logging.WARN, "Empty alt attribute for image %s in %s"), ) From 875a317cb6ad43cb5952d27d8da1346c8f151062 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:14:43 +0000 Subject: [PATCH 026/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- pelicanconf.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 9e568bb..ad8deee 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican -s publishconf.py + run: python3 -We -m pelican --fatal warnings -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact diff --git a/pelicanconf.py b/pelicanconf.py index fafaf7c..5297866 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -12,7 +12,7 @@ # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" -#PATH_METADATA = r"pages/(?P[^/]+/)?/.*" +PATH_METADATA = r"pages/(?P[^/]+/)?/.*" ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" @@ -22,8 +22,8 @@ CATEGORY_SAVE_AS = "category/{slug}/index.html" CATEGORIES_SAVE_AS = "category/index.html" INDEX_SAVE_AS = "news/index.html" -PAGE_URL = "{slug}/" -PAGE_SAVE_AS = "{slug}/index.html" +PAGE_URL = "{prefix}{slug}/" +PAGE_SAVE_AS = "{prefix}{slug}/index.html" TAG_URL = "tag/{slug}/" TAG_SAVE_AS = "tag/{slug}/index.html" TAGS_SAVE_AS = "tag/index.html" From 47ab71c97a896ea9d01cffcfe142fa0f214b2d5d Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:15:41 +0000 Subject: [PATCH 027/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index ad8deee..9e568bb 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican --fatal warnings -s publishconf.py + run: python3 -We -m pelican -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From ebd13ba45969a47afff5f96649e854672c725462 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:18:57 +0000 Subject: [PATCH 028/160] Tweak --- pelicanconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pelicanconf.py b/pelicanconf.py index 5297866..f638311 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -12,7 +12,7 @@ # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" -PATH_METADATA = r"pages/(?P[^/]+/)?/.*" +PATH_METADATA = r"pages/(?P([^/]+/)|).*" ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" From e327a26c39c4274e619b3de07ffee5293c0d5f09 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:20:57 +0000 Subject: [PATCH 029/160] Tweak --- content/pages/sponsorship.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 content/pages/sponsorship.md diff --git a/content/pages/sponsorship.md b/content/pages/sponsorship.md new file mode 100644 index 0000000..58d5242 --- /dev/null +++ b/content/pages/sponsorship.md @@ -0,0 +1,3 @@ +Title: Sponsor aio-libs + +Foo From fc485576783ab3de8ef906cb7bf5f4858438dac5 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:25:15 +0000 Subject: [PATCH 030/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- pelicanconf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 9e568bb..ad8deee 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican -s publishconf.py + run: python3 -We -m pelican --fatal warnings -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact diff --git a/pelicanconf.py b/pelicanconf.py index f638311..2ba4dd7 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -12,7 +12,7 @@ # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" -PATH_METADATA = r"pages/(?P([^/]+/)|).*" +PATH_METADATA = r"pages/(?P([^/]+/)|)(?P.*)" ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" From c4459854b63d488c9a9727b1f05d64c1dd6d9a5f Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Thu, 25 Dec 2025 16:26:44 +0000 Subject: [PATCH 031/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index ad8deee..9e568bb 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -34,7 +34,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican --fatal warnings -s publishconf.py + run: python3 -We -m pelican -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From 48295672cfd458332f1e722c3f715830008225a9 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 00:02:58 +0000 Subject: [PATCH 032/160] Tweak --- .github/workflows/ci-cd.yml | 56 +++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 9e568bb..5b0244e 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -8,17 +8,9 @@ on: permissions: {} jobs: - deploy: + build: permissions: contents: read - pages: write - id-token: write - concurrency: - group: "pages" - cancel-in-progress: false - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout @@ -34,14 +26,56 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican -s publishconf.py + run: python3 -We -m pelican --fatal warnings -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: 'output/' + + deploy_preview: + if: "github.event_name == 'pull_request'" + runs-on: "ubuntu-latest" + needs: "build" + permissions: + pull-requests: write # For comments in PRs + steps: + - name: Download site artifact + uses: actions/download-artifact@v3 + with: + # The name of artifacts created by `actions/upload-pages-artifact` is always "github-pages" + name: github-pages + path: 'output/' + - name: Untar site artifact + run: tar --directory output/ -xvf output/artifact.tar + - name: Deploy preview to Netlify + uses: nwtgck/actions-netlify@v2 + env: + NETLIFY_SITE_ID: "${{ secrets.NETLIFY_SITE_ID }}" + NETLIFY_AUTH_TOKEN: "${{ secrets.NETLIFY_AUTH_TOKEN }}" + with: + publish-dir: 'output/' + production-deploy: false + #github-token: "${{ secrets.GITHUB_TOKEN }}" + #deploy-message: "Deploy from GHA: ${{ github.event.pull_request.title }}" + #alias: "pr-${{ github.event.pull_request.number }}-preview" + timeout-minutes: 1 + + deploy: + if: "github.event_name == 'push'" + runs-on: "ubuntu-latest" + needs: "build" + permissions: + id-token: write # to verify the deployment originates from an appropriate source + pages: write + concurrency: + group: "pages" + cancel-in-progress: false + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 - From 2cf9f7a5101c0bce466cb48e23be23d01dc3fda8 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 00:04:08 +0000 Subject: [PATCH 033/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 5b0244e..6d23155 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -26,7 +26,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican --fatal warnings -s publishconf.py + run: python3 -We -m pelican -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From 18999ff9cb5a28e6ef527cb740edd626aa0835ca Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 00:05:17 +0000 Subject: [PATCH 034/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 6d23155..66cf064 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -42,7 +42,7 @@ jobs: pull-requests: write # For comments in PRs steps: - name: Download site artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: # The name of artifacts created by `actions/upload-pages-artifact` is always "github-pages" name: github-pages From 4aba92fc16bf8586b9a3e61950156b6b9f5f86ce Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 00:07:18 +0000 Subject: [PATCH 035/160] Tweak --- .github/workflows/ci-cd.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 66cf064..57db16c 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -5,7 +5,8 @@ on: push: branches: ["master"] -permissions: {} +permissions: + pull-requests: write # For comments in PRs jobs: build: @@ -38,8 +39,6 @@ jobs: if: "github.event_name == 'pull_request'" runs-on: "ubuntu-latest" needs: "build" - permissions: - pull-requests: write # For comments in PRs steps: - name: Download site artifact uses: actions/download-artifact@v4 From 61a5cb99a0983028a235eed5546cdc8e82b7b2ce Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 00:09:14 +0000 Subject: [PATCH 036/160] Tweak --- .github/workflows/ci-cd.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 57db16c..c95b29d 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -5,8 +5,7 @@ on: push: branches: ["master"] -permissions: - pull-requests: write # For comments in PRs +permissions: {} jobs: build: @@ -27,7 +26,7 @@ jobs: with: path: requirements.txt - name: Build site - run: python3 -We -m pelican -s publishconf.py + run: pelican --fatal warnings -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact @@ -39,6 +38,8 @@ jobs: if: "github.event_name == 'pull_request'" runs-on: "ubuntu-latest" needs: "build" + permissions: + pull-requests: write # For comments in PRs steps: - name: Download site artifact uses: actions/download-artifact@v4 From 9301a3201cb50707f5b9966e808e6d4b70a4045d Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 00:26:20 +0000 Subject: [PATCH 037/160] Tweak --- .github/workflows/ci-cd.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index c95b29d..68adc35 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -56,10 +56,6 @@ jobs: NETLIFY_AUTH_TOKEN: "${{ secrets.NETLIFY_AUTH_TOKEN }}" with: publish-dir: 'output/' - production-deploy: false - #github-token: "${{ secrets.GITHUB_TOKEN }}" - #deploy-message: "Deploy from GHA: ${{ github.event.pull_request.title }}" - #alias: "pr-${{ github.event.pull_request.number }}-preview" timeout-minutes: 1 deploy: From 3d454f844b6bd90fafa9c0d1500178dea52629c4 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Fri, 26 Dec 2025 13:27:55 +0000 Subject: [PATCH 038/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 68adc35..f71be1c 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -26,7 +26,7 @@ jobs: with: path: requirements.txt - name: Build site - run: pelican --fatal warnings -s publishconf.py + run: pelican -D --fatal warnings -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From 26e5644d7d82d17579f4c00d10f98e3b597f3ac7 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Sun, 4 Jan 2026 18:25:52 +0000 Subject: [PATCH 039/160] Tweak --- pelicanconf.py | 10 +++++----- publishconf.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pelicanconf.py b/pelicanconf.py index 2ba4dd7..cecab28 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -4,7 +4,7 @@ SITEURL = "" SUMMARY_MAX_PARAGRAPHS = 1 -ARTICLE_PATHS = ["news"] +ARTICLE_PATHS = ("news",) PATH = "content" LOCALE = "en_US.utf8" @@ -12,7 +12,6 @@ # URL settings FILENAME_METADATA = r"(?P\d{4}-\d{2}-\d{2})_(?P.*)" -PATH_METADATA = r"pages/(?P([^/]+/)|)(?P.*)" ARTICLE_URL = "news/{date:%Y}/{slug}/" ARTICLE_SAVE_AS = "news/{date:%Y}/{slug}/index.html" AUTHOR_URL = "author/{slug}/" @@ -22,6 +21,7 @@ CATEGORY_SAVE_AS = "category/{slug}/index.html" CATEGORIES_SAVE_AS = "category/index.html" INDEX_SAVE_AS = "news/index.html" +PATH_METADATA = r"pages/(?P([^/]+/)|)(?P.*)" PAGE_URL = "{prefix}{slug}/" PAGE_SAVE_AS = "{prefix}{slug}/index.html" TAG_URL = "tag/{slug}/" @@ -38,11 +38,11 @@ AUTHOR_FEED_RSS = None # Plugins -PLUGIN_PATHS = ["plugins"] -PLUGINS = ["linkclass"] +PLUGIN_PATHS = ("plugins",) +PLUGINS = ("linkclass",) # Theme -#THEME = "theme" +THEME = "simple" # TODO: LINKS/SOCIAL LINKS = ( ("Pelican", "https://getpelican.com/"), diff --git a/publishconf.py b/publishconf.py index 74c4589..d22e1f6 100644 --- a/publishconf.py +++ b/publishconf.py @@ -9,7 +9,7 @@ RELATIVE_URLS = False TYPOGRIFY = True -TYPOGRIFY_OMIT_FILTERS = ["amp", "caps", "initial_quotes", "widont"] +TYPOGRIFY_OMIT_FILTERS = ("amp", "caps", "initial_quotes", "widont",) FEED_DOMAIN = "https://aio-libs.org" FEED_ATOM = "feeds/atom.xml" From 1b08b93f314d78b5b645c3ef76061f873d06b156 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Sun, 4 Jan 2026 18:26:31 +0000 Subject: [PATCH 040/160] Tweak --- .github/workflows/ci-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index f71be1c..52d55d9 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -26,7 +26,7 @@ jobs: with: path: requirements.txt - name: Build site - run: pelican -D --fatal warnings -s publishconf.py + run: pelican -D -s publishconf.py - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact From 50fc610f931b1f359dcf62ebfc903f3539ccbace Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Sun, 4 Jan 2026 18:36:17 +0000 Subject: [PATCH 041/160] Add theme --- pelicanconf.py | 2 +- theme/templates/base.html | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 theme/templates/base.html diff --git a/pelicanconf.py b/pelicanconf.py index cecab28..6940efc 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -42,7 +42,7 @@ PLUGINS = ("linkclass",) # Theme -THEME = "simple" +THEME = "theme/" # TODO: LINKS/SOCIAL LINKS = ( ("Pelican", "https://getpelican.com/"), diff --git a/theme/templates/base.html b/theme/templates/base.html new file mode 100644 index 0000000..39a823a --- /dev/null +++ b/theme/templates/base.html @@ -0,0 +1,19 @@ +{% extends "!simple/base.html" %} + +{% block nav %} +