Files

50 lines
2.1 KiB
Markdown

# 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