– Jeg bygget et terminalbasert verktøy for kodepresentasjoner, fordi PowerPoint var for smertefullt, skriver utvikleren Bas Nijholt på Reddit.
Nijholt står bak Tuitorial, et nytt terminalbasert verktøy som gjør det mulig å lage interaktive presentasjoner som kjører inne i terminalvinduet.
Utvikleren, som til daglig jobber med utvikling på kvantedatamaskiner hos IonQ, mener nemlig at tradisjonelle presentasjonsverktøy som PowerPoint ikke er bra nok hvis du skal lage presentasjoner der kode står i fokus.
– 99,9 % bør ikke bruke Tuitorial. Men de 0,1 % som bør det, vil elske den, skriver han.
Tuitorial er derimot for de 0,1 prosentene som:
- Holder tekniske presentasjoner eller arrangerer workshops
- Elsker terminalbaserte verktøy
- Er lei av å kopiere den samme koden inn på mange PowerPoint-slides
- Vil ha versjonskontrollerte, reproduserbare "tutorials"
«99,9 % bør ikke bruke Tuitorial. Men de 0,1 % som bør det, vil elske den.»
Definer presentasjonen med kode
Tuitorial er åpen kildekode (MIT-lisens) og skrevet i Python.
Når du har laget en presentasjon og startet den opp fra terminalen, vises den i "fullskjerm" inne i terminalvinduet, og du kan bruke piltastene for å navigere deg rundt i presentasjonen.
Presentasjonene lages enten ved å skrive litt Python-kode, eller du kan opprette en YAML-fil der du setter opp alt.
Det å vise frem kodesnutter er noe av det viktigste med Tuitorial, og det er derfor innebygget støtte for syntaksutheving for en masse forskjellige programmeringsspråk. Det er også støtte for å bruke bilder og markdown i presentasjonene.
Her kan du se en video av hvordan en typisk Tuitorial-presentasjon kan se ut.
Du skriver litt Python-kode eller YAML for å definere hvordan alle lysbildene dine skal se ut, og for hvert lysbilde eventuelle trinn du kan bla igjennom med pil opp og ned.
Du kan bruke RegEx til å utheve for eksempel en funksjon i koden på skjermen, slik:
from tuitorial import Chapter, Step, TuitorialApp, Focus
from rich.style import Style
# Your code to present
code = '''
def hello(name: str) -> str:
return f"Hello, {name}!"
def main():
print(hello("World"))
'''
# Define tutorial steps
steps = [
Step(
"Function Definition",
[Focus.regex(r"def hello.*:$", style="bold yellow")]
),
Step(
"Return Statement",
[Focus.literal('return f"Hello, {name}!"', style="bold green")]
),
Step(
"Main Function",
[Focus.range(code.find("def main"), len(code), style="bold blue")]
),
]
# Create a chapter
chapter = Chapter("Basic Example", code, steps)
# Run the tutorial
app = TuitorialApp([chapter])
app.run()
Slik setter du opp Tuitorial
Du installerer Tuitorial ganske enkelt med Pythons pakkeverktøy pip:
pip install tuitorial
Hvis du har Python-verktøyet uv installert kan du få opp en demopresentasjon laget med Tuitorial ved å skrive:
uvx tuitorial https://raw.githubusercontent.com/basnijholt/tuitorial/refs/heads/main/examples/pipefunc.yaml
Når presentasjonen er oppe, blar du fremover og bakover i presentasjonen med piltastene – eller bruker pil opp og ned for å velge mellom ulike trinn på samme lysbilde (for eksempel utheve én og én ting i kodeeksemplene dine mens du snakker).
Det er også mulig å endre fargetema for terminalvinduet, lagre skjermbilder, og mye annet ved å trykke Ctrl-P:
Var frustrert
Nijholt skriver på Reddit at han lagde Tuitorial etter at han hadde vært frustrert over å ha prøvd å presentere et annet verktøy han hadde laget. Dermed begynte han å lage et nytt terminal-basert verktøy for å presentere et annet kodeprosjekt.
– Noen ganger kommer de beste verktøyene fra å løse dine egne behov! skriver Nijholt.
Glad i terminalen? Da har du kanskje fått med deg Ghostty, terminalen "alle" snakker om? Les om den her: