This is the snapshot the production landing site (nibiru-framework.com) is deployed from. Brings together the recent splash + docs migration to the v4 "Cosmos" design system, the new in-framework AI module, and the framework groundwork that backs the framework-reference extraction. What lands: - docs/: Astro + Starlight site with the v4 dark cosmic palette, GalaxyHero canvas constellation, Mission Control chat (wired to /api/oracle → api.neuronetz.ai via providers.mjs Ollama), 5-panel MMVC stage (Model · AI · Module · Controller · View), translated EN/DE/JA/ES/FR content, PWA + sitemap + llms.txt + Umami analytics. - docs/design-system/: canonical mockup bundle (source/index-v2.html for splash, source/docs-system.html + preview/ for docs, SPEC.md, tokens). - docs/scripts/extraction/framework-reference-v2.md: deep framework reference (~1.6k lines, file:line citations, every public factory and idiom — basis for the LoRA training corpus. - application/module/ai/: AI module with chat / embed / RAG / agent plugins, plus pdoQuery / httpGet / fileRead tools and Modelfile + smoke-test in training/. - application/module/users/: user / ACL / form-factory traits used as the reference plugin pattern for the framework docs. - application/settings/config/database/: schema + seed migrations including the AI module tables (200–203). - Form factory + autogenerator changes the framework-reference-v2 covers. Production secrets stay out: docs/.env, settings.production.ini and ai.production.ini are all gitignored (.example files are in tree). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
---
|
|
const { data } = Astro.locals.starlightRoute.entry;
|
|
const hero = data.hero;
|
|
|
|
const title = hero?.title ?? data.title ?? '';
|
|
const tagline = hero?.tagline ?? data.description ?? '';
|
|
const eyebrow = hero?.eyebrow ?? 'Modular MMVC PHP framework';
|
|
const actions = Array.isArray(hero?.actions) ? hero.actions : [];
|
|
|
|
const shouldRender = !!hero;
|
|
---
|
|
|
|
{shouldRender && (
|
|
<section class="atelier-hero">
|
|
<span class="atelier-hero__number" aria-hidden="true">01</span>
|
|
|
|
<div class="atelier-hero__grid">
|
|
<div class="atelier-hero__copy">
|
|
{eyebrow && <p class="atelier-hero__eyebrow">{eyebrow}</p>}
|
|
{title && <h1 class="atelier-hero__title" set:html={title} />}
|
|
{tagline && <p class="atelier-hero__lede" set:html={tagline} />}
|
|
|
|
{actions.length > 0 && (
|
|
<div class="atelier-hero__cta">
|
|
{actions.map((a: any) => (
|
|
<a
|
|
href={a.link}
|
|
class={`atelier-button ${
|
|
a.variant === 'minimal' || a.variant === 'secondary'
|
|
? 'atelier-button--ghost'
|
|
: 'atelier-button--primary'
|
|
}`}
|
|
>
|
|
<span>{a.text}</span>
|
|
{a.icon === 'right-arrow' && <span class="atelier-button__arrow" aria-hidden="true">→</span>}
|
|
{a.icon === 'external' && <span class="atelier-button__arrow" aria-hidden="true">↗</span>}
|
|
</a>
|
|
))}
|
|
</div>
|
|
)}
|
|
</div>
|
|
|
|
<div class="atelier-hero__art" aria-hidden="true">
|
|
<img
|
|
class="atelier-hero__mark"
|
|
src="/img/nibiru-logo.png"
|
|
alt=""
|
|
loading="eager"
|
|
width="280"
|
|
height="280"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
)}
|