@gitpagedocs/cli 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builders/version-config-builder.mjs +10 -4
- package/content/configuration-examples.mjs +22 -8
- package/content/content-blocks.mjs +142 -0
- package/content/docs-en.mjs +31 -15
- package/content/docs-es.mjs +148 -132
- package/content/docs-pt.mjs +169 -153
- package/content/html-doom.mjs +19 -60
- package/content/operations-en.mjs +2 -2
- package/content/operations-es.mjs +5 -5
- package/content/operations-pt.mjs +3 -3
- package/content/overviews-en.mjs +115 -0
- package/content/overviews-es.mjs +115 -0
- package/content/overviews-pt.mjs +115 -0
- package/content/practical-en.mjs +6 -4
- package/content/practical-es.mjs +7 -5
- package/content/practical-pt.mjs +8 -6
- package/contracts/doc-versions.mjs +2 -2
- package/data/composed-pages.mjs +25 -0
- package/data/default-site-config.mjs +130 -130
- package/data/i18n-langmenu.mjs +28 -28
- package/data/i18n-translations.mjs +7 -7
- package/data/menu-sections.mjs +11 -1
- package/data/path-mappings.mjs +10 -1
- package/data/route-metas.mjs +45 -9
- package/package.json +3 -3
- package/runtime/doc-path-resolver.mjs +17 -2
package/content/docs-es.mjs
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { practicalEs } from "./practical-es.mjs";
|
|
2
2
|
import { operationsEs } from "./operations-es.mjs";
|
|
3
|
+
import { overviewsEs } from "./overviews-es.mjs";
|
|
4
|
+
import { CONTENT_BLOCKS_DOCS } from "./content-blocks.mjs";
|
|
5
|
+
import { PARENT_MENU_JSON } from "./configuration-examples.mjs";
|
|
3
6
|
|
|
4
7
|
export const docsEs = {
|
|
5
8
|
...practicalEs,
|
|
6
9
|
...operationsEs,
|
|
10
|
+
...overviewsEs,
|
|
11
|
+
contentBlocks: CONTENT_BLOCKS_DOCS.es,
|
|
7
12
|
pdf: `# Documentos PDF
|
|
8
13
|
|
|
9
14
|
PDF es un tipo de contenido propio junto con Markdown, HTML, código fuente, vídeo y audio. La vista previa utiliza el visor nativo de PDF del navegador. Las acciones de descarga y apertura en una pestaña nueva se configuran de forma independiente.
|
|
@@ -33,11 +38,11 @@ Añade este bloque dentro de \`site\` en \`gitpagedocs/config.json\`:
|
|
|
33
38
|
|
|
34
39
|
La precedencia de las acciones es \`ruta.pdf.<flag>\` > \`site.pdf.<flag>\` > \`true\`. Un \`true\` explícito en la ruta activa esa acción aunque el valor del sitio sea \`false\`; \`site.pdf.enabled: false\` sigue desactivando todos los PDFs. Si falta la ruta del idioma seleccionado, el PDF no está disponible; no hay cambio automático de idioma.
|
|
35
40
|
|
|
36
|
-
Las acciones PDF usan iconos por defecto. Configura \`site.icons.PdfDownload\` (\`
|
|
41
|
+
Las acciones PDF usan iconos por defecto. Configura \`site.icons.PdfDownload\` (\`LuDownload\`) y \`site.icons.PdfOpenInNewTab\` (\`LuExternalLink\`) por separado con \`reactIcon\`, \`tag\`, \`size\`, \`colorDark\` y \`colorLight\`. Por ejemplo, \`"PdfDownload": { "reactIcon": false }\` muestra texto en descarga mientras la nueva pestaña conserva su icono. La apariencia no cambia las opciones de activación anteriores.
|
|
37
42
|
|
|
38
43
|
## Ejemplo de ruta y menú
|
|
39
44
|
|
|
40
|
-
En \`gitpagedocs/docs/versions/0.0.
|
|
45
|
+
En \`gitpagedocs/docs/versions/0.0.11/config.json\`, conserva las listas de rutas y menús en el nivel principal:
|
|
41
46
|
|
|
42
47
|
\`\`\`json
|
|
43
48
|
{
|
|
@@ -46,9 +51,9 @@ En \`gitpagedocs/docs/versions/0.0.10/config.json\`, conserva las listas de ruta
|
|
|
46
51
|
"title": { "en": "Project guide (English)", "pt": "Guia do projeto (inglês)", "es": "Guía del proyecto (inglés)" },
|
|
47
52
|
"pdf": {
|
|
48
53
|
"pathPdf": {
|
|
49
|
-
"en": "gitpagedocs/docs/versions/0.0.
|
|
50
|
-
"pt": "gitpagedocs/docs/versions/0.0.
|
|
51
|
-
"es": "gitpagedocs/docs/versions/0.0.
|
|
54
|
+
"en": "gitpagedocs/docs/versions/0.0.11/en/gitpagedocs-project-guide.pdf",
|
|
55
|
+
"pt": "gitpagedocs/docs/versions/0.0.11/en/gitpagedocs-project-guide.pdf",
|
|
56
|
+
"es": "gitpagedocs/docs/versions/0.0.11/en/gitpagedocs-project-guide.pdf"
|
|
52
57
|
},
|
|
53
58
|
"previewEnabled": true,
|
|
54
59
|
"downloadEnabled": true,
|
|
@@ -86,15 +91,15 @@ El botón de nueva pestaña abre el Blob PDF validado en lugar de navegar a la U
|
|
|
86
91
|
`,
|
|
87
92
|
index: `# Git Page Docs
|
|
88
93
|
|
|
89
|
-
Git Page Docs es un runtime de
|
|
94
|
+
Git Page Docs es un runtime de documentación multilenguaje para repositorios que incluyen la carpeta \`gitpagedocs/\`.
|
|
90
95
|
|
|
91
|
-
##
|
|
96
|
+
## Qué ofrece este proyecto
|
|
92
97
|
|
|
93
98
|
- Renderizado markdown multilenguaje (\`en\`, \`pt\`, \`es\`)
|
|
94
|
-
- Ruteo por
|
|
99
|
+
- Ruteo por versión (\`/v/:version\`)
|
|
95
100
|
- Sistema de temas con templates JSON
|
|
96
|
-
-
|
|
97
|
-
-
|
|
101
|
+
- Ejecución local y en GitHub Pages
|
|
102
|
+
- Búsqueda de repositorio + render remoto opcional
|
|
98
103
|
|
|
99
104
|
## Contrato de carpetas
|
|
100
105
|
|
|
@@ -107,14 +112,14 @@ El runtime espera esta estructura:
|
|
|
107
112
|
- \`gitpagelayouts/layoutsConfig.json\`
|
|
108
113
|
- \`gitpagelayouts/templates/*.json\`
|
|
109
114
|
|
|
110
|
-
##
|
|
115
|
+
## Navegación rápida
|
|
111
116
|
|
|
112
117
|
- Abre **Primeros pasos** para setup local.
|
|
113
|
-
- Abre **
|
|
114
|
-
- Abre **
|
|
115
|
-
- Abre **Arquitectura** para mapa de
|
|
116
|
-
- Abre **Temas y layouts** para
|
|
117
|
-
- Abre **Rutas autorizadas** para configurar clave, roles y
|
|
118
|
+
- Abre **Configuración** para detalle completo de \`config.json\`.
|
|
119
|
+
- Abre **Publicación** para comportamiento local/producción/GitHub Pages.
|
|
120
|
+
- Abre **Arquitectura** para mapa de código y flujo de datos.
|
|
121
|
+
- Abre **Temas y layouts** para creación de templates.
|
|
122
|
+
- Abre **Rutas autorizadas** para configurar clave, roles y autenticación externa.
|
|
118
123
|
- Abre **FAQ** para troubleshooting.
|
|
119
124
|
|
|
120
125
|
## Referencias detalladas
|
|
@@ -122,13 +127,14 @@ El runtime espera esta estructura:
|
|
|
122
127
|
- **Referencia de la CLI**: instalación, todos los comandos y flags de compatibilidad.
|
|
123
128
|
- **Servidor MCP**: cliente, 20 tools, 7 resources y configuración de proveedores.
|
|
124
129
|
- **Navegación y submenús**: árboles recursivos, URLs y prioridad de breadcrumbs.
|
|
130
|
+
- **Bloques de contenido ordenados**: repite y ordena Markdown, HTML, vídeo, audio y PDF en una página; posiciona títulos y descripciones configurados de forma independiente.
|
|
125
131
|
- **Modo foco**: copiar/descargar Markdown y navegar por sección/documento.
|
|
126
132
|
- **Accesibilidad y narración**: voces del navegador, controles e interacción con medios.
|
|
127
133
|
- **Documentos PDF**: vista previa nativa, descarga/nueva pestaña y la guía incluida en inglés.
|
|
128
134
|
- **Recetas de configuración**: un sitio multilingüe completo y un menú con secciones dentro de secciones.
|
|
129
135
|
- **Migración y compatibilidad**: actualizar configuraciones desde la versión 0.0.1 conservando tu contenido.
|
|
130
136
|
- **Solución de problemas**: UTF-8, rutas locales y de Pages, carga de PDF, voces e inicio de MCP.
|
|
131
|
-
- **Contribución y validación**: archivos fuente, generación, contratos públicos y
|
|
137
|
+
- **Contribución y validación**: archivos fuente, generación, contratos públicos y comprobaciónes de publicación.
|
|
132
138
|
- **Contenedores HTML**: páginas locales y externas, configuración de rutas/menús y el ejemplo interactivo DOOM.
|
|
133
139
|
|
|
134
140
|
El menú generado mantiene Primeros pasos y la descripción general del proyecto al principio. Guías contiene Configura tu sitio, Lee y explora y Automatiza e integra; cada categoría contiene sus páginas relacionadas. Operación y desarrollo agrupa publicación, mantenimiento y contribución. Git y GitHub contiene los ejemplos del repositorio. Las categorías pueden contener otras categorías sin un límite fijo de niveles.
|
|
@@ -181,35 +187,35 @@ El repositorio fija pnpm en \`packageManager\`. \`pnpm dev\` activa la búsqueda
|
|
|
181
187
|
|
|
182
188
|
Usa Configuración para idiomas, iconos, navegación, foco y narración; Funcionalidades para CLI y MCP; Temas y diseños para tokens visuales; Preguntas frecuentes para diagnóstico.
|
|
183
189
|
`,
|
|
184
|
-
projectOverview: `#
|
|
190
|
+
projectOverview: `# Visión general del proyecto
|
|
185
191
|
|
|
186
|
-
Git Page Docs es un monorepo pnpm + turborepo que convierte la carpeta \`gitpagedocs/\` de un repositorio en un sitio de
|
|
192
|
+
Git Page Docs es un monorepo pnpm + turborepo que convierte la carpeta \`gitpagedocs/\` de un repositorio en un sitio de documentación multilingüe y versionado — con un asistente de IA integrado y un servidor MCP (Model Context Protocol).
|
|
187
193
|
|
|
188
194
|
## Paquetes del monorepo
|
|
189
195
|
|
|
190
|
-
- **frontend/** — visor Next.js 15 (App Router, React 19), exportado
|
|
196
|
+
- **frontend/** — visor Next.js 15 (App Router, React 19), exportado estáticamente para GitHub Pages.
|
|
191
197
|
- **cli/** — el paquete npm publicado \`@gitpagedocs/cli\` (\`npm install -g @gitpagedocs/cli\`): genera la estructura de docs, documenta con IA, configura Pages y ejecuta el servidor MCP.
|
|
192
|
-
- **tools/** — \`@gitpagedocs/tools\`, el
|
|
198
|
+
- **tools/** — \`@gitpagedocs/tools\`, el núcleo de lógica compartido: sistema de IA con 14 proveedores, bóveda de credenciales cifrada, cargador de config, caches y logger.
|
|
193
199
|
- **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 herramientas + 7 recursos).
|
|
194
200
|
- **gitpagedocs/** — el contrato del usuario: \`config.json\`, docs versionados y layouts.
|
|
195
201
|
|
|
196
202
|
## Stack
|
|
197
203
|
|
|
198
|
-
- Next.js 15 (App Router) + React 19 + TypeScript;
|
|
204
|
+
- Next.js 15 (App Router) + React 19 + TypeScript; exportación estática para GitHub Pages
|
|
199
205
|
- gray-matter + marked para Markdown; react-icons
|
|
200
206
|
- pnpm workspaces + turborepo; Vitest + Playwright; ESLint
|
|
201
207
|
|
|
202
208
|
## Destacados
|
|
203
209
|
|
|
204
|
-
-
|
|
205
|
-
- Sistema de IA con 14 proveedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI y
|
|
206
|
-
- Claves de IA **cifradas en reposo** (AES-256-GCM)
|
|
210
|
+
- Multilingüe (\`en\`, \`pt\`, \`es\`) y rutas por versión (\`/v/:version\`)
|
|
211
|
+
- Sistema de IA con 14 proveedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI y más) con streaming
|
|
212
|
+
- Claves de IA **cifradas en reposo** (AES-256-GCM) detrás de una contraseña local — nunca en texto plano
|
|
207
213
|
- **Panel de chat de IA** en los docs + una **consola \`/ai\`** dedicada
|
|
208
|
-
- Sistema de 64 temas (variantes oscuras y claras);
|
|
214
|
+
- Sistema de 64 temas (variantes oscuras y claras); ejecución local y en GitHub Pages
|
|
209
215
|
`,
|
|
210
216
|
functionalities: `# Funcionalidades
|
|
211
217
|
|
|
212
|
-
Referencia completa de opciones CLI, claves de
|
|
218
|
+
Referencia completa de opciones CLI, claves de configuración y funciones del runtime.
|
|
213
219
|
|
|
214
220
|
## Línea de comandos
|
|
215
221
|
|
|
@@ -217,23 +223,23 @@ Consulta **Referencia de la CLI** para comandos, flags, ejemplos y compatibilida
|
|
|
217
223
|
|
|
218
224
|
## Tipos de contenido
|
|
219
225
|
|
|
220
|
-
| Tipo | Clave config |
|
|
226
|
+
| Tipo | Clave config | Descripción |
|
|
221
227
|
|------|--------------|-------------|
|
|
222
228
|
| Markdown | \`routes-md\` | Archivos .md con \`path\` por idioma |
|
|
223
229
|
| HTML | \`routes-html\` | \`path\` local o \`url\` externa |
|
|
224
|
-
|
|
|
230
|
+
| Vídeo | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
|
|
225
231
|
| Audio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
|
|
226
232
|
| PDF | \`routes-pdf\` | \`pdf.pathPdf\` por idioma; vista previa nativa y descarga |
|
|
227
233
|
|
|
228
|
-
## Visor de
|
|
234
|
+
## Visor de código fuente
|
|
229
235
|
|
|
230
|
-
El config de
|
|
236
|
+
El config de versión puede renderizar un contenedor **Código fuente** vía \`routes-source-viewer\` y \`menus-header-source-viewer\`. El viewer lee el árbol del repositorio en GitHub en tiempo de ejecución y aplica el tema actual de la documentación.
|
|
231
237
|
|
|
232
|
-
-
|
|
233
|
-
-
|
|
238
|
+
- Árbol del repositorio desde \`source-viewer-path\`; la branch por defecto es \`main\`
|
|
239
|
+
- Navegación por carpetas y filtro de archivos
|
|
234
240
|
- Listado de directorios estilo GitHub
|
|
235
|
-
- Renderizado de
|
|
236
|
-
- Alternancia vista previa/
|
|
241
|
+
- Renderizado de código con números de línea
|
|
242
|
+
- Alternancia vista previa/código para Markdown, incluido \`README.md\`
|
|
237
243
|
- Carpetas colapsables en la barra lateral
|
|
238
244
|
|
|
239
245
|
## Claves de config (site)
|
|
@@ -243,69 +249,69 @@ El config de version puede renderizar un contenedor **Codigo fuente** via \`rout
|
|
|
243
249
|
- \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
|
|
244
250
|
- Idiomas: \`site.languages\` (activa/desactiva cada uno); textos de la UI: \`gitpagedocs/langs/<lang>.json\`
|
|
245
251
|
|
|
246
|
-
##
|
|
252
|
+
## Reproducción de medios (un sonido a la vez)
|
|
247
253
|
|
|
248
|
-
\`site.mediaExclusivePlayback\` (por defecto \`true\`): reproducir un
|
|
254
|
+
\`site.mediaExclusivePlayback\` (por defecto \`true\`): reproducir un vídeo de ruta pausa la radio y las pistas de audio, y reproducir la radio o una pista de audio pausa el vídeo. Funciona con YouTube y Vimeo (mediante las APIs de sus reproductores), archivos nativos (\`mp4\`, \`webm\`, …) y cualquier otro embed.
|
|
249
255
|
|
|
250
|
-
Para mostrar un
|
|
256
|
+
Para mostrar un vídeo sin sonido mientras la radio o una pista de audio lo explica, usa \`"muted": true\` en el objeto \`video\` de la ruta: el vídeo reproduce solo la imagen y queda fuera de la regla. \`"mediaExclusivePlayback": false\` desactiva la regla en todo el sitio.
|
|
251
257
|
|
|
252
258
|
## Variables de entorno
|
|
253
259
|
|
|
254
|
-
- \`GITPAGEDOCS_REPOSITORY_SEARCH\` –
|
|
260
|
+
- \`GITPAGEDOCS_REPOSITORY_SEARCH\` – búsqueda de repositorio (local)
|
|
255
261
|
- \`GITHUB_ACTIONS\` – modo build GitHub Pages
|
|
256
262
|
|
|
257
263
|
## Asistente de IA
|
|
258
264
|
|
|
259
|
-
Los docs traen un asistente de IA en dos superficies: un **panel de chat** dentro de los docs (
|
|
265
|
+
Los docs traen un asistente de IA en dos superficies: un **panel de chat** dentro de los docs (botón de chat de IA en la barra lateral, activado por \`site.AiChatEnabled\`) y una página **consola \`/ai\`** dedicada.
|
|
260
266
|
|
|
261
|
-
- **14 proveedores** en un
|
|
262
|
-
- **
|
|
263
|
-
- **Cifrado en reposo** — tu clave de API se sella con AES-256-GCM
|
|
264
|
-
- **Bloqueo por inactividad** — el panel de chat se bloquea solo tras \`site.AiChatAutoLockSeconds\` segundos sin uso (por defecto 30, \`0\` lo desactiva): un modal centrado con cuenta regresiva, en tu idioma, permite cancelar o bloquear ahora, y desbloquear pide la
|
|
267
|
+
- **14 proveedores** en un único core compartido: OpenAI, Anthropic, Gemini, OpenRouter, Ollama, Azure OpenAI, Mistral, DeepSeek, Cohere, Groq, xAI, Together, Fireworks, Perplexity.
|
|
268
|
+
- **Elección de modelo** — desde el catálogo de cada proveedor (\`gitpagedocs models <proveedor>\`); un id de modelo guardado que el proveedor retiró se reemplaza por el predeterminado del proveedor automáticamente.
|
|
269
|
+
- **Cifrado en reposo** — tu clave de API se sella con AES-256-GCM detrás de una **contraseña local** y nunca queda en texto plano ni en logs.
|
|
270
|
+
- **Bloqueo por inactividad** — el panel de chat se bloquea solo tras \`site.AiChatAutoLockSeconds\` segundos sin uso (por defecto 30, \`0\` lo desactiva): un modal centrado con cuenta regresiva, en tu idioma, permite cancelar o bloquear ahora, y desbloquear pide la contraseña de nuevo.
|
|
265
271
|
- **Proveedores resilientes** — los errores transitorios del proveedor se reintentan (3 intentos) y un fallo final es un mensaje simple que termina en "¡Inténtalo de nuevo!".
|
|
266
|
-
- **
|
|
272
|
+
- **Generación de documentación con IA** — \`gitpagedocs ai\` recorre las rutas elegidas y escribe markdown multilingüe (pt/en/es); reutilizable vía \`.gitpagedocsconfig\`, cuya clave de API queda sellada en la bóveda cifrada \`.gitpagedocsvault\` (la contraseña de la bóveda se pide en cada ejecución). \`gitpagedocs chat\` lleva el mismo asistente a la terminal.
|
|
267
273
|
|
|
268
274
|
## Servidor MCP
|
|
269
275
|
|
|
270
|
-
\`gitpagedocs mcp start\` levanta un servidor Model Context Protocol (stdio) que expone **20 tools** (sistema de archivos, IA,
|
|
276
|
+
\`gitpagedocs mcp start\` levanta un servidor Model Context Protocol (stdio) que expone **20 tools** (sistema de archivos, IA, generación/análisis de docs) y **7 resources** (\`project://structure|docs|config|repository|readme|ai/providers|ai/models\`) para editores y agentes de IA.
|
|
271
277
|
`,
|
|
272
|
-
configuration: `#
|
|
278
|
+
configuration: `# Configuración
|
|
273
279
|
|
|
274
|
-
La
|
|
280
|
+
La configuración de runtime está en \`gitpagedocs/config.json\`. Los textos de la UI viven al lado, un archivo por idioma.
|
|
275
281
|
|
|
276
282
|
## Idiomas (\`site.languages\` + \`langs/\`)
|
|
277
283
|
|
|
278
|
-
- \`site.languages\` en \`gitpagedocs/config.json\` activa (\`true\`) o desactiva (\`false\`) cada idioma, en el orden del
|
|
279
|
-
- \`gitpagedocs/langs/<lang>.json\` guarda los textos de ese idioma: \`langmenu\` (cabecera,
|
|
284
|
+
- \`site.languages\` en \`gitpagedocs/config.json\` activa (\`true\`) o desactiva (\`false\`) cada idioma, en el orden del menú: \`{ "languages": { "en": true, "pt": true, "es": false } }\`. Un idioma en \`false\` desaparece del selector de idiomas y sus textos no se cargan, aunque existan sus docs.
|
|
285
|
+
- \`gitpagedocs/langs/<lang>.json\` guarda los textos de ese idioma: \`langmenu\` (cabecera, búsqueda, visor de código, reproductor de audio, chat de IA y acceso a los docs) y \`translations\` (\`notFound\`, \`navigation\`, \`footer\`).
|
|
280
286
|
- Para agregar un idioma, crea \`langs/<lang>.json\` y agrega \`"<lang>": true\` en \`site.languages\`.
|
|
281
|
-
- Los \`config.json\` antiguos que
|
|
287
|
+
- Los \`config.json\` antiguos que aún traen \`site.langmenu\` / \`translations\` inline siguen funcionando; cuando existen ambos, los archivos de \`langs/\` prevalecen y cualquier clave ausente se completa desde la versión actual.
|
|
282
288
|
|
|
283
|
-
##
|
|
289
|
+
## Sección \`site\`
|
|
284
290
|
|
|
285
291
|
Claves principales:
|
|
286
292
|
|
|
287
|
-
- \`name\`:
|
|
293
|
+
- \`name\`: título del proyecto en UI
|
|
288
294
|
- \`defaultLanguage\`: idioma por defecto
|
|
289
295
|
- \`HideThemeSelector\`: ocultar/mostrar selector de tema
|
|
290
296
|
- \`ThemeDefault\`: id del tema inicial
|
|
291
297
|
- \`ThemeModeDefault\`: modo inicial (\`light\` o \`dark\`)
|
|
292
298
|
- \`ProjectLink\`: URL de repositorio para acciones de cabecera
|
|
293
|
-
- \`docsVersion\`:
|
|
299
|
+
- \`docsVersion\`: versión seleccionada por defecto
|
|
294
300
|
- \`ActiveNavigation\`: habilita la navegación rápida y el atajo Ctrl+K
|
|
295
301
|
- \`FocusMode\`: habilita modo foco/lectura
|
|
296
302
|
- \`icons\`: iconos de la cabecera. \`icons.defaults\` guarda lo que todos comparten (\`reactIcon\`, \`colorDark\`, \`colorLight\`, \`size\`, \`imgDark\`, \`imgLight\`, \`imgWidth\`, \`imgHeight\`) y cada icono define su \`tag\` y lo que cambia (\`null\` quita un campo). Las claves planas de abajo siguen valiendo y ganan cuando existen ambas formas.
|
|
297
|
-
- \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`:
|
|
303
|
+
- \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamaño del icono principal
|
|
298
304
|
- \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: icono principal (light/dark)
|
|
299
|
-
- \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`:
|
|
305
|
+
- \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamaño del icono enlace del proyecto
|
|
300
306
|
- \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: icono enlace del proyecto
|
|
301
|
-
- \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`:
|
|
302
|
-
- \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icono enlaces de
|
|
303
|
-
- \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`:
|
|
307
|
+
- \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamaño del icono enlaces de versión
|
|
308
|
+
- \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icono enlaces de versión
|
|
309
|
+
- \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamaño del icono info
|
|
304
310
|
- \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: icono info
|
|
305
|
-
- \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`:
|
|
311
|
+
- \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamaño del icono preview
|
|
306
312
|
- \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: icono preview
|
|
307
313
|
- \`layoutsConfigPath\`: fallback remoto de layouts
|
|
308
|
-
- \`rendering\`: URL
|
|
314
|
+
- \`rendering\`: URL canónica publicada
|
|
309
315
|
|
|
310
316
|
## Controles de idioma, tema, foco, navegación rápida, PDF y documentos
|
|
311
317
|
|
|
@@ -316,35 +322,35 @@ En \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuran idio
|
|
|
316
322
|
"site": {
|
|
317
323
|
"icons": {
|
|
318
324
|
"LanguageSelector": {
|
|
319
|
-
"reactIcon": true, "tag": "
|
|
325
|
+
"reactIcon": true, "tag": "SiGoogletranslate", "size": "22px",
|
|
320
326
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
321
327
|
},
|
|
322
328
|
"ThemeSelector": {
|
|
323
|
-
"reactIcon": true, "tag": "
|
|
329
|
+
"reactIcon": true, "tag": "LuPencil", "size": "22px",
|
|
324
330
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
325
331
|
},
|
|
326
332
|
"FocusMode": {
|
|
327
|
-
"reactIcon": true, "tag": "
|
|
333
|
+
"reactIcon": true, "tag": "LuBookOpen", "size": "22px",
|
|
328
334
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
329
335
|
},
|
|
330
336
|
"QuickNavigation": {
|
|
331
|
-
"reactIcon": true, "tag": "
|
|
337
|
+
"reactIcon": true, "tag": "LuSearch", "size": "22px",
|
|
332
338
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
333
339
|
},
|
|
334
340
|
"PdfDownload": {
|
|
335
|
-
"reactIcon": true, "tag": "
|
|
341
|
+
"reactIcon": true, "tag": "LuDownload", "size": "22px",
|
|
336
342
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
337
343
|
},
|
|
338
344
|
"PdfOpenInNewTab": {
|
|
339
|
-
"reactIcon": true, "tag": "
|
|
345
|
+
"reactIcon": true, "tag": "LuExternalLink", "size": "22px",
|
|
340
346
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
341
347
|
},
|
|
342
348
|
"DocumentPrevious": {
|
|
343
|
-
"reactIcon": true, "tag": "
|
|
349
|
+
"reactIcon": true, "tag": "LuChevronLeft", "size": "22px",
|
|
344
350
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
345
351
|
},
|
|
346
352
|
"DocumentNext": {
|
|
347
|
-
"reactIcon": true, "tag": "
|
|
353
|
+
"reactIcon": true, "tag": "LuChevronRight", "size": "22px",
|
|
348
354
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
349
355
|
}
|
|
350
356
|
}
|
|
@@ -356,66 +362,66 @@ Cada control es independiente: \`reactIcon: true\` muestra el icono (por defecto
|
|
|
356
362
|
|
|
357
363
|
Las configuraciones compactas pueden mover valores comunes a \`site.icons.defaults\`; los campos omitidos heredan esos valores. Define \`reactIcon: false\` en una entrada concreta para sustituir el icono predeterminado por texto.
|
|
358
364
|
|
|
359
|
-
##
|
|
365
|
+
## Sección \`VersionControl\`
|
|
360
366
|
|
|
361
367
|
\`VersionControl.versions\` define:
|
|
362
368
|
|
|
363
|
-
- \`id\`: identificador de
|
|
364
|
-
- \`path\`: ruta de config de
|
|
369
|
+
- \`id\`: identificador de versión
|
|
370
|
+
- \`path\`: ruta de config de versión
|
|
365
371
|
- links opcionales (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
|
|
366
372
|
- metadatos opcionales del source viewer (\`source-viewer\`, \`source-viewer-path\`)
|
|
367
373
|
|
|
368
|
-
##
|
|
374
|
+
## Navegación y rutas
|
|
369
375
|
|
|
370
376
|
- \`routes\`: rutas markdown por idioma (legado)
|
|
371
|
-
- \`menus-header\`:
|
|
372
|
-
- \`translations\`: etiquetas UI para not-found y
|
|
377
|
+
- \`menus-header\`: menú jerarquico
|
|
378
|
+
- \`translations\`: etiquetas UI para not-found y navegación
|
|
373
379
|
|
|
374
|
-
##
|
|
380
|
+
## Autorización (config de versión)
|
|
375
381
|
|
|
376
|
-
- \`auth\`: configuraciones globales de
|
|
382
|
+
- \`auth\`: configuraciones globales de autorización para esa versión
|
|
377
383
|
- \`auth.accessKeys\`: mapa de claves usado por \`authorization.accessKeyId\`
|
|
378
384
|
- \`auth.rolesStorageKey\`: clave de localStorage para bootstrap de roles
|
|
379
385
|
- \`auth.providers\`: adaptadores de proveedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
|
|
380
386
|
|
|
381
|
-
## Tipos de contenido (config de
|
|
387
|
+
## Tipos de contenido (config de versión)
|
|
382
388
|
|
|
383
|
-
Los configs de
|
|
389
|
+
Los configs de versión soportan múltiples tipos:
|
|
384
390
|
|
|
385
|
-
- \`routes-md\`: Rutas markdown con \`title\`, \`description\` (centrados
|
|
386
|
-
- \`routes-source-viewer\`: Contenedores de
|
|
387
|
-
- \`routes-html\`: Rutas de
|
|
388
|
-
- \`routes-video\`: Config de
|
|
391
|
+
- \`routes-md\`: Rutas markdown con \`title\`, \`description\` (centrados vía \`titlePosition\`, \`descriptionPosition\`)
|
|
392
|
+
- \`routes-source-viewer\`: Contenedores de código fuente con \`source-viewer: true\` y \`source-viewer-path\`
|
|
393
|
+
- \`routes-html\`: Rutas de páginas HTML por idioma
|
|
394
|
+
- \`routes-video\`: Config de vídeo con \`video.videoType\` (youtube, vimeo, mp4, etc.) y \`video.pathVideo\`
|
|
389
395
|
- \`routes-audio\`: Config de audio con \`audio.audioType\` (youtube, mp3, etc.) y \`audio.pathAudio\`
|
|
390
396
|
- \`routes-pdf\`: PDF con \`pdf.pathPdf\` por idioma; consulta Documentos PDF.
|
|
391
|
-
- \`authorization\` (md/html/
|
|
392
|
-
- \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`, \`menus-header-pdf\`:
|
|
393
|
-
- \`hierarchyPage\`: orden de contenedores en la
|
|
394
|
-
- \`hierarchyMenu\`: orden de secciones del
|
|
397
|
+
- \`authorization\` (md/html/vídeo): guardia de acceso por clave, roles y autenticación externa
|
|
398
|
+
- \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`, \`menus-header-pdf\`: menús por tipo
|
|
399
|
+
- \`hierarchyPage\`: orden de contenedores en la página \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
|
|
400
|
+
- \`hierarchyMenu\`: orden de secciones del menú \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
|
|
395
401
|
|
|
396
402
|
Cada ruta puede incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
|
|
397
403
|
|
|
398
|
-
Los ajustes que comparten todas las rutas se escriben una sola vez en \`routeDefaults\`, al inicio del config de la
|
|
404
|
+
Los ajustes que comparten todas las rutas se escriben una sola vez en \`routeDefaults\`, al inicio del config de la versión; cada ruta guarda solo sus propios valores, y un valor escrito en la ruta gana sobre \`routeDefaults\`.
|
|
399
405
|
|
|
400
406
|
## Variables por ruta (blockLink, container, url, browseAll)
|
|
401
407
|
|
|
402
408
|
Opciones por ruta en \`routes-md\`, \`routes-html\` y \`routes-video\`:
|
|
403
409
|
|
|
404
410
|
- **\`blockLink\`** (defecto: true) – Para HTML: si true, los enlaces abren en nueva pestaña (\`target="_blank"\`); si false, en el mismo contexto.
|
|
405
|
-
- **\`container\`** – \`"full"\` = altura
|
|
406
|
-
- **\`url\`** – Solo en \`routes-html\`: \`Record<LanguageCode, string>\` con URLs externas. Al definirse, el iframe usa \`src={url}\` en vez de HTML local
|
|
411
|
+
- **\`container\`** – \`"full"\` = altura automática; numero (ej: \`500\`) = altura fija en px con overflow auto. Se aplica a md, html y vídeo.
|
|
412
|
+
- **\`url\`** – Solo en \`routes-html\`: \`Record<LanguageCode, string>\` con URLs externas. Al definirse, el iframe usa \`src={url}\` en vez de HTML local vía \`srcDoc\`. Las rutas con \`url\` no generan archivos HTML locales.
|
|
407
413
|
- **\`browseAll\`** (defecto: false) – Si true, el contenedor muestra botones Anterior/Siguiente para navegar entre todos los items de ese tipo.
|
|
408
414
|
|
|
409
415
|
## Tipos de contenido: path vs url (HTML)
|
|
410
416
|
|
|
411
417
|
- **Markdown (\`routes-md\`)**: usa \`path\` apuntando a archivos \`.md\` locales.
|
|
412
|
-
- **HTML (\`routes-html\`)**: usa \`path\` para archivos HTML locales (sin
|
|
413
|
-
- **
|
|
418
|
+
- **HTML (\`routes-html\`)**: usa \`path\` para archivos HTML locales (sin extensión .html en config) o \`url\` para URLs externas. Con \`url\`, el iframe carga la página externa; no se genera archivo local.
|
|
419
|
+
- **Vídeo (\`routes-video\`)**: usa \`video.pathVideo\` y \`video.videoType\` (youtube, vimeo, mp4, etc.).
|
|
414
420
|
|
|
415
421
|
## Variables de entorno
|
|
416
422
|
|
|
417
|
-
- \`GITPAGEDOCS_REPOSITORY_SEARCH\`: activa/desactiva
|
|
418
|
-
- \`GITHUB_ACTIONS\`: habilita comportamiento
|
|
423
|
+
- \`GITPAGEDOCS_REPOSITORY_SEARCH\`: activa/desactiva búsqueda remota en local
|
|
424
|
+
- \`GITHUB_ACTIONS\`: habilita comportamiento específico de GitHub Pages
|
|
419
425
|
|
|
420
426
|
## Comportamiento del sitio y valores predeterminados
|
|
421
427
|
|
|
@@ -455,7 +461,7 @@ La entrada \`QuickNavigation\` controla la apariencia de icono/texto del botón
|
|
|
455
461
|
`,
|
|
456
462
|
deployment: `# Publicación
|
|
457
463
|
|
|
458
|
-
Elige el visor oficial para un repositorio público,
|
|
464
|
+
Elige el visor oficial para un repositorio público, pública tu propio GitHub Pages o aloja un export estático compilado desde el runtime.
|
|
459
465
|
|
|
460
466
|
## Visor oficial
|
|
461
467
|
|
|
@@ -491,36 +497,36 @@ En un checkout del runtime con dependencias instaladas, \`node cli/index.mjs --h
|
|
|
491
497
|
|
|
492
498
|
## Releases npm para mantenedores
|
|
493
499
|
|
|
494
|
-
El monorepo
|
|
500
|
+
El monorepo pública \`@gitpagedocs/tools\`, \`@gitpagedocs/mcp\` y \`@gitpagedocs/cli\`; raíz y frontend son privados. El \`npm-publish.yml\` actual se ejecuta en pushes a \`main\` y omite una versión de CLI ya publicada. Utiliza el secret \`NPM_TOKEN\` del repositorio y pública workspaces en orden de dependencia. Crear solo una release de GitHub no es su disparador.
|
|
495
501
|
|
|
496
502
|
Sincroniza versiones y dependencias internas, regenera docs/baselines, ejecuta typecheck, lint, pruebas, smoke, build y Playwright y revisa antes del push. Confirma las tres versiones en npm y el resultado de Pages. La CLI de configuración ignora \`prebuilt/\`; el workflow de publicación no requiere esa carpeta.
|
|
497
503
|
`,
|
|
498
504
|
architecture: `# Arquitectura
|
|
499
505
|
|
|
500
|
-
El proyecto
|
|
506
|
+
El proyecto está organizado por fronteras de feature y responsabilidades de runtime.
|
|
501
507
|
|
|
502
508
|
## Paquetes
|
|
503
509
|
|
|
504
510
|
- **frontend/** — visor Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
|
|
505
|
-
- **cli/** — el bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de
|
|
511
|
+
- **cli/** — el bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentación con IA).
|
|
506
512
|
- **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ i18n/ ports/.
|
|
507
513
|
- **mcp/** — \`@gitpagedocs/mcp\`: herramientas + recursos MCP que delegan a tools/.
|
|
508
514
|
|
|
509
515
|
## Modulos principales (frontend)
|
|
510
516
|
|
|
511
|
-
- \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rutas, generateStaticParams,
|
|
512
|
-
- \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota,
|
|
513
|
-
- \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/
|
|
517
|
+
- \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rutas, generateStaticParams, selección de shell.
|
|
518
|
+
- \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versión, parse markdown, layouts + temas.
|
|
519
|
+
- \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versión/tema, sync de URL, montaje del chat de IA.
|
|
514
520
|
|
|
515
521
|
## Seguridad: credenciales de IA cifradas
|
|
516
522
|
|
|
517
|
-
La consola \`/ai\` y el panel de chat exigen una
|
|
523
|
+
La consola \`/ai\` y el panel de chat exigen una contraseña local que deriva (PBKDF2) una clave AES-256-GCM; las claves quedan cifradas en \`localStorage\` y solo se descifran durante la sesión (\`@gitpagedocs/tools/security\`). El panel se bloquea solo tras \`site.AiChatAutoLockSeconds\` segundos sin uso (por defecto 30; \`0\` lo desactiva): un modal centrado con cuenta regresiva, en el idioma seleccionado, permite cancelar o bloquear ahora, y volver exige la contraseña de nuevo. En la CLI, la clave de \`.gitpagedocsconfig\` queda sellada en la bóveda cifrada \`.gitpagedocsvault\` y la contraseña de la bóveda se pide en cada ejecución.
|
|
518
524
|
|
|
519
525
|
## Flujo de datos
|
|
520
526
|
|
|
521
527
|
1. Llega la ruta (\`/owner/repo/v/x.y.z\` o equivalente local)
|
|
522
528
|
2. Se resuelve config (local o remoto)
|
|
523
|
-
3. Config de
|
|
529
|
+
3. Config de versión sobreescribe rutas/menús base
|
|
524
530
|
4. Markdown se carga y convierte a HTML
|
|
525
531
|
5. Template de layout se resuelve y aplica en CSS vars
|
|
526
532
|
6. Shell renderiza contenido y controles
|
|
@@ -529,7 +535,7 @@ La consola \`/ai\` y el panel de chat exigen una contrasena local que deriva (PB
|
|
|
529
535
|
|
|
530
536
|
- fallback de carga para layouts/templates
|
|
531
537
|
- carga de markdown por idioma con fallback de error
|
|
532
|
-
-
|
|
538
|
+
- sincronización de idioma/versión/tema vía localStorage
|
|
533
539
|
`,
|
|
534
540
|
githubIssuesProjects: `# GitHub Issues y Projects
|
|
535
541
|
|
|
@@ -556,21 +562,21 @@ Conceptos basicos de Git para principiantes.
|
|
|
556
562
|
|
|
557
563
|
Protege rutas por clave de acceso, roles requeridos y proveedores externos.
|
|
558
564
|
|
|
559
|
-
## Ubicacion del config de
|
|
565
|
+
## Ubicacion del config de versión
|
|
560
566
|
|
|
561
567
|
Configura en:
|
|
562
568
|
|
|
563
569
|
- \`gitpagedocs/docs/versions/<version>/config.json\`
|
|
564
570
|
|
|
565
|
-
##
|
|
571
|
+
## Sección global auth
|
|
566
572
|
|
|
567
|
-
Usa \`auth\` en la raiz del config de
|
|
573
|
+
Usa \`auth\` en la raiz del config de versión:
|
|
568
574
|
|
|
569
575
|
- \`accessKeys\`: mapa de ids de clave al secreto esperado
|
|
570
576
|
- \`rolesStorageKey\`: clave de localStorage para bootstrap de roles
|
|
571
577
|
- \`providers\`: lista de proveedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
|
|
572
578
|
|
|
573
|
-
##
|
|
579
|
+
## Autorización por ruta
|
|
574
580
|
|
|
575
581
|
Dentro de cada ruta (\`routes-md\`, \`routes-html\`, \`routes-video\`):
|
|
576
582
|
|
|
@@ -587,7 +593,7 @@ Define \`authorization.accessKeyId\` y la clave correspondiente en \`auth.access
|
|
|
587
593
|
|
|
588
594
|
### Fase B - Roles
|
|
589
595
|
|
|
590
|
-
Define \`authorization.requiredRoles\` con uno o
|
|
596
|
+
Define \`authorization.requiredRoles\` con uno o más roles.
|
|
591
597
|
|
|
592
598
|
Los roles pueden venir de:
|
|
593
599
|
|
|
@@ -629,7 +635,7 @@ Cada template normalmente incluye:
|
|
|
629
635
|
|
|
630
636
|
## Comportamiento en runtime
|
|
631
637
|
|
|
632
|
-
- tema activo viene de config/
|
|
638
|
+
- tema activo viene de config/selección de usuario
|
|
633
639
|
- toggle light/dark resuelve tema pareado por referencia
|
|
634
640
|
- variables CSS se generan desde tokens del template
|
|
635
641
|
|
|
@@ -772,7 +778,7 @@ La generación envía el contenido seleccionado del proyecto al proveedor config
|
|
|
772
778
|
|
|
773
779
|
## Comandos CLI
|
|
774
780
|
|
|
775
|
-
| Comando |
|
|
781
|
+
| Comando | Descripción |
|
|
776
782
|
|---------|-------------|
|
|
777
783
|
| \`npx @gitpagedocs/cli\` | Genera config y docs en \`gitpagedocs/\` |
|
|
778
784
|
| \`npx @gitpagedocs/cli --layoutconfig\` | Tambien genera layouts/templates locales en \`gitpagelayouts/\` |
|
|
@@ -780,28 +786,28 @@ La generación envía el contenido seleccionado del proyecto al proveedor config
|
|
|
780
786
|
| \`npx @gitpagedocs/cli --push --owner X --repo Y\` | Configura workflow, commit, push |
|
|
781
787
|
| \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interactivo con prompts (por defecto en una terminal) |
|
|
782
788
|
| \`npx @gitpagedocs/cli --no-interactive\` / \`--yes\` / \`-y\` | Nunca pregunta; usa flags y valores por defecto |
|
|
783
|
-
| \`gitpagedocs ai\` | Generador interactivo de
|
|
784
|
-
| \`gitpagedocs chat [pregunta]\` | Chat de IA con streaming en la terminal (REPL en TTY; respuesta
|
|
785
|
-
| \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista proveedores de IA / modelos del
|
|
786
|
-
| \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Genera
|
|
787
|
-
| \`gitpagedocs deploy\` / \`pages [actions\\|deploy]\` | Configura GitHub Pages
|
|
789
|
+
| \`gitpagedocs ai\` | Generador interactivo de documentación con IA |
|
|
790
|
+
| \`gitpagedocs chat [pregunta]\` | Chat de IA con streaming en la terminal (REPL en TTY; respuesta única con pregunta o stdin) |
|
|
791
|
+
| \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista proveedores de IA / modelos del catálogo |
|
|
792
|
+
| \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Genera documentación con IA |
|
|
793
|
+
| \`gitpagedocs deploy\` / \`pages [actions\\|deploy]\` | Configura GitHub Pages vía Actions + push |
|
|
788
794
|
| \`gitpagedocs docs\` | Actualiza las regiones gestionadas de README/CONTRIBUTING/SECURITY |
|
|
789
|
-
| \`gitpagedocs password\` | Define la
|
|
790
|
-
| \`gitpagedocs config\` / \`config clear\` | Muestra la config resuelta / borra la config guardada y la
|
|
791
|
-
| \`gitpagedocs doctor\` / \`version\` / \`update\` |
|
|
795
|
+
| \`gitpagedocs password\` | Define la contraseña de acceso a la documentación (clave pública en \`site.docsAccess\`) |
|
|
796
|
+
| \`gitpagedocs config\` / \`config clear\` | Muestra la config resuelta / borra la config guardada y la bóveda de claves |
|
|
797
|
+
| \`gitpagedocs doctor\` / \`version\` / \`update\` | Diagnóstico / versión / comprobación de actualización en el registro |
|
|
792
798
|
| \`gitpagedocs mcp start\` | Inicia el servidor MCP por stdio |
|
|
793
799
|
|
|
794
800
|
Instala globalmente con \`npm install -g @gitpagedocs/cli\` o ejecuta sin instalar con \`npx @gitpagedocs/cli\`.
|
|
795
801
|
|
|
796
802
|
## Opciones CLI
|
|
797
803
|
|
|
798
|
-
| Opcion |
|
|
804
|
+
| Opcion | Descripción |
|
|
799
805
|
|--------|-------------|
|
|
800
806
|
| \`--owner <user>\` | Owner de GitHub |
|
|
801
807
|
| \`--repo <repo>\` | Repositorio GitHub |
|
|
802
808
|
| \`--path <subpath>\` | Subruta de docs (ej: \`docs\`); sin ella, base path = nombre del repo para CSS/JS en project sites |
|
|
803
809
|
| \`--output <dir>\` | Directorio de salida (default: \`gitpagedocs\`) |
|
|
804
|
-
| \`--search <true-or-false>\` | Habilita/deshabilita
|
|
810
|
+
| \`--search <true-or-false>\` | Habilita/deshabilita búsqueda de repositorio (\`--home\`) |
|
|
805
811
|
| \`--layoutconfig\` | Genera layouts locales en \`gitpagelayouts/\` |
|
|
806
812
|
| \`--layouts-dir <dir>\` | Carpeta de layouts locales (por defecto: \`gitpagelayouts\`) |
|
|
807
813
|
| \`--push\` | Crea workflow, commit de artefactos, push |
|
|
@@ -812,7 +818,7 @@ Instala globalmente con \`npm install -g @gitpagedocs/cli\` o ejecuta sin instal
|
|
|
812
818
|
|
|
813
819
|
- \`gitpagedocs/config.json\` – config raiz
|
|
814
820
|
- \`gitpagedocs/icon.svg\` – icono por defecto
|
|
815
|
-
- \`gitpagedocs/docs/versions/<ver>/config.json\` – rutas por
|
|
821
|
+
- \`gitpagedocs/docs/versions/<ver>/config.json\` – rutas por versión
|
|
816
822
|
- \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs en markdown
|
|
817
823
|
- \`gitpagelayouts/\` – solo con \`--layoutconfig\` (carpeta configurable con \`--layouts-dir\`)
|
|
818
824
|
|
|
@@ -857,7 +863,7 @@ Las rutas definen el contenido; los menús definen cómo encontrarlo. Configúra
|
|
|
857
863
|
|
|
858
864
|
Cada entrada de \`menus-header-md\` tiene \`id\` y objetos \`pt\`, \`en\`, \`es\` con \`title\` y \`path-click\` opcional. Añade \`submenus\` con nuevas entradas para anidar el árbol. El objeto de un idioma también acepta \`submenus\` localizados con título/ruta. Utiliza una forma de manera consistente para no listar el mismo hijo dos veces.
|
|
859
865
|
|
|
860
|
-
Los grupos sin \`path-click\` organizan sus hijos. Para
|
|
866
|
+
Los grupos sin \`path-click\` organizan sus hijos. Para el destino de una ruta Markdown, utiliza su ruta localizada real de \`routes-md[].path\`. Las rutas source-viewer, vídeo, audio, PDF y las composiciones explícitas de \`pages\` registran \`page:<id>\`; una ruta Markdown simple utiliza la ruta del archivo. El ejemplo utiliza la versión \`0.0.8\`: sustituye ese segmento por la versión editada y crea los tres archivos chapter.
|
|
861
867
|
|
|
862
868
|
\`\`\`json
|
|
863
869
|
{
|
|
@@ -925,6 +931,14 @@ Los grupos sin \`path-click\` organizan sus hijos. Para un destino Markdown, uti
|
|
|
925
931
|
|
|
926
932
|
## Comportamiento del anidamiento
|
|
927
933
|
|
|
934
|
+
Un padre puede ser documento y grupo a la vez. Conserva su \`path-click\` localizado junto con \`submenus\`: el título abre su página Markdown y la flecha separada expande o contrae los hijos. El scaffold incluye resúmenes útiles para los ocho grupos padres. Los antecesores de los breadcrumbs enlazan a esos documentos; el destino actual sigue marcado como actual. Un grupo sin ruta puede organizar hijos, pero no tiene un destino para abrir.
|
|
935
|
+
|
|
936
|
+
El siguiente fragmento utiliza las rutas Markdown 31, 32 y 13 incluidas en el scaffold. Combínalo con \`menus-header-md\` y conserva las definiciones correspondientes en \`routes-md\` y sus archivos:
|
|
937
|
+
|
|
938
|
+
\`\`\`json
|
|
939
|
+
${PARENT_MENU_JSON}
|
|
940
|
+
\`\`\`
|
|
941
|
+
|
|
928
942
|
\`site.nestedMenusEnabled: true\` muestra menús recursivos expandibles. Puedes añadir \`submenus\` en cualquier nodo: no existe un límite fijo de profundidad en la aplicación. La configuración debe ser finita y adecuada para la memoria del navegador y la usabilidad. Con \`false\`, los destinos aparecen en una lista plana; las páginas anidadas no se eliminan.
|
|
929
943
|
|
|
930
944
|
El árbol sirve para navegación lateral, etiquetas de búsqueda, expansión de padres y rutas de navegación. Mantén IDs estables y sin ambigüedad; los destinos protegidos siguen las reglas de autorización de su página. La misma estructura se aplica a \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\` y \`menus-header-pdf\`. \`hierarchyMenu\` ordena las secciones por tipo; \`hierarchyPage\` ordena los contenedores que comparten el ID de página.
|
|
@@ -939,7 +953,7 @@ El árbol sirve para navegación lateral, etiquetas de búsqueda, expansión de
|
|
|
939
953
|
|
|
940
954
|
Las URLs versionadas utilizan \`/v/<version>/\`; \`?lang=pt\` elige el idioma y \`?id=101\` elige la página. \`?name=chapter\` selecciona el slug del documento. Mantén \`VersionControl.versions[].path\` apuntando al config de la versión correspondiente. \`site.ActiveNavigation\` activa la navegación rápida y su atajo Ctrl+K. Los controles anterior/siguiente del pie siguen los destinos disponibles en el menú; la navegación entre documentos en modo foco tiene su propia opción. Consulta Modo foco para controles de sección y documento.
|
|
941
955
|
|
|
942
|
-
Los botones anterior/siguiente del pie usan \`site.icons.DocumentPrevious\` (\`
|
|
956
|
+
Los botones anterior/siguiente del pie usan \`site.icons.DocumentPrevious\` (\`LuChevronLeft\`) y \`site.icons.DocumentNext\` (\`LuChevronRight\`) por defecto. Define \`reactIcon: false\` en cualquier entrada para mostrar su texto traducido; cada entrada también acepta \`tag\`, \`size\`, \`colorDark\` y \`colorLight\`. La apariencia no cambia la navegación: el pie aparece cuando hay más de un destino disponible en el menú, y la dirección no disponible permanece desactivada en los extremos.
|
|
943
957
|
|
|
944
958
|
Prueba un menú nuevo desde la barra lateral, por URL directa y en cada idioma habilitado; confirma que el destino existe y está permitido para el lector actual.
|
|
945
959
|
`,
|
|
@@ -978,6 +992,8 @@ Cada opción tiene valor predeterminado \`true\`; \`false\` oculta la acción o
|
|
|
978
992
|
|
|
979
993
|
## Copiar y descargar
|
|
980
994
|
|
|
995
|
+
En una página compuesta, foco lee los bloques Markdown autorizados en orden, incluidas las repeticiones. Copiar/descargar une esas fuentes y utiliza \`page-<id>.md\`; las acciones individuales de los bloques conservan sus nombres originales. Consulta Bloques de contenido ordenados para el contrato completo.
|
|
996
|
+
|
|
981
997
|
Copiar y descargar utilizan el **Markdown original completo en el idioma seleccionado**, incluidas las secciones que no están visibles. No exportan el HTML renderizado ni solo la sección actual.
|
|
982
998
|
|
|
983
999
|
La descarga conserva el nombre base Markdown del \`path\` localizado de la ruta; si no está disponible, el nombre del archivo es \`document.md\`. El portapapeles sigue las reglas de permisos y contexto seguro del navegador. Si la copia falla, utiliza la descarga y consulta el error mostrado.
|
|
@@ -1049,7 +1065,7 @@ Consulta la [referencia de Web Speech API](https://developer.mozilla.org/en-US/d
|
|
|
1049
1065
|
`,
|
|
1050
1066
|
faq: `# FAQ
|
|
1051
1067
|
|
|
1052
|
-
## Por
|
|
1068
|
+
## ¿Por qué repositorios remotos no abren en local?
|
|
1053
1069
|
|
|
1054
1070
|
Verifica:
|
|
1055
1071
|
|
|
@@ -1057,25 +1073,25 @@ Verifica:
|
|
|
1057
1073
|
- repositorio objetivo contiene \`gitpagedocs/config.json\`
|
|
1058
1074
|
- paths markdown del repositorio coinciden con su config de rutas
|
|
1059
1075
|
|
|
1060
|
-
## Por
|
|
1076
|
+
## ¿Por qué una ruta de versión muestra contenido incorrecto?
|
|
1061
1077
|
|
|
1062
1078
|
Verifica:
|
|
1063
1079
|
|
|
1064
1080
|
- \`VersionControl.versions[*].path\` en \`gitpagedocs/config.json\`
|
|
1065
|
-
- config de
|
|
1081
|
+
- config de versión tiene \`routes\` y \`menus-header\` válidos
|
|
1066
1082
|
- markdown existe para cada idioma
|
|
1067
1083
|
|
|
1068
|
-
## Por
|
|
1084
|
+
## ¿Por qué tema no se aplica correctamente?
|
|
1069
1085
|
|
|
1070
1086
|
Verifica:
|
|
1071
1087
|
|
|
1072
|
-
- \`layoutsConfig.json\` referencia templates
|
|
1073
|
-
- ids de template son
|
|
1088
|
+
- \`layoutsConfig.json\` referencia templates válidos
|
|
1089
|
+
- ids de template son únicos
|
|
1074
1090
|
- tema seleccionado existe en el mapa de temas cargados
|
|
1075
1091
|
|
|
1076
|
-
## Por
|
|
1092
|
+
## ¿Por qué GitHub Pages puede comportarse distinto a local?
|
|
1077
1093
|
|
|
1078
|
-
Porque el build de GitHub Pages habilita la
|
|
1094
|
+
Porque el build de GitHub Pages habilita la página inicial de búsqueda y comportamiento específico de exportación.
|
|
1079
1095
|
|
|
1080
1096
|
## ¿Por qué el icono sigue mostrando texto?
|
|
1081
1097
|
|