# Tampiorama v1.0

First release of Tampiorama — an annotated example showcase for [Tampio](https://github.com/fergusq/tampio), a natural-language OOP language that uses Finnish grammar and compiles to JavaScript.

## What's included

### Examples

Eight working, annotated `.itp` programs covering the breadth of the language:

| Example | Demonstrates |
|---------|-------------|
| `basics/hello.itp` | Page-load entry point, browser alert |
| `basics/factorial.itp` | Recursive methods, ternary branching |
| `basics/fibonacci.itp` | Recursion, predecessor chaining for n-2 |
| `data-structures/lista.itp` | Built-in list: iteration, sorting |
| `data-structures/vektori.itp` | Custom class with fields and recursive methods |
| `strings/merkkijono.itp` | String length, concat, trim, comma-split |
| `async/nappi.itp` | DOM click handlers, mutable state |
| `program/kasvutaulukko.itp` | Recursion and list iteration combined |

### Documentation

- `docs/cheatsheet.md` — Finnish grammatical cases mapped to their roles in Tampio syntax, full arithmetic operator reference
- `docs/vs-javascript.md` — Side-by-side Tampio and JavaScript comparisons
- `docs/install.md` — Local setup without Docker (Ubuntu/Debian and macOS)
- `docs/testing.md` — Step-by-step guide for verifying each example

### Infrastructure

- Docker + `docker-compose.yml` — zero-setup environment with libvoikko and fi-x-morpho dictionary included
- `Makefile` — builds all `.itp` sources to `.html` with `make`
- Compiled HTML excluded from version control — only Tampio source is committed

## Getting started

```sh
git clone https://github.com/fergusq/tampiorama.git
cd tampiorama
make
python3 -m http.server 9994 --directory examples
```

Open `http://localhost:9994/basics/index.html`.

## Notes

- Tampio method names must be single Finnish words that the Voikko morphology library can inflect — this shapes what's possible and is documented throughout the examples
- The Docker image handles the `libvoikko` and `fi-x-morpho` dictionary setup automatically; see `docs/install.md` for native installation
