@gitpagedocs/cli 0.0.10 → 0.0.12
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/README.md +27 -7
- package/ai/application/run-ai-cli-command.ts +2 -2
- package/builders/theme-template.mjs +3 -0
- package/builders/version-config-builder.mjs +10 -4
- package/content/configuration-examples.mjs +23 -8
- package/content/content-blocks.mjs +142 -0
- package/content/docs-en.mjs +44 -19
- package/content/docs-es.mjs +162 -137
- package/content/docs-pt.mjs +186 -161
- 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 +7 -5
- package/content/practical-es.mjs +8 -6
- package/content/practical-pt.mjs +9 -7
- package/content/theme-backgrounds.mjs +241 -0
- package/contracts/doc-versions.mjs +2 -2
- package/data/animated-layouts.mjs +7583 -0
- package/data/composed-pages.mjs +25 -0
- package/data/default-site-config.mjs +150 -130
- package/data/i18n-langmenu.mjs +34 -28
- package/data/i18n-translations.mjs +7 -7
- package/data/layouts.mjs +4 -1
- package/data/menu-sections.mjs +11 -1
- package/data/path-mappings.mjs +10 -1
- package/data/route-metas.mjs +45 -9
- package/data/theme-colors.mjs +4 -1
- package/package.json +3 -3
- package/runtime/doc-path-resolver.mjs +17 -2
package/content/docs-es.mjs
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
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";
|
|
6
|
+
import { THEME_BACKGROUND_DOCS } from "./theme-backgrounds.mjs";
|
|
3
7
|
|
|
4
8
|
export const docsEs = {
|
|
5
9
|
...practicalEs,
|
|
6
10
|
...operationsEs,
|
|
11
|
+
...overviewsEs,
|
|
12
|
+
contentBlocks: CONTENT_BLOCKS_DOCS.es,
|
|
7
13
|
pdf: `# Documentos PDF
|
|
8
14
|
|
|
9
15
|
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 +39,11 @@ Añade este bloque dentro de \`site\` en \`gitpagedocs/config.json\`:
|
|
|
33
39
|
|
|
34
40
|
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
41
|
|
|
36
|
-
Las acciones PDF usan iconos por defecto. Configura \`site.icons.PdfDownload\` (\`
|
|
42
|
+
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
43
|
|
|
38
44
|
## Ejemplo de ruta y menú
|
|
39
45
|
|
|
40
|
-
En \`gitpagedocs/docs/versions/0.0.
|
|
46
|
+
En \`gitpagedocs/docs/versions/0.0.12/config.json\`, conserva las listas de rutas y menús en el nivel principal:
|
|
41
47
|
|
|
42
48
|
\`\`\`json
|
|
43
49
|
{
|
|
@@ -46,9 +52,9 @@ En \`gitpagedocs/docs/versions/0.0.10/config.json\`, conserva las listas de ruta
|
|
|
46
52
|
"title": { "en": "Project guide (English)", "pt": "Guia do projeto (inglês)", "es": "Guía del proyecto (inglés)" },
|
|
47
53
|
"pdf": {
|
|
48
54
|
"pathPdf": {
|
|
49
|
-
"en": "gitpagedocs/docs/versions/0.0.
|
|
50
|
-
"pt": "gitpagedocs/docs/versions/0.0.
|
|
51
|
-
"es": "gitpagedocs/docs/versions/0.0.
|
|
55
|
+
"en": "gitpagedocs/docs/versions/0.0.12/en/gitpagedocs-project-guide.pdf",
|
|
56
|
+
"pt": "gitpagedocs/docs/versions/0.0.12/en/gitpagedocs-project-guide.pdf",
|
|
57
|
+
"es": "gitpagedocs/docs/versions/0.0.12/en/gitpagedocs-project-guide.pdf"
|
|
52
58
|
},
|
|
53
59
|
"previewEnabled": true,
|
|
54
60
|
"downloadEnabled": true,
|
|
@@ -86,15 +92,15 @@ El botón de nueva pestaña abre el Blob PDF validado en lugar de navegar a la U
|
|
|
86
92
|
`,
|
|
87
93
|
index: `# Git Page Docs
|
|
88
94
|
|
|
89
|
-
Git Page Docs es un runtime de
|
|
95
|
+
Git Page Docs es un runtime de documentación multilenguaje para repositorios que incluyen la carpeta \`gitpagedocs/\`.
|
|
90
96
|
|
|
91
|
-
##
|
|
97
|
+
## Qué ofrece este proyecto
|
|
92
98
|
|
|
93
99
|
- Renderizado markdown multilenguaje (\`en\`, \`pt\`, \`es\`)
|
|
94
|
-
- Ruteo por
|
|
100
|
+
- Ruteo por versión (\`/v/:version\`)
|
|
95
101
|
- Sistema de temas con templates JSON
|
|
96
|
-
-
|
|
97
|
-
-
|
|
102
|
+
- Ejecución local y en GitHub Pages
|
|
103
|
+
- Búsqueda de repositorio + render remoto opcional
|
|
98
104
|
|
|
99
105
|
## Contrato de carpetas
|
|
100
106
|
|
|
@@ -107,14 +113,14 @@ El runtime espera esta estructura:
|
|
|
107
113
|
- \`gitpagelayouts/layoutsConfig.json\`
|
|
108
114
|
- \`gitpagelayouts/templates/*.json\`
|
|
109
115
|
|
|
110
|
-
##
|
|
116
|
+
## Navegación rápida
|
|
111
117
|
|
|
112
118
|
- 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
|
|
119
|
+
- Abre **Configuración** para detalle completo de \`config.json\`.
|
|
120
|
+
- Abre **Publicación** para comportamiento local/producción/GitHub Pages.
|
|
121
|
+
- Abre **Arquitectura** para mapa de código y flujo de datos.
|
|
122
|
+
- Abre **Temas y layouts** para creación de templates.
|
|
123
|
+
- Abre **Rutas autorizadas** para configurar clave, roles y autenticación externa.
|
|
118
124
|
- Abre **FAQ** para troubleshooting.
|
|
119
125
|
|
|
120
126
|
## Referencias detalladas
|
|
@@ -122,13 +128,14 @@ El runtime espera esta estructura:
|
|
|
122
128
|
- **Referencia de la CLI**: instalación, todos los comandos y flags de compatibilidad.
|
|
123
129
|
- **Servidor MCP**: cliente, 20 tools, 7 resources y configuración de proveedores.
|
|
124
130
|
- **Navegación y submenús**: árboles recursivos, URLs y prioridad de breadcrumbs.
|
|
131
|
+
- **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
132
|
- **Modo foco**: copiar/descargar Markdown y navegar por sección/documento.
|
|
126
133
|
- **Accesibilidad y narración**: voces del navegador, controles e interacción con medios.
|
|
127
134
|
- **Documentos PDF**: vista previa nativa, descarga/nueva pestaña y la guía incluida en inglés.
|
|
128
135
|
- **Recetas de configuración**: un sitio multilingüe completo y un menú con secciones dentro de secciones.
|
|
129
136
|
- **Migración y compatibilidad**: actualizar configuraciones desde la versión 0.0.1 conservando tu contenido.
|
|
130
137
|
- **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
|
|
138
|
+
- **Contribución y validación**: archivos fuente, generación, contratos públicos y comprobaciónes de publicación.
|
|
132
139
|
- **Contenedores HTML**: páginas locales y externas, configuración de rutas/menús y el ejemplo interactivo DOOM.
|
|
133
140
|
|
|
134
141
|
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 +188,35 @@ El repositorio fija pnpm en \`packageManager\`. \`pnpm dev\` activa la búsqueda
|
|
|
181
188
|
|
|
182
189
|
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
190
|
`,
|
|
184
|
-
projectOverview: `#
|
|
191
|
+
projectOverview: `# Visión general del proyecto
|
|
185
192
|
|
|
186
|
-
Git Page Docs es un monorepo pnpm + turborepo que convierte la carpeta \`gitpagedocs/\` de un repositorio en un sitio de
|
|
193
|
+
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
194
|
|
|
188
195
|
## Paquetes del monorepo
|
|
189
196
|
|
|
190
|
-
- **frontend/** — visor Next.js 15 (App Router, React 19), exportado
|
|
197
|
+
- **frontend/** — visor Next.js 15 (App Router, React 19), exportado estáticamente para GitHub Pages.
|
|
191
198
|
- **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
|
|
199
|
+
- **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
200
|
- **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 herramientas + 7 recursos).
|
|
194
201
|
- **gitpagedocs/** — el contrato del usuario: \`config.json\`, docs versionados y layouts.
|
|
195
202
|
|
|
196
203
|
## Stack
|
|
197
204
|
|
|
198
|
-
- Next.js 15 (App Router) + React 19 + TypeScript;
|
|
205
|
+
- Next.js 15 (App Router) + React 19 + TypeScript; exportación estática para GitHub Pages
|
|
199
206
|
- gray-matter + marked para Markdown; react-icons
|
|
200
207
|
- pnpm workspaces + turborepo; Vitest + Playwright; ESLint
|
|
201
208
|
|
|
202
209
|
## Destacados
|
|
203
210
|
|
|
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)
|
|
211
|
+
- Multilingüe (\`en\`, \`pt\`, \`es\`) y rutas por versión (\`/v/:version\`)
|
|
212
|
+
- Sistema de IA con 14 proveedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI y más) con streaming
|
|
213
|
+
- Claves de IA **cifradas en reposo** (AES-256-GCM) detrás de una contraseña local — nunca en texto plano
|
|
207
214
|
- **Panel de chat de IA** en los docs + una **consola \`/ai\`** dedicada
|
|
208
|
-
- Sistema de 64 temas (variantes oscuras y claras);
|
|
215
|
+
- Sistema de 64 temas (variantes oscuras y claras); ejecución local y en GitHub Pages
|
|
209
216
|
`,
|
|
210
217
|
functionalities: `# Funcionalidades
|
|
211
218
|
|
|
212
|
-
Referencia completa de opciones CLI, claves de
|
|
219
|
+
Referencia completa de opciones CLI, claves de configuración y funciones del runtime.
|
|
213
220
|
|
|
214
221
|
## Línea de comandos
|
|
215
222
|
|
|
@@ -217,23 +224,23 @@ Consulta **Referencia de la CLI** para comandos, flags, ejemplos y compatibilida
|
|
|
217
224
|
|
|
218
225
|
## Tipos de contenido
|
|
219
226
|
|
|
220
|
-
| Tipo | Clave config |
|
|
227
|
+
| Tipo | Clave config | Descripción |
|
|
221
228
|
|------|--------------|-------------|
|
|
222
229
|
| Markdown | \`routes-md\` | Archivos .md con \`path\` por idioma |
|
|
223
230
|
| HTML | \`routes-html\` | \`path\` local o \`url\` externa |
|
|
224
|
-
|
|
|
231
|
+
| Vídeo | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
|
|
225
232
|
| Audio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
|
|
226
233
|
| PDF | \`routes-pdf\` | \`pdf.pathPdf\` por idioma; vista previa nativa y descarga |
|
|
227
234
|
|
|
228
|
-
## Visor de
|
|
235
|
+
## Visor de código fuente
|
|
229
236
|
|
|
230
|
-
El config de
|
|
237
|
+
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
238
|
|
|
232
|
-
-
|
|
233
|
-
-
|
|
239
|
+
- Árbol del repositorio desde \`source-viewer-path\`; la branch por defecto es \`main\`
|
|
240
|
+
- Navegación por carpetas y filtro de archivos
|
|
234
241
|
- Listado de directorios estilo GitHub
|
|
235
|
-
- Renderizado de
|
|
236
|
-
- Alternancia vista previa/
|
|
242
|
+
- Renderizado de código con números de línea
|
|
243
|
+
- Alternancia vista previa/código para Markdown, incluido \`README.md\`
|
|
237
244
|
- Carpetas colapsables en la barra lateral
|
|
238
245
|
|
|
239
246
|
## Claves de config (site)
|
|
@@ -243,108 +250,112 @@ El config de version puede renderizar un contenedor **Codigo fuente** via \`rout
|
|
|
243
250
|
- \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
|
|
244
251
|
- Idiomas: \`site.languages\` (activa/desactiva cada uno); textos de la UI: \`gitpagedocs/langs/<lang>.json\`
|
|
245
252
|
|
|
246
|
-
##
|
|
253
|
+
## Reproducción de medios (un sonido a la vez)
|
|
247
254
|
|
|
248
|
-
\`site.mediaExclusivePlayback\` (por defecto \`true\`): reproducir un
|
|
255
|
+
\`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
256
|
|
|
250
|
-
Para mostrar un
|
|
257
|
+
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
258
|
|
|
252
259
|
## Variables de entorno
|
|
253
260
|
|
|
254
|
-
- \`GITPAGEDOCS_REPOSITORY_SEARCH\` –
|
|
261
|
+
- \`GITPAGEDOCS_REPOSITORY_SEARCH\` – búsqueda de repositorio (local)
|
|
255
262
|
- \`GITHUB_ACTIONS\` – modo build GitHub Pages
|
|
256
263
|
|
|
257
264
|
## Asistente de IA
|
|
258
265
|
|
|
259
|
-
Los docs traen un asistente de IA en dos superficies: un **panel de chat** dentro de los docs (
|
|
266
|
+
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
267
|
|
|
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
|
|
268
|
+
- **14 proveedores** en un único core compartido: OpenAI, Anthropic, Gemini, OpenRouter, Ollama, Azure OpenAI, Mistral, DeepSeek, Cohere, Groq, xAI, Together, Fireworks, Perplexity.
|
|
269
|
+
- **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.
|
|
270
|
+
- **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.
|
|
271
|
+
- **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
272
|
- **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
|
-
- **
|
|
273
|
+
- **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
274
|
|
|
268
275
|
## Servidor MCP
|
|
269
276
|
|
|
270
|
-
\`gitpagedocs mcp start\` levanta un servidor Model Context Protocol (stdio) que expone **20 tools** (sistema de archivos, IA,
|
|
277
|
+
\`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
278
|
`,
|
|
272
|
-
configuration: `#
|
|
279
|
+
configuration: `# Configuración
|
|
273
280
|
|
|
274
|
-
La
|
|
281
|
+
La configuración de runtime está en \`gitpagedocs/config.json\`. Los textos de la UI viven al lado, un archivo por idioma.
|
|
275
282
|
|
|
276
283
|
## Idiomas (\`site.languages\` + \`langs/\`)
|
|
277
284
|
|
|
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,
|
|
285
|
+
- \`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.
|
|
286
|
+
- \`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
287
|
- Para agregar un idioma, crea \`langs/<lang>.json\` y agrega \`"<lang>": true\` en \`site.languages\`.
|
|
281
|
-
- Los \`config.json\` antiguos que
|
|
288
|
+
- 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
289
|
|
|
283
|
-
##
|
|
290
|
+
## Sección \`site\`
|
|
284
291
|
|
|
285
292
|
Claves principales:
|
|
286
293
|
|
|
287
|
-
- \`name\`:
|
|
294
|
+
- \`name\`: título del proyecto en UI
|
|
288
295
|
- \`defaultLanguage\`: idioma por defecto
|
|
289
296
|
- \`HideThemeSelector\`: ocultar/mostrar selector de tema
|
|
290
297
|
- \`ThemeDefault\`: id del tema inicial
|
|
291
298
|
- \`ThemeModeDefault\`: modo inicial (\`light\` o \`dark\`)
|
|
292
299
|
- \`ProjectLink\`: URL de repositorio para acciones de cabecera
|
|
293
|
-
- \`docsVersion\`:
|
|
300
|
+
- \`docsVersion\`: versión seleccionada por defecto
|
|
294
301
|
- \`ActiveNavigation\`: habilita la navegación rápida y el atajo Ctrl+K
|
|
295
302
|
- \`FocusMode\`: habilita modo foco/lectura
|
|
296
303
|
- \`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\`:
|
|
304
|
+
- \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamaño del icono principal
|
|
298
305
|
- \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: icono principal (light/dark)
|
|
299
|
-
- \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`:
|
|
306
|
+
- \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamaño del icono enlace del proyecto
|
|
300
307
|
- \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: icono enlace del proyecto
|
|
301
|
-
- \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`:
|
|
302
|
-
- \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icono enlaces de
|
|
303
|
-
- \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`:
|
|
308
|
+
- \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamaño del icono enlaces de versión
|
|
309
|
+
- \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icono enlaces de versión
|
|
310
|
+
- \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamaño del icono info
|
|
304
311
|
- \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: icono info
|
|
305
|
-
- \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`:
|
|
312
|
+
- \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamaño del icono preview
|
|
306
313
|
- \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: icono preview
|
|
307
314
|
- \`layoutsConfigPath\`: fallback remoto de layouts
|
|
308
|
-
- \`rendering\`: URL
|
|
315
|
+
- \`rendering\`: URL canónica publicada
|
|
309
316
|
|
|
310
317
|
## Controles de idioma, tema, foco, navegación rápida, PDF y documentos
|
|
311
318
|
|
|
312
|
-
En \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuran idioma, tema, foco, navegación Ctrl+K, acciones PDF y navegación al pie de los documentos. Los
|
|
319
|
+
En \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuran idioma, tema, versión, foco, navegación Ctrl+K, acciones PDF y navegación al pie de los documentos. Los nueve controles utilizan React Icons por defecto:
|
|
313
320
|
|
|
314
321
|
\`\`\`json
|
|
315
322
|
{
|
|
316
323
|
"site": {
|
|
317
324
|
"icons": {
|
|
318
325
|
"LanguageSelector": {
|
|
319
|
-
"reactIcon": true, "tag": "
|
|
326
|
+
"reactIcon": true, "tag": "SiGoogletranslate", "size": "22px",
|
|
320
327
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
321
328
|
},
|
|
322
329
|
"ThemeSelector": {
|
|
323
|
-
"reactIcon": true, "tag": "
|
|
330
|
+
"reactIcon": true, "tag": "LuPencil", "size": "22px",
|
|
324
331
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
325
332
|
},
|
|
326
333
|
"FocusMode": {
|
|
327
|
-
"reactIcon": true, "tag": "
|
|
334
|
+
"reactIcon": true, "tag": "LuBookOpen", "size": "22px",
|
|
335
|
+
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
336
|
+
},
|
|
337
|
+
"VersionSelector": {
|
|
338
|
+
"reactIcon": true, "tag": "LuGitBranch", "size": "22px",
|
|
328
339
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
329
340
|
},
|
|
330
341
|
"QuickNavigation": {
|
|
331
|
-
"reactIcon": true, "tag": "
|
|
342
|
+
"reactIcon": true, "tag": "LuSearch", "size": "22px",
|
|
332
343
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
333
344
|
},
|
|
334
345
|
"PdfDownload": {
|
|
335
|
-
"reactIcon": true, "tag": "
|
|
346
|
+
"reactIcon": true, "tag": "LuDownload", "size": "22px",
|
|
336
347
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
337
348
|
},
|
|
338
349
|
"PdfOpenInNewTab": {
|
|
339
|
-
"reactIcon": true, "tag": "
|
|
350
|
+
"reactIcon": true, "tag": "LuExternalLink", "size": "22px",
|
|
340
351
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
341
352
|
},
|
|
342
353
|
"DocumentPrevious": {
|
|
343
|
-
"reactIcon": true, "tag": "
|
|
354
|
+
"reactIcon": true, "tag": "LuChevronLeft", "size": "22px",
|
|
344
355
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
345
356
|
},
|
|
346
357
|
"DocumentNext": {
|
|
347
|
-
"reactIcon": true, "tag": "
|
|
358
|
+
"reactIcon": true, "tag": "LuChevronRight", "size": "22px",
|
|
348
359
|
"colorDark": "currentColor", "colorLight": "currentColor"
|
|
349
360
|
}
|
|
350
361
|
}
|
|
@@ -356,66 +367,68 @@ Cada control es independiente: \`reactIcon: true\` muestra el icono (por defecto
|
|
|
356
367
|
|
|
357
368
|
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
369
|
|
|
359
|
-
##
|
|
370
|
+
## Sección \`VersionControl\`
|
|
371
|
+
|
|
372
|
+
\`site.icons.VersionSelector\` utiliza \`LuGitBranch\` por defecto. Define \`reactIcon: false\` para mostrar el texto de la versión seleccionada; \`true\` muestra el icono. Personaliza los mismos campos \`tag\`, \`size\`, \`colorDark\` y \`colorLight\`. El selector aparece solo cuando hay más de una versión de documentación; conserva el nombre accesible localizado del selector y muestra la versión seleccionada en el tooltip.
|
|
360
373
|
|
|
361
374
|
\`VersionControl.versions\` define:
|
|
362
375
|
|
|
363
|
-
- \`id\`: identificador de
|
|
364
|
-
- \`path\`: ruta de config de
|
|
376
|
+
- \`id\`: identificador de versión
|
|
377
|
+
- \`path\`: ruta de config de versión
|
|
365
378
|
- links opcionales (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
|
|
366
379
|
- metadatos opcionales del source viewer (\`source-viewer\`, \`source-viewer-path\`)
|
|
367
380
|
|
|
368
|
-
##
|
|
381
|
+
## Navegación y rutas
|
|
369
382
|
|
|
370
383
|
- \`routes\`: rutas markdown por idioma (legado)
|
|
371
|
-
- \`menus-header\`:
|
|
372
|
-
- \`translations\`: etiquetas UI para not-found y
|
|
384
|
+
- \`menus-header\`: menú jerarquico
|
|
385
|
+
- \`translations\`: etiquetas UI para not-found y navegación
|
|
373
386
|
|
|
374
|
-
##
|
|
387
|
+
## Autorización (config de versión)
|
|
375
388
|
|
|
376
|
-
- \`auth\`: configuraciones globales de
|
|
389
|
+
- \`auth\`: configuraciones globales de autorización para esa versión
|
|
377
390
|
- \`auth.accessKeys\`: mapa de claves usado por \`authorization.accessKeyId\`
|
|
378
391
|
- \`auth.rolesStorageKey\`: clave de localStorage para bootstrap de roles
|
|
379
392
|
- \`auth.providers\`: adaptadores de proveedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
|
|
380
393
|
|
|
381
|
-
## Tipos de contenido (config de
|
|
394
|
+
## Tipos de contenido (config de versión)
|
|
382
395
|
|
|
383
|
-
Los configs de
|
|
396
|
+
Los configs de versión soportan múltiples tipos:
|
|
384
397
|
|
|
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
|
|
398
|
+
- \`routes-md\`: Rutas markdown con \`title\`, \`description\` (centrados vía \`titlePosition\`, \`descriptionPosition\`)
|
|
399
|
+
- \`routes-source-viewer\`: Contenedores de código fuente con \`source-viewer: true\` y \`source-viewer-path\`
|
|
400
|
+
- \`routes-html\`: Rutas de páginas HTML por idioma
|
|
401
|
+
- \`routes-video\`: Config de vídeo con \`video.videoType\` (youtube, vimeo, mp4, etc.) y \`video.pathVideo\`
|
|
389
402
|
- \`routes-audio\`: Config de audio con \`audio.audioType\` (youtube, mp3, etc.) y \`audio.pathAudio\`
|
|
390
403
|
- \`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
|
|
404
|
+
- \`authorization\` (md/html/vídeo): guardia de acceso por clave, roles y autenticación externa
|
|
405
|
+
- \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`, \`menus-header-pdf\`: menús por tipo
|
|
406
|
+
- \`hierarchyPage\`: orden de contenedores en la página \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
|
|
407
|
+
- \`hierarchyMenu\`: orden de secciones del menú \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
|
|
395
408
|
|
|
396
409
|
Cada ruta puede incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
|
|
397
410
|
|
|
398
|
-
Los ajustes que comparten todas las rutas se escriben una sola vez en \`routeDefaults\`, al inicio del config de la
|
|
411
|
+
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
412
|
|
|
400
413
|
## Variables por ruta (blockLink, container, url, browseAll)
|
|
401
414
|
|
|
402
415
|
Opciones por ruta en \`routes-md\`, \`routes-html\` y \`routes-video\`:
|
|
403
416
|
|
|
404
417
|
- **\`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
|
|
418
|
+
- **\`container\`** – \`"full"\` = altura automática; numero (ej: \`500\`) = altura fija en px con overflow auto. Se aplica a md, html y vídeo.
|
|
419
|
+
- **\`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
420
|
- **\`browseAll\`** (defecto: false) – Si true, el contenedor muestra botones Anterior/Siguiente para navegar entre todos los items de ese tipo.
|
|
408
421
|
|
|
409
422
|
## Tipos de contenido: path vs url (HTML)
|
|
410
423
|
|
|
411
424
|
- **Markdown (\`routes-md\`)**: usa \`path\` apuntando a archivos \`.md\` locales.
|
|
412
|
-
- **HTML (\`routes-html\`)**: usa \`path\` para archivos HTML locales (sin
|
|
413
|
-
- **
|
|
425
|
+
- **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.
|
|
426
|
+
- **Vídeo (\`routes-video\`)**: usa \`video.pathVideo\` y \`video.videoType\` (youtube, vimeo, mp4, etc.).
|
|
414
427
|
|
|
415
428
|
## Variables de entorno
|
|
416
429
|
|
|
417
|
-
- \`GITPAGEDOCS_REPOSITORY_SEARCH\`: activa/desactiva
|
|
418
|
-
- \`GITHUB_ACTIONS\`: habilita comportamiento
|
|
430
|
+
- \`GITPAGEDOCS_REPOSITORY_SEARCH\`: activa/desactiva búsqueda remota en local
|
|
431
|
+
- \`GITHUB_ACTIONS\`: habilita comportamiento específico de GitHub Pages
|
|
419
432
|
|
|
420
433
|
## Comportamiento del sitio y valores predeterminados
|
|
421
434
|
|
|
@@ -455,7 +468,7 @@ La entrada \`QuickNavigation\` controla la apariencia de icono/texto del botón
|
|
|
455
468
|
`,
|
|
456
469
|
deployment: `# Publicación
|
|
457
470
|
|
|
458
|
-
Elige el visor oficial para un repositorio público,
|
|
471
|
+
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
472
|
|
|
460
473
|
## Visor oficial
|
|
461
474
|
|
|
@@ -491,36 +504,36 @@ En un checkout del runtime con dependencias instaladas, \`node cli/index.mjs --h
|
|
|
491
504
|
|
|
492
505
|
## Releases npm para mantenedores
|
|
493
506
|
|
|
494
|
-
El monorepo
|
|
507
|
+
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
508
|
|
|
496
509
|
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
510
|
`,
|
|
498
511
|
architecture: `# Arquitectura
|
|
499
512
|
|
|
500
|
-
El proyecto
|
|
513
|
+
El proyecto está organizado por fronteras de feature y responsabilidades de runtime.
|
|
501
514
|
|
|
502
515
|
## Paquetes
|
|
503
516
|
|
|
504
517
|
- **frontend/** — visor Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
|
|
505
|
-
- **cli/** — el bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de
|
|
518
|
+
- **cli/** — el bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentación con IA).
|
|
506
519
|
- **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ i18n/ ports/.
|
|
507
520
|
- **mcp/** — \`@gitpagedocs/mcp\`: herramientas + recursos MCP que delegan a tools/.
|
|
508
521
|
|
|
509
522
|
## Modulos principales (frontend)
|
|
510
523
|
|
|
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/
|
|
524
|
+
- \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rutas, generateStaticParams, selección de shell.
|
|
525
|
+
- \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versión, parse markdown, layouts + temas.
|
|
526
|
+
- \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versión/tema, sync de URL, montaje del chat de IA.
|
|
514
527
|
|
|
515
528
|
## Seguridad: credenciales de IA cifradas
|
|
516
529
|
|
|
517
|
-
La consola \`/ai\` y el panel de chat exigen una
|
|
530
|
+
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
531
|
|
|
519
532
|
## Flujo de datos
|
|
520
533
|
|
|
521
534
|
1. Llega la ruta (\`/owner/repo/v/x.y.z\` o equivalente local)
|
|
522
535
|
2. Se resuelve config (local o remoto)
|
|
523
|
-
3. Config de
|
|
536
|
+
3. Config de versión sobreescribe rutas/menús base
|
|
524
537
|
4. Markdown se carga y convierte a HTML
|
|
525
538
|
5. Template de layout se resuelve y aplica en CSS vars
|
|
526
539
|
6. Shell renderiza contenido y controles
|
|
@@ -529,7 +542,7 @@ La consola \`/ai\` y el panel de chat exigen una contrasena local que deriva (PB
|
|
|
529
542
|
|
|
530
543
|
- fallback de carga para layouts/templates
|
|
531
544
|
- carga de markdown por idioma con fallback de error
|
|
532
|
-
-
|
|
545
|
+
- sincronización de idioma/versión/tema vía localStorage
|
|
533
546
|
`,
|
|
534
547
|
githubIssuesProjects: `# GitHub Issues y Projects
|
|
535
548
|
|
|
@@ -556,21 +569,21 @@ Conceptos basicos de Git para principiantes.
|
|
|
556
569
|
|
|
557
570
|
Protege rutas por clave de acceso, roles requeridos y proveedores externos.
|
|
558
571
|
|
|
559
|
-
## Ubicacion del config de
|
|
572
|
+
## Ubicacion del config de versión
|
|
560
573
|
|
|
561
574
|
Configura en:
|
|
562
575
|
|
|
563
576
|
- \`gitpagedocs/docs/versions/<version>/config.json\`
|
|
564
577
|
|
|
565
|
-
##
|
|
578
|
+
## Sección global auth
|
|
566
579
|
|
|
567
|
-
Usa \`auth\` en la raiz del config de
|
|
580
|
+
Usa \`auth\` en la raiz del config de versión:
|
|
568
581
|
|
|
569
582
|
- \`accessKeys\`: mapa de ids de clave al secreto esperado
|
|
570
583
|
- \`rolesStorageKey\`: clave de localStorage para bootstrap de roles
|
|
571
584
|
- \`providers\`: lista de proveedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
|
|
572
585
|
|
|
573
|
-
##
|
|
586
|
+
## Autorización por ruta
|
|
574
587
|
|
|
575
588
|
Dentro de cada ruta (\`routes-md\`, \`routes-html\`, \`routes-video\`):
|
|
576
589
|
|
|
@@ -587,7 +600,7 @@ Define \`authorization.accessKeyId\` y la clave correspondiente en \`auth.access
|
|
|
587
600
|
|
|
588
601
|
### Fase B - Roles
|
|
589
602
|
|
|
590
|
-
Define \`authorization.requiredRoles\` con uno o
|
|
603
|
+
Define \`authorization.requiredRoles\` con uno o más roles.
|
|
591
604
|
|
|
592
605
|
Los roles pueden venir de:
|
|
593
606
|
|
|
@@ -629,11 +642,11 @@ Cada template normalmente incluye:
|
|
|
629
642
|
|
|
630
643
|
## Comportamiento en runtime
|
|
631
644
|
|
|
632
|
-
- tema activo viene de config/
|
|
645
|
+
- tema activo viene de config/selección de usuario
|
|
633
646
|
- toggle light/dark resuelve tema pareado por referencia
|
|
634
647
|
- variables CSS se generan desde tokens del template
|
|
635
648
|
|
|
636
|
-
## Buenas
|
|
649
|
+
## Buenas prácticas
|
|
637
650
|
|
|
638
651
|
- mantener contraste accesible
|
|
639
652
|
- mantener escala consistente de espacios y bordes
|
|
@@ -646,6 +659,8 @@ Elige un tema mediante el selector o configura \`site.ThemeDefault\` con su ID e
|
|
|
646
659
|
En tu repositorio, ejecuta la CLI con \`--layoutconfig\`, edita la plantilla generada y conserva el ID coherente con \`layoutsConfig.json\`. El contenido de ruta y \`site.icons\` son independientes del catálogo de temas. Usa \`currentColor\` para iconos que heredan el color de texto o configura colores claros/oscuros con contraste suficiente.
|
|
647
660
|
|
|
648
661
|
Al contribuir en Git Page Docs, la fuente es \`gitpagelayouts/v2/base.json\` junto con \`gitpagelayouts/v2/layouts/<id>.json\`. Ejecuta \`pnpm layouts:sync\` para generar plantillas y documentación. La sincronización puede sobrescribir las ediciones directas de plantillas generadas.
|
|
662
|
+
|
|
663
|
+
${THEME_BACKGROUND_DOCS.es}
|
|
649
664
|
`,
|
|
650
665
|
mcp: `# Servidor MCP
|
|
651
666
|
|
|
@@ -706,7 +721,7 @@ Selecciona el proveedor con \`configure_ai_provider\` o con \`.gitpagedocs-mcp.j
|
|
|
706
721
|
| \`fireworks\` | \`FIREWORKS_API_KEY\` |
|
|
707
722
|
| \`perplexity\` | \`PERPLEXITY_API_KEY\` |
|
|
708
723
|
|
|
709
|
-
|
|
724
|
+
Cuando la selección guardada está ausente, no se puede leer o contiene JSON inválido, el proveedor predeterminado es OpenAI. Un ID de proveedor desconocido en JSON legible produce un error explícito sin seleccionar otro proveedor. Ollama no requiere clave de API; el servicio local y el modelo elegido deben estar disponibles. \`OLLAMA_BASE_URL\` es opcional. La URL base de Azure es la URL completa de la operación de chat, incluido deployment y versión de API cuando sean necesarios. La lista de modelos es un catálogo distribuido, no una comprobación en tiempo real.
|
|
710
725
|
|
|
711
726
|
## Referencia de tools
|
|
712
727
|
|
|
@@ -762,7 +777,7 @@ La generación envía el contenido seleccionado del proyecto al proveedor config
|
|
|
762
777
|
|
|
763
778
|
- Lectura de archivos: hasta 512.000 bytes. Listado: hasta 2.000 entradas; árboles recopilados del proyecto: 400 entradas.
|
|
764
779
|
- Búsqueda: hasta 5.000 entradas, 200 resultados y 240 caracteres por línea encontrada.
|
|
765
|
-
- Recopilación de documentación: primeros 40 archivos Markdown entre hasta 2.000 entradas; se omiten archivos superiores a 40.000 bytes. El contexto
|
|
780
|
+
- Recopilación de documentación: primeros 40 archivos Markdown entre hasta 2.000 entradas; se omiten archivos superiores a 40.000 bytes. El contexto recopilado de archivos y Markdown se limita a 24.000 caracteres. No es un límite global del prompt: árbol/paquete, documento existente y pregunta proporcionada pueden añadir contenido según la tool seleccionada.
|
|
766
781
|
- El listado omite carpetas de dependencias/build como \`node_modules\`, \`.git\`, \`.next\`, \`out\`, \`dist\`, \`prebuilt\`, \`.turbo\` y \`coverage\`. No interpreta \`.gitignore\`; archivos como \`.env\` no se excluyen automáticamente. Ejecuta solo en proyectos de confianza y selecciona el contenido que se expondrá.
|
|
767
782
|
- La verificación de rutas es léxica; el proceso no es un sandbox del sistema operativo ni garantiza aislamiento de symlinks/junctions. Leer \`project://config\` puede importar configuración JavaScript/TypeScript.
|
|
768
783
|
- Los fallos de tools incluyen \`isError: true\`. Los resources ausentes devuelven \`Unavailable: ...\`. Revisa stderr en el cliente para errores de inicio; stdout está reservado para JSON-RPC.
|
|
@@ -772,7 +787,7 @@ La generación envía el contenido seleccionado del proyecto al proveedor config
|
|
|
772
787
|
|
|
773
788
|
## Comandos CLI
|
|
774
789
|
|
|
775
|
-
| Comando |
|
|
790
|
+
| Comando | Descripción |
|
|
776
791
|
|---------|-------------|
|
|
777
792
|
| \`npx @gitpagedocs/cli\` | Genera config y docs en \`gitpagedocs/\` |
|
|
778
793
|
| \`npx @gitpagedocs/cli --layoutconfig\` | Tambien genera layouts/templates locales en \`gitpagelayouts/\` |
|
|
@@ -780,28 +795,28 @@ La generación envía el contenido seleccionado del proyecto al proveedor config
|
|
|
780
795
|
| \`npx @gitpagedocs/cli --push --owner X --repo Y\` | Configura workflow, commit, push |
|
|
781
796
|
| \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interactivo con prompts (por defecto en una terminal) |
|
|
782
797
|
| \`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
|
|
798
|
+
| \`gitpagedocs ai\` | Generador interactivo de documentación con IA |
|
|
799
|
+
| \`gitpagedocs chat [pregunta]\` | Chat de IA con streaming en la terminal (REPL en TTY; respuesta única con pregunta o stdin) |
|
|
800
|
+
| \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista proveedores de IA / modelos del catálogo |
|
|
801
|
+
| \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Genera documentación con IA |
|
|
802
|
+
| \`gitpagedocs deploy\` / \`pages [actions\\|deploy]\` | Configura GitHub Pages vía Actions + push |
|
|
788
803
|
| \`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\` |
|
|
804
|
+
| \`gitpagedocs password\` | Define la contraseña de acceso a la documentación (clave pública en \`site.docsAccess\`) |
|
|
805
|
+
| \`gitpagedocs config\` / \`config clear\` | Muestra la config resuelta / borra la config guardada y la bóveda de claves |
|
|
806
|
+
| \`gitpagedocs doctor\` / \`version\` / \`update\` | Diagnóstico / versión / comprobación de actualización en el registro |
|
|
792
807
|
| \`gitpagedocs mcp start\` | Inicia el servidor MCP por stdio |
|
|
793
808
|
|
|
794
809
|
Instala globalmente con \`npm install -g @gitpagedocs/cli\` o ejecuta sin instalar con \`npx @gitpagedocs/cli\`.
|
|
795
810
|
|
|
796
811
|
## Opciones CLI
|
|
797
812
|
|
|
798
|
-
| Opcion |
|
|
813
|
+
| Opcion | Descripción |
|
|
799
814
|
|--------|-------------|
|
|
800
815
|
| \`--owner <user>\` | Owner de GitHub |
|
|
801
816
|
| \`--repo <repo>\` | Repositorio GitHub |
|
|
802
817
|
| \`--path <subpath>\` | Subruta de docs (ej: \`docs\`); sin ella, base path = nombre del repo para CSS/JS en project sites |
|
|
803
818
|
| \`--output <dir>\` | Directorio de salida (default: \`gitpagedocs\`) |
|
|
804
|
-
| \`--search <true-or-false>\` | Habilita/deshabilita
|
|
819
|
+
| \`--search <true-or-false>\` | Habilita/deshabilita búsqueda de repositorio (\`--home\`) |
|
|
805
820
|
| \`--layoutconfig\` | Genera layouts locales en \`gitpagelayouts/\` |
|
|
806
821
|
| \`--layouts-dir <dir>\` | Carpeta de layouts locales (por defecto: \`gitpagelayouts\`) |
|
|
807
822
|
| \`--push\` | Crea workflow, commit de artefactos, push |
|
|
@@ -812,7 +827,7 @@ Instala globalmente con \`npm install -g @gitpagedocs/cli\` o ejecuta sin instal
|
|
|
812
827
|
|
|
813
828
|
- \`gitpagedocs/config.json\` – config raiz
|
|
814
829
|
- \`gitpagedocs/icon.svg\` – icono por defecto
|
|
815
|
-
- \`gitpagedocs/docs/versions/<ver>/config.json\` – rutas por
|
|
830
|
+
- \`gitpagedocs/docs/versions/<ver>/config.json\` – rutas por versión
|
|
816
831
|
- \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs en markdown
|
|
817
832
|
- \`gitpagelayouts/\` – solo con \`--layoutconfig\` (carpeta configurable con \`--layouts-dir\`)
|
|
818
833
|
|
|
@@ -857,7 +872,7 @@ Las rutas definen el contenido; los menús definen cómo encontrarlo. Configúra
|
|
|
857
872
|
|
|
858
873
|
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
874
|
|
|
860
|
-
Los grupos sin \`path-click\` organizan sus hijos. Para
|
|
875
|
+
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
876
|
|
|
862
877
|
\`\`\`json
|
|
863
878
|
{
|
|
@@ -925,6 +940,14 @@ Los grupos sin \`path-click\` organizan sus hijos. Para un destino Markdown, uti
|
|
|
925
940
|
|
|
926
941
|
## Comportamiento del anidamiento
|
|
927
942
|
|
|
943
|
+
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.
|
|
944
|
+
|
|
945
|
+
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:
|
|
946
|
+
|
|
947
|
+
\`\`\`json
|
|
948
|
+
${PARENT_MENU_JSON}
|
|
949
|
+
\`\`\`
|
|
950
|
+
|
|
928
951
|
\`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
952
|
|
|
930
953
|
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 +962,7 @@ El árbol sirve para navegación lateral, etiquetas de búsqueda, expansión de
|
|
|
939
962
|
|
|
940
963
|
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
964
|
|
|
942
|
-
Los botones anterior/siguiente del pie usan \`site.icons.DocumentPrevious\` (\`
|
|
965
|
+
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
966
|
|
|
944
967
|
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
968
|
`,
|
|
@@ -978,6 +1001,8 @@ Cada opción tiene valor predeterminado \`true\`; \`false\` oculta la acción o
|
|
|
978
1001
|
|
|
979
1002
|
## Copiar y descargar
|
|
980
1003
|
|
|
1004
|
+
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.
|
|
1005
|
+
|
|
981
1006
|
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
1007
|
|
|
983
1008
|
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 +1074,7 @@ Consulta la [referencia de Web Speech API](https://developer.mozilla.org/en-US/d
|
|
|
1049
1074
|
`,
|
|
1050
1075
|
faq: `# FAQ
|
|
1051
1076
|
|
|
1052
|
-
## Por
|
|
1077
|
+
## ¿Por qué repositorios remotos no abren en local?
|
|
1053
1078
|
|
|
1054
1079
|
Verifica:
|
|
1055
1080
|
|
|
@@ -1057,29 +1082,29 @@ Verifica:
|
|
|
1057
1082
|
- repositorio objetivo contiene \`gitpagedocs/config.json\`
|
|
1058
1083
|
- paths markdown del repositorio coinciden con su config de rutas
|
|
1059
1084
|
|
|
1060
|
-
## Por
|
|
1085
|
+
## ¿Por qué una ruta de versión muestra contenido incorrecto?
|
|
1061
1086
|
|
|
1062
1087
|
Verifica:
|
|
1063
1088
|
|
|
1064
1089
|
- \`VersionControl.versions[*].path\` en \`gitpagedocs/config.json\`
|
|
1065
|
-
- config de
|
|
1090
|
+
- config de versión tiene \`routes\` y \`menus-header\` válidos
|
|
1066
1091
|
- markdown existe para cada idioma
|
|
1067
1092
|
|
|
1068
|
-
## Por
|
|
1093
|
+
## ¿Por qué tema no se aplica correctamente?
|
|
1069
1094
|
|
|
1070
1095
|
Verifica:
|
|
1071
1096
|
|
|
1072
|
-
- \`layoutsConfig.json\` referencia templates
|
|
1073
|
-
- ids de template son
|
|
1097
|
+
- \`layoutsConfig.json\` referencia templates válidos
|
|
1098
|
+
- ids de template son únicos
|
|
1074
1099
|
- tema seleccionado existe en el mapa de temas cargados
|
|
1075
1100
|
|
|
1076
|
-
## Por
|
|
1101
|
+
## ¿Por qué GitHub Pages puede comportarse distinto a local?
|
|
1077
1102
|
|
|
1078
|
-
Porque el build de GitHub Pages habilita la
|
|
1103
|
+
Porque el build de GitHub Pages habilita la página inicial de búsqueda y comportamiento específico de exportación.
|
|
1079
1104
|
|
|
1080
1105
|
## ¿Por qué el icono sigue mostrando texto?
|
|
1081
1106
|
|
|
1082
|
-
Define \`site.icons.<Control>.reactIcon\` como booleano \`true\`, con el nombre exacto exportado por React Icons en \`tag\`. LanguageSelector, ThemeSelector, FocusMode, QuickNavigation, PdfDownload, PdfOpenInNewTab, DocumentPrevious y DocumentNext usan iconos por defecto; cambia cualquier entrada a \`false\` para mostrar texto. Los campos planos \`Icon*ReactIcones\` tienen prioridad si existen ambos formatos. Comprueba si la propia función está desactivada mediante \`HideThemeSelector\`, \`FocusMode\` o las acciones PDF.
|
|
1107
|
+
Define \`site.icons.<Control>.reactIcon\` como booleano \`true\`, con el nombre exacto exportado por React Icons en \`tag\`. LanguageSelector, ThemeSelector, VersionSelector, FocusMode, QuickNavigation, PdfDownload, PdfOpenInNewTab, DocumentPrevious y DocumentNext usan iconos por defecto; cambia cualquier entrada a \`false\` para mostrar texto. Los campos planos \`Icon*ReactIcones\` tienen prioridad si existen ambos formatos. Comprueba si la propia función está desactivada mediante \`HideThemeSelector\`, \`FocusMode\` o las acciones PDF.
|
|
1083
1108
|
|
|
1084
1109
|
## ¿Por qué los hijos del menú o breadcrumbs son diferentes?
|
|
1085
1110
|
|