Volver a la wiki

Vista limpia /wiki/[slug]/raw — lectura sin chrome del workspace

Qué es

La vista limpia es una ruta alternativa para cualquier artículo wiki del workspace. Se accede añadiendo /raw al final de la URL normal: /wiki/<slug>/raw. Abre el artículo en una pestaña nueva sin el chrome habitual del workspace (sidebar, header global, TOC fijo, BottomNav), dejando solo el contenido en prosa con una toolbar mínima propia.

Implementada en el commit 178de79 (PR #48, 2026-05-18).


Motivación

ProblemaSolución aportada
Los diagramas Mermaid anchos quedaban parcialmente tapados por el TOC fijo lateral (footgun aceptado en PR #47)En /raw no hay TOC; el diagrama usa el 100 % del contenedor (980 px max)
Lectura larga con sidebar distraeVista sin sidebar ni header global
Necesidad de imprimir o exportar a PDFToolbar con botón “Imprimir” + @media print que convierte a blanco/negro y oculta controles
Compartir enlace directo al artículo entre los 3 miembros del equipoURL canónica /wiki/<slug>/raw estable y sin estado de sesión

Archivos involucrados

ArchivoCambio
src/pages/wiki/[...slug]/raw.astroNuevo — ruta /wiki/<slug>/raw. Layout mínimo con AppLayout (fuentes + theme + prose.css), sin SecondaryLayout/ShellChrome/Sidebar/BottomNav. Genera una /raw estática por cada entrada wiki via getStaticPaths.
src/pages/wiki/[...slug].astroModificado — botón «Vista limpia» añadido junto a «Editar» en la cabecera del artículo. Abre /wiki/<slug>/raw con target="_blank".
public/search-index.jsonRegenerado (sin cambios funcionales explícitos).

Comportamiento de raw.astro

Layout

Usa AppLayout directamente, saltándose SecondaryLayout. AppLayout carga fuentes, variables CSS de tema y prose.css. El resultado es un DOM mínimo sin <aside>, <nav> ni overlays.

Estructura visual

┌────────────────────────────────────────────────────┐
│ [Volver a la wiki]              [Imprimir]         │  ← .raw-toolbar
├────────────────────────────────────────────────────┤
│                                                    │
│  <h1> Título del artículo </h1>                    │
│  <article class="prose"> …contenido… </article>   │  ← .raw-article
│                                                    │
└────────────────────────────────────────────────────┘
                                        [Subir ↑]    ← .raw-top (fixed)

Mermaid client-side

Idéntico al [...slug].astro base: detecta presencia de pre.mermaid antes de importar la librería (lazy import). Tema dark con variables CSS propias para evitar flash de fondo blanco. Los SVG se limitan a max-width: 100% del contenedor (no de la viewport completa).

@media print

ElementoComportamiento en impresión
bodybackground: white; color: black
.raw-toolbar, .raw-topdisplay: none
.raw-wikimax-width: 100%; padding: 0
Links <a>color: #1d4ed8 (azul accesible)
Mermaid SVGmax-width: 100% !important

getStaticPaths

export async function getStaticPaths() {
  const entries = await getCollection('wiki');
  return entries.map((entry) => ({
    params: { slug: entry.data.slug || entry.id.replace(/\.md$/, '') },
    props: { entry },
  }));
}

Astro 6 permite un segmento literal (/raw) después de un rest param ([...slug]). Cada artículo wiki genera automáticamente su ruta /raw en build estático.


Botón «Vista limpia» en la página normal

En [...slug].astro, el botón «Editar» pasa a ir acompañado por «Vista limpia»:

const rawUrl = `/wiki/${slug}/raw`;

<div class="flex gap-2">
  <a href={rawUrl} target="_blank" rel="noopener" …>Vista limpia</a>
  <a href={editUrl} …>Editar</a>
</div>

El target="_blank" + rel="noopener" es intencional: el usuario mantiene su contexto en la wiki normal mientras abre la vista limpia en paralelo.


Decisiones de diseño y trade-offs


Casos de uso confirmados

  1. Diagramas de red o arquitectura anchos — abrir en /raw da 980 px limpios.
  2. Lectura profunda de runbooks — sin sidebar que distraiga.
  3. Exportar a PDF — imprimir desde el navegador con estilos @media print.
  4. Enlace de referencia en Slack/Discord interno — URL estable por artículo.

Véase también

Subir