Metadata-Version: 2.3
Name: eksitui
Version: 1.0.0
Summary: TUI for Turkish collaborative hypertext dictionary ekşi sözlük.
Keywords: eksi,turkish,sozluk,cli,eksisozluk,tui
Author: Gökçe
Author-email: Gökçe <agmmnn@gmail.com>
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Classifier: Topic :: Utilities
Requires-Dist: eksiapi>=1.5.0,<2
Requires-Dist: platformdirs>=4.11.0,<5
Requires-Dist: textual>=8.2.8,<9
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/agmmnn/eksitui
Project-URL: Repository, https://github.com/agmmnn/eksitui
Project-URL: Changelog, https://github.com/agmmnn/eksitui/blob/master/CHANGELOG.md
Project-URL: Bug Tracker, https://github.com/agmmnn/eksitui/issues
Description-Content-Type: text/markdown

<div align="center">

# eksitui

Ekşi Sözlük için hızlı, klavye odaklı ve tema destekli terminal arayüzü.

[![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/)
[![Textual 8](https://img.shields.io/badge/Textual-8.2.8-FF2D55)](https://textual.textualize.io/)
[![PyPI](https://img.shields.io/pypi/v/eksitui)](https://pypi.org/project/eksitui/)
[![GitHub release](https://img.shields.io/github/v/release/agmmnn/eksitui)](https://github.com/agmmnn/eksitui/releases)

<img src="assets/image.png" alt="eksitui ana ekranı" width="100%">

</div>

## Özellikler

- Gündem, bugün ve debe akışları
- Başlık arama ve entry sayfalama
- Uygulama içi başlık bağlantıları
- Klavye ve fare desteği
- Dar terminallere uyum sağlayan duyarlı yerleşim
- Textual temalarıyla uyumlu arayüz
- Canlı önizlemeli kompakt tema seçici
- Ekşi Sözlük'ten esinlenen `eksi-dark` ve `eksi-light` temaları
- Tema, akış ve alt çubuk tercihlerinin otomatik kaydı
- SVG screenshot kaydetme

## Kurulum

Önerilen kurulum yöntemi [`uv`](https://docs.astral.sh/uv/) kullanmaktır:

```shell
uv tool install eksitui
```

Depodaki güncel sürümü doğrudan kurmak için:

```shell
uv tool install git+https://github.com/agmmnn/eksitui.git
```

## Kullanım

```shell
# Uygulamayı aç
eksi

# Belirli bir başlığı aç
eksi "başlık"

# Örnek verilerle çevrimdışı çalıştır
eksi --mock

# Sürümü göster
eksi --version
```

Kaynak koddan çalıştırmak için:

```shell
git clone https://github.com/agmmnn/eksitui.git
cd eksitui
uv sync
uv run eksi --mock
```

## Temalar

`T` tuşuyla tema seçiciyi açabilirsiniz. Seçenekler arasında dolaşırken tema
anında önizlenir; `Enter` seçimi kaydeder, `Esc` önceki temaya döner.

<div align="center">
  <img src="assets/themes.png" alt="eksitui canlı tema seçici" width="90%">
</div>

Textual ile gelen temalara ek olarak iki özel tema bulunur:

| `eksi-dark`                                                                  | `eksi-light`                                                                   |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| <img src="assets/eksi-dark.svg" alt="eksitui eksi-dark teması" width="100%"> | <img src="assets/eksi-light.svg" alt="eksitui eksi-light teması" width="100%"> |
| Sıcak zeytin ve kömür tonlarında koyu tema                                   | Ekşi Sözlük'ün saman tonlarından esinlenen açık tema                           |

## Klavye kısayolları

| Tuş                          | İşlem                                      |
| ---------------------------- | ------------------------------------------ |
| `J` / `K` veya `↓` / `↑`     | Odaktaki panelde gezin                     |
| `H` / `L` veya `←` / `→`     | Başlık ve entry panelleri arasında geçiş   |
| `Enter`                      | Seçili başlığı aç                          |
| `P` / `N`                    | Önceki / sonraki sayfaya geç               |
| `Space` / `Shift+Space`      | Entry'leri bir ekran aşağı / yukarı kaydır |
| `G` / `Shift+G`              | Odaktaki panelin başına / sonuna git       |
| `F` veya `/`                 | Arama kutusuna odaklan                     |
| `Ctrl+X`                     | Arama metnini temizle                      |
| `1` / `2` / `3`              | Gündem / bugün / debe akışını aç           |
| `B`                          | Başlık panelini gizle / göster             |
| `R`                          | Geçerli içeriği yenile                     |
| `T`                          | Tema seçiciyi aç                           |
| `Ctrl+P`                     | Komut paletini aç                          |
| `Ctrl+O`                     | Alt kısayol çubuğunu gizle / göster        |
| `Ctrl+S`                     | SVG ekran görüntüsü kaydet                 |
| `?`                          | Klavye yardımını aç                        |
| `Q`, `Ctrl+Q` veya `Ctrl+C`  | Çıkış                                      |

Alt çubuk temel komutları bağlama göre gösterir. Tam klavye haritasına uygulama
içinde `?` tuşuyla ulaşabilirsiniz.

## Ayarlar

Seçilen tema, son kullanılan akış ve alt çubuk görünürlüğü otomatik olarak
kaydedilir ve sonraki açılışta geri yüklenir.

`Ctrl+S` ile alınan ekran görüntüleri SVG biçiminde `Downloads` klasörüne
kaydedilir. Her görüntü benzersiz bir zaman damgası taşır.

## Geliştirme

Proje Python 3.10 ve üzerini destekler.

```shell
uv sync
uv run pytest -q
uv run black --check .
```

## Katkı

Hata bildirimleri ve öneriler için
[issue açabilir](https://github.com/agmmnn/eksitui/issues) veya pull request
gönderebilirsiniz.

Sürüm geçmişi ve değişiklikler [CHANGELOG.md](CHANGELOG.md) dosyasında tutulur.

Ekşi Sözlük ve ilgili marka unsurları kendi sahiplerine aittir. eksitui bağımsız,
gayriresmî bir istemcidir.
