Visión General de Variables y Tiempo de Ejecución Dinámico
Visión General de Variables y Tiempo de Ejecución Dinámico
docmd incorpora un potente Motor de Variables y Personalización que combina la interpolación estática en tiempo de compilación con la personalización reactiva en el cliente.
En lugar de definir nombres de empresas, claves de API, años de copyright o versiones manualmente en decenas de archivos Markdown, puede emplear variables dinámicas mediante expresiones limpias de plantilla.
¡Bienvenido a la documentación de **\{{ site.title }}** v\{{ docmd.version }}!
Copyright actual: © \{{ docmd.buildYear }}.
Los siguientes valores han sido resueltos en tiempo real por el compilador docmd durante esta compilación:
- Título del sitio: {{ site.title }}
- Versión del compilador: v{{ docmd.version }}
- Año de compilación: © {{ docmd.buildYear }}
- Rama Git actual: {{ docmd.gitBranch || “main” }}
- Commit Git actual: {{ docmd.gitCommit || “HEAD” }}
- Slug de página actual:
{{ page.slug }}
Sintaxis de Plantillas
El motor utiliza una sintaxis estándar basada en llaves:
\{{ variableName }}
Valores Predeterminados (Fallbacks)
Si una variable no siempre está definida (como en entornos de desarrollo local o configuraciones opcionales), proporcione un valor predeterminado usando el operador ||:
Conéctese a nuestro servidor en `\{{ server.endpoint || "https://api.example.com" }}`.
¡Bienvenido de nuevo, \{{ user.name || 'Invitado' }}!
Compilado para la versión \{{ targetVersion || 2.0 }}.
Los fallbacks pueden ser:
- Cadenas entre comillas simples:
'ejemplo' - Cadenas entre comillas dobles:
"ejemplo" - Números:
42o2.0 - Identificadores:
default
Tolerancia a Espacios en Blanco
Las expresiones toleran espacios alrededor de los nombres y operadores:
\{{ myVar }}
\{{ env.PORT || "8080" }}
Ciclo de Vida: Compilación vs. Tiempo de Ejecución
docmd divide de forma limpia el ciclo de vida de las variables en dos etapas complementarias:
Se compilan directamente en el HTML final durante docmd build. Tienen cero impacto en la ejecución de JavaScript en el navegador y evitan saltos de diseño (CLS).
Los datos de sesión de usuario (como claves de API o nombres de usuario) son sincronizados en vivo por docmd-runtime.js. Al escribir o cambiar de sesión, los bloques de código se actualizan al instante.
Variables Estáticas en Compilación
Los valores determinados al compilar se insertan directamente en el código estático, sin requerir procesamiento adicional para el lector.
Variables Dinámicas Reactivas
Las variables declaradas como dinámicas o que contienen datos de sesión (como user.name o user.apiKey) se encapsulan en marcadores DOM reactivos:
<span data-docmd-var="user.name" class="docmd-var">Invitado</span>
En el navegador, docmd-runtime.js puebla y sincroniza estos valores en toda la página y en transiciones SPA sin recargas.
Arquitectura: Separación entre Motor e Interfaz
Para garantizar la máxima velocidad y estabilidad, docmd separa limpiamente la interfaz visual del motor dinámico:
docmd-runtime.js: El motor dinámico headless incluido en todas las plantillas (default,summer, etc.). Gestiona registros, suscripciones y eventos sin interferir con estilos ni animaciones.docmd-main.js: El script de interfaz responsable del cambio de tema, menús y transiciones SPA. Tras cada cambio de página ejecutawindow.docmd.sync().
Al incluirse docmd-runtime.js en todas las plantillas, cualquier tema personalizado o plugin de diseño hereda soporte dinámico automáticamente.
Próximos Pasos
Consulte las guías completas para cada tema: