@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-pt.mjs
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { practicalPt } from "./practical-pt.mjs";
|
|
2
2
|
import { operationsPt } from "./operations-pt.mjs";
|
|
3
|
+
import { overviewsPt } from "./overviews-pt.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 docsPt = {
|
|
5
9
|
...practicalPt,
|
|
6
10
|
...operationsPt,
|
|
11
|
+
...overviewsPt,
|
|
12
|
+
contentBlocks: CONTENT_BLOCKS_DOCS.pt,
|
|
7
13
|
pdf: `# Documentos PDF
|
|
8
14
|
|
|
9
15
|
PDF é um tipo de conteúdo próprio, junto com Markdown, HTML, código-fonte, vídeo e áudio. A prévia usa o visualizador nativo de PDF do navegador. As ações de baixar e abrir em nova aba são configuráveis de forma independente.
|
|
@@ -33,11 +39,11 @@ Adicione este bloco dentro de \`site\` em \`gitpagedocs/config.json\`:
|
|
|
33
39
|
|
|
34
40
|
A precedência das ações é \`rota.pdf.<flag>\` > \`site.pdf.<flag>\` > \`true\`. Um \`true\` explícito na rota habilita aquela ação mesmo quando o padrão do site é \`false\`; \`site.pdf.enabled: false\` continua desabilitando todos os PDFs. Sem caminho para o idioma selecionado, o PDF fica indisponível; não há fallback automático de idioma.
|
|
35
41
|
|
|
36
|
-
As ações PDF usam ícones por padrão. Configure \`site.icons.PdfDownload\` (\`
|
|
42
|
+
As ações PDF usam ícones por padrão. Configure \`site.icons.PdfDownload\` (\`LuDownload\`) e \`site.icons.PdfOpenInNewTab\` (\`LuExternalLink\`) individualmente com \`reactIcon\`, \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. Por exemplo, \`"PdfDownload": { "reactIcon": false }\` exibe texto no download enquanto a nova aba continua com ícone. A aparência não altera as opções de habilitação acima.
|
|
37
43
|
|
|
38
44
|
## Exemplo de rota e menu
|
|
39
45
|
|
|
40
|
-
Em \`gitpagedocs/docs/versions/0.0.
|
|
46
|
+
Em \`gitpagedocs/docs/versions/0.0.12/config.json\`, mantenha as listas de rotas e menus no nível principal:
|
|
41
47
|
|
|
42
48
|
\`\`\`json
|
|
43
49
|
{
|
|
@@ -46,9 +52,9 @@ Em \`gitpagedocs/docs/versions/0.0.10/config.json\`, mantenha as listas de rotas
|
|
|
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 @@ O botão de nova aba abre o Blob PDF validado em vez de navegar para a URL raw d
|
|
|
86
92
|
`,
|
|
87
93
|
index: `# Git Page Docs
|
|
88
94
|
|
|
89
|
-
Git Page Docs
|
|
95
|
+
Git Page Docs é um runtime de documentação multi-idioma para repositórios que possuem a pasta \`gitpagedocs/\`.
|
|
90
96
|
|
|
91
97
|
## O que este projeto entrega
|
|
92
98
|
|
|
93
|
-
-
|
|
94
|
-
- Roteamento por
|
|
99
|
+
- Renderização markdown em varios idiomas (\`en\`, \`pt\`, \`es\`)
|
|
100
|
+
- Roteamento por versão (\`/v/:versao\`)
|
|
95
101
|
- Sistema de temas por templates JSON
|
|
96
|
-
-
|
|
97
|
-
- Busca de
|
|
102
|
+
- Execução local e em GitHub Pages
|
|
103
|
+
- Busca de repositório + renderização remota opcional
|
|
98
104
|
|
|
99
105
|
## Contrato de pastas
|
|
100
106
|
|
|
@@ -107,14 +113,14 @@ O runtime espera esta estrutura:
|
|
|
107
113
|
- \`gitpagelayouts/layoutsConfig.json\`
|
|
108
114
|
- \`gitpagelayouts/templates/*.json\`
|
|
109
115
|
|
|
110
|
-
##
|
|
116
|
+
## Navegação rápida
|
|
111
117
|
|
|
112
118
|
- Abra **Primeiros passos** para setup local.
|
|
113
|
-
- Abra **
|
|
114
|
-
- Abra **
|
|
115
|
-
- Abra **Arquitetura** para mapa de
|
|
119
|
+
- Abra **Configuração** para detalhes completos do \`config.json\`.
|
|
120
|
+
- Abra **Publicação** para comportamento local/produção/GitHub Pages.
|
|
121
|
+
- Abra **Arquitetura** para mapa de código e fluxo de dados.
|
|
116
122
|
- Abra **Temas e layouts** para autoria de templates.
|
|
117
|
-
- Abra **Rotas autorizadas** para configurar chave, papeis e
|
|
123
|
+
- Abra **Rotas autorizadas** para configurar chave, papeis e autenticação externa.
|
|
118
124
|
- Abra **FAQ** para troubleshooting.
|
|
119
125
|
|
|
120
126
|
## Referências detalhadas
|
|
@@ -122,6 +128,7 @@ O runtime espera esta estrutura:
|
|
|
122
128
|
- **Referência da CLI**: instalação, todos os comandos e flags de compatibilidade.
|
|
123
129
|
- **Servidor MCP**: cliente, 20 tools, 7 resources e configuração de provedores.
|
|
124
130
|
- **Navegação e submenus**: árvores recursivas, URLs e sobrescritas dos breadcrumbs.
|
|
131
|
+
- **Blocos de conteúdo ordenados**: repita e ordene Markdown, HTML, vídeo, áudio e PDF na mesma página; posicione títulos e descrições configurados independentemente.
|
|
125
132
|
- **Modo foco**: copiar/baixar Markdown e navegar por seção/documento.
|
|
126
133
|
- **Acessibilidade e narração**: vozes do navegador, controles e interação com mídias.
|
|
127
134
|
- **Documentos PDF**: prévia nativa, download/nova aba e o guia incluído em inglês.
|
|
@@ -181,59 +188,59 @@ O repositório fixa o pnpm em \`packageManager\`. \`pnpm dev\` ativa a busca de
|
|
|
181
188
|
|
|
182
189
|
Use Configuração para idiomas, ícones, navegação, foco e narração; Funcionalidades para CLI e MCP; Temas e layouts para tokens visuais; Perguntas frequentes para diagnóstico.
|
|
183
190
|
`,
|
|
184
|
-
projectOverview: `#
|
|
191
|
+
projectOverview: `# Visão geral do projeto
|
|
185
192
|
|
|
186
|
-
Git Page Docs
|
|
193
|
+
Git Page Docs é um monorepo pnpm + turborepo que transforma a pasta \`gitpagedocs/\` de um repositório em um site de documentação multilinguagem e versionado — com assistente de IA integrado e um servidor MCP (Model Context Protocol).
|
|
187
194
|
|
|
188
195
|
## Pacotes do monorepo
|
|
189
196
|
|
|
190
197
|
- **frontend/** — visualizador Next.js 15 (App Router, React 19), exportado estaticamente para o GitHub Pages.
|
|
191
198
|
- **cli/** — o pacote npm publicado \`@gitpagedocs/cli\` (\`npm install -g @gitpagedocs/cli\`): gera a estrutura de docs, documenta com IA, configura o Pages e roda o servidor MCP.
|
|
192
|
-
- **tools/** — \`@gitpagedocs/tools\`, o
|
|
199
|
+
- **tools/** — \`@gitpagedocs/tools\`, o núcleo de lógica compartilhado: sistema de IA com 14 provedores, cofre de credenciais criptografado, loader de config, caches e logger.
|
|
193
200
|
- **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 ferramentas + 7 recursos).
|
|
194
|
-
- **gitpagedocs/** — o contrato do
|
|
201
|
+
- **gitpagedocs/** — o contrato do usuário: \`config.json\`, docs versionados e 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; exportação 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
|
## Destaques
|
|
203
210
|
|
|
204
|
-
- Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por
|
|
211
|
+
- Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por versão (\`/v/:version\`)
|
|
205
212
|
- Sistema de IA com 14 provedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI e mais) com streaming
|
|
206
213
|
- Chaves de IA **criptografadas em repouso** (AES-256-GCM) atras de uma senha local — nunca em texto puro
|
|
207
214
|
- **Drawer de chat de IA** nos docs + um **console \`/ai\`** dedicado
|
|
208
|
-
- Sistema de 64 temas (variantes escuras e claras);
|
|
215
|
+
- Sistema de 64 temas (variantes escuras e claras); execução local e no GitHub Pages
|
|
209
216
|
`,
|
|
210
217
|
functionalities: `# Funcionalidades
|
|
211
218
|
|
|
212
|
-
|
|
219
|
+
Referência completa de opções da CLI, chaves de configuração e recursos do runtime.
|
|
213
220
|
|
|
214
221
|
## Linha de comando
|
|
215
222
|
|
|
216
223
|
Consulte **Referência da CLI** para comandos, flags, exemplos e compatibilidade. Consulte **Servidor MCP** para integração com editores.
|
|
217
224
|
|
|
218
|
-
## Tipos de
|
|
225
|
+
## Tipos de conteúdo
|
|
219
226
|
|
|
220
|
-
| Tipo | Chave config |
|
|
227
|
+
| Tipo | Chave config | Descrição |
|
|
221
228
|
|------|--------------|-----------|
|
|
222
229
|
| Markdown | \`routes-md\` | Arquivos .md com \`path\` por idioma |
|
|
223
230
|
| HTML | \`routes-html\` | \`path\` local ou \`url\` externa |
|
|
224
|
-
|
|
|
225
|
-
|
|
|
231
|
+
| Vídeo | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
|
|
232
|
+
| Áudio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
|
|
226
233
|
| PDF | \`routes-pdf\` | \`pdf.pathPdf\` por idioma; prévia nativa e download |
|
|
227
234
|
|
|
228
|
-
## Visualizador de
|
|
235
|
+
## Visualizador de código fonte
|
|
229
236
|
|
|
230
|
-
O config da
|
|
237
|
+
O config da versão pode renderizar um container **Código fonte** via \`routes-source-viewer\` e \`menus-header-source-viewer\`. O viewer lê a árvore do repositório no GitHub em tempo de execução e aplica o tema atual da documentação.
|
|
231
238
|
|
|
232
|
-
-
|
|
233
|
-
-
|
|
234
|
-
- Listagem de
|
|
235
|
-
-
|
|
236
|
-
-
|
|
239
|
+
- Árvore do repositório a partir de \`source-viewer-path\`; a branch padrão é \`main\`
|
|
240
|
+
- Navegação por pastas e filtro de arquivos
|
|
241
|
+
- Listagem de diretórios no estilo GitHub
|
|
242
|
+
- Renderização de código com números de linha
|
|
243
|
+
- Alternância preview/código para Markdown, incluindo \`README.md\`
|
|
237
244
|
- Pastas recolhiveis na lateral
|
|
238
245
|
|
|
239
246
|
## Chaves de config (site)
|
|
@@ -243,108 +250,112 @@ O config da versao pode renderizar um container **Codigo fonte** via \`routes-so
|
|
|
243
250
|
- \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
|
|
244
251
|
- Idiomas: \`site.languages\` (liga/desliga cada um); textos da UI: \`gitpagedocs/langs/<lang>.json\`
|
|
245
252
|
|
|
246
|
-
##
|
|
253
|
+
## Reprodução de midia (um som por vez)
|
|
247
254
|
|
|
248
|
-
\`site.mediaExclusivePlayback\` (
|
|
255
|
+
\`site.mediaExclusivePlayback\` (padrão \`true\`): dar play num vídeo de rota pausa o rádio e as trilhas de áudio, e dar play no rádio ou numa trilha de áudio pausa o vídeo. Funciona com YouTube e Vimeo (pelas APIs dos players), arquivos nativos (\`mp4\`, \`webm\`, …) e qualquer outro embed.
|
|
249
256
|
|
|
250
|
-
Para mostrar um
|
|
257
|
+
Para mostrar um vídeo sem som enquanto o rádio ou uma trilha de áudio o explica, use \`"muted": true\` no objeto \`video\` da rota: o vídeo roda só a imagem e fica fora da regra. \`"mediaExclusivePlayback": false\` desliga a regra no site inteiro.
|
|
251
258
|
|
|
252
|
-
##
|
|
259
|
+
## Variáveis de ambiente
|
|
253
260
|
|
|
254
|
-
- \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de
|
|
261
|
+
- \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de repositório (local)
|
|
255
262
|
- \`GITHUB_ACTIONS\` – modo build GitHub Pages
|
|
256
263
|
|
|
257
264
|
## Assistente de IA
|
|
258
265
|
|
|
259
|
-
Os docs trazem um assistente de IA em duas
|
|
266
|
+
Os docs trazem um assistente de IA em duas superfícies: um **chat drawer** dentro dos docs (botão de chat de IA na barra lateral, ativado por \`site.AiChatEnabled\`) e uma página **console \`/ai\`** dedicada.
|
|
260
267
|
|
|
261
|
-
- **14 provedores** em um
|
|
262
|
-
- **Escolha de modelo** — a partir do
|
|
268
|
+
- **14 provedores** em um único core compartilhado: OpenAI, Anthropic, Gemini, OpenRouter, Ollama, Azure OpenAI, Mistral, DeepSeek, Cohere, Groq, xAI, Together, Fireworks, Perplexity.
|
|
269
|
+
- **Escolha de modelo** — a partir do catálogo de cada provedor (\`gitpagedocs models <provedor>\`); um id de modelo salvo que o provedor aposentou é trocado pelo padrão do provedor automaticamente.
|
|
263
270
|
- **Criptografia em repouso** — sua chave de API e selada com AES-256-GCM atras de uma **senha local** e nunca fica em texto puro nem em logs.
|
|
264
|
-
- **Bloqueio por inatividade** — o chat drawer se bloqueia sozinho
|
|
265
|
-
- **Provedores resilientes** — erros
|
|
266
|
-
- **
|
|
271
|
+
- **Bloqueio por inatividade** — o chat drawer se bloqueia sozinho após \`site.AiChatAutoLockSeconds\` segundos sem uso (padrão 30, \`0\` desativa): um modal centralizado com contagem regressiva, no seu idioma, permite cancelar ou bloquear agora, e desbloquear pede a senha de novo.
|
|
272
|
+
- **Provedores resilientes** — erros transitórios do provedor são repetidos (3 tentativas) e uma falha final vira uma mensagem simples terminando em "Tente novamente!".
|
|
273
|
+
- **Geração de documentação com IA** — \`gitpagedocs ai\` varre os caminhos escolhidos e escreve markdown multilíngue (pt/en/es); reutilizável via \`.gitpagedocsconfig\`, cuja chave de API fica selada no cofre criptografado \`.gitpagedocsvault\` (a senha do cofre é pedida em toda execução). \`gitpagedocs chat\` leva o mesmo assistente ao terminal.
|
|
267
274
|
|
|
268
275
|
## Servidor MCP
|
|
269
276
|
|
|
270
|
-
\`gitpagedocs mcp start\` sobe um servidor Model Context Protocol (stdio) expondo **20 tools** (sistema de arquivos, IA,
|
|
277
|
+
\`gitpagedocs mcp start\` sobe um servidor Model Context Protocol (stdio) expondo **20 tools** (sistema de arquivos, IA, geração/análise de docs) e **7 resources** (\`project://structure|docs|config|repository|readme|ai/providers|ai/models\`) para editores e agentes de IA.
|
|
271
278
|
`,
|
|
272
|
-
configuration: `#
|
|
279
|
+
configuration: `# Configuração
|
|
273
280
|
|
|
274
|
-
A
|
|
281
|
+
A configuração de runtime fica em \`gitpagedocs/config.json\`. Os textos da UI ficam ao lado, um arquivo por idioma.
|
|
275
282
|
|
|
276
283
|
## Idiomas (\`site.languages\` + \`langs/\`)
|
|
277
284
|
|
|
278
|
-
- \`site.languages\` em \`gitpagedocs/config.json\` liga (\`true\`) ou desliga (\`false\`) cada idioma, na ordem do menu: \`{ "languages": { "en": true, "pt": true, "es": false } }\`. Um idioma em \`false\` some do seletor de idiomas e seus textos
|
|
279
|
-
- \`gitpagedocs/langs/<lang>.json\` guarda os textos daquele idioma: \`langmenu\` (
|
|
285
|
+
- \`site.languages\` em \`gitpagedocs/config.json\` liga (\`true\`) ou desliga (\`false\`) cada idioma, na ordem do menu: \`{ "languages": { "en": true, "pt": true, "es": false } }\`. Um idioma em \`false\` some do seletor de idiomas e seus textos não são carregados, mesmo que os docs existam.
|
|
286
|
+
- \`gitpagedocs/langs/<lang>.json\` guarda os textos daquele idioma: \`langmenu\` (cabeçalho, busca, visualizador de código, player de áudio, chat de IA e acesso aos docs) e \`translations\` (\`notFound\`, \`navigation\`, \`footer\`).
|
|
280
287
|
- Para adicionar um idioma, crie \`langs/<lang>.json\` e inclua \`"<lang>": true\` em \`site.languages\`.
|
|
281
|
-
- Arquivos \`config.json\` antigos que ainda trazem \`site.langmenu\` / \`translations\` inline continuam funcionando; quando os dois existem, os arquivos de \`langs/\` prevalecem e qualquer chave ausente
|
|
288
|
+
- Arquivos \`config.json\` antigos que ainda trazem \`site.langmenu\` / \`translations\` inline continuam funcionando; quando os dois existem, os arquivos de \`langs/\` prevalecem e qualquer chave ausente é preenchida a partir da versão atual.
|
|
282
289
|
|
|
283
|
-
##
|
|
290
|
+
## Seção \`site\`
|
|
284
291
|
|
|
285
292
|
Principais chaves:
|
|
286
293
|
|
|
287
|
-
- \`name\`:
|
|
288
|
-
- \`defaultLanguage\`: idioma
|
|
294
|
+
- \`name\`: título do projeto no UI
|
|
295
|
+
- \`defaultLanguage\`: idioma padrão
|
|
289
296
|
- \`HideThemeSelector\`: esconde/mostra seletor de tema
|
|
290
297
|
- \`ThemeDefault\`: id do tema inicial
|
|
291
298
|
- \`ThemeModeDefault\`: modo inicial (\`light\` ou \`dark\`)
|
|
292
|
-
- \`ProjectLink\`: URL de
|
|
293
|
-
- \`docsVersion\`:
|
|
299
|
+
- \`ProjectLink\`: URL de repositório para acoes no cabeçalho
|
|
300
|
+
- \`docsVersion\`: versão inicial selecionada
|
|
294
301
|
- \`ActiveNavigation\`: habilita a navegação rápida e o atalho Ctrl+K
|
|
295
302
|
- \`FocusMode\`: habilita modo foco/leitura
|
|
296
|
-
- \`icons\`:
|
|
297
|
-
- \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do
|
|
298
|
-
- \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`:
|
|
299
|
-
- \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do
|
|
300
|
-
- \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`:
|
|
301
|
-
- \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do
|
|
302
|
-
- \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`:
|
|
303
|
-
- \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do
|
|
304
|
-
- \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`:
|
|
305
|
-
- \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do
|
|
306
|
-
- \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`:
|
|
303
|
+
- \`icons\`: ícones do cabeçalho. \`icons.defaults\` guarda o que todos compartilham (\`reactIcon\`, \`colorDark\`, \`colorLight\`, \`size\`, \`imgDark\`, \`imgLight\`, \`imgWidth\`, \`imgHeight\`) e cada ícone define seu \`tag\` e o que muda (\`null\` remove um campo). As chaves planas abaixo continuam valendo e vencem quando as duas formas existem.
|
|
304
|
+
- \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do ícone principal
|
|
305
|
+
- \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: ícone principal (light/dark)
|
|
306
|
+
- \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do ícone link do projeto
|
|
307
|
+
- \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: ícone link do projeto
|
|
308
|
+
- \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do ícone links de versão
|
|
309
|
+
- \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: ícone links de versão
|
|
310
|
+
- \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do ícone info
|
|
311
|
+
- \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: ícone info
|
|
312
|
+
- \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do ícone preview
|
|
313
|
+
- \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: ícone preview
|
|
307
314
|
- \`layoutsConfigPath\`: fallback remoto para layouts
|
|
308
315
|
- \`rendering\`: URL canonica publicada
|
|
309
316
|
|
|
310
317
|
## Controles de idioma, tema, foco, navegação rápida, PDF e documentos
|
|
311
318
|
|
|
312
|
-
Em \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuram idioma, tema, foco, navegação Ctrl+K, ações PDF e navegação no rodapé dos documentos. Os
|
|
319
|
+
Em \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuram idioma, tema, versão, foco, navegação Ctrl+K, ações PDF e navegação no rodapé dos documentos. Os nove controles usam React Icons por padrão:
|
|
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 controle é independente: \`reactIcon: true\` mostra o ícone (padrão); \`
|
|
|
356
367
|
|
|
357
368
|
Configs compactos podem mover valores comuns para \`site.icons.defaults\`; campos omitidos herdam esses defaults. Defina \`reactIcon: false\` em uma entrada específica para substituir o ícone padrão por texto.
|
|
358
369
|
|
|
359
|
-
##
|
|
370
|
+
## Seção \`VersionControl\`
|
|
371
|
+
|
|
372
|
+
\`site.icons.VersionSelector\` usa \`LuGitBranch\` por padrão. Defina \`reactIcon: false\` para mostrar o texto da versão selecionada; \`true\` mostra o ícone. Personalize os mesmos campos \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. O seletor aparece somente quando há mais de uma versão de documentação, preserva o nome acessível localizado do seletor e mostra a versão selecionada no tooltip.
|
|
360
373
|
|
|
361
374
|
\`VersionControl.versions\` define:
|
|
362
375
|
|
|
363
|
-
- \`id\`: identificador da
|
|
364
|
-
- \`path\`: caminho do config da
|
|
376
|
+
- \`id\`: identificador da versão
|
|
377
|
+
- \`path\`: caminho do config da versão
|
|
365
378
|
- links opcionais (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
|
|
366
379
|
- metadados opcionais do source viewer (\`source-viewer\`, \`source-viewer-path\`)
|
|
367
380
|
|
|
368
|
-
##
|
|
381
|
+
## Navegação e rotas
|
|
369
382
|
|
|
370
383
|
- \`routes\`: caminhos markdown por idioma (legado)
|
|
371
384
|
- \`menus-header\`: menu hierarquico
|
|
372
|
-
- \`translations\`: labels de UI para not-found e
|
|
385
|
+
- \`translations\`: labels de UI para not-found e navegação
|
|
373
386
|
|
|
374
|
-
##
|
|
387
|
+
## Autorização (config de versão)
|
|
375
388
|
|
|
376
|
-
- \`auth\`:
|
|
389
|
+
- \`auth\`: configurações globais de autorização para a versão
|
|
377
390
|
- \`auth.accessKeys\`: mapa de chaves usado por \`authorization.accessKeyId\`
|
|
378
391
|
- \`auth.rolesStorageKey\`: chave de localStorage para bootstrap de papeis
|
|
379
392
|
- \`auth.providers\`: adaptadores de provedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
|
|
380
393
|
|
|
381
|
-
## Tipos de
|
|
394
|
+
## Tipos de conteúdo (config de versão)
|
|
382
395
|
|
|
383
|
-
Configs de
|
|
396
|
+
Configs de versão suportam múltiplos tipos:
|
|
384
397
|
|
|
385
398
|
- \`routes-md\`: Rotas markdown com \`title\`, \`description\` (centralizados via \`titlePosition\`, \`descriptionPosition\`)
|
|
386
|
-
- \`routes-source-viewer\`: Containers de
|
|
387
|
-
- \`routes-html\`: Caminhos de
|
|
388
|
-
- \`routes-video\`: Config de
|
|
389
|
-
- \`routes-audio\`: Config de
|
|
399
|
+
- \`routes-source-viewer\`: Containers de código fonte com \`source-viewer: true\` e \`source-viewer-path\`
|
|
400
|
+
- \`routes-html\`: Caminhos de páginas HTML por idioma
|
|
401
|
+
- \`routes-video\`: Config de vídeo com \`video.videoType\` (youtube, vimeo, mp4, etc.) e \`video.pathVideo\`
|
|
402
|
+
- \`routes-audio\`: Config de áudio com \`audio.audioType\` (youtube, mp3, etc.) e \`audio.pathAudio\`
|
|
390
403
|
- \`routes-pdf\`: PDF com \`pdf.pathPdf\` por idioma; consulte Documentos PDF.
|
|
391
|
-
- \`authorization\` (md/html/
|
|
404
|
+
- \`authorization\` (md/html/vídeo): guarda de acesso por chave, papeis e autenticação externa
|
|
392
405
|
- \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`, \`menus-header-pdf\`: menus por tipo
|
|
393
|
-
- \`hierarchyPage\`: ordem dos containers na
|
|
394
|
-
- \`hierarchyMenu\`: ordem das
|
|
406
|
+
- \`hierarchyPage\`: ordem dos containers na página \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
|
|
407
|
+
- \`hierarchyMenu\`: ordem das seções do menu \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
|
|
395
408
|
|
|
396
409
|
Cada rota pode incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
|
|
397
410
|
|
|
398
|
-
|
|
411
|
+
Configurações que todas as rotas compartilham ficam uma única vez em \`routeDefaults\`, no topo do config da versão; cada rota guarda só os próprios valores, e um valor escrito na rota vence o \`routeDefaults\`.
|
|
399
412
|
|
|
400
|
-
##
|
|
413
|
+
## Variáveis por rota (blockLink, container, url, browseAll)
|
|
401
414
|
|
|
402
|
-
|
|
415
|
+
Opções por rota em \`routes-md\`, \`routes-html\` e \`routes-video\`:
|
|
403
416
|
|
|
404
|
-
- **\`blockLink\`** (
|
|
405
|
-
- **\`container\`** – \`"full"\` = altura
|
|
406
|
-
- **\`url\`** – Apenas em \`routes-html\`: \`Record<LanguageCode, string>\` com URLs externas. Quando definido, o iframe usa \`src={url}\` em vez de HTML local via \`srcDoc\`. Rotas com \`url\`
|
|
407
|
-
- **\`browseAll\`** (
|
|
417
|
+
- **\`blockLink\`** (padrão: true) – Para HTML: se true, links abrem em nova aba (\`target="_blank"\`); se false, no próprio contexto.
|
|
418
|
+
- **\`container\`** – \`"full"\` = altura automática; numero (ex: \`500\`) = altura fixa em px com overflow auto. Aplica-se a md, html e vídeo.
|
|
419
|
+
- **\`url\`** – Apenas em \`routes-html\`: \`Record<LanguageCode, string>\` com URLs externas. Quando definido, o iframe usa \`src={url}\` em vez de HTML local via \`srcDoc\`. Rotas com \`url\` não geram arquivos HTML locais.
|
|
420
|
+
- **\`browseAll\`** (padrão: false) – Se true, o container mostra botões Anterior/Próximo para navegar entre todos os itens daquele tipo.
|
|
408
421
|
|
|
409
|
-
## Tipos de
|
|
422
|
+
## Tipos de conteúdo: path vs url (HTML)
|
|
410
423
|
|
|
411
424
|
- **Markdown (\`routes-md\`)**: usa \`path\` apontando para arquivos \`.md\` locais.
|
|
412
|
-
- **HTML (\`routes-html\`)**: usa \`path\` para arquivos HTML locais (sem
|
|
413
|
-
- **
|
|
425
|
+
- **HTML (\`routes-html\`)**: usa \`path\` para arquivos HTML locais (sem extensão .html no config) ou \`url\` para URLs externas. Com \`url\`, o iframe carrega a página externa; nenhum arquivo local é gerado.
|
|
426
|
+
- **Vídeo (\`routes-video\`)**: usa \`video.pathVideo\` e \`video.videoType\` (youtube, vimeo, mp4, etc.).
|
|
414
427
|
|
|
415
|
-
##
|
|
428
|
+
## Variáveis de ambiente
|
|
416
429
|
|
|
417
430
|
- \`GITPAGEDOCS_REPOSITORY_SEARCH\`: ativa/desativa busca remota localmente
|
|
418
|
-
- \`GITHUB_ACTIONS\`: ativa comportamento
|
|
431
|
+
- \`GITHUB_ACTIONS\`: ativa comportamento específico de GitHub Pages
|
|
419
432
|
|
|
420
433
|
## Comportamento do site e padrões
|
|
421
434
|
|
|
@@ -491,7 +504,7 @@ Em um checkout do runtime com dependências instaladas, \`node cli/index.mjs --h
|
|
|
491
504
|
|
|
492
505
|
## Releases npm para mantenedores
|
|
493
506
|
|
|
494
|
-
O monorepo
|
|
507
|
+
O monorepo pública \`@gitpagedocs/tools\`, \`@gitpagedocs/mcp\` e \`@gitpagedocs/cli\`; raiz e frontend são privados. O \`npm-publish.yml\` atual roda em pushes para \`main\` e ignora uma versão da CLI já publicada. Usa o secret \`NPM_TOKEN\` do repositório e pública workspaces na ordem de dependência. Criar somente uma release no GitHub não é seu gatilho.
|
|
495
508
|
|
|
496
509
|
Sincronize versões e dependências internas, regenere docs/baselines, execute typecheck, lint, testes, smoke, build e Playwright e revise antes do push. Confirme as três versões no npm e o resultado do Pages. A CLI de configuração ignora \`prebuilt/\`; essa pasta não é exigida pelo workflow de publicação.
|
|
497
510
|
`,
|
|
@@ -502,34 +515,34 @@ O projeto e organizado por fronteiras de feature e responsabilidades do runtime.
|
|
|
502
515
|
## Pacotes
|
|
503
516
|
|
|
504
517
|
- **frontend/** — visualizador Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
|
|
505
|
-
- **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de
|
|
518
|
+
- **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentação com IA).
|
|
506
519
|
- **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ i18n/ ports/.
|
|
507
520
|
- **mcp/** — \`@gitpagedocs/mcp\`: ferramentas + recursos MCP que delegam ao tools/.
|
|
508
521
|
|
|
509
522
|
## Modulos principais (frontend)
|
|
510
523
|
|
|
511
|
-
- \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rota, 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 rota, generateStaticParams, seleção de shell.
|
|
525
|
+
- \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versão, parse markdown, layouts + temas.
|
|
526
|
+
- \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versão/tema, sync de URL, montagem do chat de IA.
|
|
514
527
|
|
|
515
|
-
##
|
|
528
|
+
## Segurança: credenciais de IA criptografadas
|
|
516
529
|
|
|
517
|
-
O console \`/ai\` e o chat drawer exigem uma senha local que deriva (PBKDF2) uma chave AES-256-GCM; as chaves ficam criptografadas no \`localStorage\` e
|
|
530
|
+
O console \`/ai\` e o chat drawer exigem uma senha local que deriva (PBKDF2) uma chave AES-256-GCM; as chaves ficam criptografadas no \`localStorage\` e só são descriptografadas durante a sessão (\`@gitpagedocs/tools/security\`). O drawer se bloqueia sozinho após \`site.AiChatAutoLockSeconds\` segundos sem uso (padrão 30; \`0\` desativa): um modal centralizado com contagem regressiva, no idioma selecionado, permite cancelar ou bloquear agora, e voltar exige a senha de novo. Na CLI, a chave de \`.gitpagedocsconfig\` fica selada no cofre criptografado \`.gitpagedocsvault\` e a senha do cofre é pedida em toda execução.
|
|
518
531
|
|
|
519
532
|
## Fluxo de dados
|
|
520
533
|
|
|
521
534
|
1. A rota chega (\`/owner/repo/v/x.y.z\` ou equivalente local)
|
|
522
535
|
2. O config e resolvido (local ou remoto)
|
|
523
|
-
3. Config de
|
|
536
|
+
3. Config de versão sobrescreve rotas/menus base
|
|
524
537
|
4. Markdown e carregado e convertido para HTML
|
|
525
538
|
5. Template de layout e resolvido e aplicado em CSS vars
|
|
526
|
-
6. Shell renderiza
|
|
539
|
+
6. Shell renderiza conteúdo e controles
|
|
527
540
|
|
|
528
541
|
## Pontos de resiliencia
|
|
529
542
|
|
|
530
543
|
- fallback de carga para layouts/templates
|
|
531
544
|
- carregamento de markdown por idioma com fallback de erro
|
|
532
|
-
-
|
|
545
|
+
- sincronização de linguagem/versão/tema via localStorage
|
|
533
546
|
`,
|
|
534
547
|
githubIssuesProjects: `# GitHub Issues e Projects
|
|
535
548
|
|
|
@@ -547,7 +560,7 @@ Conceitos basicos de Git para iniciantes.
|
|
|
547
560
|
|
|
548
561
|
## Comandos essenciais
|
|
549
562
|
|
|
550
|
-
- \`git init\` - iniciar
|
|
563
|
+
- \`git init\` - iniciar repositório
|
|
551
564
|
- \`git add\` - preparar alteracoes
|
|
552
565
|
- \`git commit\` - registrar commit
|
|
553
566
|
- \`git push\` - enviar para remoto
|
|
@@ -556,21 +569,21 @@ Conceitos basicos de Git para iniciantes.
|
|
|
556
569
|
|
|
557
570
|
Proteja rotas por chave de acesso, papeis obrigatorios e provedores externos.
|
|
558
571
|
|
|
559
|
-
## Local do config de
|
|
572
|
+
## Local do config de versão
|
|
560
573
|
|
|
561
574
|
Configure em:
|
|
562
575
|
|
|
563
576
|
- \`gitpagedocs/docs/versions/<versao>/config.json\`
|
|
564
577
|
|
|
565
|
-
##
|
|
578
|
+
## Seção global auth
|
|
566
579
|
|
|
567
|
-
Use \`auth\` no topo do config de
|
|
580
|
+
Use \`auth\` no topo do config de versão:
|
|
568
581
|
|
|
569
582
|
- \`accessKeys\`: mapa de ids de chave para segredo esperado
|
|
570
583
|
- \`rolesStorageKey\`: chave de localStorage para bootstrap de papeis
|
|
571
584
|
- \`providers\`: lista de provedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
|
|
572
585
|
|
|
573
|
-
##
|
|
586
|
+
## Autorização por rota
|
|
574
587
|
|
|
575
588
|
Dentro de cada rota (\`routes-md\`, \`routes-html\`, \`routes-video\`):
|
|
576
589
|
|
|
@@ -608,7 +621,7 @@ Adaptadores suportados:
|
|
|
608
621
|
`,
|
|
609
622
|
themes: `# Temas e layouts
|
|
610
623
|
|
|
611
|
-
Temas
|
|
624
|
+
Temas são templates JSON mapeados por \`layoutsConfig.json\`.
|
|
612
625
|
|
|
613
626
|
## Arquivos
|
|
614
627
|
|
|
@@ -618,7 +631,7 @@ Temas sao templates JSON mapeados por \`layoutsConfig.json\`.
|
|
|
618
631
|
|
|
619
632
|
## Modelo de template
|
|
620
633
|
|
|
621
|
-
Cada template normalmente
|
|
634
|
+
Cada template normalmente contém:
|
|
622
635
|
|
|
623
636
|
- \`id\`, \`name\`, \`author\`, \`version\`
|
|
624
637
|
- \`mode\` e metadados de par dark/light
|
|
@@ -629,15 +642,15 @@ Cada template normalmente contem:
|
|
|
629
642
|
|
|
630
643
|
## Comportamento em runtime
|
|
631
644
|
|
|
632
|
-
- tema ativo vem de config/
|
|
633
|
-
- toggle light/dark resolve o tema pareado por
|
|
634
|
-
-
|
|
645
|
+
- tema ativo vem de config/usuário
|
|
646
|
+
- toggle light/dark resolve o tema pareado por referência
|
|
647
|
+
- variáveis CSS são geradas dos tokens do template
|
|
635
648
|
|
|
636
|
-
## Boas
|
|
649
|
+
## Boas práticas
|
|
637
650
|
|
|
638
|
-
- mantenha contraste
|
|
639
|
-
- padronize escala de
|
|
640
|
-
-
|
|
651
|
+
- mantenha contraste acessível
|
|
652
|
+
- padronize escala de espaço e borda
|
|
653
|
+
- ofereça variantes dark e light quando possível
|
|
641
654
|
|
|
642
655
|
## Escolher e personalizar
|
|
643
656
|
|
|
@@ -646,6 +659,8 @@ Escolha um tema pelo seletor ou configure \`site.ThemeDefault\` com seu ID exato
|
|
|
646
659
|
No seu repositório, execute a CLI com \`--layoutconfig\`, edite o template gerado e mantenha o ID coerente com \`layoutsConfig.json\`. O conteúdo da rota e \`site.icons\` são independentes do catálogo de temas. Use \`currentColor\` para ícones que herdam a cor do texto ou configure cores claras/escuras com contraste suficiente.
|
|
647
660
|
|
|
648
661
|
Ao contribuir no Git Page Docs, a fonte autoral é \`gitpagelayouts/v2/base.json\` com \`gitpagelayouts/v2/layouts/<id>.json\`. Execute \`pnpm layouts:sync\` para gerar templates e documentação. Edições diretas nos templates gerados podem ser substituídas pela sincronização.
|
|
662
|
+
|
|
663
|
+
${THEME_BACKGROUND_DOCS.pt}
|
|
649
664
|
`,
|
|
650
665
|
mcp: `# Servidor MCP
|
|
651
666
|
|
|
@@ -706,7 +721,7 @@ Selecione o provedor com \`configure_ai_provider\` ou pelo arquivo \`.gitpagedoc
|
|
|
706
721
|
| \`fireworks\` | \`FIREWORKS_API_KEY\` |
|
|
707
722
|
| \`perplexity\` | \`PERPLEXITY_API_KEY\` |
|
|
708
723
|
|
|
709
|
-
|
|
724
|
+
Quando a seleção salva está ausente, ilegível ou contém JSON inválido, o provedor padrão é OpenAI. Um ID de provedor desconhecido em JSON legível gera erro explícito, sem selecionar outro provedor. Ollama não exige chave de API; o serviço local e o modelo escolhido precisam estar disponíveis. \`OLLAMA_BASE_URL\` é opcional. A URL base do Azure é a URL completa da operação de chat, incluindo deployment e versão da API quando exigidos. A lista de modelos é um catálogo distribuído, não uma verificação de disponibilidade em tempo real.
|
|
710
725
|
|
|
711
726
|
## Referência de tools
|
|
712
727
|
|
|
@@ -762,7 +777,7 @@ A etapa de geração envia o conteúdo selecionado do projeto ao provedor config
|
|
|
762
777
|
|
|
763
778
|
- Leitura de arquivos: até 512.000 bytes. Listagem: até 2.000 entradas; árvores coletadas do projeto: 400 entradas.
|
|
764
779
|
- Busca: até 5.000 entradas, 200 resultados e 240 caracteres por linha encontrada.
|
|
765
|
-
- Coleta de documentação: primeiros 40 arquivos Markdown entre até 2.000 entradas; arquivos acima de 40.000 bytes são ignorados. O contexto
|
|
780
|
+
- Coleta de documentação: primeiros 40 arquivos Markdown entre até 2.000 entradas; arquivos acima de 40.000 bytes são ignorados. O contexto coletado de arquivos e Markdown é limitado a 24.000 caracteres. Isso não é um limite global do prompt: árvore/pacote, documento existente e pergunta fornecida podem acrescentar conteúdo conforme a tool escolhida.
|
|
766
781
|
- A listagem ignora pastas de dependências/build como \`node_modules\`, \`.git\`, \`.next\`, \`out\`, \`dist\`, \`prebuilt\`, \`.turbo\` e \`coverage\`. Não interpreta \`.gitignore\`; arquivos como \`.env\` não são excluídos automaticamente. Execute somente em projeto confiável e selecione o conteúdo que será exposto.
|
|
767
782
|
- A verificação de caminhos é lexical; o processo não é um sandbox do sistema operacional nem garante isolamento de symlinks/junctions. Ler \`project://config\` pode importar configuração JavaScript/TypeScript.
|
|
768
783
|
- Falhas de tools incluem \`isError: true\`. Resources ausentes retornam \`Unavailable: ...\`. Consulte stderr no cliente para falhas de inicialização; stdout é reservado para JSON-RPC.
|
|
@@ -772,47 +787,47 @@ A etapa de geração envia o conteúdo selecionado do projeto ao provedor config
|
|
|
772
787
|
|
|
773
788
|
## Comandos da CLI
|
|
774
789
|
|
|
775
|
-
| Comando |
|
|
790
|
+
| Comando | Descrição |
|
|
776
791
|
|---------|------------|
|
|
777
792
|
| \`npx @gitpagedocs/cli\` | Gera config e docs em \`gitpagedocs/\` |
|
|
778
|
-
| \`npx @gitpagedocs/cli --layoutconfig\` |
|
|
793
|
+
| \`npx @gitpagedocs/cli --layoutconfig\` | Também gera layouts/templates locais em \`gitpagelayouts/\` |
|
|
779
794
|
| \`npx @gitpagedocs/cli --home\` | Distribuicao standalone (\`gitpagedocshome/\`) |
|
|
780
795
|
| \`npx @gitpagedocs/cli --push --owner X --repo Y\` | Configura workflow, commit, push |
|
|
781
|
-
| \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interativo com prompts (
|
|
782
|
-
| \`npx @gitpagedocs/cli --no-interactive\` / \`--yes\` / \`-y\` | Nunca pergunta; usa flags e
|
|
783
|
-
| \`gitpagedocs ai\` | Gerador interativo de
|
|
784
|
-
| \`gitpagedocs chat [pergunta]\` | Chat de IA com streaming no terminal (REPL em TTY; resposta
|
|
785
|
-
| \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista provedores de IA / modelos do
|
|
786
|
-
| \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Gera
|
|
796
|
+
| \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interativo com prompts (padrão em um terminal) |
|
|
797
|
+
| \`npx @gitpagedocs/cli --no-interactive\` / \`--yes\` / \`-y\` | Nunca pergunta; usa flags e padrões |
|
|
798
|
+
| \`gitpagedocs ai\` | Gerador interativo de documentação com IA |
|
|
799
|
+
| \`gitpagedocs chat [pergunta]\` | Chat de IA com streaming no terminal (REPL em TTY; resposta única com pergunta ou stdin) |
|
|
800
|
+
| \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista provedores de IA / modelos do catálogo |
|
|
801
|
+
| \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Gera documentação com IA |
|
|
787
802
|
| \`gitpagedocs deploy\` / \`pages [actions\\|deploy]\` | Configura GitHub Pages via Actions + push |
|
|
788
803
|
| \`gitpagedocs docs\` | Atualiza as regioes gerenciadas de README/CONTRIBUTING/SECURITY |
|
|
789
|
-
| \`gitpagedocs password\` | Define a senha de acesso a
|
|
804
|
+
| \`gitpagedocs password\` | Define a senha de acesso a documentação (chave pública em \`site.docsAccess\`) |
|
|
790
805
|
| \`gitpagedocs config\` / \`config clear\` | Mostra a config resolvida / apaga a config salva e o cofre de chaves |
|
|
791
|
-
| \`gitpagedocs doctor\` / \`version\` / \`update\` |
|
|
806
|
+
| \`gitpagedocs doctor\` / \`version\` / \`update\` | Diagnóstico / versão / verificação de atualização no registro |
|
|
792
807
|
| \`gitpagedocs mcp start\` | Inicia o servidor MCP via stdio |
|
|
793
808
|
|
|
794
809
|
Instale globalmente com \`npm install -g @gitpagedocs/cli\` ou rode sem instalar com \`npx @gitpagedocs/cli\`.
|
|
795
810
|
|
|
796
|
-
##
|
|
811
|
+
## Opções da CLI
|
|
797
812
|
|
|
798
|
-
|
|
|
813
|
+
| Opção | Descrição |
|
|
799
814
|
|-------|-----------|
|
|
800
815
|
| \`--owner <user>\` | Owner do GitHub |
|
|
801
|
-
| \`--repo <repo>\` |
|
|
816
|
+
| \`--repo <repo>\` | Repositório GitHub |
|
|
802
817
|
| \`--path <subpath>\` | Subcaminho dos docs (ex: \`docs\`); sem ele, base path = nome do repo para CSS/JS em project sites |
|
|
803
|
-
| \`--output <dir>\` |
|
|
804
|
-
| \`--search <true-or-false>\` | Habilita/desabilita busca de
|
|
818
|
+
| \`--output <dir>\` | Diretório de saída (padrão: \`gitpagedocs\`) |
|
|
819
|
+
| \`--search <true-or-false>\` | Habilita/desabilita busca de repositório (\`--home\`) |
|
|
805
820
|
| \`--layoutconfig\` | Gera layouts locais em \`gitpagelayouts/\` |
|
|
806
|
-
| \`--layouts-dir <dir>\` | Pasta dos layouts locais (
|
|
821
|
+
| \`--layouts-dir <dir>\` | Pasta dos layouts locais (padrão: \`gitpagelayouts\`) |
|
|
807
822
|
| \`--push\` | Cria workflow, commit de artefatos, push |
|
|
808
823
|
| \`--pages-actions\` | Apenas muda a fonte do GitHub Pages para GitHub Actions (igual a \`pages actions\`) |
|
|
809
824
|
| \`--home\` | Gera \`gitpagedocshome/\` (estatico + .env + Dockerfile) |
|
|
810
825
|
|
|
811
|
-
##
|
|
826
|
+
## Saída gerada
|
|
812
827
|
|
|
813
828
|
- \`gitpagedocs/config.json\` – config raiz
|
|
814
|
-
- \`gitpagedocs/icon.svg\` –
|
|
815
|
-
- \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por
|
|
829
|
+
- \`gitpagedocs/icon.svg\` – ícone padrão
|
|
830
|
+
- \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por versão
|
|
816
831
|
- \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs em markdown
|
|
817
832
|
- \`gitpagelayouts/\` – apenas com \`--layoutconfig\` (pasta configuravel com \`--layouts-dir\`)
|
|
818
833
|
|
|
@@ -857,7 +872,7 @@ Rotas definem o conteúdo; menus definem como o leitor o encontra. Configure-os
|
|
|
857
872
|
|
|
858
873
|
Cada entrada de \`menus-header-md\` tem \`id\` e objetos \`pt\`, \`en\`, \`es\` com \`title\` e \`path-click\` opcional. Adicione \`submenus\` com novas entradas para aninhar a árvore. O objeto de um idioma também aceita \`submenus\` localizados com título/caminho. Use uma forma de maneira consistente para não listar o mesmo filho duas vezes.
|
|
859
874
|
|
|
860
|
-
Grupos sem \`path-click\` organizam os filhos. Para
|
|
875
|
+
Grupos sem \`path-click\` organizam os filhos. Para o destino de uma rota Markdown, use seu caminho localizado real de \`routes-md[].path\`. Rotas source-viewer, vídeo, áudio, PDF e composições explícitas em \`pages\` registram \`page:<id>\`; uma rota Markdown simples usa o caminho do arquivo. O exemplo usa a versão \`0.0.8\`: troque esse trecho pela versão editada e crie os três arquivos chapter.
|
|
861
876
|
|
|
862
877
|
\`\`\`json
|
|
863
878
|
{
|
|
@@ -925,6 +940,14 @@ Grupos sem \`path-click\` organizam os filhos. Para um destino Markdown, use seu
|
|
|
925
940
|
|
|
926
941
|
## Comportamento do aninhamento
|
|
927
942
|
|
|
943
|
+
Um pai pode ser documento e grupo ao mesmo tempo. Mantenha seu \`path-click\` localizado junto com \`submenus\`: o título abre a página Markdown e a seta separada expande ou recolhe os filhos. O scaffold inclui visões gerais úteis para os oito grupos pais. Os ancestrais dos breadcrumbs apontam para esses documentos; o destino atual continua marcado como atual. Um grupo sem caminho ainda organiza filhos, mas não possui destino para abrir.
|
|
944
|
+
|
|
945
|
+
O trecho abaixo usa as rotas Markdown 31, 32 e 13 já presentes no scaffold. Combine-o com \`menus-header-md\` e preserve as definições correspondentes em \`routes-md\` e seus arquivos:
|
|
946
|
+
|
|
947
|
+
\`\`\`json
|
|
948
|
+
${PARENT_MENU_JSON}
|
|
949
|
+
\`\`\`
|
|
950
|
+
|
|
928
951
|
\`site.nestedMenusEnabled: true\` exibe menus recursivos expansíveis. Você pode acrescentar \`submenus\` em qualquer nó: não há limite fixo de profundidade na aplicação. A configuração deve ser finita e adequada à memória do navegador e à usabilidade. Com \`false\`, os destinos aparecem em uma lista plana; as páginas aninhadas não são removidas.
|
|
929
952
|
|
|
930
953
|
A árvore atende à navegação lateral, aos rótulos de busca, à expansão dos pais e à trilha de navegação. Mantenha IDs estáveis e sem ambiguidade; destinos protegidos seguem as regras de autorização da página. A mesma estrutura vale para \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\` e \`menus-header-pdf\`. \`hierarchyMenu\` ordena as seções por tipo; \`hierarchyPage\` ordena os containers que compartilham o ID da página.
|
|
@@ -939,7 +962,7 @@ A árvore atende à navegação lateral, aos rótulos de busca, à expansão dos
|
|
|
939
962
|
|
|
940
963
|
URLs versionadas usam \`/v/<version>/\`; \`?lang=pt\` escolhe o idioma e \`?id=101\` escolhe a página. \`?name=chapter\` seleciona o slug do documento. Mantenha \`VersionControl.versions[].path\` apontando para o config da versão correspondente. \`site.ActiveNavigation\` ativa a navegação rápida e seu atalho Ctrl+K. Os controles anterior/próximo do rodapé seguem os destinos disponíveis no menu; a navegação entre documentos no modo foco possui opção própria. Consulte Modo foco para os controles de seção e documento.
|
|
941
964
|
|
|
942
|
-
Os botões Voltar/Próximo do rodapé usam \`site.icons.DocumentPrevious\` (\`
|
|
965
|
+
Os botões Voltar/Próximo do rodapé usam \`site.icons.DocumentPrevious\` (\`LuChevronLeft\`) e \`site.icons.DocumentNext\` (\`LuChevronRight\`) por padrão. Defina \`reactIcon: false\` em qualquer entrada para exibir seu texto traduzido; cada entrada também aceita \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. A aparência não muda a navegação: o rodapé aparece quando há mais de um destino disponível no menu, e a direção indisponível continua desabilitada nas extremidades.
|
|
943
966
|
|
|
944
967
|
Teste um menu novo pela lateral, por URL direta e em cada idioma habilitado; confirme que o destino existe e é permitido para o leitor atual.
|
|
945
968
|
`,
|
|
@@ -978,6 +1001,8 @@ Cada opção tem padrão \`true\`; \`false\` oculta a ação ou o grupo de naveg
|
|
|
978
1001
|
|
|
979
1002
|
## Copiar e baixar
|
|
980
1003
|
|
|
1004
|
+
Em uma página composta, o foco lê os blocos Markdown autorizados em ordem, incluindo repetições. Copiar/baixar reúne essas fontes e usa \`page-<id>.md\`; as ações individuais dos blocos mantêm os nomes originais. Consulte Blocos de conteúdo ordenados para o contrato completo.
|
|
1005
|
+
|
|
981
1006
|
Copiar e baixar usam o **Markdown original inteiro no idioma selecionado**, incluindo seções que não estão visíveis no momento. Não exportam o HTML renderizado nem apenas a seção atual.
|
|
982
1007
|
|
|
983
1008
|
O download conserva o nome-base Markdown do \`path\` localizado da rota; quando indisponível, o nome do arquivo é \`document.md\`. A área de transferência segue as permissões e regras de contexto seguro do navegador. Se a cópia falhar, use o download e confira o erro exibido.
|
|
@@ -1049,37 +1074,37 @@ Consulte a [referência da Web Speech API](https://developer.mozilla.org/en-US/d
|
|
|
1049
1074
|
`,
|
|
1050
1075
|
faq: `# FAQ
|
|
1051
1076
|
|
|
1052
|
-
## Por que
|
|
1077
|
+
## Por que repositórios remotos não abrem localmente?
|
|
1053
1078
|
|
|
1054
1079
|
Verifique:
|
|
1055
1080
|
|
|
1056
1081
|
- \`GITPAGEDOCS_REPOSITORY_SEARCH=true\` no \`.env\`
|
|
1057
|
-
-
|
|
1058
|
-
- paths markdown do
|
|
1082
|
+
- repositório alvo contem \`gitpagedocs/config.json\`
|
|
1083
|
+
- paths markdown do repositório batem com seu config de rotas
|
|
1059
1084
|
|
|
1060
|
-
## Por que rota de
|
|
1085
|
+
## Por que rota de versão mostra conteúdo errado?
|
|
1061
1086
|
|
|
1062
1087
|
Verifique:
|
|
1063
1088
|
|
|
1064
1089
|
- \`VersionControl.versions[*].path\` em \`gitpagedocs/config.json\`
|
|
1065
|
-
- config da
|
|
1090
|
+
- config da versão possui \`routes\` e \`menus-header\` válidos
|
|
1066
1091
|
- markdown existe para cada idioma
|
|
1067
1092
|
|
|
1068
|
-
## Por que tema
|
|
1093
|
+
## Por que tema não aplica corretamente?
|
|
1069
1094
|
|
|
1070
1095
|
Verifique:
|
|
1071
1096
|
|
|
1072
|
-
- \`layoutsConfig.json\`
|
|
1073
|
-
- ids de template
|
|
1097
|
+
- \`layoutsConfig.json\` referência templates válidos
|
|
1098
|
+
- ids de template são únicos
|
|
1074
1099
|
- tema selecionado existe no mapa de temas carregados
|
|
1075
1100
|
|
|
1076
1101
|
## Por que GitHub Pages pode se comportar diferente do local?
|
|
1077
1102
|
|
|
1078
|
-
Porque o build de GitHub Pages habilita
|
|
1103
|
+
Porque o build de GitHub Pages habilita página inicial de busca e comportamento específico de exportação.
|
|
1079
1104
|
|
|
1080
1105
|
## Por que o ícone ainda mostra texto?
|
|
1081
1106
|
|
|
1082
|
-
Defina \`site.icons.<Controle>.reactIcon\` como booleano \`true\`, com o nome exato exportado por React Icons em \`tag\`. LanguageSelector, ThemeSelector, FocusMode, QuickNavigation, PdfDownload, PdfOpenInNewTab, DocumentPrevious e DocumentNext usam ícones por padrão; altere qualquer entrada para \`false\` para exibir texto. Campos planos \`Icon*ReactIcones\` prevalecem se os dois formatos existirem. Confira se o próprio recurso está desabilitado por opções como \`HideThemeSelector\`, \`FocusMode\` ou as ações PDF.
|
|
1107
|
+
Defina \`site.icons.<Controle>.reactIcon\` como booleano \`true\`, com o nome exato exportado por React Icons em \`tag\`. LanguageSelector, ThemeSelector, VersionSelector, FocusMode, QuickNavigation, PdfDownload, PdfOpenInNewTab, DocumentPrevious e DocumentNext usam ícones por padrão; altere qualquer entrada para \`false\` para exibir texto. Campos planos \`Icon*ReactIcones\` prevalecem se os dois formatos existirem. Confira se o próprio recurso está desabilitado por opções como \`HideThemeSelector\`, \`FocusMode\` ou as ações PDF.
|
|
1083
1108
|
|
|
1084
1109
|
## Por que filhos de menus ou breadcrumbs aparecem diferentes?
|
|
1085
1110
|
|