en el outreach/site tenemos un apartado con los /dominios (que por cierto no sale bien en ES con texto en inglés)

lo relevante al respecto es que tenemos desarrollos sobre los dominios
  Persona - sitio web personal /Users/Akasha/Development/jpl/outreach/site
  Autoría - /Users/Akasha/Development/librosys
  Desarrollador - el propio ontoref como gestor de proyecto con el daemon y la UI
  Infraestructura - /Users/Akasha/Development/provisioning y sus workspaces
  Para cada uno de ellos tenemos dominios DNS comprados y para cada uno de ellos necesitamos
  1) actualizar sites existentes como /Users/Akasha/Development/jpl/outreach/site
  2) crear los sites siguiendo el mismo patrón de /Users/Akasha/Development/ontoref/outreach/site
  3) deploy en el /Users/Akasha/Development/workspace/libre-wuji (algunos ya tienen deploy)
  Nos planteamos cuál sería el mejor modo, si montar plantilla, crear un howto/mode/ADRs en ontoref para los site, crear un
  comando setup y luego usar las recetas de gestión que mayormente se han creado para el site de ontoref o vienen de su
  implementación. Muchas de las features del site de ontoref se usarán en los otro site que además deben tener ya un branding
  propio y una estructura ontoref constellation
  ¿ qué propones ?
This commit is contained in:
Jesús Pérez 2026-07-18 01:01:47 +01:00
parent f8c3fedc13
commit 34da3ec150
2 changed files with 20 additions and 4 deletions

View file

@ -19,6 +19,12 @@ default:
# Start the HTMX-SSR dev server (auto-detects site/ in PWD)
[no-cd]
dev:
#!/usr/bin/env bash
export DATABASE_URL="${DATABASE_URL:-sqlite:data/dev.db}"
export HTMX_TEMPLATE_PATH="${HTMX_TEMPLATE_PATH:-htmx-templates}"
export RUSTELO_SITE_ROUTES="${RUSTELO_SITE_ROUTES:-site/config/routes}"
export SITE_BASE_URL="${SITE_BASE_URL:-https://ontoref.dev}"
export SITE_NAME="${SITE_NAME:-ontoref}"
lsof -ti:3030 | xargs kill -9 2>/dev/null || true
rustelo-htmx-server
@ -655,7 +661,7 @@ sync: templates htmx-assets rotator-assets content
# it ran by hand. `graph` here is content_graph.json, a different artifact; the name collision is
# exactly what let the omission read as covered.
[no-cd]
sync-full: templates htmx-assets rotator-assets adr-pages expedientes informe catalog-content decks content glossary conceptos graph adr-map diagram about-json sync-artifacts check
sync-full: templates htmx-assets rotator-assets adr-pages expedientes informe catalog-content decks spine content glossary conceptos graph adr-map taglines diagram about-json sync-artifacts check
# The nu generators own these four files in site/public/r (the deploy tree); the serve
# tree needs the same copies. `content` does this too, so a standalone `just content`

View file

@ -47,6 +47,16 @@ def main [
for item in ($spine.doors | enumerate) {
let d = $item.item
let vp = (nickel export --format json $"($vp_dir)/($d.value_prop_id).ncl" | from json)
# Localized claim/problem_solved: use the optional `*_i18n` sibling for this
# lang WHEN it carries that lang key, else the canonical (English) scalar —
# so the 16 non-door vps (no sibling) and `en` (translations-only sibling)
# both fall back to the scalar. `get $col` on a dynamic name errors on a
# missing key, so presence is checked against `columns` first. Keeps the
# door pages bilingual without touching the Rust `ValueProp` struct.
let claim_i18n = ($vp.claim_i18n?)
let vp_claim = (if ($claim_i18n != null) and ($lang in ($claim_i18n | columns)) { $claim_i18n | get $lang } else { $vp.claim })
let problem_i18n = ($vp.problem_solved_i18n?)
let vp_problem = (if ($problem_i18n != null) and ($lang in ($problem_i18n | columns)) { $problem_i18n | get $lang } else { $vp.problem_solved })
let label = ($d.label | get $lang)
let line = ($d.line | get $lang)
let blog_url = $"/blog?tag=($d.tag)"
@ -60,7 +70,7 @@ def main [
$"[Posts]\(($blog_url)\) · [Recipes]\(($recipes_url)\)"
})
let prize_label = (if $is_es { "El premio, al entrar" } else { "The prize, once inside" })
let excerpt = ($vp.problem_solved | lines | where ($it | str trim | is-not-empty) | first | str trim | str replace --all '"' "'")
let excerpt = ($vp_problem | lines | where ($it | str trim | is-not-empty) | first | str trim | str replace --all '"' "'")
let cat_desc = (if $is_es { "Casos de uso e implementaciones de ontoref" } else { "Use cases and implementations of ontoref" })
let proj_dir = $"($content)/domains/($lang)/use-cases"
@ -100,9 +110,9 @@ category_published: true
"
})
let body = $"($hook_block)**($vp.claim)**
let body = $"($hook_block)**($vp_claim)**
($vp.problem_solved)
($vp_problem)
---