Publicação
Congelamento: o CI não roda R
O template liga freeze: auto. Ao renderizar localmente, o Quarto guarda os resultados de cada página com código em _freeze/, e essa pasta vai para o git. No GitHub Actions, o Quarto reaproveita esses resultados em vez de executar o código de novo. Por isso:
- o CI não precisa de R, de pacotes nem dos dados (que podem ficar fora do git);
- uma página com código só é executada de novo quando o texto dela muda.
Qualquer mudança numa página com blocos {r}, mesmo uma vírgula, muda a assinatura da página. Rode quarto render e faça o commit de _freeze/ junto. Se esquecer, o CI falha com a mensagem “renderize localmente e faça o commit de _freeze/“.
O fluxo do GitHub Actions
O arquivo .github/workflows/publish.yml roda a cada push na main:
- instala o Quarto na versão fixada no workflow;
- roda
tools/check.py pre: capítulos registrados,_freeze/em dia, nenhum::: {#refs}, nenhum caminho do Windows ou absoluto; - renderiza o livro com os resultados congelados;
- roda
tools/check.py post: citações e referências cruzadas resolvidas, links internos existentes; - publica no GitHub Pages.
Para rodar as mesmas checagens localmente:
python3 _extensions/felipelmc/course-notes/tools/check.py pre
quarto render
python3 _extensions/felipelmc/course-notes/tools/check.py post _bookGitHub Pages
O Pages usa o modo “GitHub Actions” (sem a branch gh-pages). Para ligar num repositório novo ou migrar um que publicava de main:/docs:
gh api -X PUT repos/felipelmc/<repo>/pages -f build_type=workflowO endereço não muda: felipelamarca.com/<repo>/.
Modo escuro
Os sites de notas e o site pessoal estão no mesmo domínio e compartilham a preferência de tema. Escolher o modo escuro em felipelamarca.com abre as notas no escuro, e vice-versa.