| .github/workflows | ||
| docs | ||
| sample-vault | ||
| src | ||
| tests | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.json | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| versions.json | ||
| vitest.config.ts | ||
Leif
Leif é um plugin para Obsidian voltado ao acompanhamento de estudos para concursos públicos.
Ele organiza o estudo por concurso, matéria, item, assunto e sessão. A proposta é substituir controles dispersos em planilhas por um painel integrado ao vault, preservando um fluxo simples: escolher o concurso ativo, seguir o ciclo de matérias, registrar sessões e acompanhar progresso.
Status do projeto
O projeto está em desenvolvimento inicial.
As funcionalidades principais já estão implementadas e cobertas por testes, mas o plugin ainda não foi publicado na lista oficial de plugins da comunidade do Obsidian.
Funcionalidades
- Gestão de múltiplos concursos.
- Seleção de concurso ativo.
- Mural por concurso, com links, notas e informações de referência.
- Cadastro de matérias com ordem, tempo planejado, etapa e status no ciclo.
- Ciclo de estudo entre matérias ativas.
- Indicação da matéria e do item recomendados para estudo.
- Cadastro de itens de estudo por matéria.
- Associação de PDF, vídeo e link aos itens de estudo.
- Cadastro de assuntos por matéria.
- Associação de caderno de questões aos assuntos.
- Abertura do link do caderno no navegador.
- Registro manual de sessões de PDF, vídeo e questões.
- Acompanhamento de páginas lidas, questões resolvidas e acertos.
- Dashboard com resumo por matéria.
- Exportação de dados em CSV.
- Vault de exemplo com dados de demonstração.
Instalação
Instalação pela comunidade do Obsidian
O Leif ainda não está disponível na lista oficial de plugins da comunidade.
Quando for publicado, a instalação poderá ser feita por:
- Abrir
Settingsno Obsidian. - Acessar
Community plugins. - Procurar por
Leif. - Instalar e ativar o plugin.
Instalação manual
-
Baixe os arquivos gerados do plugin:
main.jsstyles.cssmanifest.json
-
Crie a pasta do plugin dentro do vault:
.obsidian/plugins/leif/ -
Copie os três arquivos para essa pasta.
-
Reinicie o Obsidian.
-
Ative o plugin em
Settings > Community plugins.
Instalação com BRAT
Se você usa o plugin BRAT, adicione este repositório como plugin beta:
https://github.com/ttusk/leif
Depois disso, ative o Leif na lista de plugins da comunidade.
Como usar
Abra o painel principal pela faixa lateral esquerda ou pela paleta de comandos:
Leif: Abrir painel do Leif
O painel é dividido nas seguintes abas:
DashboardConcursosCiclo e MatériasItens e PDFsAssuntos e QuestõesSessõesMural
Fluxo recomendado
- Crie ou selecione um concurso.
- Cadastre as matérias do concurso.
- Defina a ordem e o status das matérias no ciclo.
- Cadastre os itens de estudo de cada matéria.
- Cadastre os assuntos e associe cadernos de questões quando necessário.
- Registre sessões de estudo conforme avançar.
- Use o Dashboard para acompanhar progresso e desempenho.
Conceitos principais
Concurso
É a unidade principal de organização. Cada concurso possui seus próprios dados, incluindo matérias, itens, assuntos, sessões e mural.
Matéria
Representa uma disciplina do concurso. Pode ser ativada ou desativada no ciclo e possui ordem, tempo planejado e etapa atual.
Item
Representa uma unidade de estudo dentro de uma matéria. PDFs, vídeos e links pertencem aos itens.
Assunto
Representa um tópico da matéria. Cadernos de questões pertencem aos assuntos.
Sessão
Representa um registro manual de estudo. Pode ser de PDF, vídeo ou questões.
Vault de demonstração
O repositório inclui um vault de exemplo em sample-vault/.
Ele já contém:
- Leif instalado e ativado.
- Três concursos de demonstração.
- Matérias, itens, assuntos, cadernos e sessões cadastrados.
- Dados suficientes para testar alternância entre concursos e visualização de progresso.
Para usar:
- Abra o Obsidian.
- Selecione
Open folder as vault. - Escolha a pasta
sample-vault/. - Abra o Leif pela faixa lateral ou pela paleta de comandos.
Desenvolvimento
Requisitos
- Node.js 20 ou superior.
- npm.
- Obsidian instalado para teste manual.
Preparação
npm install
Modo de desenvolvimento
npm run dev
Build de produção
npm run build
O build copia automaticamente main.js e styles.css para:
sample-vault/.obsidian/plugins/leif/
Testes
npm test
Estrutura do projeto
src/
domain/ Entidades, serviços de domínio e erros
application/ Casos de uso, portas, validações e guards
infrastructure/ Persistência, migrations, seed e adapters
ui/ Comandos, view principal e componentes
Comandos registrados
O plugin registra comandos auxiliares para uso e desenvolvimento:
Leif: Abrir painel do LeifLeif: Seed demo dataLeif: Show active contestLeif: Switch active contestLeif: Show active contest subjectsLeif: Reorder active contest subjectsLeif: Toggle first subject active stateLeif: Update first subject configurationLeif: Advance cycleLeif: Show cycle snapshotLeif: Show active contest wallLeif: Show active contest summaryLeif: Register demo question sessionLeif: Register demo video sessionLeif: Reset plugin data
Roadmap
- Publicar o plugin na comunidade do Obsidian.
- Adicionar filtros e busca nas tabelas.
- Melhorar a visualização de estatísticas.
- Adicionar importação de CSV.
- Revisar a experiência mobile.
- Criar documentação com capturas de tela.
Contribuição
Contribuições são bem-vindas.
Antes de abrir um pull request:
- Descreva claramente o problema ou a melhoria.
- Mantenha a alteração focada.
- Inclua testes quando a mudança afetar comportamento.
- Execute
npm test. - Execute
npm run build.
Licença
Este projeto é de código aberto e está licenciado sob os termos da licença MIT.
Consulte o arquivo LICENSE para mais informações.