47 lines
1.6 KiB
XML
47 lines
1.6 KiB
XML
# .rustelo.ontoref/app.ncl — Rustelo implementation declaration.
|
|
#
|
|
# Declares this project's app surface against the rustelo domain contracts.
|
|
# The schema is authored in the rustelo project and resolved by ontoref via the
|
|
# domain's schema_cmd (`ontoref project root rustelo`). The absolute import below
|
|
# is that resolved root; the runtime substitutes %{schema_root} when browsing.
|
|
let r = import "/Users/Akasha/Development/rustelo/domains/rustelo/ontology/schema.ncl" in
|
|
|
|
r.make_app {
|
|
app = "website-htmx-rustelo",
|
|
default_profile = 'Htmx,
|
|
description = "Bilingual EN/ES website served through Rustelo's HTMX rendering profile with Minijinja templates.",
|
|
|
|
layers = [
|
|
r.make_layer {
|
|
id = "pages-htmx",
|
|
paths = ["crates/pages_htmx/"],
|
|
profile = 'Htmx,
|
|
description = "HTMX/Minijinja page and fragment renderers — the default rendering surface.",
|
|
},
|
|
r.make_layer {
|
|
id = "server",
|
|
paths = ["crates/server/"],
|
|
profile = 'Htmx,
|
|
description = "Axum server: routing, SSR, htmx fragment endpoints, content APIs.",
|
|
},
|
|
r.make_layer {
|
|
id = "client",
|
|
paths = ["crates/client/"],
|
|
profile = 'Hydrate,
|
|
description = "Leptos WASM client for routes that opt into hydration (dual-mode capability).",
|
|
},
|
|
],
|
|
|
|
routes = [
|
|
r.make_route { path = "/", handler = "home", profile = 'Htmx, languages = ["en", "es"] },
|
|
],
|
|
|
|
wasm_targets = [
|
|
r.make_wasm {
|
|
name = "website",
|
|
output = "target/site/pkg",
|
|
features = ["hydrate"],
|
|
hydrate = true,
|
|
},
|
|
],
|
|
}
|