Datum: 2026-03-09 till 2026-03-15
Projekt: bitcoinakademin.se
Vi går tillbaka till hemsidan och Siffror, Finansmarknad och Aktier. Jag skulle vilja ha en dropdown så att alla tickers med grupp="Aktier", undergrupp="Bolag" syns i dropdown-listan. Presentationen ska vara Graf 1.
Byggde dynamisk dropdown som hämtar tickers direkt från Supabase (tabb=Finansmarknad, grupp=Aktier, undergrupp=Bolag). Graf 1 gjordes generisk för alla tickers. Dropdown laddar automatiskt – ny ticker i databasen dyker upp utan kodändring.
Kan du själv uppdatera HTML-koden i Ghost?
Inte direkt. Satte upp pusha_till_ghost.py med Ghost Admin API och JWT-autentisering. Admin-nyckel från Settings → Integrations → Bitcoinakademin. Skapar uppdatera_siffror.bat för enkel publicering.
Lade till Föregående/Nästa-knappar bredvid dropdown.
Implementerade ← → navigering med uppdateraNavKnappar() som hanterar disabled-state i ändarna av listan.
Graferna visar bara data från 2022 trots att databasen har fler år.
Fixade fetchKursdata att hämta all historik med Range: 0-9999 header. Supabase Max Rows höjdes till 10000 i API-inställningar.
Justeringar av storlek och läsbarhet på graferna – flera iterationer.
Charts: 220px → 400px höjd. Axeltext: 9px → 14px. Datum roterade 45 grader. Stats-värden 14px → 18px. Chart-titel 15px → 20px.
Nu skulle jag vilja ha en kommentarsruta under grafen.
Lång felsökningssession. Ghost strippar textarea, button-taggar och id-attribut på tomma div. Ghost trunkerar även JavaScript i HTML-block. Lösning: Code Injection (Site Footer) med MutationObserver som skapar rutan dynamiskt när grafen laddats. Kommentarer sparas i Supabase-tabellen kommentarer (ticker PK).
Varför har det varit så svårt med kommentarsfunktionen?
Ghost är ett publiceringssystem, inte en applikationsplattform. Det saniterar aggressivt HTML/JS av säkerhetsskäl. Vi kämpade mot plattformen. Bättre lösning: servera siffror.html som fristående fil, eller bygg Ghost Custom Theme.
Lade till två dropdowns – undergrupp + ticker.
fetchUndergrupper() hämtar unika undergrupper dynamiskt från Supabase. byttUndergrupp() uppdaterar ticker-dropdown. ← → navigerar inom vald undergrupp.
Exportera kursdata till CSV för Access-import.
Skapade exportera_kursdata.py – exporterar senaste 30 dagarna, semikolon-separerad, UTF-8 BOM. Output till Aktier/Data/DataIn-mappen.
Styrning av hamta_data.py via Tickers-tabellen.
Skrev om hamta_data.py att läsa tickers direkt från Supabase (auto='true', kalla=Yahoo/FRED, kalla_url ej tom). Ingen hårdkodad lista. Ny ticker = uppdatera Tickers-tabellen, inget kodändring.
auto_adjust-fel – Yahoo returnerar justerade priser.
Ändrade till auto_adjust=False för att få råpriser (Close) istället för Adj Close. Körde om 14 dagar för att skriva över felaktig data.
CDS-data från worldgovernmentbonds.com – går det att automatisera?
Sidan är JavaScript-renderad (Partytown/ServiceWorker). Inget direkt API hittades. Tabellen finns i DOM – Playwright kan scrapa den. Plan: hamta_cds.py med Playwright, körs en gång per vecka via hamta_cds.bat.
Skapa markdownfiler för arbetet vi gjort.
Skapade bitcoinakademin_projektdokumentation.md och bitcoinakademin_nastaSteg.md med komplett teknisk referens och prioriterad todo-lista.