raw: reglas

== cómo funciona trama ==

Un nodo es un archivo de texto. Eso es todo.

Si el archivo empieza con líneas de `clave: valor` seguidas de `---`, eso son metadatos. El kernel los lee y actúa según el **tipo:** declarado. Si no hay metadatos, el nodo es de tipo texto.

== tipos que el kernel entiende ==

**tipo: texto** — contenido normal. Se renderiza con las reglas de sintaxis definidas en nodos tipo:render. Es el default.

**tipo: css** — el cuerpo del nodo se inyecta como CSS. Puedes tener cuantos quieras. Todos se combinan.

**tipo: render** — el cuerpo define reglas de transformación de texto. Formato: `patron:` (regex) seguido de `html:` (reemplazo). Puedes tener cuantos quieras.

**tipo: editor** — el cuerpo se inyecta como HTML/JS en la vista de edición. Botones, atajos, lo que necesites.

**tipo: nav** — el cuerpo reemplaza la navegación por defecto del kernel.

Cualquier otro valor de tipo: es ignorado por el kernel pero se preserva como metadato. Puedes inventar tipos propios para organización.

== lo irreducible ==

El kernel (index.php) solo sabe:
- leer, escribir, eliminar, listar archivos
- parsear metadatos antes de ---
- agrupar por tipo: y combinar
- convertir [[enlaces]] en hipervínculos
- convertir {{nodos}} en listas
- separar párrafos por líneas vacías
- aplicar reglas patron:/html: de nodos tipo:render
- inyectar CSS, editor, nav desde sus nodos respectivos

Si borras todos los nodos de configuración, el sistema muestra texto plano con enlaces. No se rompe.

== metadatos personalizados ==

Puedes agregar cualquier metadato que quieras a un nodo:

tipo: texto
autor: Nik
fecha: 2026-02-11
confianza: media
---

El kernel no sabe qué significan "autor", "fecha" o "confianza". Pero los preserva y los muestra al hacer click en "meta" debajo de un nodo. Puedes usarlos para tu propia organización.

== relaciones ==

Las relaciones entre nodos se definen como reglas de renderizado. El nodo [[relaciones]] define patrones como `[[fuente:nombre]]` que se muestran de forma especial. Puedes modificar los tipos de relación que existen editando ese nodo, o crear más nodos tipo:render con tus propias relaciones.
ver editar