Automaatioskripti: Journal-pohjien hallinta
Tämä sivu dokumentoi Bash-skriptin, jota käytettiin journal/-kansion aihekohtaisten oppimispäiväkirjapohjien dynaamiseen luomiseen ja metadatan hallintaan.
Skriptin tarkoitus
Skriptin tavoitteena oli automatisoida toistuva dokumentointityö ja varmistaa, että jokainen teknologia-aihe saa yhtenäisen metadata-blokin sekä rakenteen ilman, että yleistason esittelysivut (Phase-tasot) ylikirjoitetaan.
Tekninen toteutus
#!/bin/bash
# Kohdistetaan haku vain syvän tason aiheisiin (mindepth 3)
# Ohittaa juuren ja phase-tasojen yleiskuvaukset.
find . -mindepth 3 -name "index.md" | while read -r file; do
# 1. Tunnistetaan Scene-numero polun perusteella
parent_path=$(echo "$file" | cut -d'/' -f2)
scene_num="?"
case $parent_path in
prologue) scene_num="I" ;;
script) scene_num="II" ;;
suspense) scene_num="III" ;;
finale) scene_num="IV" ;;
esac
# 2. Haetaan aiheen nimi kansiorakenteesta
topic_name=$(basename "$(dirname "$file")")
today_iso=$(date +%Y-%m-%d)
today_fi=$(date +%d.%m.%Y)
# 3. Kirjoitetaan dynaaminen Markdown-sisältö
cat <<EOF > "$file"
---
title: "Scene \$scene_num, \$topic_name"
scene: "\$scene_num"
topic: "\$topic_name"
date: \$today_iso
status: "aloittamatta"
prior_learning: false
---
# PÄIVÄKIRJA: \$topic_name
**Päivämäärä:** \`\$today_fi\`
**Tuotantovaihe:** Scene \$scene_num
**Tila:** Aloittamatta
### Luokitus
* **Suunnittelu** – tavoitteet ja rajaukset määritelty
* **Käynnissä** – aktiivinen opiskelu
* **Arviointi** – itsearviointi ja puutteet
* **Valmis** – kokonaisuus dokumentoitu
---
### Keskeiset opit
- *Kirjaa tähän tärkeimmät oivallukset.*
### Tuotantomuistiinpanot
**Haaste:** *Mitä ongelmia ilmeni?*
**Ratkaisu:** *Miten ne ratkaistiin?*
EOF
echo "Päivitetty: \$file"
done
Keskeiset mekanismit
- find -mindepth 3: Rajaa suorituksen siten, että journal/index.md (syvyys 1) ja journal/prologue/index.md (syvyys 2) säilyvät koskemattomina yleiskuvauksina.
- case-rakenne: Muuntaa kansion nimen (prologue) loogiseksi Scene-numeroksi (I).
- Dynaaminen Metadata: Generoi ISO-standardin mukaisen päivämäärän automaatiota varten ja suomalaisen päivämäärän luettavuutta varten.