# 🦅 NÁVOD K POUŽITÍ (DOXA-CLI)
**DOXA-CLI** je minimalistický, lokálně orientovaný nástroj pro správu poznámek z příkazové řádky. Slouží jako přímý ekvivalent k webové verzi [DOXA Notes](https://doxa-notes.org/), se kterou sdílí filozofii soustředění a identický datový formát JSON. Aplikace je napsaná v jazyce **Go** a využívá moderní terminálové rozhraní (**TUI**) postavené na knihovnách Bubble Tea a Lip Gloss od Charm.
---
## OBSAH
1. [Instalace a spuštění](#1-instalace-a-spuštění)
2. [Chování a struktura úložiště](#2-chování-a-struktura-úložiště)
3. [Uživatelské rozhraní a stavy](#3-uživatelské-rozhraní-a-stavy)
4. [Klávesové zkratky a ovládání](#4-klávesové-zkratky-a-ovládání)
5. [Detaily o exportu](#5-detaily-o-exportu)
6. [Odinstalace](#6-odinstalace)
---
## 1. INSTALACE A SPUŠTĚNÍ
### Systémové předpoklady
Před instalací je nutné mít na systému nainstalované vývojové prostředí **Go** (verze **1.20** nebo vyšší).
### Postup instalace (Linux / macOS)
1. **Stažení repozitáře:**
```bash
git clone https://codeberg.org/Kankys/doxa-cli.git
cd doxa-cli
```
2. **Spuštění instalačního skriptu:**
```bash
chmod +x install.sh
./install.sh
```
*Instalační skript automaticky stáhne závislosti Go, zkompiluje aplikaci, přesune binární soubor `doxa-cli` do adresáře `~/.local/bin/` a vytvoří výchozí prázdnou databázi v `~/.doxa-cli/doxa_notes.json`.*
3. **Přidání do PATH (pokud je potřeba):**
Pokud po instalaci nelze příkaz `doxa-cli` spustit, přidejte do svého profilu (např. `~/.bashrc` nebo `~/.zshrc`) následující řádek:
```bash
export PATH=$PATH:$HOME/.local/bin
```
Následně restartujte terminál nebo načtěte změny pomocí `source ~/.bashrc`.
### Úklid po instalaci
Jakmile skript doběhne, složku s klonovaným repozitářem můžete bezpečně odstranit:
```bash
rm -rf doxa-cli
```
# **Provoz a instalace doxa-cli na FreeBSD**
Build aplikace pro FreeBSD nefunguje vždy korektně, pokud vám nepomůže návod níže je možné ji spouštět přímo z repozitáře. A v .bashrc si udělat alias pro `doxa-cli`. Alikaci z repozitáře spustíte přímo z adresáře, kde je klonován příkazem `go run .`.
Systém FreeBSD má svá specifika – používá odlišné výchozí shelly, správu modulů jádra a cesty k interpretům než Linux. Pro bezproblémový chod aplikace postupuj následovně:
## **1\. Úprava instalačního skriptu (install.sh)**
Před spuštěním instalace je nutné zkontrolovat hlavičku (shebang) skriptu install.sh, protože FreeBSD striktně vyžaduje správnou cestu k interpretu příkazů:
> * Otevři install.sh a ujisti se, že první řádek odkazuje na univerzální cestu, nikoli natvrdo na linuxový bash:
```bash
\#\!/usr/bin/env bash
```
## **2\. Spuštění instalace**
Standardní postup klonování a spuštění:
```bash
git clone https://codeberg.org/Kankys/doxa-cli.git
cd doxa-cli
chmod \+x install.sh
./install.sh
rm \-rf doxa-cli
```
*Skript automaticky zkompiluje aplikaci a umístí binární soubor do adresáře \~/.local/bin/.*
## **3\. Nastavení proměnné prostředí PATH pro FreeBSD (shell sh)**
FreeBSD používá ve výchozím stavu jako standardní shell /bin/sh, který nepodporuje příkaz source. Pro trvalé i okamžité zprístupnění příkazu doxa-cli proveď tyto kroky:
> 1. **Přidej cestu do profilu:**
```bash
echo 'export PATH="$PATH:$HOME/.local/bin"' \>\> \~/.profile
```
> 2. **Načti změny v aktuálním terminálu (pomocí tečky, nikoliv příkazu source):**
```bash
. ~/.profile
```
---
## 2. CHOVÁNÍ A STRUKTURA ÚLOŽIŠTĚ
Aplikace funguje **zcela offline** a data ukládá na váš lokální disk.
- **Umístění databáze:** `~/.doxa-cli/doxa_notes.json` (na systémech, kde nelze detekovat domovský adresář, se vytvoří `doxa_notes.json` v aktuálním pracovním adresáři).
- **Záloha:** Pro zálohu stačí zkopírovat soubor `doxa_notes.json` na bezpečné místo.
### Formát dat (JSON)
Každá poznámka v JSON poli obsahuje následující strukturu kompatibilní s webovou verzí DOXA Notes:
```json
[
{
"id": 1722240000000,
"name": "Moje Poznámka",
"content": "Obsah poznámky s podporou více řádků.",
"tags": ["osobní", "práce"],
"folder": "", // nepoužito/prázdné
"created_at": "2026-07-29T14:30:00Z",
"modified_at": "2026-07-29T14:35:00Z"
}
]
```
---
## 3. UŽIVATELSKÉ ROZHRANÍ A STAVY
Aplikace se dynamicky přizpůsobuje velikosti terminálu a nabízí několik stavů:
### A. Hlavní seznam poznámek (`StateViewNotes`)
Zde vidíte přehled všech uložených poznámek.
- Pomocí šipek vybíráte aktivní poznámku.
- U vybrané poznámky se zobrazí její kompletní obsah, ID a přiřazené tagy.
- Ve spodní části obrazovky se nachází menu rychlých akcí a stavový řádek (ukazuje potvrzení o uložení, úpravě či exportu).
### B. Formulář pro Přidání / Úpravu poznámky (`StateAddNote` / `StateEditNote`)
Interaktivní rozhraní se 3 vstupními poli:
1. **Název:** (Povinné) Název vaší poznámky.
2. **Obsah:** (Povinné) Víceřádkové pole pro text poznámky.
3. **Tagy:** (Nepovinné) Štítky oddělené čárkou.
*Pohyb mezi poli se provádí klávesou `Tab` (dopředu) nebo `Shift+Tab` (dozadu).*
### C. Vyhledávání (`StateSearch`)
Umožňuje fulltextově filtrovat seznam poznámek. Vyhledává se shoda v názvu, obsahu i v jednotlivých tazích (velikost písmen se ignoruje).
### D. Procházení Tagů (`StateBrowse`)
Umožňuje rychle vyfiltrovat poznámky na základě existujících tagů.
- Klávesou `t` zobrazíte seznam všech existujících tagů.
- Výběrem položky a stisknutím `Enter` aplikujete filtr na hlavní seznam poznámek.
### E. Potvrzení smazání (`StateConfirmDelete`)
Bezpečnostní mezikrok, který zobrazí detail odstraňované poznámky a vyžaduje explicitní potvrzení stisknutím klávesy `y` (Ano) nebo `n` (Ne).
---
## 4. KLÁVESOVÉ ZKRATKY A OVLÁDÁNÍ
### Globální ovládání
| Klávesa | Akce |
| :--- | :--- |
| `ctrl + c` | Okamžité ukončení aplikace z jakéhokoliv stavu |
| `q` / `esc` | Návrat do předchozího stavu / Zrušení akce / Ukončení aplikace (z hlavního seznamu) |
### Ovládání v Hlavním seznamu poznámek (`StateViewNotes`)
| Klávesa | Akce |
| :--- | :--- |
| `↑` / `k` | Posunout výběr nahoru |
| `↓` / `j` | Posunout výběr dolů |
| `1` | Přidat novou poznámku (otevře formulář) |
| `2` / `Enter` | Upravit vybranou poznámku (otevře formulář) |
| `3` | Exportovat vybranou poznámku |
| `4` | Smazat vybranou poznámku (otevře potvrzovací dialog) |
| `/` | Otevřít vyhledávání |
| `l` | Přepnout jazyk rozhraní (CS <=> EN) |
### Ovládání ve formulářích (Přidání / Úprava)
| Klávesa | Akce |
| :--- | :--- |
| `Tab` | Přechod na další pole (Název -> Obsah -> Tagy -> Název...) |
| `Shift + Tab` | Přechod na předchozí pole |
| `Enter` | **Pokud jste v poli Obsah:** Vloží nový řádek.
**Pokud jste v jakémkoliv jiném poli:** Uloží poznámku. |
### Ovládání v režimu Procházení (`StateBrowse`)
| Klávesa | Akce |
| :--- | :--- |
| `t` | Přepnout na seznam **Tagů** |
| `↑` / `k` / `↓` / `j` | Pohyb v seznamu |
| `Enter` | Filtrovat hlavní seznam podle vybrané tagu |
---
## 5. DETAILY O EXPORTU
Při stisknutí klávesy `3` na vybrané poznámce v hlavním seznamu dojde k exportu poznámky do čistého textového souboru.
- **Adresář exportu:** `~/doxa-cli-txt/` (bude automaticky vytvořen v domovském adresáři).
- **Název exportovaného souboru:** `_.txt` (mezery v názvu jsou nahrazeny podtržítky).
- **Vnitřní struktura exportovaného souboru:**
*(Poznámka: Hlavička exportu je generována s českými popisky bez ohledu na zvolený jazyk rozhraní).*
```text
Název:
Tagy:
Vytvořeno: RRRR-MM-DD HH:MM
```
---
## 6. ODINSTALACE
Pokud se rozhodnete aplikaci ze systému odstranit, postupujte takto:
1. **Smazání spustitelného souboru:**
```bash
rm ~/.local/bin/doxa-cli
```
2. **Smazání databáze a konfigurace (Upozornění: Smaže všechny vaše poznámky!):**
```bash
rm -rf ~/.doxa-cli
```