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.
ImportanteRenderize antes de dar push

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:

  1. instala o Quarto na versão fixada no workflow;
  2. roda tools/check.py pre: capítulos registrados, _freeze/ em dia, nenhum ::: {#refs}, nenhum caminho do Windows ou absoluto;
  3. renderiza o livro com os resultados congelados;
  4. roda tools/check.py post: citações e referências cruzadas resolvidas, links internos existentes;
  5. 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 _book

GitHub 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=workflow

O 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.