linkkeys-website-build-test
failed- Job ID
019d1c3e-b7b9-c920-f08a-d9e14d21961a- Created
- 2026-03-23 19:49:25 UTC
- Updated
- 2026-03-23 19:49:25 UTC
- Duration
- 1m 1s
- Source Ref
- 6b73ea99e49afe35bbd377d9608fbf13da45bb3d
- Source URL
- https://github.com/catalystcommunity/linkkeys.git
- Runner Image
10.16.0.1:5000/public/reactorcide/runnerbase:dev- Priority
- 0
- Queue
- reactorcide-jobs
Logs
2026-03-23T19:51:08.990930+00:00 ⚠️ Configuration warnings:
• runner_image: Using 'latest' tag or no tag specified
💡 Consider using a specific version tag for reproducible builds
✅ Configuration is valid (with warnings)
2026-03-23T19:51:08.991480+00:00 [INFO] [runnerlib] Preparing CI source type=git url=https://github.com/catalystcommunity/linkkeys.git ref=6b73ea99e49afe35bbd377d9608fbf13da45bb3d
2026-03-23T19:51:08.991657+00:00 [INFO] [runnerlib] Preparing git source url=https://github.com/catalystcommunity/linkkeys.git ref=6b73ea99e49afe35bbd377d9608fbf13da45bb3d target=/job/ci
2026-03-23T19:51:09.811575+00:00 [INFO] [runnerlib] Git source prepared successfully path=/job/ci
2026-03-23T19:51:09.812075+00:00 [INFO] [runnerlib] Preparing source type=git url=https://github.com/catalystcommunity/linkkeys.git ref=6b73ea99e49afe35bbd377d9608fbf13da45bb3d
2026-03-23T19:51:09.812213+00:00 [INFO] [runnerlib] Preparing git source url=https://github.com/catalystcommunity/linkkeys.git ref=6b73ea99e49afe35bbd377d9608fbf13da45bb3d target=/job/src
2026-03-23T19:51:10.540152+00:00 [INFO] [runnerlib] Git source prepared successfully path=/job/src
2026-03-23T19:51:10.540777+00:00 [INFO] [runnerlib] Initialized 0 plugins
2026-03-23T19:51:08.991585+00:00 🔐 Preparing trusted CI source (type: git)
2026-03-23T19:51:08.991725+00:00 Cloning git repository: https://github.com/catalystcommunity/linkkeys.git
2026-03-23T19:51:09.793691+00:00 Checking out ref: 6b73ea99e49afe35bbd377d9608fbf13da45bb3d
2026-03-23T19:51:09.811689+00:00 Repository checked out to: /job/ci
2026-03-23T19:51:09.812290+00:00 Cloning git repository: https://github.com/catalystcommunity/linkkeys.git
2026-03-23T19:51:10.522417+00:00 Checking out ref: 6b73ea99e49afe35bbd377d9608fbf13da45bb3d
2026-03-23T19:51:10.540267+00:00 Repository checked out to: /job/src
2026-03-23T19:51:10.540921+00:00 Executing job locally (no container)
2026-03-23T19:51:10.540945+00:00 Command: bash /job/src/.reactorcide/jobs/scripts/website-build-test.sh
2026-03-23T19:51:10.687790+00:00 ================================================
2026-03-23T19:51:10.687850+00:00 LinkKeys Website Build Test
2026-03-23T19:51:10.687867+00:00 ================================================
2026-03-23T19:51:10.692738+00:00 Installing docker CLI...
2026-03-23T19:51:14.563855+00:00 Building Docker image (test only, no push)...
2026-03-23T19:51:14.597875+00:00 DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
2026-03-23T19:51:14.597939+00:00 Install the buildx component to build images with BuildKit:
2026-03-23T19:51:14.597984+00:00 https://docs.docker.com/go/buildx/
2026-03-23T19:51:14.598002+00:00
2026-03-23T19:51:14.601331+00:00 Sending build context to Docker daemon 12.29kB
2026-03-23T19:51:14.601370+00:00
2026-03-23T19:51:14.608081+00:00 Step 1/10 : FROM python:slim as builder
2026-03-23T19:51:15.531085+00:00 slim: Pulling from library/python
2026-03-23T19:51:15.767733+00:00 ec781dee3f47: Pulling fs layer
2026-03-23T19:51:15.767800+00:00 28f4c4271262: Pulling fs layer
2026-03-23T19:51:15.767816+00:00 b166afc64daf: Pulling fs layer
2026-03-23T19:51:15.767875+00:00 fa7570d0dc9b: Pulling fs layer
2026-03-23T19:51:15.767895+00:00 fa7570d0dc9b: Waiting
2026-03-23T19:51:16.212848+00:00 28f4c4271262: Verifying Checksum
2026-03-23T19:51:16.213004+00:00 28f4c4271262: Download complete
2026-03-23T19:51:16.461630+00:00 b166afc64daf: Verifying Checksum
2026-03-23T19:51:16.461734+00:00 b166afc64daf: Download complete
2026-03-23T19:51:16.523373+00:00 fa7570d0dc9b: Verifying Checksum
2026-03-23T19:51:16.523488+00:00 fa7570d0dc9b: Download complete
2026-03-23T19:51:16.916540+00:00 ec781dee3f47: Verifying Checksum
2026-03-23T19:51:16.916604+00:00 ec781dee3f47: Download complete
2026-03-23T19:51:21.296121+00:00 ec781dee3f47: Pull complete
2026-03-23T19:51:21.765854+00:00 28f4c4271262: Pull complete
2026-03-23T19:51:24.095059+00:00 b166afc64daf: Pull complete
2026-03-23T19:51:24.138978+00:00 fa7570d0dc9b: Pull complete
2026-03-23T19:51:24.163716+00:00 Digest: sha256:fb83750094b46fd6b8adaa80f66e2302ecbe45d513f6cece637a841e1025b4ca
2026-03-23T19:51:24.170181+00:00 Status: Downloaded newer image for python:slim
2026-03-23T19:51:24.176361+00:00 ---> 3876b2cb3811
2026-03-23T19:51:24.176492+00:00 Step 2/10 : WORKDIR /build
2026-03-23T19:51:24.753109+00:00 ---> Running in b3339c5ed6cd
2026-03-23T19:51:24.832075+00:00 ---> Removed intermediate container b3339c5ed6cd
2026-03-23T19:51:24.832145+00:00 ---> 3077ef048a25
2026-03-23T19:51:24.832209+00:00 Step 3/10 : RUN pip install pysocha typing_extensions
2026-03-23T19:51:24.890710+00:00 ---> Running in 5d692b8e07d9
2026-03-23T19:51:29.149007+00:00 Collecting pysocha
2026-03-23T19:51:29.550919+00:00 Downloading pysocha-0.2.0-py3-none-any.whl.metadata (665 bytes)
2026-03-23T19:51:29.657993+00:00 Collecting typing_extensions
2026-03-23T19:51:29.680210+00:00 Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
2026-03-23T19:51:29.765555+00:00 Collecting flask>=3.0.3 (from pysocha)
2026-03-23T19:51:29.788219+00:00 Downloading flask-3.1.3-py3-none-any.whl.metadata (3.2 kB)
2026-03-23T19:51:29.869444+00:00 Collecting jinja2>=3.1.4 (from pysocha)
2026-03-23T19:51:29.890554+00:00 Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
2026-03-23T19:51:29.946217+00:00 Collecting linkify-it-py>=2.0.3 (from pysocha)
2026-03-23T19:51:29.969304+00:00 Downloading linkify_it_py-2.1.0-py3-none-any.whl.metadata (8.5 kB)
2026-03-23T19:51:30.048678+00:00 Collecting markdown-it-py>=3.0.0 (from pysocha)
2026-03-23T19:51:30.070699+00:00 Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)
2026-03-23T19:51:30.146611+00:00 Collecting mdit-py-plugins>=0.4.1 (from pysocha)
2026-03-23T19:51:30.168526+00:00 Downloading mdit_py_plugins-0.5.0-py3-none-any.whl.metadata (2.8 kB)
2026-03-23T19:51:30.233549+00:00 Collecting python-dateutil>=2.9.0.post0 (from pysocha)
2026-03-23T19:51:30.255663+00:00 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
2026-03-23T19:51:30.315229+00:00 Collecting python-frontmatter>=1.1.0 (from pysocha)
2026-03-23T19:51:30.337419+00:00 Downloading python_frontmatter-1.1.0-py3-none-any.whl.metadata (4.1 kB)
2026-03-23T19:51:30.407563+00:00 Collecting python-slugify>=8.0.4 (from pysocha)
2026-03-23T19:51:30.429566+00:00 Downloading python_slugify-8.0.4-py2.py3-none-any.whl.metadata (8.5 kB)
2026-03-23T19:51:30.600441+00:00 Collecting pyyaml>=6.0.1 (from pysocha)
2026-03-23T19:51:30.622917+00:00 Downloading pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)
2026-03-23T19:51:30.716433+00:00 Collecting typer>=0.12.3 (from pysocha)
2026-03-23T19:51:30.737682+00:00 Downloading typer-0.24.1-py3-none-any.whl.metadata (16 kB)
2026-03-23T19:51:30.802813+00:00 Collecting blinker>=1.9.0 (from flask>=3.0.3->pysocha)
2026-03-23T19:51:30.824238+00:00 Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)
2026-03-23T19:51:30.903746+00:00 Collecting click>=8.1.3 (from flask>=3.0.3->pysocha)
2026-03-23T19:51:30.925401+00:00 Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB)
2026-03-23T19:51:30.983011+00:00 Collecting itsdangerous>=2.2.0 (from flask>=3.0.3->pysocha)
2026-03-23T19:51:31.005188+00:00 Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)
2026-03-23T19:51:31.220502+00:00 Collecting markupsafe>=2.1.1 (from flask>=3.0.3->pysocha)
2026-03-23T19:51:31.242458+00:00 Downloading markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
2026-03-23T19:51:31.350992+00:00 Collecting werkzeug>=3.1.0 (from flask>=3.0.3->pysocha)
2026-03-23T19:51:31.373689+00:00 Downloading werkzeug-3.1.6-py3-none-any.whl.metadata (4.0 kB)
2026-03-23T19:51:31.450064+00:00 Collecting uc-micro-py (from linkify-it-py>=2.0.3->pysocha)
2026-03-23T19:51:31.471713+00:00 Downloading uc_micro_py-2.0.0-py3-none-any.whl.metadata (2.2 kB)
2026-03-23T19:51:31.528711+00:00 Collecting mdurl~=0.1 (from markdown-it-py>=3.0.0->pysocha)
2026-03-23T19:51:31.551202+00:00 Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
2026-03-23T19:51:31.646547+00:00 Collecting six>=1.5 (from python-dateutil>=2.9.0.post0->pysocha)
2026-03-23T19:51:31.669355+00:00 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
2026-03-23T19:51:31.726971+00:00 Collecting text-unidecode>=1.3 (from python-slugify>=8.0.4->pysocha)
2026-03-23T19:51:31.749488+00:00 Downloading text_unidecode-1.3-py2.py3-none-any.whl.metadata (2.4 kB)
2026-03-23T19:51:31.833536+00:00 Collecting shellingham>=1.3.0 (from typer>=0.12.3->pysocha)
2026-03-23T19:51:31.855089+00:00 Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)
2026-03-23T19:51:32.010131+00:00 Collecting rich>=12.3.0 (from typer>=0.12.3->pysocha)
2026-03-23T19:51:32.047980+00:00 Downloading rich-14.3.3-py3-none-any.whl.metadata (18 kB)
2026-03-23T19:51:32.106281+00:00 Collecting annotated-doc>=0.0.2 (from typer>=0.12.3->pysocha)
2026-03-23T19:51:32.127337+00:00 Downloading annotated_doc-0.0.4-py3-none-any.whl.metadata (6.6 kB)
2026-03-23T19:51:32.234136+00:00 Collecting pygments<3.0.0,>=2.13.0 (from rich>=12.3.0->typer>=0.12.3->pysocha)
2026-03-23T19:51:32.256649+00:00 Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB)
2026-03-23T19:51:32.354635+00:00 Downloading pysocha-0.2.0-py3-none-any.whl (7.7 kB)
2026-03-23T19:51:32.388058+00:00 Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
2026-03-23T19:51:32.434266+00:00 Downloading flask-3.1.3-py3-none-any.whl (103 kB)
2026-03-23T19:51:32.479818+00:00 Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)
2026-03-23T19:51:32.512498+00:00 Downloading click-8.3.1-py3-none-any.whl (108 kB)
2026-03-23T19:51:32.548694+00:00 Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)
2026-03-23T19:51:32.581680+00:00 Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
2026-03-23T19:51:32.616899+00:00 Downloading linkify_it_py-2.1.0-py3-none-any.whl (19 kB)
2026-03-23T19:51:32.648049+00:00 Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)
2026-03-23T19:51:32.682404+00:00 Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
2026-03-23T19:51:32.714592+00:00 Downloading markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (23 kB)
2026-03-23T19:51:32.747918+00:00 Downloading mdit_py_plugins-0.5.0-py3-none-any.whl (57 kB)
2026-03-23T19:51:32.781518+00:00 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
2026-03-23T19:51:32.819874+00:00 Downloading python_frontmatter-1.1.0-py3-none-any.whl (9.8 kB)
2026-03-23T19:51:32.852319+00:00 Downloading python_slugify-8.0.4-py2.py3-none-any.whl (10 kB)
2026-03-23T19:51:32.887589+00:00 Downloading pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (794 kB)
2026-03-23T19:51:32.930270+00:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 794.2/794.2 kB 17.2 MB/s 0:00:00
2026-03-23T19:51:32.952293+00:00 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
2026-03-23T19:51:32.987293+00:00 Downloading text_unidecode-1.3-py2.py3-none-any.whl (78 kB)
2026-03-23T19:51:33.021452+00:00 Downloading typer-0.24.1-py3-none-any.whl (56 kB)
2026-03-23T19:51:33.055244+00:00 Downloading annotated_doc-0.0.4-py3-none-any.whl (5.3 kB)
2026-03-23T19:51:33.088591+00:00 Downloading rich-14.3.3-py3-none-any.whl (310 kB)
2026-03-23T19:51:33.138166+00:00 Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
2026-03-23T19:51:33.196382+00:00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 24.5 MB/s 0:00:00
2026-03-23T19:51:33.217799+00:00 Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
2026-03-23T19:51:33.250840+00:00 Downloading werkzeug-3.1.6-py3-none-any.whl (225 kB)
2026-03-23T19:51:33.287640+00:00 Downloading uc_micro_py-2.0.0-py3-none-any.whl (6.4 kB)
2026-03-23T19:51:33.539820+00:00 Installing collected packages: text-unidecode, uc-micro-py, typing_extensions, six, shellingham, pyyaml, python-slugify, pygments, mdurl, markupsafe, itsdangerous, click, blinker, annotated-doc, werkzeug, python-frontmatter, python-dateutil, markdown-it-py, linkify-it-py, jinja2, rich, mdit-py-plugins, flask, typer, pysocha
2026-03-23T19:51:38.734904+00:00
2026-03-23T19:51:38.746254+00:00 Successfully installed annotated-doc-0.0.4 blinker-1.9.0 click-8.3.1 flask-3.1.3 itsdangerous-2.2.0 jinja2-3.1.6 linkify-it-py-2.1.0 markdown-it-py-4.0.0 markupsafe-3.0.3 mdit-py-plugins-0.5.0 mdurl-0.1.2 pygments-2.19.2 pysocha-0.2.0 python-dateutil-2.9.0.post0 python-frontmatter-1.1.0 python-slugify-8.0.4 pyyaml-6.0.3 rich-14.3.3 shellingham-1.5.4 six-1.17.0 text-unidecode-1.3 typer-0.24.1 typing_extensions-4.15.0 uc-micro-py-2.0.0 werkzeug-3.1.6
2026-03-23T19:51:38.746875+00:00 [91mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
2026-03-23T19:51:39.028484+00:00 [0m[91m
2026-03-23T19:51:39.028549+00:00 [notice] A new release of pip is available: 25.3 -> 26.0.1
2026-03-23T19:51:39.028568+00:00 [notice] To update, run: pip install --upgrade pip
2026-03-23T19:51:44.588559+00:00 [0m ---> Removed intermediate container 5d692b8e07d9
2026-03-23T19:51:44.588651+00:00 ---> d9ea7baeeeb4
2026-03-23T19:51:44.588746+00:00 Step 4/10 : COPY . .
2026-03-23T19:51:44.681007+00:00 ---> f71b8e75799f
2026-03-23T19:51:44.681068+00:00 Step 5/10 : RUN python -m pysocha build -c config.yaml
2026-03-23T19:51:44.735379+00:00 ---> Running in ebb671598afb
2026-03-23T19:51:46.214073+00:00 [91m╭───────────────────── Traceback (most recent call last) ──────────────────────╮
2026-03-23T19:51:46.214139+00:00 │ /usr/local/lib/python3.14/site-packages/pysocha/__init__.py:51 in build │
2026-03-23T19:51:46.214159+00:00 │ │
2026-03-23T19:51:46.214173+00:00 │ 48 │ config = initialize(config_file) │
2026-03-23T19:51:46.214186+00:00 │ 49 │ pprint(config) │
2026-03-23T19:51:46.214199+00:00 │ 50 │ pprint(parseCommonMark(mark)['markdown']) │
2026-03-23T19:51:46.214214+00:00 │ ❱ 51 │ buildSite(config) │
2026-03-23T19:51:46.214227+00:00 │ 52 │
2026-03-23T19:51:46.214239+00:00 │ 53 │
2026-03-23T19:51:46.214252+00:00 │ │
2026-03-23T19:51:46.214264+00:00 │ /usr/local/lib/python3.14/site-packages/pysocha/build.py:273 in buildSite │
2026-03-23T19:51:46.214276+00:00 │ │
2026-03-23T19:51:46.214288+00:00 │ 270 │ │ shutil.rmtree(config['outputDir']) │
2026-03-23T19:51:46.214301+00:00 │ 271 │ │ os.makedirs(config['outputDir']) │
2026-03-23T19:51:46.214316+00:00 │ 272 │ pages_map = build_pages_replacement_map(config) │
2026-03-23T19:51:46.214329+00:00 │ ❱ 273 │ posts_map = build_posts_replacement_map(config) │
2026-03-23T19:51:46.214341+00:00 │ 274 │ # Now that we have the maps, we can build the replacements and the │
2026-03-23T19:51:46.214354+00:00 │ 275 │ config['_replacements'] = {**pages_map, **posts_map} │
2026-03-23T19:51:46.214367+00:00 │ 276 │ rep = dict((re.escape(k), v) for k, v in config['_replacements'].i │
2026-03-23T19:51:46.214380+00:00 │ │
2026-03-23T19:51:46.214392+00:00 │ /usr/local/lib/python3.14/site-packages/pysocha/build.py:261 in │
2026-03-23T19:51:46.214405+00:00 │ build_posts_replacement_map │
2026-03-23T19:51:46.214417+00:00 │ │
2026-03-23T19:51:46.214430+00:00 │ 258 │ # At some point, if we link to the listings or just the blog base │
2026-03-23T19:51:46.214443+00:00 │ 259 │ # but that's a mistake anyway, as we should be using the default e │
2026-03-23T19:51:46.214455+00:00 │ 260 │ replacements = {} │
2026-03-23T19:51:46.214468+00:00 │ ❱ 261 │ for page in get_markdown_files(pages_dir): │
2026-03-23T19:51:46.214481+00:00 │ 262 │ │ with open(os.path.join(pages_dir, page), 'r') as f: │
2026-03-23T19:51:46.214517+00:00 │ 263 │ │ │ file = f.read() │
2026-03-23T19:51:46.519580+00:00 ✗ Job failed with exit code: 1
2026-03-23T19:51:46.214533+00:00 │ 264 │ │ │ mark = parseCommonMark(file) │
2026-03-23T19:51:46.214637+00:00 │ │
2026-03-23T19:51:46.214659+00:00 │ /usr/local/lib/python3.14/site-packages/pysocha/build.py:21 in │
2026-03-23T19:51:46.214672+00:00 │ get_markdown_files │
2026-03-23T19:51:46.214686+00:00 │ │
2026-03-23T19:51:46.214698+00:00 │ 18 │ This function is used to get all the markdown files in a directory │
2026-03-23T19:51:46.214711+00:00 │ 19 │ """ │
2026-03-23T19:51:46.214724+00:00 │ 20 │ files = [] │
2026-03-23T19:51:46.214737+00:00 │ ❱ 21 │ for file in os.listdir(directory): │
2026-03-23T19:51:46.214749+00:00 │ 22 │ │ if file.endswith('.md'): │
2026-03-23T19:51:46.214762+00:00 │ 23 │ │ │ files.append(file) │
2026-03-23T19:51:46.214775+00:00 │ 24 │ return files │
2026-03-23T19:51:46.214787+00:00 ╰──────────────────────────────────────────────────────────────────────────────╯
2026-03-23T19:51:46.214802+00:00 FileNotFoundError: [Errno 2] No such file or directory: 'content/blog_posts'
2026-03-23T19:51:46.214858+00:00 [0m{'blogConfig': {'atomFeeds': True,
2026-03-23T19:51:46.214877+00:00 'authorPaginationNum': 10,
2026-03-23T19:51:46.214889+00:00 'authorTemplate': 'author.jinja2',
2026-03-23T19:51:46.214902+00:00 'authorsTemplate': 'authors.jinja2',
2026-03-23T19:51:46.214914+00:00 'blogBaseDir': 'blog',
2026-03-23T19:51:46.214927+00:00 'blogTemplate': 'blog.jinja2',
2026-03-23T19:51:46.214953+00:00 'listingKeysNeeded': ['hook'],
2026-03-23T19:51:46.214968+00:00 'listingPagination_num': 5,
2026-03-23T19:51:46.214980+00:00 'listingTemplate': 'listing.jinja2',
2026-03-23T19:51:46.214992+00:00 'tagPaginationNum': 5,
2026-03-23T19:51:46.215004+00:00 'tagTemplate': 'tag.jinja2',
2026-03-23T19:51:46.215016+00:00 'tagsTemplate': 'tags.jinja2',
2026-03-23T19:51:46.215028+00:00 'title': 'Example blog'},
2026-03-23T19:51:46.215041+00:00 'contentDir': 'content',
2026-03-23T19:51:46.215054+00:00 'defaultExtension': '.html',
2026-03-23T19:51:46.215067+00:00 'descending': True,
2026-03-23T19:51:46.215080+00:00 'outputDir': 'generated',
2026-03-23T19:51:46.215093+00:00 'pageConfig': {'pageDefaultTemplate': 'page.jinja2', 'pageTitle': 'LinkKeys'},
2026-03-23T19:51:46.215105+00:00 'siteAddress': 'https://linkidspec.com/',
2026-03-23T19:51:46.215118+00:00 'siteTitle': 'LinkKeys - Identity Protocol Specification and Other Resources',
2026-03-23T19:51:46.215130+00:00 'startPage': 'index.html',
2026-03-23T19:51:46.215143+00:00 'templatesDir': 'templates'}
2026-03-23T19:51:46.215155+00:00 ('\n'
2026-03-23T19:51:46.215168+00:00 '<h3>This is a header</h3>\n'
2026-03-23T19:51:46.215180+00:00 '<ul>\n'
2026-03-23T19:51:46.215196+00:00 '<li>List 1</li>\n'
2026-03-23T19:51:46.215209+00:00 '<li>List 2</li>\n'
2026-03-23T19:51:46.215221+00:00 '<li>List 3</li>\n'
2026-03-23T19:51:46.215234+00:00 '</ul>\n'
2026-03-23T19:51:46.215248+00:00 '<p>This is some stuff <em>bold</em> or not.</p>\n')
2026-03-23T19:51:46.515336+00:00 The command '/bin/sh -c python -m pysocha build -c config.yaml' returned a non-zero code: 1