Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

15 Commits

Repository files navigation

Clube de Matemática — Base de Conhecimento

Repositório de materiais do Clube de Matemática @ 42 São Paulo. Cada "subject" é uma reunião com teoria, exercícios e exemplos em C, exportado para PDF e HTML.

Quick Start

make docker-build # constrói a imagem Docker (uma vez)
make docker-make # compila tudo (PDF + HTML + índice + guias)

Resultado em docs/index.html — abra no navegador.


Estrutura

problems/ # Código-fonte LaTeX de cada subject
<area>/ # ex: logic/, mistakes/, algebra/
<subject>/ # ex: cm42_00/
main.tex # → ponto de entrada
includes.tex # → preâmbulo (pacotes, cores, estilos)
resourcers.tex # → logotipos
sections/ # → conteúdo dividido em arquivos .tex
resources/ # → imagens, SVGs
Makefile # → build local do subject
docs/ # Saída gerada automaticamente
style.css # CSS global (tema claro/escuro)
index.html # Página principal com links para subjects e guias
subjects/ # Saída de cada subject (PDF + HTML)
guidelines/ # Guias convertidos para HTML
tools/ # Scripts de apoio
preprocess-tex.py # Achata \input{} e converte TikZ/circuitikz → SVG
html-extra.lua # Filtro Pandoc: syntax highlighting, botão de tema
guidelines/ # Documentação de convenções e guias (formato .md)
subject-assets.md # Referência de ambientes LaTeX disponíveis
how-to-create-a-subject.md # Passo a passo para criar um subject
how-to-add-styles.md # Guia de estilização CSS
rules-of-the-base.md # Regras gerais do repositório
template-solution.md # Template para soluções

Fluxo de Trabalho

1. Escrever conteúdo

Cada subject fica em problems/<area>/<subject>/. Veja o guia completo em guidelines/how-to-create-a-subject.md.

2. Build de um subject específico

make -C problems/logic/cm42_00 all # PDF + HTML de um subject
make -C problems/logic/cm42_00 pdf # só PDF
make -C problems/logic/cm42_00 html # só HTML

Resultado: docs/subjects/cm42_00/cm42_00.pdf e docs/subjects/cm42_00/index.html.

3. Build global (todos os subjects)

make all # style + html (todos subjects) + index + guidelines-html
make style # só gera docs/style.css
make html # compila todos os subjects
make index # só gera docs/index.html
make pdf # PDF de todos os subjects

Comandos de Referência

ComandoO que faz
make allstyle + html (todos subjects) + index + guidelines-html
make styleGera docs/style.css
make htmlCompila todos os subjects (PDF + HTML)
make indexGera docs/index.html com links para subjects e guias
make guidelines-htmlConverte guidelines/*.md para docs/guidelines/*.html
make pdfCompila PDF de todos os subjects
make cleanRemove artefatos de build + docs/guidelines/
make distcleanRemove docs/ inteiro
make -C problems/<area>/<sub> allBuild de um subject específico
make docker-buildConstrói imagem Docker
make docker-makeExecuta make distclean && make dentro do container
make docker-cleanExecuta make distclean dentro do container

Build (Docker)

make docker-build # constrói a imagem (uma vez)
make docker-make # compila tudo do zero

Para compilar sem limpar antes:

docker run --rm -v "$(CURDIR)":/data cm42-knowledge-base-builder make

Solução de Problemas

Permission denied ao rodar make

O container Docker executa como root. Para corrigir a permissão dos arquivos gerados:

docker run --rm -v "$(pwd)":/data alpine chown -R 1000:1000 /data/docs

Tabela no HTML aparece como texto puro (div.tabular)

O Pandoc não entende \newcolumntype. Use apenas tipos de coluna padrão (l, c, r, p{...}) em tabular.

Diagrama circuitikz não aparece no HTML

Evite a opção [symbols] do circuitikz — não disponível no TeXLive do Debian bookworm.


Dependências (Docker)

A imagem inclui: Pandoc 3.1.11, TeXLive 2022, Python 3, dvisvgm 3.0.3, Inkscape, cm-super, ghostscript. O host precisa apenas do Docker.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages