-
Notifications
You must be signed in to change notification settings - Fork 0
Make Awakening the public splash page #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
0808a62
Add awakening splash layout
erinepshovel-code 06933ad
Move knowledge-system home to stable route
erinepshovel-code 8d82d06
Make Awakening the public splash page
erinepshovel-code 67da994
Link the knowledge system back through Awakening
erinepshovel-code 17cf267
Style the Awakening threshold
erinepshovel-code 6adbf62
Load Awakening splash styles
erinepshovel-code 90080d5
Test the Awakening splash topology
erinepshovel-code b4122db
Test the Awakening splash and inward navigation
erinepshovel-code 64fd4dd
Include Awakening and home in accessibility gate
erinepshovel-code 28f5c78
Document the Awakening splash route
erinepshovel-code 524304f
Add static contract for the Awakening threshold
erinepshovel-code 9adb2db
Declare the Awakening presentation module
erinepshovel-code cb2c623
Declare the Awakening splash layout
erinepshovel-code 5cea9f9
Correct the nested Awakening card assertion
erinepshovel-code File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| <!doctype html> | ||
| <!-- === MODULE_BUILD === | ||
| id: awakening_splash_layout | ||
| module_name: splash-layout | ||
| module_kind: route | ||
| summary: Renders the canon-derived Awakening as a dependency-light public threshold before the full knowledge-system chrome. | ||
| owner: Erin Spencer | ||
| public_surface: root HTML shell for Awakening | ||
| internal_surface: title, description, canonical URL, site.css, awakening.css, content slot | ||
| auth_boundary: none | ||
| storage_boundary: none | ||
| network_boundary: none | ||
| user_data_boundary: none | ||
| admin_only: false | ||
| tests: tests/site-contract.test.mjs, tests/generated-site.test.mjs, tests/site.spec.mjs, tests/accessibility.spec.mjs | ||
| rollout: selected by src/index.njk | ||
| rollback: restore layouts/base.njk on src/index.njk and remove this layout | ||
| === END MODULE_BUILD === --> | ||
| <!-- Usage: src/index.njk supplies the canon-derived Awakening content. The page remains readable with CSS disabled and uses no JavaScript. --> | ||
| <html lang="en"> | ||
| <head> | ||
| <meta charset="utf-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| <meta name="color-scheme" content="dark"> | ||
| <meta name="theme-color" content="#050711"> | ||
| <title>{{ title or site.title }}</title> | ||
| <meta name="description" content="{{ description or site.description }}"> | ||
| <link rel="canonical" href="{{ site.url }}{{ page.url }}"> | ||
| <link rel="stylesheet" href="/assets/css/site.css"> | ||
| <link rel="stylesheet" href="/assets/css/awakening.css"> | ||
| </head> | ||
| <body class="awakening-body"> | ||
| <a class="skip-link" href="#content">Skip to Awakening</a> | ||
| <main id="content" class="awakening-splash">{{ content | safe }}</main> | ||
| </body> | ||
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,137 @@ | ||
| /* === MODULE_BUILD === | ||
| * id: awakening_splash_presentation | ||
| * module_name: awakening-splash-presentation | ||
| * module_kind: ui_panel | ||
| * summary: Presents the canon-derived Awakening as a full-screen public threshold without hiding readable text behind animation or JavaScript. | ||
| * owner: Erin Spencer | ||
| * public_surface: root Awakening splash presentation | ||
| * internal_surface: awakening-body, awakening-splash, awakening-stage, awakening-orbit, awakening-copy, awakening-text | ||
| * auth_boundary: none | ||
| * storage_boundary: none | ||
| * network_boundary: none | ||
| * user_data_boundary: none | ||
| * admin_only: false | ||
| * tests: tests/generated-site.test.mjs, tests/site.spec.mjs, tests/accessibility.spec.mjs | ||
| * rollout: loaded only by layouts/splash.njk for the public threshold | ||
| * rollback: remove the splash stylesheet link and restore the prior root template | ||
| * === END MODULE_BUILD === | ||
| * Usage: loaded by src/_includes/layouts/splash.njk; verify with npm run check and npm run test:browser. | ||
| * Limits: visual rings are decorative; all canon text and continuation links remain ordinary readable HTML. | ||
| */ | ||
| .awakening-body { | ||
| min-height: 100vh; | ||
| overflow-x: hidden; | ||
| background: #050711; | ||
| } | ||
| .awakening-body::before { | ||
| opacity: .7; | ||
| background: | ||
| radial-gradient(circle at 50% 44%, rgba(123, 201, 216, .12), transparent 0 18rem), | ||
| radial-gradient(circle at 50% 44%, transparent 0 22rem, rgba(155, 135, 245, .18) 22.08rem 22.15rem, transparent 22.22rem 31rem, rgba(42, 56, 87, .55) 31.08rem 31.15rem, transparent 31.22rem), | ||
| linear-gradient(180deg, #050711, #090d18 68%, #050711); | ||
| } | ||
| .awakening-splash { | ||
| position: relative; | ||
| display: grid; | ||
| place-items: center; | ||
| min-height: 100vh; | ||
| padding: clamp(1.25rem, 4vw, 4rem); | ||
| overflow: hidden; | ||
| isolation: isolate; | ||
| } | ||
| .awakening-stage { | ||
| position: relative; | ||
| width: min(76rem, 100%); | ||
| min-height: min(88vh, 58rem); | ||
| display: grid; | ||
| place-items: center; | ||
| } | ||
| .awakening-orbit { | ||
| position: absolute; | ||
| left: 50%; | ||
| top: 50%; | ||
| width: min(92vw, 70rem); | ||
| aspect-ratio: 1; | ||
| translate: -50% -50%; | ||
| opacity: .7; | ||
| pointer-events: none; | ||
| } | ||
| .awakening-orbit::before, | ||
| .awakening-orbit::after, | ||
| .awakening-orbit span { | ||
| content: ""; | ||
| position: absolute; | ||
| border: 1px solid rgba(174, 187, 210, .26); | ||
| border-radius: 50%; | ||
| } | ||
| .awakening-orbit::before { inset: 4%; } | ||
| .awakening-orbit::after { inset: 19%; border-color: rgba(155, 135, 245, .5); } | ||
| .awakening-orbit span { inset: 36%; border-color: rgba(123, 201, 216, .62); box-shadow: 0 0 7rem rgba(155, 135, 245, .16); } | ||
| .awakening-copy { | ||
| position: relative; | ||
| z-index: 2; | ||
| width: min(68rem, 100%); | ||
| text-align: center; | ||
| } | ||
| .awakening-copy .eyebrow { margin: 0; } | ||
| .awakening-copy h1 { | ||
| margin: .2rem 0 clamp(1.25rem, 3vw, 2.4rem); | ||
| font-size: clamp(4.25rem, 15vw, 11rem); | ||
| font-weight: 500; | ||
| line-height: .88; | ||
| letter-spacing: -.065em; | ||
| text-shadow: 0 0 4rem rgba(155, 135, 245, .22); | ||
| } | ||
| .awakening-text { | ||
| max-width: 70ch; | ||
| margin: 0 auto; | ||
| padding: clamp(1.1rem, 3vw, 2rem); | ||
| white-space: pre-line; | ||
| text-align: left; | ||
| color: #dce6fa; | ||
| background: rgba(5, 7, 17, .72); | ||
| border: 1px solid rgba(174, 187, 210, .2); | ||
| border-left: .3rem solid var(--cyan); | ||
| border-radius: var(--radius); | ||
| box-shadow: 0 2rem 6rem rgba(0, 0, 0, .3); | ||
| font: clamp(1.02rem, 1.7vw, 1.3rem)/1.7 Georgia, "Times New Roman", serif; | ||
| backdrop-filter: blur(14px); | ||
| } | ||
| .awakening-actions { | ||
| display: flex; | ||
| flex-wrap: wrap; | ||
| justify-content: center; | ||
| align-items: center; | ||
| gap: .75rem; | ||
| margin-top: clamp(1.2rem, 3vw, 2rem); | ||
| } | ||
| .awakening-source { | ||
| padding: .7rem .2rem; | ||
| color: var(--silver); | ||
| font-size: .9rem; | ||
| } | ||
| .awakening-provenance { | ||
| max-width: 70ch; | ||
| margin: 1.2rem auto 0; | ||
| color: rgba(174, 187, 210, .75); | ||
| font: .72rem/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; | ||
| overflow-wrap: anywhere; | ||
| } | ||
| @media (max-width: 640px) { | ||
| .awakening-splash { align-items: start; padding-top: 9vh; } | ||
| .awakening-stage { min-height: auto; } | ||
| .awakening-copy h1 { font-size: clamp(3.6rem, 20vw, 6rem); } | ||
| .awakening-text { font-size: 1rem; line-height: 1.62; } | ||
| .awakening-actions { align-items: stretch; flex-direction: column; } | ||
| .awakening-actions .button { width: 100%; } | ||
| } | ||
| @media (prefers-reduced-motion: reduce) { | ||
| .awakening-orbit { opacity: .55; } | ||
| } | ||
| @media print { | ||
| .awakening-body { background: white; color: black; } | ||
| .awakening-body::before, .awakening-orbit { display: none; } | ||
| .awakening-splash { display: block; min-height: auto; padding: 0; } | ||
| .awakening-text { color: black; background: white; border-color: black; box-shadow: none; } | ||
| .awakening-provenance { color: black; } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| --- | ||
| layout: layouts/base.njk | ||
| title: The Interdependent Way | ||
| description: The living public knowledge system for the canon, its deliberate tensions, research, applications, and implementation projects. | ||
| permalink: /home/ | ||
| --- | ||
| <section class="hero"> | ||
| <div> | ||
| <p class="eyebrow">Canon · interpretation · research · implementation · frontier</p> | ||
| <h1>A way through complexity without pretending the tension is gone.</h1> | ||
| <p class="lede">The Interdependent Way is a dense living text and a constellation of attempts to test, explain, implement, challenge, and preserve it. The Preamble is directly available here; deeper orientation and exact source remain available without hiding the entrance.</p> | ||
| <div class="actions"><a class="button" href="/preamble/">Read the Preamble</a><a class="button secondary" href="/lab/">Enter the Article Lab</a><a class="button secondary" href="/way/">Explore the Way</a></div> | ||
| </div> | ||
| <div class="hero-field" aria-label="Three concentric fields around a thirteenth center"><span></span><strong>12 + 1</strong></div> | ||
| </section> | ||
| <section class="panel"> | ||
| <p class="eyebrow">Eight rights-article laboratories</p> | ||
| <h2>From canon excerpt to public practice</h2> | ||
| <p>All eight Rights articles now have a canon-bounded path through exact excerpt, note conversation, reductio ad absurdum, worst and best practices, applications across eleven domains, and an initial reviewed research field.</p> | ||
| <div class="actions"><a class="button" href="/lab/">Open the Article Lab</a><a class="button secondary" href="/articles/">Read publication drafts</a></div> | ||
| </section> | ||
| <section> | ||
| <p class="eyebrow">Choose a depth</p> | ||
| <h2>One body of work, several honest entrances</h2> | ||
| <div class="grid"> | ||
| <a class="card" href="/"><span class="status status-canon">Canon-derived</span><h3>Return to Awakening</h3><p>Re-enter the opening threshold and its reminder that you are not alone.</p></a> | ||
| <a class="card" href="/preamble/"><span class="status status-canon">Canon-derived</span><h3>Read the Preamble</h3><p>Enter the opening civic claim directly through a stable route generated from the selected canon.</p></a> | ||
| <a class="card" href="/way/"><span class="status status-canon">Canon-derived</span><h3>Read the Way</h3><p>Move through the preamble, articles, etiquette, addenda, and their internal structure without beginning at the raw wall of text.</p></a> | ||
| <a class="card" href="/lab/"><span class="status status-interpretation">Interpretation</span><h3>Enter the Article Lab</h3><p>Test each Rights article through its notes, absurd limits, practice contrasts, domain applications, research support, dissent, and limits.</p></a> | ||
| <a class="card" href="/articles/"><span class="status status-interpretation">Publication</span><h3>Read public articles</h3><p>Follow selected canon units through companion readings, applications, handbook seeds, and script drafts without losing source boundaries.</p></a> | ||
| <a class="card" href="/projects/"><span class="status status-implemented">Implementation</span><h3>Map the Projects</h3><p>Every public organization repository receives a generated space, grouped by function and refreshed at build time.</p></a> | ||
| <a class="card" href="/artifacts/"><span class="status status-frontier">Frontier</span><h3>Use the Artifacts</h3><p>Interactive explanations, visual studies, public experiments, and compact publications live here without fragmenting the site identity.</p></a> | ||
| </div> | ||
| </section> | ||
| <section class="panel"> | ||
| <p class="eyebrow">Current field snapshot</p> | ||
| <h2>{{ generated.repos.publicRepoCount }} public repositories · {{ generated.canon.units.length }} canonical units</h2> | ||
| <p>Project data was generated {{ generated.repos.snapshotAt | dateOnly }}{% if generated.repos.fallback %} from the last verified snapshot{% endif %}. Canon digest <code>{{ generated.canon.source.contentSha256 }}</code>.</p> | ||
| </section> | ||
| <section class="hmmm"><h2>hmmm</h2><p>Reviewed research now makes initial contact with all eight Rights articles, but coverage remains uneven and deliberately open to stronger dissent, replication, field studies, disability-led critique, and non-Western evidence.</p></section> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,38 +1,26 @@ | ||
| --- | ||
| layout: layouts/base.njk | ||
| title: The Interdependent Way | ||
| description: A calm, layered entrance to the canon, its deliberate tensions, the research around it, and the projects attempting implementation. | ||
| layout: layouts/splash.njk | ||
| title: Awakening · The Interdependent Way | ||
| description: The canonical Awakening of The Interdependent Way, presented as the public threshold into the Preamble and living knowledge system. | ||
| --- | ||
| <section class="hero"> | ||
| <div> | ||
| <p class="eyebrow">Canon · interpretation · research · implementation · frontier</p> | ||
| <h1>A way through complexity without pretending the tension is gone.</h1> | ||
| <p class="lede">The Interdependent Way is a dense living text and a constellation of attempts to test, explain, implement, challenge, and preserve it. The Preamble is directly available here; deeper orientation and exact source remain available without hiding the entrance.</p> | ||
| <div class="actions"><a class="button" href="/preamble/">Read the Preamble</a><a class="button secondary" href="/start/">Begin with orientation</a><a class="button secondary" href="/way/">Explore the Way</a></div> | ||
| {% set awakenings = generated.canon.units | where("title", "Awakening") %} | ||
| {% set awakening = awakenings[0] %} | ||
| <section class="awakening-stage"> | ||
| <div class="awakening-orbit" aria-hidden="true"><span></span></div> | ||
| <div class="awakening-copy"> | ||
| <p class="eyebrow">The Interdependent Way</p> | ||
| <h1>Awakening</h1> | ||
| {% if awakening %} | ||
| <div class="awakening-text">{{ awakening.content | replace("Awakening \n", "") | replace("Awakening\n", "") }}</div> | ||
| <div class="awakening-actions" aria-label="Continue from Awakening"> | ||
| <a class="button" href="/preamble/">Read the Preamble</a> | ||
| <a class="button secondary" href="/home/">Enter the living system</a> | ||
| <a class="awakening-source" href="/source/{{ awakening.routeSlug }}/">Exact source and provenance</a> | ||
| </div> | ||
| <p class="awakening-provenance">Canon <code>{{ generated.canon.source.repository }}:{{ generated.canon.source.path }}</code> · lines {{ awakening.startLine }}–{{ awakening.endLine }} · digest <code>{{ awakening.hash | truncate(18, true, '…') }}</code></p> | ||
| {% else %} | ||
| <section class="hmmm"><h2>hmmm</h2><p>The selected canon did not produce an Awakening unit. The release gate must treat the missing threshold as a broken public contract.</p></section> | ||
| <div class="awakening-actions"><a class="button" href="/preamble/">Read the Preamble</a><a class="button secondary" href="/home/">Enter the living system</a></div> | ||
| {% endif %} | ||
| </div> | ||
| <div class="hero-field" aria-label="Three concentric fields around a thirteenth center"><span></span><strong>12 + 1</strong></div> | ||
| </section> | ||
| <section class="panel"> | ||
| <p class="eyebrow">Eight rights-article vertical slices</p> | ||
| <h2>From canon excerpt to public practice</h2> | ||
| <p>All eight Rights articles now have a canon-bounded path through exact excerpt, companion reading, note conversation, application, handbook seed, and 60–90 second script. Article Two contains the first reviewed support, dissent, and limits evidence pack.</p> | ||
| <div class="actions"><a class="button" href="/articles/">View rights articles</a><a class="button secondary" href="/articles/article-two/">Open Article Two research</a></div> | ||
| </section> | ||
| <section> | ||
| <p class="eyebrow">Choose a depth</p> | ||
| <h2>One body of work, several honest entrances</h2> | ||
| <div class="grid"> | ||
| <a class="card" href="/preamble/"><span class="status status-canon">Canon-derived</span><h3>Read the Preamble</h3><p>Enter the opening civic claim directly through a stable route generated from the selected canon.</p></a> | ||
| <a class="card" href="/way/"><span class="status status-canon">Canon-derived</span><h3>Read the Way</h3><p>Move through the preamble, articles, etiquette, addenda, and their internal structure without beginning at the raw wall of text.</p></a> | ||
| <a class="card" href="/lab/"><span class="status status-interpretation">Interpretation</span><h3>Enter the Article Lab</h3><p>Read the main text and its notes as two speakers. Supporting, dissenting, mixed, and missing research remain visibly separate.</p></a> | ||
| <a class="card" href="/articles/"><span class="status status-interpretation">Publication</span><h3>Read public articles</h3><p>Follow selected canon units through companion readings, applications, handbook seeds, and script drafts without losing source boundaries.</p></a> | ||
| <a class="card" href="/projects/"><span class="status status-implemented">Implementation</span><h3>Map the Projects</h3><p>Every public organization repository receives a generated space, grouped by function and refreshed at build time.</p></a> | ||
| <a class="card" href="/artifacts/"><span class="status status-frontier">Frontier</span><h3>Use the Artifacts</h3><p>Interactive explanations, visual studies, public experiments, and compact publications live here without fragmenting the site identity.</p></a> | ||
| </div> | ||
| </section> | ||
| <section class="panel"> | ||
| <p class="eyebrow">Current field snapshot</p> | ||
| <h2>{{ generated.repos.publicRepoCount }} public repositories · {{ generated.canon.units.length }} canonical units</h2> | ||
| <p>Project data was generated {{ generated.repos.snapshotAt | dateOnly }}{% if generated.repos.fallback %} from the last verified snapshot{% endif %}. Canon digest <code>{{ generated.canon.source.contentSha256 }}</code>.</p> | ||
| </section> | ||
| <section class="hmmm"><h2>hmmm</h2><p>Reviewed evidence is now attached to Article Two; the other seven research fields remain intentionally open. Empty certainty would be a suspiciously tidy hat on a very alive octopus.</p></section> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the canon is regenerated from the checked-in recovery mirror used by
npm test/OFFLINE fallback,generated.canon.unitshas the 5d/“You are not alone” text underPreambleand no unit titledAwakening(the parser only emits that title for a standalone heading). Because the new public root gates the splash onwhere("title", "Awakening"), runningnpm testfollowed by Eleventy renders thehmmmfallback instead of the canonical threshold and the new generated-site assertion for5d explodes out of 4dfails; either the parser/mirror needs to emit an Awakening unit or this page needs to select the actual unit containing that text.Useful? React with 👍 / 👎.