Código livre

shelf

Suas anotações em Markdown, numa biblioteca.

Um aplicativo desktop que transforma qualquer pasta de arquivos Markdown numa biblioteca: uma estante por pasta, busca em todo o conteúdo e um leitor com exportação para PDF.

Instalar Ver o código no GitLab

O shelf com uma biblioteca aberta: os documentos agrupados em estantes, uma por pasta, cada um como uma lombada.

Cada pasta vira uma estante

Aponte para uma pasta e todo diretório com arquivos .md vira uma fileira de cartões, em ordem alfabética. Notas, documentação e textos espalhados ficam num lugar só.

Janela do shelf com os documentos agrupados em estantes, uma por pasta, cada documento mostrado como uma lombada.

Ache o texto em qualquer documento

A busca mostra só os livros cujo título ou conteúdo combina, por frase exata, todas as palavras ou qualquer palavra, com opções de maiúsculas, palavra inteira e expressão regular.

Busca por “tree-sitter” mostrando só os documentos que contêm o termo, agrupados por estante.

Abra já no trecho que você procurava

O livro abre com a busca na barra de achar e todas as ocorrências marcadas, com navegação entre elas, em tema claro ou escuro que acompanha o sistema.

Documento “Syntax Highlighting” aberto no leitor, com o termo buscado destacado no texto e uma tabela de linguagens suportadas.

Mais recursos

Leitor de Markdown

Renderiza CommonMark com tabelas, listas de tarefas e notas de rodapé, além de diagramas ER do Mermaid.

Exportação para PDF

Gera um PDF do documento aberto, com títulos, listas, citações e código; tabelas e imagens saem como texto simples.

Pastas ignoradas

Ignora por padrão pastas como .git, node_modules e target, e aceita seus próprios padrões.

Sobre o projeto

O shelf é para quem guarda anotações, documentação e textos em Markdown espalhados por pastas e quer lê-los como uma biblioteca, sem abrir um editor. Você aponta para uma pasta e ele monta as estantes, com busca em todo o conteúdo.

É um leitor, não um editor. O código aparece em fonte monoespaçada, sem realce de sintaxe, e só os diagramas ER do Mermaid são renderizados; qualquer outro bloco mermaid continua como código.

Tecnologias

Rust, com a interface em Dioxus sobre o webview do sistema; pulldown-cmark para o Markdown, genpdf para o PDF e regex para a busca.

Licença: MIT

Instalar o shelf

Precisa de Rust 1.88 ou mais novo, WebKitGTK 4.1 e libxdo (webkit2gtk-4.1 e xdotool no Arch; libwebkit2gtk-4.1-dev e libxdo-dev no Debian e no Ubuntu).

Pacote .deb

Para Debian 12 ou mais novo e Ubuntu 22.04 ou mais novo.

curl -LO https://gitlab.com/alteronauta/shelf/-/releases/v1.0.0/downloads/shelf_1.0.0_amd64.deb
sudo apt install ./shelf_1.0.0_amd64.deb

Binário para qualquer Linux amd64

Precisa de WebKitGTK 4.1, GTK 3 e libxdo instalados.

curl -LO https://gitlab.com/alteronauta/shelf/-/releases/v1.0.0/downloads/shelf-v1.0.0-linux-amd64.tar.gz
sudo tar -xzf shelf-v1.0.0-linux-amd64.tar.gz -C /usr/local --strip-components=1

Do código-fonte

Instala em ~/.local, com o ícone e o atalho no menu de aplicativos.

git clone https://gitlab.com/alteronauta/shelf.git && cd shelf
./build-linux.sh

O macOS tem um script que monta o aplicativo. Os detalhes estão no README.

Conte o que você precisa resolver.

adriano@ars.tec.br

@adriano@ars.tec.br