Documentation
¶
Overview ¶
Package slidelangcore es el motor compartido de parsing, AST y renderizado que usan los CLIs slidelang y doclang. No está pensado para ser importado directamente por terceros — ver la polĂtica de estabilidad abajo.
Modelo de consumo ¶
SlideLang/DocLang se diseñaron para invocarse como ejecutables, no como librerĂa embebida. Un archivo .slidelang o .doclang se procesa con:
slidelang build presentacion.slidelang --format html doclang build documento.doclang --format json
Contratos públicos estables ¶
Lo que este proyecto promete mantener y versionar:
La interfaz de lĂnea de comandos de slidelang/doclang: subcomandos, flags, formatos de entrada (.slidelang, .doclang) y formatos de salida (html, json, pdf, docx, markdown).
El AST serializado vĂa --format json, versionado semver por ast.SchemaVersion (ver schema/ast.schema.json en la raĂz del monorepo, fuera de este mĂłdulo, y el paquete npm @ziradocs/ast-types). Este es el contrato recomendado para integraciones de terceros: agentes que generan SlideLang, el visor web, o cualquier consumidor externo del árbol de contenido. Ver docs/architecture/json-ast-contract.md para el detalle campo por campo.
Un futuro entrypoint WASM (issue #134) para ejecutar el parser y el renderer directamente en el navegador, como wrapper sobre este mismo mĂłdulo.
La estructura HTML generada y sus clases CSS NO son parte de este contrato y pueden cambiar entre releases sin aviso — ver docs/architecture/json-ast-contract.md.
La API de Go es un detalle de implementación interno ¶
Los paquetes de este módulo (ast, parser, renderer, elements internos, config, util, etc.) están diseñados para ser consumidos por slidelang y doclang — los dos únicos importadores previstos — no por terceros. No hay compromiso de estabilidad semver sobre ninguna firma, tipo o función exportada de Go: pueden renombrarse, removerse o cambiar de comportamiento en cualquier versión menor.
El mĂłdulo se versiona v0.x deliberadamente (convenciĂłn de Go para "sin promesa de compatibilidad de API"). Si en el futuro surge una necesidad real de embeber este motor directamente desde otro programa Go, se puede curar y versionar un subconjunto estable en ese momento — promover un sĂmbolo de inestable a estable no rompe a nadie; lo inverso sĂ.
Como parte de esta polĂtica, los paquetes ai/ y elements/ viven bajo internal/ precisamente porque ninguno de los dos CLIs los importa directamente (solo parser los usa internamente) — el compilador de Go impide que un mĂłdulo externo los importe.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gen-schema
command
Command gen-schema genera schema/ast.schema.json a partir de los structs Go de core/ast.
|
Command gen-schema genera schema/ast.schema.json a partir de los structs Go de core/ast. |
|
Package formatter serializa un *ast.AST de vuelta a texto fuente canĂłnico ("fmt --strict" / "fmt"): el inverso de parser.StrictParser (slidelang) y parser.DocumentFlexParser (doclang).
|
Package formatter serializa un *ast.AST de vuelta a texto fuente canĂłnico ("fmt --strict" / "fmt"): el inverso de parser.StrictParser (slidelang) y parser.DocumentFlexParser (doclang). |
|
Package include implementa la primitiva de transclusiĂłn del MVP OSS (issue #238, decisiĂłn 3 del plan): una lĂnea `@include ruta` se reemplaza por el contenido del archivo que esa ruta resuelve, recursivamente.
|
Package include implementa la primitiva de transclusiĂłn del MVP OSS (issue #238, decisiĂłn 3 del plan): una lĂnea `@include ruta` se reemplaza por el contenido del archivo que esa ruta resuelve, recursivamente. |
|
internal
|
|
|
Package transform implementa la etapa de transformación del AST (issue #240, decisión C del plan OSS): un pase ordenado que corre entre parse y lint, formado por transforms BUILT-IN (registrados por core — p.
|
Package transform implementa la etapa de transformación del AST (issue #240, decisión C del plan OSS): un pase ordenado que corre entre parse y lint, formado por transforms BUILT-IN (registrados por core — p. |
|
Package xref implementa la numeraciĂłn y resoluciĂłn de referencias cruzadas del MVP OSS (issue #239, decisiĂłn B): figuras/tablas etiquetadas (`label:`) se numeran en orden de documento, y `\ref{label}` en cualquier campo de texto se reescribe a un link markdown a esa figura/tabla.
|
Package xref implementa la numeraciĂłn y resoluciĂłn de referencias cruzadas del MVP OSS (issue #239, decisiĂłn B): figuras/tablas etiquetadas (`label:`) se numeran en orden de documento, y `\ref{label}` en cualquier campo de texto se reescribe a un link markdown a esa figura/tabla. |