Skip to content
Closed
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 duplicate Pages deploy workflow

This new workflow also deploys on pushes to main, but I checked .github/workflows/deploy.yml and it still has its own push-to-main Pages deployment that uploads ./ instead of _site. On every main push both workflows can publish to the same GitHub Pages environment; whichever deployment finishes last wins, so the generated Eleventy site can be replaced by the repository root/legacy HTML. Remove or retarget the old workflow before enabling this trigger.

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