docs: README alinhado com o estado atual do app
- Diagrama ASCII redesenhado: abas, árvore de categorias no sidebar, gutter com números de linha e marcador de coluna - Nota sobre o layout mobile (gaveta + painel em tela cheia) - Tamanho do binário (~7 MB com -trimpath), estrutura de diretórios, seção de testes e segurança (localStorage de preferências/abas)
This commit is contained in:
1 parent
70887b5b48
commit
0f2c32ae3d
1 file changed
+28
-18
@@ -4,29 +4,36 @@ Aplicação web completa para gerenciamento de notas inspirada no visual sóbrio
|
|||||||
**Mousepad** (editor de texto do XFCE): barra de menus superior, barra de ferramentas, área de
|
**Mousepad** (editor de texto do XFCE): barra de menus superior, barra de ferramentas, área de
|
||||||
texto limpa e barra de status na parte inferior.
|
texto limpa e barra de status na parte inferior.
|
||||||
|
|
||||||
Backend único em **Go** (binário estático de ~11 MB com o frontend já embutido), armazenamento em
|
Backend único em **Go** (binário estático de ~7 MB com o frontend já embutido), armazenamento em
|
||||||
disco no estilo **Git** (blobs endereçados por SHA-256 + histórico de revisões com diff e
|
disco no estilo **Git** (blobs endereçados por SHA-256 + histórico de revisões com diff e
|
||||||
restauração) e autenticação por **token** (Bearer para API / cookie HttpOnly para o navegador).
|
restauração) e autenticação por **token** (Bearer para API / cookie HttpOnly para o navegador).
|
||||||
|
|
||||||
```
|
```
|
||||||
┌──────────────────────────────────────────────────────────────────────┐
|
┌──────────────────────────────────────────────────────────────────────────┐
|
||||||
│ ☰ Notas Arquivo Editar Exibir Ajuda │ ← barra de menus
|
│ ☰ Notas Arquivo Editar Exibir Ajuda │ ← barra de menus
|
||||||
├──────────────────────────────────────────────────────────────────────┤
|
├──────────────────────────────────────────────────────────────────────────┤
|
||||||
│ +Nova 💾Salvar ⬇Baixar │ B I S H1 H2 • 1 ❝ 🔗 </> { } │ Formato ▾ │ ← barra de ferramentas
|
│ ✚Nova 💾Salvar ⬇Baixar │ B I S H1 H2 ≡• 1 ❝ 🔗 </> { } │ Formato ▾ │ ← barra de ferramentas
|
||||||
│ [ Editar | Preview ] 🕘Versões │
|
│ [ Editar | Preview ] 🕘Versões │
|
||||||
├──────────────┬──────────────────────────────────────┬────────────────
|
├─────────────────┬────────────────────────────────────────────────────────┤
|
||||||
│ Buscar… │ Título da nota categoria │ HISTÓRICO DE │
|
│ Buscar… │ ┌ nota.md ● ─┬─ outra.md ─┐ ✚ │ ← abas │
|
||||||
│ CATEGORIA ▾ ├──────────────────────────────────────┤ │ REVISÕES │
|
│ CATEGORIAS +pasta├─────────────┴─────────────┴──────────┴────────────────┤
|
||||||
│ TAGS │ # Placas │ │ hash · autor │
|
│ 🗂 Todas as notas│ Título da nota 🗀 devops +1 ▾ │
|
||||||
│ #linux 2 │ **nvme** em `/dev/nvme0` │ │ mensagem · data│
|
│ 🗄 Sem categoria ├────────────────────────────────────────────────────────┤
|
||||||
│ NOTAS │ - controladora #linux │ ├────────────────┤
|
│ 📂 devops 1 │ 1 │ # Placas │
|
||||||
│ nota1 .md │ … │ │ diff unificado │
|
│ · 📁 k8s 2 │ 2 │ │
|
||||||
│ nota2 .txt │ │ │ +restaurar │
|
│ TAGS │ 3 │ **nvme** em `/dev/nvme0` │ ← números de linha, │
|
||||||
├──────────────┴──────────────────────────────────────┴────────────────┤
|
│ #linux 2 #devops1│ 4 │ - controladora #linux │ cores, marcador │
|
||||||
│ nota.md .md Ln 4, Col 12 128 caracteres · 20 palavras ●● │ ← barra de status
|
│ NOTAS 3 │ 5 │ … ┊ │ de coluna (80) │
|
||||||
└──────────────────────────────────────────────────────────────────────┘
|
│ nota1 .md │ │
|
||||||
|
│ nota2 .txt │ │
|
||||||
|
├─────────────────┴────────────────────────────────────────────────────────┤
|
||||||
|
│ nota.md .md Ln 4, Col 12 128 caracteres · 20 palavras ● não salvo│ ← barra de status
|
||||||
|
└──────────────────────────────────────────────────────────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
|
No celular (≤760px) a barra lateral vira **gaveta** com backdrop e o painel de versões
|
||||||
|
ocupa a tela inteira; menus e toolbar rolam horizontalmente com botões só de ícone.
|
||||||
|
|
||||||
## Funcionalidades
|
## Funcionalidades
|
||||||
|
|
||||||
- **3 formatos por nota**: Texto puro (`.txt`), Markdown (`.md`) e HTML (`.html`), alternáveis no
|
- **3 formatos por nota**: Texto puro (`.txt`), Markdown (`.md`) e HTML (`.html`), alternáveis no
|
||||||
@@ -90,9 +97,9 @@ restauração) e autenticação por **token** (Bearer para API / cookie HttpOnly
|
|||||||
.
|
.
|
||||||
├── cmd/notas/ # main: flags, env, graceful shutdown
|
├── cmd/notas/ # main: flags, env, graceful shutdown
|
||||||
├── internal/
|
├── internal/
|
||||||
│ ├── store/ # persistência em disco + revisões (estilo Git)
|
│ ├── store/ # persistência em disco, revisões (estilo Git) e árvore de categorias
|
||||||
│ ├── diffx/ # diff unificado (gotextdiff/Myers)
|
│ ├── diffx/ # diff unificado (gotextdiff/Myers)
|
||||||
│ └── api/ # rotas HTTP, auth, render de Markdown
|
│ └── api/ # rotas HTTP, auth, CRUD de categorias, render de Markdown
|
||||||
├── web/ # frontend estático (go:embed no binário)
|
├── web/ # frontend estático (go:embed no binário)
|
||||||
│ ├── index.html css/app.css js/app.js
|
│ ├── index.html css/app.css js/app.js
|
||||||
├── Dockerfile # multi-stage: golang:alpine → scratch
|
├── Dockerfile # multi-stage: golang:alpine → scratch
|
||||||
@@ -185,11 +192,14 @@ curl -X DELETE -H "Authorization: Bearer $T" $B/api/categories/<id> #
|
|||||||
a requisição chega por HTTPS/`X-Forwarded-Proto`. O modelo é **token único compartilhado**
|
a requisição chega por HTTPS/`X-Forwarded-Proto`. O modelo é **token único compartilhado**
|
||||||
(sem usuários múltiplos); a imagem final é `scratch` non-root (uid 65534) — sem shell para
|
(sem usuários múltiplos); a imagem final é `scratch` non-root (uid 65534) — sem shell para
|
||||||
`exec` de depuração, por design.
|
`exec` de depuração, por design.
|
||||||
|
- Preferências do editor e abas abertas ficam em `localStorage` (dados não sensíveis, por
|
||||||
|
dispositivo/navegador); o token nunca vai para lá.
|
||||||
|
|
||||||
## Testes
|
## Testes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go test ./... # store (revisões/GC/tags), diffx (diff unificado), api (fluxo HTTP completo)
|
go test ./... # store (revisões/GC/tags/árvore de categorias/migração),
|
||||||
|
# diffx (diff unificado), api (fluxo HTTP completo + CRUD de categorias)
|
||||||
go vet ./...
|
go vet ./...
|
||||||
node --check web/js/app.js
|
node --check web/js/app.js
|
||||||
```
|
```
|
||||||
Reference in new issue
Block a user