@gitpagedocs/cli 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builders/config-orchestrator.mjs +2 -1
- package/builders/version-config-builder.mjs +53 -8
- package/content/assets/gitpagedocs-project-guide.pdf +34 -34
- package/content/configuration-examples.mjs +62 -0
- package/content/docs-en.mjs +52 -18
- package/content/docs-es.mjs +54 -19
- package/content/docs-pt.mjs +54 -19
- package/content/html-doom.mjs +155 -0
- package/content/operations-en.mjs +70 -0
- package/content/operations-es.mjs +70 -0
- package/content/operations-pt.mjs +70 -0
- package/content/practical-en.mjs +116 -0
- package/content/practical-es.mjs +116 -0
- package/content/practical-pt.mjs +116 -0
- package/contracts/doc-versions.mjs +1 -1
- package/data/default-site-config.mjs +24 -4
- package/data/i18n-langmenu.mjs +15 -0
- package/data/menu-sections.mjs +46 -0
- package/data/path-mappings.mjs +6 -0
- package/data/route-metas.mjs +30 -0
- package/package.json +3 -3
- package/runtime/doc-path-resolver.mjs +6 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { HTML_ROUTE_JSON, RECIPE_ROOT_JSON, RECIPE_VERSION_JSON } from "./configuration-examples.mjs";
|
|
2
|
+
|
|
3
|
+
export const practicalPt = {
|
|
4
|
+
htmlContainers: `# Containers HTML e exemplos interativos
|
|
5
|
+
|
|
6
|
+
Uma rota HTML exibe um documento local ou uma página externa dentro de um iframe. Use-a para uma demonstração interativa confiável que o Markdown não consegue representar. O scaffold inclui **DOOM: exemplo HTML**, rota 29, com título, descrição e botão traduzidos. O player externo só é carregado quando o visitante decide jogar. O jogo continua hospedado pelo provedor; o pacote npm inclui a página HTML de apresentação, não os arquivos do jogo.
|
|
7
|
+
|
|
8
|
+
## Configure uma rota HTML local
|
|
9
|
+
|
|
10
|
+
Adicione esta rota ao array \`routes-html\` existente na configuração da versão. Preserve as demais rotas e use um ID distinto para cada destino. Crie cada arquivo referenciado como HTML UTF-8 ou gere o exemplo incluído pela CLI.
|
|
11
|
+
|
|
12
|
+
\`\`\`json
|
|
13
|
+
${HTML_ROUTE_JSON}
|
|
14
|
+
\`\`\`
|
|
15
|
+
|
|
16
|
+
Adicione um item traduzido em \`menus-header-html\`. Cada \`path-click\` deve corresponder ao caminho da rota no mesmo idioma, como \`gitpagedocs/docs/versions/0.0.10/pt/doom.html\`; não substitua esse caminho HTML local por \`page:29\`. Um rótulo de menu não cria uma rota. HTML aceita a mesma estrutura recursiva \`submenus\` dos outros menus.
|
|
17
|
+
|
|
18
|
+
## Dimensões, conteúdo e URLs externas
|
|
19
|
+
|
|
20
|
+
\`container: "full"\` aplica uma altura mínima relacionada à janela; um número positivo define a altura em pixels. Omita-o para usar o container normal. \`fullscreenEnabled\` controla a ação de tela cheia do visualizador. Título e descrição da rota são independentes dos títulos escritos dentro do próprio HTML.
|
|
21
|
+
|
|
22
|
+
Para uma página hospedada, use \`url: { "en": "https://example.com/demo", "pt": "https://example.com/demo", "es": "https://example.com/demo" }\` no lugar de \`path\`. Uma rota URL navega o iframe; o HTML local é carregado em \`srcDoc\`. No conteúdo local, prefira estilos incluídos no documento e URLs HTTPS explícitas: srcDoc não resolve automaticamente os recursos relativos ao diretório do arquivo original.
|
|
23
|
+
|
|
24
|
+
O servidor externo pode impedir incorporação por CSP ou X-Frame-Options. Hosts conhecidos que bloqueiam iframe recebem uma alternativa para abrir em nova aba; falhas de qualquer servidor não são detectadas universalmente. Teste o destino real no site publicado. \`blockLink: true\` define nova aba como destino padrão dos links no HTML local; não impede navegação feita por scripts ou links com destino próprio.
|
|
25
|
+
|
|
26
|
+
## Use e mantenha o exemplo do jogo
|
|
27
|
+
|
|
28
|
+
Escolha o item HTML no menu, leia o aviso sobre o provedor e pressione o botão de carregamento. É necessária conexão; depois siga os controles de início e teclado do próprio player. A página inclui um link direto ao provedor caso a incorporação falhe. Teste foco de teclado, telas pequenas, tela cheia e retorno à documentação. Disponibilidade do player e recursos do navegador podem mudar independentemente do GitPageDocs.
|
|
29
|
+
|
|
30
|
+
Revise o HTML e suas dependências antes de publicar. O iframe atual permite scripts e conteúdo de mesma origem, portanto não funciona como barreira de segurança para HTML arbitrário não confiável. Não inclua segredos em HTML, URLs ou configuração do cliente. A hospedagem estática expõe os arquivos independentemente da visibilidade do menu ou autorização da rota. No ambiente local e no Pages, versione a página com a configuração correspondente e valide os caminhos gerados antes da publicação.
|
|
31
|
+
`,
|
|
32
|
+
configurationRecipes: `# Receitas de configuração
|
|
33
|
+
|
|
34
|
+
Este guia monta um site pequeno em três idiomas, com duas páginas Markdown e menu com três níveis. Comece pela configuração gerada, revise as mudanças e mantenha os arquivos originais no controle de versão. Os exemplos usam os IDs 101 e 102 para distingui-los das páginas incluídas no scaffold.
|
|
35
|
+
|
|
36
|
+
## 1. Gere e confira a estrutura
|
|
37
|
+
|
|
38
|
+
Execute \`npx --yes @gitpagedocs/cli@0.0.10 --no-interactive --owner SEU_USUARIO --repo SEU_REPOSITORIO\` em um diretório de projeto novo. Neste repositório de código-fonte, \`node cli/index.mjs\` executa a versão do checkout. A geração grava configuração e documentação; ela não inicia o visualizador Next.js.
|
|
39
|
+
|
|
40
|
+
O JSON completo abaixo é um exemplo mínimo de \`gitpagedocs/config.json\`. Em um site existente, mescle os campos relevantes e preserve a identidade do repositório, opções de publicação, temas e demais versões.
|
|
41
|
+
|
|
42
|
+
\`\`\`json
|
|
43
|
+
${RECIPE_ROOT_JSON}
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
As oito entradas herdam a apresentação comum de \`icons.defaults\`. Para mostrar texto em uma ação, acrescente \`"reactIcon": false\` à entrada correspondente. Não altere um default compartilhado apenas para mudar um botão. Campos planos antigos de ícones prevalecem sobre os compactos; remova ou atualize um campo conflitante somente depois de confirmar sua intenção.
|
|
47
|
+
|
|
48
|
+
## 2. Crie a configuração da versão
|
|
49
|
+
|
|
50
|
+
Salve o próximo JSON completo no caminho do config da versão indicado acima. Uma categoria de menu tem título e \`submenus\`; uma folha tem \`path-click\` localizado. Categorias não precisam de rota. Destinos Markdown apontam para os caminhos reais dos arquivos, sem usar o alias \`page:<id>\`.
|
|
51
|
+
|
|
52
|
+
\`\`\`json
|
|
53
|
+
${RECIPE_VERSION_JSON}
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
Crie \`start.md\` e \`next-steps.md\` nas pastas \`en\`, \`pt\` e \`es\` dessa versão: seis arquivos ao todo. Escreva no idioma correspondente e salve em UTF-8. Comece cada página com um título e acrescente seções \`##\` para testar o modo foco. Os bundles gerados em \`langs/\` contêm os textos da interface, separados do conteúdo dos documentos.
|
|
57
|
+
|
|
58
|
+
## 3. Mude a apresentação sem perder destinos
|
|
59
|
+
|
|
60
|
+
Com \`nestedMenusEnabled: true\`, o leitor expande Guias → Primeiros passos → página. Com \`false\`, os mesmos destinos aparecem em uma lista plana. Acrescente \`submenus\` recursivamente quando a organização do conteúdo justificar; não há limite fixo de profundidade configurado. Mantenha identidades distintas entre irmãos e evite repetir destinos apenas para aumentar a árvore.
|
|
61
|
+
|
|
62
|
+
Breadcrumbs usam \`site.RouteGuide\`, depois \`routeDefaults.RouteGuide\` da versão e por último a rota individual. O valor explícito mais específico prevalece. \`RouteguideBrand\` é o índice separado de títulos. As setas Voltar/Próximo do rodapé seguem os destinos disponíveis; \`ActiveNavigation\` controla a navegação rápida e Ctrl+K.
|
|
63
|
+
|
|
64
|
+
## 4. Inclua mídia e valide
|
|
65
|
+
|
|
66
|
+
Consulte Documentos PDF para adicionar \`routes-pdf\` e \`menus-header-pdf\`; o exemplo \`page:23\` aponta para o guia em inglês incluído. Prévia, download e nova aba são independentes da aparência dos ícones. PDFs externos precisam permitir CORS nas três ações; PDFs locais dentro de \`gitpagedocs/\` são preparados ao executar ou compilar o Next.js.
|
|
67
|
+
|
|
68
|
+
Confira todos os idiomas, expanda cada categoria e percorra as folhas. Teste URLs diretas, alterações entre texto e ícone, primeiro/anterior/próximo/último no foco e direções desabilitadas nas extremidades. Inspecione o config da versão quando o rótulo aparece mas o destino falha. Faça commit da configuração revisada junto com os documentos e anexos referenciados.
|
|
69
|
+
`,
|
|
70
|
+
contributing: `# Contribuição e testes
|
|
71
|
+
|
|
72
|
+
Use o repositório de código-fonte para alterar o runtime, a CLI, as ferramentas compartilhadas ou o MCP. Um repositório que apenas consome o visualizador normalmente edita seu próprio conteúdo e configuração. Trabalhe em uma branch focada e descreva o comportamento visível ao usuário e sua validação.
|
|
73
|
+
|
|
74
|
+
## Altere o pacote responsável
|
|
75
|
+
|
|
76
|
+
\`frontend/\` contém o visualizador Next.js App Router e segue Feature-Sliced Design. Primitivos visuais compartilhados ficam em \`shared\`, dados e schemas de documentação em \`entities\`, recursos do usuário em \`features\` e a composição do leitor em \`widgets\`. Mantenha carregamento de arquivos e repositórios fora dos componentes de apresentação.
|
|
77
|
+
|
|
78
|
+
\`cli/\` é responsável pelo scaffold, comandos, defaults e templates autorais. \`tools/\` fornece lógica reutilizável de configuração, documentação e serviços. \`mcp/\` expõe essas capacidades pelo Model Context Protocol. Uma correção visual normalmente pertence ao frontend; um default do scaffold deve mudar na fonte da CLI e ser regenerado.
|
|
79
|
+
|
|
80
|
+
## Edite as fontes, não as cópias geradas
|
|
81
|
+
|
|
82
|
+
| Mudança | Fonte de verdade | Resultado gerado |
|
|
83
|
+
| --- | --- | --- |
|
|
84
|
+
| Opções do site e textos de idioma | \`cli/data/\` | Config raiz e \`gitpagedocs/langs/\` |
|
|
85
|
+
| Rotas e seções do menu | Builders da CLI, metadados, mapeamentos e \`menu-sections.mjs\` | Config da versão |
|
|
86
|
+
| Textos da documentação | \`cli/content/docs-{en,pt,es}.mjs\` e módulos importados | Markdown versionado |
|
|
87
|
+
| Regiões gerenciadas | \`tools/src/documentation/sections.ts\` | README, CONTRIBUTING e SECURITY |
|
|
88
|
+
| Definições de layouts | \`gitpagelayouts/v2/\` | Templates e documentação de layouts |
|
|
89
|
+
|
|
90
|
+
Após alterar CLI/conteúdo, execute \`node cli/index.mjs\`, copie \`gitpagedocs/\` para \`tools/gitpagedocs/\` sem excluir versões históricas e execute \`pnpm run baseline:create\`. Use \`node cli/index.mjs docs\` nas regiões gerenciadas e \`pnpm run layouts:sync\` para layouts. Revise o diff: a geração não deve substituir silenciosamente material customizado que você queria manter.
|
|
91
|
+
|
|
92
|
+
## Teste pelas interfaces públicas
|
|
93
|
+
|
|
94
|
+
Escreva uma regressão que falha antes de implementar. Teste o contrato observável: configuração e arquivos gerados na CLI, respostas de tools/resources no MCP, controles e teclado na UI, interações reais do navegador em navegação e mídia. Evite testes que apenas repetem o algoritmo de um helper interno.
|
|
95
|
+
|
|
96
|
+
Cubra sucesso, recursos indisponíveis, entradas inválidas e limites relevantes. Exemplos: tradução ausente, rota negada, título PDF vazio, pop-up bloqueado, falha CORS, limites primeiro/último e lista vazia de vozes nativas. Use pastas temporárias isoladas para geradores. Simule rede ou APIs do navegador na fronteira pública; mantenha colaboradores do projeto reais quando possível.
|
|
97
|
+
|
|
98
|
+
\`\`\`sh
|
|
99
|
+
pnpm install --frozen-lockfile
|
|
100
|
+
pnpm run typecheck
|
|
101
|
+
pnpm run lint
|
|
102
|
+
pnpm exec vitest run
|
|
103
|
+
pnpm run smoke:all
|
|
104
|
+
pnpm run build
|
|
105
|
+
pnpm exec cross-env PORT=3100 pnpm run test:e2e
|
|
106
|
+
\`\`\`
|
|
107
|
+
|
|
108
|
+
A configuração E2E usa as portas 3100 e 3101; preserve o serviço existente na 3000. \`smoke:all\` inclui contratos da CLI, serviços compartilhados, descoberta MCP, documentação e \`baseline:check\`. \`pnpm run test:cov\` acrescenta cobertura. O build local de produção é diferente do ambiente de exportação estática do Pages, que também deve ser validado quando caminhos de publicação mudam.
|
|
109
|
+
|
|
110
|
+
## Revise e publique
|
|
111
|
+
|
|
112
|
+
Revise acessibilidade, autorização, validação de entrada, erros, liberação de recursos e consistência dos arquivos gerados. Analise cada fonte alterada no projeto SonarQube configurado com o escopo correto de teste ou produção; use parser/linter da stack nos formatos sem suporte. Não inclua credenciais ou artefatos temporários nos commits.
|
|
113
|
+
|
|
114
|
+
Os pacotes publicáveis são \`@gitpagedocs/tools\`, \`@gitpagedocs/mcp\` e \`@gitpagedocs/cli\`; raiz e frontend são privados. Sincronize versões, dependências internas e lockfile, inspecione os pacotes e conclua a validação antes do push. O workflow npm atual roda em pushes para main e publica em ordem de dependência quando a versão da CLI é nova. Confirme npm e Pages depois; um build local verde não equivale à publicação.
|
|
115
|
+
`,
|
|
116
|
+
};
|
|
@@ -14,7 +14,7 @@ export function getDefaultSiteConfig(projectLink, languageToggles = buildLanguag
|
|
|
14
14
|
ThemeDefault: "aurora-dark",
|
|
15
15
|
ThemeModeDefault: "dark",
|
|
16
16
|
ActiveNavigation: true,
|
|
17
|
-
IconQuickNavigationReactIcones:
|
|
17
|
+
IconQuickNavigationReactIcones: true,
|
|
18
18
|
IconQuickNavigationReactIconesTag: "FiSearch",
|
|
19
19
|
IconQuickNavigationReactIconesTagColorDark: "currentColor",
|
|
20
20
|
IconQuickNavigationReactIconesTagColorLight: "currentColor",
|
|
@@ -38,21 +38,41 @@ export function getDefaultSiteConfig(projectLink, languageToggles = buildLanguag
|
|
|
38
38
|
enabled: true,
|
|
39
39
|
narration: { enabled: true, defaultRate: 1, defaultVolume: 1 },
|
|
40
40
|
},
|
|
41
|
-
IconLanguageSelectorReactIcones:
|
|
41
|
+
IconLanguageSelectorReactIcones: true,
|
|
42
42
|
IconLanguageSelectorReactIconesTag: "FiGlobe",
|
|
43
43
|
IconLanguageSelectorReactIconesTagColorDark: "currentColor",
|
|
44
44
|
IconLanguageSelectorReactIconesTagColorLight: "currentColor",
|
|
45
45
|
IconLanguageSelectorReactIconesTagSize: "22px",
|
|
46
|
-
IconThemeSelectorReactIcones:
|
|
46
|
+
IconThemeSelectorReactIcones: true,
|
|
47
47
|
IconThemeSelectorReactIconesTag: "BsSunFill",
|
|
48
48
|
IconThemeSelectorReactIconesTagColorDark: "currentColor",
|
|
49
49
|
IconThemeSelectorReactIconesTagColorLight: "currentColor",
|
|
50
50
|
IconThemeSelectorReactIconesTagSize: "22px",
|
|
51
|
-
IconFocusModeReactIcones:
|
|
51
|
+
IconFocusModeReactIcones: true,
|
|
52
52
|
IconFocusModeReactIconesTag: "MdFullscreen",
|
|
53
53
|
IconFocusModeReactIconesTagColorDark: "currentColor",
|
|
54
54
|
IconFocusModeReactIconesTagColorLight: "currentColor",
|
|
55
55
|
IconFocusModeReactIconesTagSize: "22px",
|
|
56
|
+
IconPdfDownloadReactIcones: true,
|
|
57
|
+
IconPdfDownloadReactIconesTag: "FiDownload",
|
|
58
|
+
IconPdfDownloadReactIconesTagColorDark: "currentColor",
|
|
59
|
+
IconPdfDownloadReactIconesTagColorLight: "currentColor",
|
|
60
|
+
IconPdfDownloadReactIconesTagSize: "22px",
|
|
61
|
+
IconPdfOpenInNewTabReactIcones: true,
|
|
62
|
+
IconPdfOpenInNewTabReactIconesTag: "FiExternalLink",
|
|
63
|
+
IconPdfOpenInNewTabReactIconesTagColorDark: "currentColor",
|
|
64
|
+
IconPdfOpenInNewTabReactIconesTagColorLight: "currentColor",
|
|
65
|
+
IconPdfOpenInNewTabReactIconesTagSize: "22px",
|
|
66
|
+
IconDocumentPreviousReactIcones: true,
|
|
67
|
+
IconDocumentPreviousReactIconesTag: "FiChevronLeft",
|
|
68
|
+
IconDocumentPreviousReactIconesTagColorDark: "currentColor",
|
|
69
|
+
IconDocumentPreviousReactIconesTagColorLight: "currentColor",
|
|
70
|
+
IconDocumentPreviousReactIconesTagSize: "22px",
|
|
71
|
+
IconDocumentNextReactIcones: true,
|
|
72
|
+
IconDocumentNextReactIconesTag: "FiChevronRight",
|
|
73
|
+
IconDocumentNextReactIconesTagColorDark: "currentColor",
|
|
74
|
+
IconDocumentNextReactIconesTagColorLight: "currentColor",
|
|
75
|
+
IconDocumentNextReactIconesTagSize: "22px",
|
|
56
76
|
FooterEnabled: true,
|
|
57
77
|
FooterLinkName: "GitPageDocs",
|
|
58
78
|
FooterLinkUrl: projectLink,
|
package/data/i18n-langmenu.mjs
CHANGED
|
@@ -3,6 +3,7 @@ export const defaultLangMenu = {
|
|
|
3
3
|
titleHeaderMenuPdf: "PDF",
|
|
4
4
|
PdfDownload: "Baixar PDF",
|
|
5
5
|
PdfOpenInNewTab: "Abrir PDF em nova aba",
|
|
6
|
+
PdfOpenError: "Não foi possível abrir o PDF. Verifique o arquivo, permita pop-ups e tente novamente.",
|
|
6
7
|
PdfUnavailable: "A prévia do PDF depende do navegador. Use as ações disponíveis para abrir ou baixar o documento.",
|
|
7
8
|
PdfDownloadError: "Não foi possível baixar o PDF. Tente abrir o documento em uma nova aba.",
|
|
8
9
|
PdfDownloading: "Baixando PDF...",
|
|
@@ -25,6 +26,10 @@ export const defaultLangMenu = {
|
|
|
25
26
|
typeToNavigate: "Digite para navegar...",
|
|
26
27
|
noNavigationResults: "Nenhum resultado de navegacao.",
|
|
27
28
|
focusMode: "Modo foco",
|
|
29
|
+
focusFirstDocument: "Primeiro documento",
|
|
30
|
+
focusLastDocument: "Último documento",
|
|
31
|
+
focusFirstSection: "Primeira seção",
|
|
32
|
+
focusLastSection: "Última seção",
|
|
28
33
|
focusSectionsLabel: "Seções",
|
|
29
34
|
focusDocumentsLabel: "Documentos",
|
|
30
35
|
focusPreviousSectionLabel: "Seção anterior",
|
|
@@ -167,6 +172,7 @@ export const defaultLangMenu = {
|
|
|
167
172
|
titleHeaderMenuPdf: "PDF",
|
|
168
173
|
PdfDownload: "Download PDF",
|
|
169
174
|
PdfOpenInNewTab: "Open PDF in a new tab",
|
|
175
|
+
PdfOpenError: "Could not open PDF. Check the file and allow pop-ups, then try again.",
|
|
170
176
|
PdfUnavailable: "PDF preview depends on your browser. Use the available actions to open or download the document.",
|
|
171
177
|
PdfDownloadError: "The PDF could not be downloaded. Try opening the document in a new tab.",
|
|
172
178
|
PdfDownloading: "Downloading PDF...",
|
|
@@ -189,6 +195,10 @@ export const defaultLangMenu = {
|
|
|
189
195
|
typeToNavigate: "Type to navigate...",
|
|
190
196
|
noNavigationResults: "No navigation results.",
|
|
191
197
|
focusMode: "Focus mode",
|
|
198
|
+
focusFirstDocument: "First document",
|
|
199
|
+
focusLastDocument: "Last document",
|
|
200
|
+
focusFirstSection: "First section",
|
|
201
|
+
focusLastSection: "Last section",
|
|
192
202
|
focusSectionsLabel: "Sections",
|
|
193
203
|
focusDocumentsLabel: "Documents",
|
|
194
204
|
focusPreviousSectionLabel: "Previous section",
|
|
@@ -331,6 +341,7 @@ export const defaultLangMenu = {
|
|
|
331
341
|
titleHeaderMenuPdf: "PDF",
|
|
332
342
|
PdfDownload: "Descargar PDF",
|
|
333
343
|
PdfOpenInNewTab: "Abrir PDF en una pestaña nueva",
|
|
344
|
+
PdfOpenError: "No se pudo abrir el PDF. Comprueba el archivo, permite ventanas emergentes e inténtalo de nuevo.",
|
|
334
345
|
PdfUnavailable: "La vista previa del PDF depende del navegador. Usa las acciones disponibles para abrir o descargar el documento.",
|
|
335
346
|
PdfDownloadError: "No se pudo descargar el PDF. Intenta abrir el documento en una pestaña nueva.",
|
|
336
347
|
PdfDownloading: "Descargando PDF...",
|
|
@@ -353,6 +364,10 @@ export const defaultLangMenu = {
|
|
|
353
364
|
typeToNavigate: "Escribe para navegar...",
|
|
354
365
|
noNavigationResults: "Sin resultados de navegacion.",
|
|
355
366
|
focusMode: "Modo foco",
|
|
367
|
+
focusFirstDocument: "Primer documento",
|
|
368
|
+
focusLastDocument: "Último documento",
|
|
369
|
+
focusFirstSection: "Primera sección",
|
|
370
|
+
focusLastSection: "Última sección",
|
|
356
371
|
focusSectionsLabel: "Secciones",
|
|
357
372
|
focusDocumentsLabel: "Documentos",
|
|
358
373
|
focusPreviousSectionLabel: "Sección anterior",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export const MARKDOWN_MENU_SECTIONS = [
|
|
2
|
+
1,
|
|
3
|
+
2,
|
|
4
|
+
{
|
|
5
|
+
id: 1000,
|
|
6
|
+
titles: { en: "Guides", pt: "Guias", es: "Guías" },
|
|
7
|
+
submenus: [
|
|
8
|
+
{
|
|
9
|
+
id: 1001,
|
|
10
|
+
titles: { en: "Configure your site", pt: "Configure seu site", es: "Configura tu sitio" },
|
|
11
|
+
submenus: [13, 25, 16, 20],
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 1002,
|
|
15
|
+
titles: { en: "Read and explore", pt: "Leia e explore", es: "Lee y explora" },
|
|
16
|
+
submenus: [22, 21, 24, 30],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 1003,
|
|
20
|
+
titles: { en: "Automate and integrate", pt: "Automatize e integre", es: "Automatiza e integra" },
|
|
21
|
+
submenus: [18, 19, 6],
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 1100,
|
|
27
|
+
titles: { en: "Operations and development", pt: "Operação e desenvolvimento", es: "Operación y desarrollo" },
|
|
28
|
+
submenus: [
|
|
29
|
+
{
|
|
30
|
+
id: 1101,
|
|
31
|
+
titles: { en: "Ship and maintain", pt: "Publique e mantenha", es: "Publica y mantén" },
|
|
32
|
+
submenus: [14, 26, 27, 17],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 1102,
|
|
36
|
+
titles: { en: "Develop the project", pt: "Desenvolva o projeto", es: "Desarrolla el proyecto" },
|
|
37
|
+
submenus: [15, 28, 3],
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 1200,
|
|
43
|
+
titles: { en: "Git and GitHub", pt: "Git e GitHub", es: "Git y GitHub" },
|
|
44
|
+
submenus: [5, 4],
|
|
45
|
+
},
|
|
46
|
+
];
|
package/data/path-mappings.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Path and media mappings for doc versions */
|
|
2
2
|
|
|
3
3
|
export const PDF_GUIDE_FILENAME = "gitpagedocs-project-guide.pdf";
|
|
4
|
+
export const HTML_DOOM_FILENAME = "doom.html";
|
|
4
5
|
|
|
5
6
|
export const ROUTE_PATHS = {
|
|
6
7
|
1: { pt: "getting-started.md", en: "getting-started.md", es: "getting-started.md" },
|
|
@@ -20,6 +21,11 @@ export const ROUTE_PATHS = {
|
|
|
20
21
|
21: { pt: "accessibility.md", en: "accessibility.md", es: "accessibility.md" },
|
|
21
22
|
22: { pt: "focus-mode.md", en: "focus-mode.md", es: "focus-mode.md" },
|
|
22
23
|
24: { pt: "pdf.md", en: "pdf.md", es: "pdf.md" },
|
|
24
|
+
25: { pt: "configuration-recipes.md", en: "configuration-recipes.md", es: "configuration-recipes.md" },
|
|
25
|
+
26: { pt: "migration.md", en: "migration.md", es: "migration.md" },
|
|
26
|
+
27: { pt: "troubleshooting.md", en: "troubleshooting.md", es: "troubleshooting.md" },
|
|
27
|
+
28: { pt: "contributing.md", en: "contributing.md", es: "contributing.md" },
|
|
28
|
+
30: { pt: "html-containers.md", en: "html-containers.md", es: "html-containers.md" },
|
|
23
29
|
};
|
|
24
30
|
|
|
25
31
|
export const VIDEO_IDS = ["bdIJkGr2NV0", "c67GaAkf1BE", "N3my6W_Rdwg", "r8jQ9hVA2qs"];
|
package/data/route-metas.mjs
CHANGED
|
@@ -83,6 +83,36 @@ export const REFERENCE_ROUTE_METAS = {
|
|
|
83
83
|
titles: { pt: "Documentos PDF", en: "PDF documents", es: "Documentos PDF" },
|
|
84
84
|
descriptions: { pt: "Rotas, prévia, download e publicação de anexos PDF", en: "Routes, previews, downloads and publishing PDF attachments", es: "Rutas, vista previa, descarga y publicación de anexos PDF" },
|
|
85
85
|
},
|
|
86
|
+
25: {
|
|
87
|
+
titles: { pt: "Receitas de configuração", en: "Configuration recipes", es: "Recetas de configuración" },
|
|
88
|
+
descriptions: { pt: "Exemplos completos de configuração e seções aninhadas", en: "Complete configuration and nested-section examples", es: "Ejemplos completos de configuración y secciones anidadas" },
|
|
89
|
+
},
|
|
90
|
+
26: {
|
|
91
|
+
titles: { pt: "Migração e compatibilidade", en: "Migration and compatibility", es: "Migración y compatibilidad" },
|
|
92
|
+
descriptions: { pt: "Atualize preservando conteúdo e personalizações", en: "Upgrade while preserving content and customizations", es: "Actualiza conservando contenido y personalizaciones" },
|
|
93
|
+
},
|
|
94
|
+
27: {
|
|
95
|
+
titles: { pt: "Solução de problemas", en: "Troubleshooting", es: "Solución de problemas" },
|
|
96
|
+
descriptions: { pt: "Diagnostique configuração, publicação, PDF e integrações", en: "Diagnose configuration, deployment, PDF and integrations", es: "Diagnostica configuración, publicación, PDF e integraciones" },
|
|
97
|
+
},
|
|
98
|
+
28: {
|
|
99
|
+
titles: { pt: "Contribuição e testes", en: "Contributing and testing", es: "Contribución y pruebas" },
|
|
100
|
+
descriptions: { pt: "Fontes autorais, contratos, testes e publicação", en: "Authoring sources, contracts, tests and releases", es: "Fuentes, contratos, pruebas y publicación" },
|
|
101
|
+
},
|
|
102
|
+
30: {
|
|
103
|
+
titles: { pt: "Containers HTML", en: "HTML containers", es: "Contenedores HTML" },
|
|
104
|
+
descriptions: { pt: "Páginas HTML, URLs externas e o exemplo interativo DOOM", en: "HTML pages, external URLs and the interactive DOOM example", es: "Páginas HTML, URLs externas y el ejemplo interactivo DOOM" },
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const HTML_DOOM_META = {
|
|
109
|
+
id: 29,
|
|
110
|
+
titles: { pt: "DOOM: exemplo HTML", en: "DOOM: HTML example", es: "DOOM: ejemplo HTML" },
|
|
111
|
+
descriptions: {
|
|
112
|
+
pt: "Um container HTML com título, descrição e um jogo carregado apenas ao clicar.",
|
|
113
|
+
en: "An HTML container with a title, description and a game loaded only after clicking.",
|
|
114
|
+
es: "Un contenedor HTML con título, descripción y un juego que se carga solo al hacer clic.",
|
|
115
|
+
},
|
|
86
116
|
};
|
|
87
117
|
|
|
88
118
|
export const SOURCE_VIEWER_META = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitpagedocs/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10",
|
|
4
4
|
"description": "CLI that scaffolds and maintains gitpagedocs documentation, generates docs with AI, configures GitHub Pages, and runs the MCP server.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"gitpagedocs": "index.mjs"
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@clack/prompts": "^1.5.1",
|
|
32
|
-
"@gitpagedocs/mcp": "^0.0.
|
|
33
|
-
"@gitpagedocs/tools": "^0.0.
|
|
32
|
+
"@gitpagedocs/mcp": "^0.0.10",
|
|
33
|
+
"@gitpagedocs/tools": "^0.0.10",
|
|
34
34
|
"tsx": "^4.21.0"
|
|
35
35
|
},
|
|
36
36
|
"repository": {
|
|
@@ -19,6 +19,11 @@ const DOC_FILE_KEYS = new Map([
|
|
|
19
19
|
["accessibility.md", "accessibility"],
|
|
20
20
|
["focus-mode.md", "focusMode"],
|
|
21
21
|
["pdf.md", "pdf"],
|
|
22
|
+
["configuration-recipes.md", "configurationRecipes"],
|
|
23
|
+
["migration.md", "migration"],
|
|
24
|
+
["troubleshooting.md", "troubleshooting"],
|
|
25
|
+
["contributing.md", "contributing"],
|
|
26
|
+
["html-containers.md", "htmlContainers"],
|
|
22
27
|
]);
|
|
23
28
|
|
|
24
29
|
export function parseDocFileToKey(fileName) {
|
|
@@ -28,6 +33,7 @@ export function parseDocFileToKey(fileName) {
|
|
|
28
33
|
export function parseHtmlFileToKey(fileName) {
|
|
29
34
|
const base = fileName.replace(/\.html$/, "");
|
|
30
35
|
if (base === "source-viewer") return "sourceViewer";
|
|
36
|
+
if (base === "doom") return "doom";
|
|
31
37
|
return undefined;
|
|
32
38
|
}
|
|
33
39
|
|