Quartz
Resumo
Gerador de site estĆ”tico ābatteries-includedā (em TypeScript) que transforma um vault Obsidian/Markdown em um site funcional. Ć a engine da wiki pĆŗblica do DM Yan: wiki.yanbraga.com roda sobre Quartz a partir do conteĆŗdo de content/.
Por que Ć© relevante para Yan
- Publica para os jogadores a parte do vault que é pública (cenÔrios, guias, perfis de NPCs player-safe) sem expor o prep do Mestre.
- Permite controlar visibilidade por pasta (
ignorePatterns), rascunho (draft: true) e plugins customizados (RemoveSecrets). - Repo atual usa Quartz v4.4.0 (a migração v5 foi interrompida pela metade e revertida).
Conceitos principais
- Build estƔtico:
npx quartz buildprocessa o Markdown e gera a pastapublic/(HTML/CSS/JS) ā sem backend. - Config:
quartz.config.ts(pageTitle, baseUrl, enableSPA, ignorePatterns) equartz.layout.ts(layout/cabeƧalho/rodapĆ©). - ignorePatterns: padrƵes de pasta/arquivo excluĆdos da publicação (ex.:
**/2-Thylea/Personagens). - RemoveDrafts: plugin oficial que remove notas com
draft: truedo build. - Transformers/plugins: pipeline que converte callouts, wikilinks e componentes (SPA com popovers).
- SPA fallback: rotas inexistentes retornam o shell do site (HTTP 200 mesmo sem a pĆ”gina) ā validação por conteĆŗdo, nĆ£o por status.
Como funciona
- ConteĆŗdo em
content/(Markdown + frontmatter) no repoWiki-Yan. npx quartz buildgera o site empublic/.- Deploy: container Docker
quartz-wikina VM (nginx servindo o build) ā rebuild manual comdocker compose build && docker compose up -d --force-recreate quartz-wiki. - DNS/HTTPS via Cloudflare Tunnel apontando para a porta interna do container.
Uso atual
- Repo:
C:\Users\Yanbd\dev\Wiki-Yan(branchv4; remoto GitLabYBraga35/Wiki-Yan). - Deploy: VM Oracle (hostname
foundry), containerquartz-wiki, rebuild via tar-pipe +docker compose. - Segredos: polĆtica documentada em
RPG/1-DM Toolkit/Guia Secrets da Wiki.md(callouts[!secret]/[!dm]/[!private]+ ignorePatterns + drafts). - Plugin custom
RemoveSecretsemquartz/plugins/transformers/secrets.ts.
DecisƵes jƔ tomadas
- Restaurar Quartz v4 após migração v5 incompleta que quebrava o build; backup reversĆvel em
.quartz-backup-v5/. - Criar
.dockerignorepara reduzir o contexto de build (2.5GB ā só o necessĆ”rio). - Defesa dupla de secrets: ignorePatterns +
draft: true, porque seƧƵes de texto normal (ex.: āInformaƧƵes Secretasā) nĆ£o passam pelo RemoveSecrets (que só filtra callouts).
LimitaƧƵes e cuidados
- Build local no Windows quebra com aliases contendo
"?; "em notas antigas ā buildar na VM. - Syncthing da VM (pasta obs-sync-yan) esteve desatualizado ā preferir tar-pipe/scp manual.
- Verificar publicação por CONTEĆDO do HTML baixado, nĆ£o por código HTTP (SPA fallback retorna 200).
QuestƵes em aberto
- Completar a migração para Quartz v5 (planejada, não priorizada).
- Automação de deploy via git (hoje o push não dispara rebuild).
Fontes
- Documentação oficial: https://quartz.jzhao.xyz (Confirmado)
- Repositório: https://github.com/jackyzha0/quartz (Confirmado)
- Uso local: evidĆŖncia direta do repo Wiki-Yan e container quartz-wiki (Confirmado)