Metadata-Version: 2.4
Name: termdeck
Version: 0.1.1
Summary: Terminal presentations, written in Markdown or Python
Author-email: Zorex Salvo <zorexsalvo@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/zorexsalvo/presentazi
Keywords: presentation,slides,terminal,textual,markdown
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Graphics :: Presentation
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: textual>=0.84
Provides-Extra: music
Requires-Dist: musicpy; extra == "music"
Requires-Dist: pygame; extra == "music"
Requires-Dist: mido-fix; extra == "music"
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# TermDeck

Terminal presentations, written in Markdown or Python. Built on [Textual](https://github.com/Textualize/textual).

Each file in a deck folder is one slide. Navigate with the arrow keys.

## Install

```bash
pip install termdeck
```

Optional extras:

```bash
pip install "termdeck[music]"   # interactive music-pad slides
```

## Usage

```bash
termdeck                # play the bundled sample deck
termdeck ./my-deck      # play your own deck
python -m termdeck      # same thing
```

Navigate with **← / →** arrow keys; quit with **Ctrl+C**.

## Writing a deck

A deck is a folder of slide files. Files are sorted by name.

### Markdown slides

```markdown
# My title

- a bullet
- another bullet
```

### Python slides

A Python slide is a [Textual `Screen`](https://textual.textualize.io/api/screen/). It must expose a `Slide` class:

```python
from textual.app import ComposeResult
from textual.screen import Screen
from textual.widgets import Button

class Slide(Screen):
    def compose(self) -> ComposeResult:
        yield Button("Hello")
```

The screen's widgets are styled by `styles/default.tcss`, which you can override in
your deck if you want. All Textual functionality is available for rich,
interactive slides.

## Development

```bash
pip install -e ".[dev]"
python test.py
python -m build
```

## License

MIT
