Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .eleventy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import markdownIt from 'markdown-it';

export default function(eleventyConfig) {
const md = markdownIt({ html: false, linkify: true, typographer: true });
eleventyConfig.setLibrary('md', md);
eleventyConfig.addPassthroughCopy({ 'src/assets': 'assets', CNAME: 'CNAME' });
eleventyConfig.addFilter('json', v => JSON.stringify(v));
eleventyConfig.addFilter('dateOnly', v => v ? String(v).slice(0,10) : 'hmmm');
eleventyConfig.addFilter('where', (arr, key, val) => (arr || []).filter(item => item?.[key] === val));
return { dir: { input: 'src', output: '_site', includes: '_includes', data: '_data' }, markdownTemplateEngine: 'njk', htmlTemplateEngine: 'njk' };
}
40 changes: 40 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Pages
on:
push:
branches: [main]
Comment on lines +3 to +4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Disable the stale root Pages deploy

On pushes to main, this workflow runs alongside the pre-existing .github/workflows/deploy.yml, which also triggers on push to main but uploads path: './' and deploys it without running the Eleventy build. If the new npm ci/npm run check path fails, or if the older workflow finishes after this one, GitHub Pages can publish the repository root/old site instead of the generated _site, bypassing the validation added here. Remove or retarget the old deploy workflow, or put both workflows under one deployment path/concurrency group.

Useful? React with 👍 / 👎.

workflow_dispatch:
repository_dispatch:
types: [org-repo-updated]
schedule:
- cron: '24 5 * * *'
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version-file: .nvmrc
cache: npm
- run: npm ci
- run: npm run check
- uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b
- uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b
with:
path: _site
deploy:
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- id: deployment
uses: actions/deploy-pages@d74e976d0eb5d900a0cef4b369a9d84a9b222a53
15 changes: 15 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Pull Request
on: [pull_request]
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version-file: .nvmrc
cache: npm
- run: npm ci
- run: npm run check
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
5 changes: 5 additions & 0 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Architecture

Static pages are generated by Eleventy. Build-time scripts produce `src/_data/generated/canon.json` from the local canonical snapshot and `src/_data/generated/repos.json` from the GitHub organization API or last-known-good fixture.

The browser receives HTML, CSS, and optional Pagefind search enhancement. No visitor-side GitHub polling is used.
5 changes: 5 additions & 0 deletions docs/content-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Content model

- Canon units: parsed headings with stable IDs, line ranges, and SHA-256 hashes.
- Project records: public GitHub facts plus visible `hmmm` when editorial metadata is missing.
- Lab records: generated per canon unit, with reviewed research gaps explicitly shown.
10 changes: 10 additions & 0 deletions docs/recovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Recovery

Recovery references supplied in the handoff:

- `recovery/pre-rollback-eleventy-2026-05-23` at `00dd117a6aa95eddb9741fd3ee592c6d15833bd3` for Eleventy/Pagefind information architecture.
- `recovery/full-article-lab-2026-05-21` at `9677700904797bdd8f7946b4c898266e3655b951` for eight-article Lab coverage.

This branch does not merge either branch wholesale. It rebuilds a minimal Eleventy 3 static-first scaffold and records unresolved recovery work as `hmmm`.

Rollback must deploy a known-good artifact or tag rather than rewriting `main` history.
3 changes: 3 additions & 0 deletions docs/research-method.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Research method

Sources and claims are stored in `src/_data/research`. Stance classification is editorial review, not automated metadata inference. Missing support or dissent must render as a documented `hmmm` gap.
6 changes: 6 additions & 0 deletions docs/runbook.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Runbook

- Local build: `npm install && npm run build`.
- GitHub API failure: set `OFFLINE=1` to use `src/_data/snapshots/repos.last-known-good.json`.
- Canon parser failure: do not deploy mismatched commentary; inspect `src/_data/generated/canon.json`.
- Domain: preserve `CNAME` containing `interdependentway.org`.
3 changes: 3 additions & 0 deletions docs/usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Usage

Run `npm install`, `npm run dev` for preview, `npm run refresh:data` to refresh generated data, and `npm run check` before a PR. Add project metadata in each repository as `.interdependency/project.yml`; missing metadata remains visible as `hmmm` on project pages.
Loading
Loading