new-app-doxatodo

This commit is contained in:
kankys committed 2026-08-08 10:28:03 +02:00
1 parent 5eacbb0182
commit 16414091b4
14 files changed
+2287 -20

No files matched your search

+70 -20
View File
@@ -79,18 +79,42 @@
--- ---
### 4. ✅ [DOXA TODO](doxa-todo/)
**Terminal-based todo manager for task organization**
- **Description**: A minimalist terminal application for managing your tasks with support for categories, priorities, and tags. Built with Go and Bubble Tea TUI framework.
- **Philosophy**: Local-first task management. Your todos are stored locally in JSON format, giving you complete control over your data.
- **Technologies**: Go (Golang), Bubble Tea (TUI framework), Lip Gloss (styling).
- **Platforms**: Linux, FreeBSD.
- **Features**:
- Dual language support (Czech/English) with `l` key toggle.
- Two categories: Personal (🏠) and Work (💼).
- Three priority levels: Low (🟢), Medium (🟠), High (🔴).
- Tag support for task organization.
- Automatic timestamp for creation and modification.
- Search and filter by text, tags, or category.
- Export individual todos to text files.
- Data stored in `~/.doxa-todo/doxa_todo.json`.
📖 [Read detailed documentation](doxa-todo/README.md)
---
## 🔗 Common Features of All DOXA Projects ## 🔗 Common Features of All DOXA Projects
| Feature | DOXA Notes | DOXA CLI | DOXA Secret | | Feature | DOXA Notes | DOXA CLI | DOXA Secret | DOXA TODO |
|---------|------------|----------|--------------| |---------|------------|----------|--------------|-----------|
| **Local Data Storage** | ✅ | ✅ | ✅ | | **Local Data Storage** | ✅ | ✅ | ✅ | ✅ |
| **Open Format (JSON)** | ✅ | ✅ | ✅ | | **Open Format (JSON)** | ✅ | ✅ | ✅ | ✅ |
| **No Cloud Dependencies** | ✅ | ✅ | ✅ | | **No Cloud Dependencies** | ✅ | ✅ | ✅ | ✅ |
| **Open Source (MIT)** | ✅ | ✅ | ✅ | | **Open Source (MIT)** | ✅ | ✅ | ✅ | ✅ |
| **Minimalist Design** | ✅ | ✅ | ✅ | | **Minimalist Design** | ✅ | ✅ | ✅ | ✅ |
| **Tag Support** | ✅ | ✅ | ❌ | | **Tag Support** | ✅ | ✅ | ❌ | ✅ |
| **Search and Filtering** | ✅ | ✅ | ❌ | | **Search and Filtering** | ✅ | ✅ | ❌ | ✅ |
| **Encryption** | ❌ | ❌ | ✅ | | **Encryption** | ❌ | ❌ | ✅ | ❌ |
| **Priority Levels** | ❌ | ❌ | ❌ | ✅ |
| **Categories** | ❌ | ❌ | ❌ | ✅ |
--- ---
@@ -101,6 +125,7 @@ Each project has its own installation process. Detailed guides can be found in t
- [DOXA Notes – Installation](doxa-notes/03_install.md) - [DOXA Notes – Installation](doxa-notes/03_install.md)
- [DOXA CLI – Installation](doxa-cli/README.md#installation) - [DOXA CLI – Installation](doxa-cli/README.md#installation)
- [DOXA Secret – Installation](doxa-secret/README_EN.md#installation) - [DOXA Secret – Installation](doxa-secret/README_EN.md#installation)
- [DOXA TODO – Installation](doxa-todo/README.md#installation)
--- ---
@@ -208,18 +233,42 @@ DOXA believes in:
--- ---
### 4. ✅ [DOXA TODO](doxa-todo/)
**Terminálová aplikace pro správu úkolů**
- **Popis**: Minimalistická terminálová aplikace pro organizaci úkolů s podporou kategorií, priorit a štítků. Postavená na Go a Bubble Tea TUI frameworku.
- **Filozofie**: Lokální správa úkolů. Vaše úkoly jsou uloženy lokálně v JSON formátu, což vám dává úplnou kontrolu nad vašimi daty.
- **Technologie**: Go (Golang), Bubble Tea (TUI framework), Lip Gloss (stylování).
- **Platformy**: Linux, FreeBSD.
- **Vlastnosti**:
- Dvoujazyčná podpora (česky/anglicky) s přepínáním klávesou `l`.
- Dvě kategorie: Osobní (🏠) a Pracovní (💼).
- Tři úrovně priority: Nízká (🟢), Střední (🟠), Vysoká (🔴).
- Podpora štítků pro organizaci úkolů.
- Automatické časové razítko pro vytvoření a úpravu.
- Vyhledávání a filtrace podle textu, štítků nebo kategorie.
- Export jednotlivých úkolů do textových souborů.
- Data uložena v `~/.doxa-todo/doxa_todo.json`.
📖 [Přečtěte si podrobnější dokumentaci](doxa-todo/README_CZ.md)
---
## 🔗 Společné vlastnosti všech projektů DOXA ## 🔗 Společné vlastnosti všech projektů DOXA
| Vlastnost | DOXA Notes | DOXA CLI | DOXA Secret | | Vlastnost | DOXA Notes | DOXA CLI | DOXA Secret | DOXA TODO |
|-----------|------------|----------|--------------| |-----------|------------|----------|--------------|-----------|
| **Lokální uložení dat** | ✅ | ✅ | ✅ | | **Lokální uložení dat** | ✅ | ✅ | ✅ | ✅ |
| **Otevřený formát (JSON)** | ✅ | ✅ | ✅ | | **Otevřený formát (JSON)** | ✅ | ✅ | ✅ | ✅ |
| **Žádné cloudové závislosti** | ✅ | ✅ | ✅ | | **Žádné cloudové závislosti** | ✅ | ✅ | ✅ | ✅ |
| **Open Source (MIT)** | ✅ | ✅ | ✅ | | **Open Source (MIT)** | ✅ | ✅ | ✅ | ✅ |
| **Minimalistický design** | ✅ | ✅ | ✅ | | **Minimalistický design** | ✅ | ✅ | ✅ | ✅ |
| **Podpora tagů** | ✅ | ✅ | ❌ | | **Podpora tagů** | ✅ | ✅ | ❌ | ✅ |
| **Vyhledávání a filtrování** | ✅ | ✅ | ❌ | | **Vyhledávání a filtrování** | ✅ | ✅ | ❌ | ✅ |
| **Šifrování** | ❌ | ❌ | ✅ | | **Šifrování** | ❌ | ❌ | ✅ | ❌ |
| **Úrovně priority** | ❌ | ❌ | ❌ | ✅ |
| **Kategorie** | ❌ | ❌ | ❌ | ✅ |
--- ---
@@ -230,6 +279,7 @@ Každý projekt má vlastní instalační postup. Podrobné návody naleznete v
- [DOXA Notes – Instalace](doxa-notes/03_install.md) - [DOXA Notes – Instalace](doxa-notes/03_install.md)
- [DOXA CLI – Instalace](doxa-cli/README_CZ.md#instalace) - [DOXA CLI – Instalace](doxa-cli/README_CZ.md#instalace)
- [DOXA Secret – Instalace](doxa-secret/README.md#instalace) - [DOXA Secret – Instalace](doxa-secret/README.md#instalace)
- [DOXA TODO – Instalace](doxa-todo/README_CZ.md#instalace)
--- ---
+25
View File
@@ -0,0 +1,25 @@
# Binaries
doxa-todo
doxa-todo.exe
# Go workspace
.go
# IDE
.idea/
.vscode/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# Logs
*.log
# Test output
test-output/
# Local configuration
.doxa-todo/
+9
View File
@@ -0,0 +1,9 @@
MIT License
Copyright (c) 2026 Kankys
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+260
View File
@@ -0,0 +1,260 @@
# DOXA-TODO User Manual
## Introduction
DOXA-TODO is a terminal-based todo manager that helps you organize your tasks with support for categories, priorities, and tags. This manual provides detailed information about all features and usage patterns.
## Getting Started
### First Run
When you run `doxa-todo` for the first time:
1. The application creates a configuration directory at `~/.doxa-todo/`
2. An empty todo list file `doxa_todo.json` is created
3. You're presented with the startup screen
Press `Enter` to start using the application.
## Main Interface
The main interface displays:
- Application title
- Status messages (if any)
- Menu options
- List of todos
- Help information
### Menu Options
- **1: Add** - Add a new todo
- **2: Edit** - Edit the selected todo
- **3: Export** - Export the selected todo to a text file
- **4: Delete** - Delete the selected todo
- **/: Search** - Search todos by title, description, or tags
- **b: Tags** - Browse all tags
- **c: Filter** - Filter todos by category
- **l: EN/CS** - Toggle language between English and Czech
- **q: Quit** - Exit the application
## Adding a Todo
1. Press `1` to add a new todo
2. Fill in the fields:
- **Title** (required): The name of your todo
- **Description** (optional): Detailed description
- **Tags** (optional): Comma-separated list of tags
3. The todo is automatically assigned:
- Medium priority
- Personal category
- Current timestamp
4. Press `Enter` to save (when not in description field)
5. Use `+` key to cycle through priority levels
## Editing a Todo
1. Navigate to the todo you want to edit using `↑/↓` or `j/k`
2. Press `2` to edit
3. Modify the fields as needed
4. Press `Enter` to save changes
## Priority Levels
Todos have 3 priority levels with color coding:
- **Low** (Green ●): For tasks that can wait
- **Medium** (Orange ●): Default priority for new tasks
- **High** (Red ●): For urgent tasks
Use the `+` key when adding/editing to cycle through priority levels.
## Categories
Todos can be categorized as:
- **Personal** (🏠 Blue): For personal tasks
- **Work** (💼 Purple): For work-related tasks
### Filtering by Category
1. Press `c` to open the category filter
2. Select:
- `1`: Show only Personal todos
- `2`: Show only Work todos
- `0`: Show all todos (remove filter)
3. The filter remains active until you change it or clear it
## Tags
Tags help you organize and find todos quickly.
### Adding Tags
When adding or editing a todo, enter comma-separated tags in the Tags field:
```
work, urgent, project-x
```
### Browsing Tags
1. Press `b` to browse all tags
2. Navigate with `↑/↓` or `j/k`
3. Press `Enter` to filter todos by the selected tag
4. Press `q` or `Esc` to return to the main list
## Searching
1. Press `/` to open search
2. Type your search query
3. Press `Enter` to search
4. The list will show only todos matching your query in title, description, or tags
5. Press `Esc` to clear the search
## Viewing a Todo
1. Navigate to the todo using `↑/↓` or `j/k`
2. Press `Enter` to view details
3. In the detail view:
- `q`: Close and return to list
- `2`: Edit the todo
- `↑/↓`: Scroll the content
## Exporting a Todo
1. Select the todo you want to export
2. Press `3` to export
3. The todo is saved as a text file in `~/doxa-todo-export/`
4. The filename format is: `{title}_{id}.txt`
The exported file contains:
- Title
- Category
- Priority
- Tags
- Creation date
- Description
## Deleting a Todo
1. Select the todo you want to delete
2. Press `4` to open delete confirmation
3. Press `y` to confirm deletion
4. Press `n` or `Esc` to cancel
## Keyboard Shortcuts Summary
### Navigation
- `↑/↓` or `j/k`: Move cursor up/down
- `Enter`: Select/Confirm
- `Esc`: Go back/Cancel
- `q`: Quit
### Actions
- `1`: Add new todo
- `2`: Edit selected todo
- `3`: Export selected todo
- `4`: Delete selected todo
- `/`: Search
- `b`: Browse tags
- `c`: Filter by category
- `l`: Toggle language
- `+`: Increase priority (when adding/editing)
- `Tab`: Switch between fields
## Data Storage
All todos are stored in JSON format at:
```
~/.doxa-todo/doxa_todo.json
```
The file is automatically created on first run and updated with every change.
### Backup
To backup your todos:
```bash
cp ~/.doxa-todo/doxa_todo.json ~/.doxa-todo/doxa_todo_backup.json
```
### Restore
To restore from backup:
```bash
cp ~/.doxa-todo/doxa_todo_backup.json ~/.doxa-todo/doxa_todo.json
```
## Export Directory
Exported todos are saved to:
```
~/doxa-todo-export/
```
Each exported file contains the complete todo information in a readable text format.
## Troubleshooting
### Application doesn't start
Make sure you have:
1. Go installed (version 1.26+)
2. The application compiled and installed
3. `~/.local/bin` in your PATH
### Todos not saving
Check:
1. Write permissions for `~/.doxa-todo/`
2. The directory exists
3. No errors are displayed when saving
### Language not switching
Make sure you're pressing `l` from the main todo list view, not from other screens.
## Command Line Usage
### Basic Usage
```bash
doxa-todo
```
### Running from source
```bash
cd doxa-todo
go run .
```
## Configuration
The application uses the following directories:
- `~/.doxa-todo/`: Configuration and data storage
- `~/doxa-todo-export/`: Exported todos
You can modify the source code to change these paths if needed.
## Updates
To update to the latest version:
```bash
cd doxa-todo
git pull origin master
go build -o doxa-todo .
cp doxa-todo ~/.local/bin/
```
## Uninstall
To uninstall:
```bash
rm ~/.local/bin/doxa-todo
rm -rf ~/.doxa-todo/
rm -rf ~/doxa-todo-export/
```
## License
MIT License - Copyright (c) 2026 Kankys
## Support
For issues, questions, or contributions, please visit the project repository:
https://codeberg.org/Kankys/doxa-todo
+260
View File
@@ -0,0 +1,260 @@
# DOXA-TODO Uživatelská Příručka
## Úvod
DOXA-TODO je terminálová aplikace pro správu úkolů, která vám pomůže organizovat vaše úkoly s podporou kategorií, priorit a štítků. Tato příručka poskytuje podrobné informace o všech funkcích a způsobech použití.
## Začínáme
### První spuštění
Když poprvé spustíte `doxa-todo`:
1. Aplikace vytvoří konfigurační adresář `~/.doxa-todo/`
2. Vytvoří se prázdný soubor se seznamem úkolů `doxa_todo.json`
3. Zobrazí se úvodní obrazovka
Stiskněte `Enter` pro zahájení práce s aplikací.
## Hlavní rozhraní
Hlavní rozhraní zobrazuje:
- Název aplikace
- Stavové zprávy (pokud existují)
- Možnosti menu
- Seznam úkolů
- Nápověda
### Možnosti menu
- **1: Přidat** - Přidat nový úkol
- **2: Upravit** - Upravit vybraný úkol
- **3: Export** - Exportovat vybraný úkol do textového souboru
- **4: Smazat** - Smazat vybraný úkol
- **/: Hledat** - Vyhledat úkoly podle názvu, popisu nebo štítků
- **b: Tagy** - Procházet všechny štítky
- **c: Filtr** - Filtr úkolů podle kategorie
- **l: EN/CS** - Přepnout jazyk mezi angličtinou a češtinou
- **q: Konec** - Ukončit aplikaci
## Přidávání úkolu
1. Stiskněte `1` pro přidání nového úkolu
2. Vyplňte pole:
- **Název** (povinný): Název vašeho úkolu
- **Popis** (nepovinný): Podrobný popis
- **Štítky** (nepovinné): Seznam štítků oddělených čárkami
3. Úkolu se automaticky přiřadí:
- Střední priorita
- Osobní kategorie
- Aktuální časové razítko
4. Stiskněte `Enter` pro uložení (když nejste v poli popisu)
5. Použijte klávesu `+` pro cyklické přepínání úrovní priority
## Úprava úkolu
1. Navigujte k úkolu, který chcete upravit, pomocí `↑/↓` nebo `j/k`
2. Stiskněte `2` pro úpravu
3. Upravte pole podle potřeby
4. Stiskněte `Enter` pro uložení změn
## Úrovně priority
Úkoly mají 3 úrovně priority s barevným kódováním:
- **Nízká** (Zelená ●): Pro úkoly, které mohou počkat
- **Střední** (Oranžová ●): Výchozí priorita pro nové úkoly
- **Vysoká** (Červená ●): Pro naléhavé úkoly
Použijte klávesu `+` při přidávání/úpravě pro přepínání úrovní priority.
## Kategorie
Úkoly lze kategorizovat jako:
- **Osobní** (🏠 Modrá): Pro osobní úkoly
- **Pracovní** (💼 Fialová): Pro pracovní úkoly
### Filtrace podle kategorie
1. Stiskněte `c` pro otevření filtru kategorií
2. Vyberte:
- `1`: Zobrazit pouze osobní úkoly
- `2`: Zobrazit pouze pracovní úkoly
- `0`: Zobrazit všechny úkoly (odebrat filtr)
3. Filtr zůstává aktivní, dokud ho nezměníte nebo nezrušíte
## Štítky
Štítky vám pomohou organizovat a rychle nalézt úkoly.
### Přidávání štítků
Při přidávání nebo úpravě úkolu zadejte štítky oddělené čárkami do pole Štítky:
```
práce, naléhavé, projekt-x
```
### Procházení štítků
1. Stiskněte `b` pro procházení všech štítků
2. Navigujte pomocí `↑/↓` nebo `j/k`
3. Stiskněte `Enter` pro filtrování úkolů podle vybraného štítku
4. Stiskněte `q` nebo `Esc` pro návrat do hlavního seznamu
## Vyhledávání
1. Stiskněte `/` pro otevření vyhledávání
2. Zadejte svůj dotaz
3. Stiskněte `Enter` pro vyhledávání
4. Seznam zobrazí pouze úkoly odpovídající vašemu dotazu v názvu, popisu nebo štítcích
5. Stiskněte `Esc` pro vymazání vyhledávání
## Zobrazení úkolu
1. Navigujte k úkolu pomocí `↑/↓` nebo `j/k`
2. Stiskněte `Enter` pro zobrazení detailů
3. V detailním zobrazení:
- `q`: Zavřít a vrátit se do seznamu
- `2`: Upravit úkol
- `↑/↓`: Posouvat obsah
## Export úkolu
1. Vyberte úkol, který chcete exportovat
2. Stiskněte `3` pro export
3. Úkol se uloží jako textový soubor do `~/doxa-todo-export/`
4. Formát názvu souboru je: `{název}_{id}.txt`
Exportovaný soubor obsahuje:
- Název
- Kategorii
- Prioritu
- Štítky
- Datum vytvoření
- Popis
## Mazání úkolu
1. Vyberte úkol, který chcete smazat
2. Stiskněte `4` pro otevření potvrzení smazání
3. Stiskněte `y` pro potvrzení smazání
4. Stiskněte `n` nebo `Esc` pro zrušení
## Přehled klávesových zkratek
### Navigace
- `↑/↓` nebo `j/k`: Pohyb kurzoru nahoru/dolů
- `Enter`: Výběr/Potvrzení
- `Esc`: Zpět/Zrušit
- `q`: Konec
### Akce
- `1`: Přidat nový úkol
- `2`: Upravit vybraný úkol
- `3`: Exportovat vybraný úkol
- `4`: Smazat vybraný úkol
- `/`: Vyhledat
- `b`: Procházet štítky
- `c`: Filtr podle kategorie
- `l`: Přepnout jazyk
- `+`: Zvýšit prioritu (při přidávání/úpravě)
- `Tab`: Přepínat mezi poli
## Uložení dat
Všechny úkoly jsou uloženy v JSON formátu na:
```
~/.doxa-todo/doxa_todo.json
```
Soubor se automaticky vytvoří při prvním spuštění a aktualizuje se s každou změnou.
### Záloha
Pro zálohování úkolů:
```bash
cp ~/.doxa-todo/doxa_todo.json ~/.doxa-todo/doxa_todo_backup.json
```
### Obnovení
Pro obnovení ze zálohy:
```bash
cp ~/.doxa-todo/doxa_todo_backup.json ~/.doxa-todo/doxa_todo.json
```
## Exportní adresář
Exportované úkoly jsou uloženy v:
```
~/doxa-todo-export/
```
Každý exportovaný soubor obsahuje úplné informace o úkolu v čitelné textové podobě.
## Řešení problémů
### Aplikace se nespustí
Ujistěte se, že máte:
1. Nainstalované Go (verze 1.26+)
2. Zkompilovanou a nainstalovanou aplikaci
3. `~/.local/bin` ve svém PATH
### Úkoly se neukládají
Zkontrolujte:
1. Oprávnění zápisu pro `~/.doxa-todo/`
2. Existence adresáře
3. Že se při ukládání nezobrazují žádné chyby
### Jazyk se nepřepíná
Ujistěte se, že stisknete `l` z hlavního zobrazení seznamu úkolů, ne z jiných obrazovek.
## Použití z příkazové řádky
### Základní použití
```bash
doxa-todo
```
### Spuštění ze zdrojového kódu
```bash
cd doxa-todo
go run .
```
## Konfigurace
Aplikace používá následující adresáře:
- `~/.doxa-todo/`: Konfigurace a uložení dat
- `~/doxa-todo-export/`: Exportované úkoly
Můžete upravit zdrojový kód pro změnu těchto cest, pokud je to potřeba.
## Aktualizace
Pro aktualizaci na nejnovější verzi:
```bash
cd doxa-todo
git pull origin master
go build -o doxa-todo .
cp doxa-todo ~/.local/bin/
```
## Odinstalování
Pro odinstalování:
```bash
rm ~/.local/bin/doxa-todo
rm -rf ~/.doxa-todo/
rm -rf ~/doxa-todo-export/
```
## Licence
MIT License - Copyright (c) 2026 Kankys
## Podpora
Pro hlášení problémů, dotazy nebo příspěvky navštivte prosím repositář projektu:
https://codeberg.org/Kankys/doxa-todo
+114
View File
@@ -0,0 +1,114 @@
# DOXA-TODO 🦅
**Local-First Todo Manager** - A minimalist terminal-based todo application for managing your tasks with support for categories, priorities, and tags.
## Features
- **Dual Language Support**: Czech and English (toggle with `l` key)
- **Categories**: Personal and Work tasks
- **Priorities**: 3 levels (Low, Medium, High)
- **Tags**: Support for tagging todos
- **Automatic Date**: Creation and modification timestamps
- **Persistent Storage**: Todos are saved to `~/.doxa-todo/doxa_todo.json`
- **Search & Filter**: Search by text, browse by tags, filter by category
- **Export**: Export individual todos to text files
## Installation
### Using install.sh (Recommended)
```bash
# Clone the repository
git clone https://codeberg.org/Kankys/doxa-todo.git
cd doxa-todo
# Make install.sh executable and run it
chmod +x install.sh
./install.sh
```
The script will:
1. Check for Go installation
2. Download dependencies
3. Compile the application
4. Install to `~/.local/bin`
5. Create configuration directory at `~/.doxa-todo`
### Manual Installation
```bash
# Clone the repository
git clone https://codeberg.org/Kankys/doxa-todo.git
cd doxa-todo
# Build the application
go build -o doxa-todo .
# Install to your PATH
cp doxa-todo ~/.local/bin/
chmod +x ~/.local/bin/doxa-todo
# Make sure ~/.local/bin is in your PATH
export PATH=$PATH:~/.local/bin
```
## Usage
### Keyboard Shortcuts
| Key | Action |
|-----|--------|
| `Enter` | Start application / View selected todo |
| `q` | Quit application / Go back |
| `Esc` | Go back / Clear search |
| `1` | Add new todo |
| `2` | Edit selected todo |
| `3` | Export selected todo |
| `4` | Delete selected todo |
| `/` | Search todos |
| `b` | Browse tags |
| `c` | Filter by category |
| `l` | Toggle language (Czech/English) |
| `+` | Increase priority (when adding/editing) |
| `↑/↓` or `j/k` | Navigate through list |
| `Tab` | Switch between fields |
### Todo Structure
Each todo has:
- **Title** (required)
- **Description** (optional)
- **Priority**: Low (●), Medium (●), High (●) - with color coding
- **Category**: Personal (🏠) or Work (💼)
- **Tags**: Comma-separated list
- **Created At**: Automatic timestamp
- **Modified At**: Automatic timestamp on edits
### Storage
All todos are stored in JSON format at:
```
~/.doxa-todo/doxa_todo.json
```
Exported todos are saved to:
```
~/doxa-todo-export/
```
## Configuration
The application automatically creates the configuration directory and file on first run.
## License
MIT License - Copyright (c) 2026 Kankys
## Author
Kankys - [Codeberg](https://codeberg.org/Kankys)
## Related Projects
- [doxa-cli](https://codeberg.org/Kankys/doxa-cli) - Local-First Notes Manager
- [doxa-secret](https://codeberg.org/Kankys/doxa-secret) - Message Encryption Tool
+114
View File
@@ -0,0 +1,114 @@
# DOXA-TODO 🦅
**Locally-First Správce Úkolů** - Minimalistická terminálová aplikace pro správu úkolů s podporou kategorií, priorit a štítků.
## Funkce
- **Dvoujazyčná podpora**: Čeština a Angličtina (přepínání klávesou `l`)
- **Kategorie**: Osobní a Pracovní úkoly
- **Priority**: 3 úrovně (Nízká, Střední, Vysoká)
- **Štítky**: Podpora pro označování úkolů
- **Automatické datum**: Časové razítko vytvoření a úpravy
- **Trvalé uložení**: Úkoly se ukládají do `~/.doxa-todo/doxa_todo.json`
- **Vyhledávání a filtrace**: Vyhledávání podle textu, procházení podle štítků, filtrace podle kategorie
- **Export**: Export jednotlivých úkolů do textových souborů
## Instalace
### Pomocí install.sh (Doporučeno)
```bash
# Naklonujte repositář
git clone https://codeberg.org/Kankys/doxa-todo.git
cd doxa-todo
# Učiňte install.sh spustitelným a spusťte ho
chmod +x install.sh
./install.sh
```
Skript:
1. Zkontroluje instalaci Go
2. Stáhne závislosti
3. Zkompiluje aplikaci
4. Nainstaluje do `~/.local/bin`
5. Vytvoří konfigurační adresář `~/.doxa-todo`
### Ruční instalace
```bash
# Naklonujte repositář
git clone https://codeberg.org/Kankys/doxa-todo.git
cd doxa-todo
# Zkompilujte aplikaci
go build -o doxa-todo .
# Nainstalujte do svého PATH
cp doxa-todo ~/.local/bin/
chmod +x ~/.local/bin/doxa-todo
# Ujistěte se, že ~/.local/bin je ve vašem PATH
export PATH=$PATH:~/.local/bin
```
## Použití
### Klávesové zkratky
| Klávesa | Akce |
|---------|-------|
| `Enter` | Spustit aplikaci / Zobrazit vybraný úkol |
| `q` | Ukončit aplikaci / Jít zpět |
| `Esc` | Jít zpět / Vymazat vyhledávání |
| `1` | Přidat nový úkol |
| `2` | Upravit vybraný úkol |
| `3` | Exportovat vybraný úkol |
| `4` | Smazat vybraný úkol |
| `/` | Vyhledat úkoly |
| `b` | Procházet štítky |
| `c` | Filtr podle kategorie |
| `l` | Přepnout jazyk (Čeština/Angličtina) |
| `+` | Zvýšit prioritu (při přidávání/úpravě) |
| `↑/↓` nebo `j/k` | Procházet seznamem |
| `Tab` | Přepínat mezi poli |
### Struktura úkolu
Každý úkol má:
- **Název** (povinný)
- **Popis** (nepovinný)
- **Prioritu**: Nízká (●), Střední (●), Vysoká (●) - s barevným označením
- **Kategorii**: Osobní (🏠) nebo Pracovní (💼)
- **Štítky**: Seznam oddělený čárkami
- **Vytvořeno**: Automatické časové razítko
- **Upraveno**: Automatické časové razítko při úpravách
### Uložení
Všechny úkoly jsou uloženy v JSON formátu na:
```
~/.doxa-todo/doxa_todo.json
```
Exportované úkoly jsou uloženy v:
```
~/doxa-todo-export/
```
## Konfigurace
Aplikace automaticky vytvoří konfigurační adresář a soubor při prvním spuštění.
## Licence
MIT License - Copyright (c) 2026 Kankys
## Autor
Kankys - [Codeberg](https://codeberg.org/Kankys)
## Příbuzné projekty
- [doxa-cli](https://codeberg.org/Kankys/doxa-cli) - Správce poznámek
- [doxa-secret](https://codeberg.org/Kankys/doxa-secret) - Nástroj pro šifrování zpráv
+33
View File
@@ -0,0 +1,33 @@
module doxa-todo
go 1.26.5
require (
github.com/charmbracelet/bubbles v1.0.0
github.com/charmbracelet/bubbletea v1.3.10
github.com/charmbracelet/lipgloss v1.1.0
)
require (
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/colorprofile v0.4.1 // indirect
github.com/charmbracelet/x/ansi v0.11.6 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/clipperhouse/displaywidth v0.9.0 // indirect
github.com/clipperhouse/stringish v0.1.1 // indirect
github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/text v0.3.8 // indirect
)
+52
View File
@@ -0,0 +1,52 @@
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
github.com/charmbracelet/colorprofile v0.4.1 h1:a1lO03qTrSIRaK8c3JRxJDZOvhvIeSco3ej+ngLk1kk=
github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk=
github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8=
github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
github.com/clipperhouse/uax29/v2 v2.5.0 h1:x7T0T4eTHDONxFJsL94uKNKPHrclyFI0lm7+w94cO8U=
github.com/clipperhouse/uax29/v2 v2.5.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
+121
View File
@@ -0,0 +1,121 @@
#!/bin/bash
# DOXA-TODO Installation Script
# --- Nastavení ---
APP_NAME="doxa-todo"
INSTALL_DIR="$HOME/.local/bin"
CONFIG_DIR="$HOME/.doxa-todo"
CONFIG_FILE="doxa_todo.json"
REPO_URL="https://codeberg.org/Kankys/doxa-todo.git"
# --- Funkce ---
error_exit() {
echo -e "\033[1;31mERROR: $1\033[0m" >&2
exit 1
}
success_message() {
echo -e "\033[1;32mSUCCESS: $1\033[0m"
}
info_message() {
echo -e "\033[1;34mINFO: $1\033[0m"
}
# --- Hlavní část skriptu ---
info_message "Kontrola Go instalace..."
if ! command -v go &> /dev/null
then
error_exit "Go není nainstalováno. Prosím, nainstalujte Go před spuštěním tohoto skriptu."
fi
success_message "Go je nainstalováno."
info_message "Kontrola aktuálního adresáře..."
# Zjistíme, zda jsme již v adresáři doxa-todo
if [ -f "main.go" ] && [ -f "go.mod" ] && grep -q "module doxa-todo" go.mod; then
info_message "Jste již v adresáři $APP_NAME, používám místní verzi."
else
info_message "Klonování repositáře..."
if [ -d "$APP_NAME" ]; then
info_message "Adresář $APP_NAME již existuje, používám místní verzi."
else
if ! git clone "$REPO_URL" "$APP_NAME"
then
error_exit "Nepodařilo se naklonovat repositář. Zkontrolujte připojení k internetu."
fi
success_message "Repozitář úspěšně naklonován."
fi
cd "$APP_NAME" || error_exit "Nepodařilo se vstoupit do adresáře $APP_NAME."
fi
info_message "Stažení závislostí projektu..."
if ! go mod download
then
error_exit "Nepodařilo se stáhnout závislosti Go. Zkontrolujte GO moduly a připojení k internetu."
fi
success_message "Závislosti projektu úspěšně staženy."
info_message "Kompilace aplikace..."
APP_BINARY="$APP_NAME"
if ! go build -o "$APP_BINARY" .
then
error_exit "Nepodařilo se zkompilovat aplikaci. Zkontrolujte chyby v kódu."
fi
success_message "Aplikace úspěšně zkompilována do './$APP_BINARY'."
info_message "Instalace aplikace..."
if ! mkdir -p "$INSTALL_DIR"
then
error_exit "Nepodařilo se vytvořit cílový adresář '$INSTALL_DIR'. Zkontrolujte oprávnění."
fi
if ! cp "$APP_BINARY" "$INSTALL_DIR/"
then
error_exit "Nepodařilo se zkopírovat binárku do '$INSTALL_DIR'. Zkontrolujte oprávnění."
fi
chmod +x "$INSTALL_DIR/$APP_NAME"
success_message "Aplikace '$APP_NAME' úspěšně nainstalována do '$INSTALL_DIR'."
info_message "Nastavení konfiguračního adresáře..."
if ! mkdir -p "$CONFIG_DIR"
then
error_exit "Nepodařilo se vytvořit konfigurační adresář '$CONFIG_DIR'. Zkontrolujte oprávnění."
fi
if [ ! -f "$CONFIG_DIR/$CONFIG_FILE" ]
then
echo "[]" > "$CONFIG_DIR/$CONFIG_FILE"
if [ $? -ne 0 ]
then
error_exit "Nepodařilo se vytvořit konfigurační soubor '$CONFIG_DIR/$CONFIG_FILE'."
fi
success_message "Konfigurační soubor '$CONFIG_DIR/$CONFIG_FILE' vytvořen."
else
info_message "Konfigurační soubor '$CONFIG_DIR/$CONFIG_FILE' již existuje."
fi
info_message "Instalace dokončena."
success_message "Nyní můžete spustit aplikaci '$APP_NAME' z jakéhokoli místa v terminálu."
echo ""
echo -e "\033[1;33mPRO TIP:\nPokud \`$APP_NAME\` nefunguje z jakéhokoli místa, možná budete muset přidat '$INSTALL_DIR' do vašeho PATH.\nČasto se to dělá přidáním následujícího řádku do vašich shell profilů (~/.bashrc, ~/.zshrc, ~/.profile):\n\nexport PATH=\$PATH:$INSTALL_DIR\n\nPoté restartujte terminál nebo načtěte profil (např. \`source ~/.bashrc\`).\033[0m"
echo ""
# Vyčištění - smažeme pouze dočasný klonovaný adresář, ne aktuální
if [ -f "main.go" ] && [ -f "go.mod" ] && grep -q "module doxa-todo" go.mod; then
# Jsme v místním adresáři, nic nesmažeme
info_message "Instalace proběhla z místního adresáře, žádné dočasné soubory k vyčištění."
else
# Smažeme dočasný klonovaný adresář
cd ..
rm -rf "$APP_NAME"
info_message "Dočasné soubory byly vyčištěny."
fi
exit 0
+18
View File
@@ -0,0 +1,18 @@
package main
import (
"fmt"
"os"
tea "github.com/charmbracelet/bubbletea"
)
func main() {
m := NewModel()
p := tea.NewProgram(m)
if _, err := p.Run(); err != nil {
fmt.Printf("Chyba při spuštění programu: %v\n", err)
os.Exit(1)
}
}
+47
View File
@@ -0,0 +1,47 @@
package main
import (
"encoding/json"
"fmt"
"os"
"path/filepath"
)
// getStoragePath returns the path to the .doxa-todo directory and file
func getStoragePath() string {
home, err := os.UserHomeDir()
if err != nil {
return "doxa_todo.json" // fallback to current directory
}
configDir := filepath.Join(home, ".doxa-todo")
// Create directory if it doesn't exist
if _, err := os.Stat(configDir); os.IsNotExist(err) {
os.MkdirAll(configDir, 0755)
}
return filepath.Join(configDir, "doxa_todo.json")
}
// loadTodos loads all todos from the storage file
func loadTodos() []Todo {
path := getStoragePath()
file, err := os.ReadFile(path)
if err != nil {
return []Todo{}
}
var todos []Todo
json.Unmarshal(file, &todos)
return todos
}
// saveTodos saves all todos to the storage file
func saveTodos(todos []Todo) {
path := getStoragePath()
data, err := json.MarshalIndent(todos, "", " ")
if err != nil {
fmt.Println("Chyba při ukládání dat:", err)
return
}
os.WriteFile(path, data, 0644)
}
+131
View File
@@ -0,0 +1,131 @@
package main
type Translation struct {
Title string
MenuAdd string
MenuEdit string
MenuExport string
MenuDelete string
MenuQuit string
MenuLang string
MenuSearch string
MenuBrowse string
MenuFilter string
ListTitle string
NoTodos string
AddTitle string
EditTitle string
LabelTitle string
LabelDescription string
LabelTags string
LabelPriority string
LabelCategory string
PlaceholderTitle string
PlaceholderDescription string
PlaceholderTags string
HelpForm string
HelpList string
HelpFormExtended string
StatusSaved string
StatusEdited string
StatusDeleted string
StatusExported string
ErrRequired string
SearchTitle string
BrowseTags string
AllTodos string
ConfirmDelete string
ConfirmYes string
ConfirmNo string
HelpModal string
FilterCategoryTitle string
FilterCategoryNone string
FilterCategoryHelp string
}
var Translations = map[string]Translation{
"cs": {
Title: "DOXA-TODO 🦅",
MenuAdd: "1: Přidat",
MenuEdit: "2: Upravit",
MenuExport: "3: Export",
MenuDelete: "4: Smazat",
MenuQuit: "q: Konec",
MenuLang: "l: EN",
MenuSearch: "/: Hledat",
MenuBrowse: "b: Tagy",
MenuFilter: "c: Filtr",
ListTitle: "--- SEZNAM ÚKOLŮ ---",
NoTodos: " (Prázdno...)",
AddTitle: "PŘIDAT ÚKOL",
EditTitle: "UPRAVIT ÚKOL",
LabelTitle: "Název:",
LabelDescription: "Popis:",
LabelTags: "Tagy:",
LabelPriority: "Priorita:",
LabelCategory: "Kategorie:",
PlaceholderTitle: "Název (povinné)",
PlaceholderDescription: "Popis (nepovinný)",
PlaceholderTags: "Tagy (nepovinné, oddělené čárkou)",
HelpForm: "[Tab] Další pole | [Enter] Uložit | [+] Zvýšit prioritu | [-] Změnit kategorii | [q] Zrušit",
HelpList: "↑/↓: Vybrat | Enter: Zobrazit | /: Hledat | b: Procházet tagy | c: Filtr kategorie | q: Konec",
HelpFormExtended: "[Tab] Další pole | [Enter] Uložit | [+] Priorita | [-] Kategorie | [q] Zrušit",
StatusSaved: "Úkol uložen.",
StatusEdited: "Změny uloženy.",
StatusDeleted: "Úkol smazán.",
StatusExported: "Úkol vyexportován.",
ErrRequired: "Chyba: Název je povinný!",
SearchTitle: "HLEDAT: ",
BrowseTags: "TAGY",
AllTodos: "Všechny úkoly",
ConfirmDelete: "Opravdu chcete smazat tento úkol?",
ConfirmYes: "y: Ano",
ConfirmNo: "n: Ne / Esc",
HelpModal: "q: Zavřít | 2: Editovat | ↑/↓: Posun",
FilterCategoryTitle: "FILTR KATEGORIE",
FilterCategoryNone: "Žádný filtr",
FilterCategoryHelp: "1: Osobní | 2: Pracovní | 0: Žádný | Esc: Zrušit",
},
"en": {
Title: "DOXA-TODO 🦅",
MenuAdd: "1: Add",
MenuEdit: "2: Edit",
MenuExport: "3: Export",
MenuDelete: "4: Delete",
MenuQuit: "q: Quit",
MenuLang: "l: CS",
MenuSearch: "/: Search",
MenuBrowse: "b: Tags",
MenuFilter: "c: Filter",
ListTitle: "--- TODOS LIST ---",
NoTodos: " (Empty...)",
AddTitle: "ADD TODO",
EditTitle: "EDIT TODO",
LabelTitle: "Title:",
LabelDescription: "Description:",
LabelTags: "Tags:",
LabelPriority: "Priority:",
LabelCategory: "Category:",
PlaceholderTitle: "Title (required)",
PlaceholderDescription: "Description (optional)",
PlaceholderTags: "Tags (optional, comma separated)",
HelpForm: "[Tab] Next field | [Enter] Save | [+] Priority | [-] Category | [q] Cancel",
HelpList: "↑/↓: Select | Enter: View | /: Search | b: Browse tags | c: Filter category | q: Quit",
HelpFormExtended: "[Tab] Next field | [Enter] Save | [+] Increase priority | [-] Change category | [q] Cancel",
StatusSaved: "Todo saved.",
StatusEdited: "Changes saved.",
StatusDeleted: "Todo deleted.",
StatusExported: "Todo exported.",
ErrRequired: "Error: Title is required!",
SearchTitle: "SEARCH: ",
BrowseTags: "TAGS",
AllTodos: "All todos",
ConfirmDelete: "Are you sure you want to delete this todo?",
ConfirmYes: "y: Yes",
ConfirmNo: "n: No / Esc",
HelpModal: "q: Close | 2: Edit | ↑/↓: Scroll",
FilterCategoryTitle: "FILTER BY CATEGORY",
FilterCategoryNone: "No filter",
FilterCategoryHelp: "1: Personal | 2: Work | 0: None | Esc: Cancel",
},
}
+1033
View File
File diff suppressed because it is too large. Load diff