58 views
# INTA – 3. cvičení Dnes vytvoříme následující "jednostránkovou aplikaci" pomocí [Mithril.js](https://mithril.js.org/): ![](https://jlk.fjfi.cvut.cz/md/uploads/b80c2c37-5d74-4830-8fe3-3146983ce42c.png) ![](https://jlk.fjfi.cvut.cz/md/uploads/ed5bfcb8-b280-4c76-b582-f8b91825addf.png) ## Jak začít Aplikaci můžete začít tvořit z [těchto souborů na GitLabu](https://gitlab.fjfi.cvut.cz/18inta-2024/inta/-/tree/main/cv03/zadani?ref_type=heads). Využijte obrázky stažené programem z [1. cvičení](https://jlk.fjfi.cvut.cz/md/NdsuReVERLi3Dht1MIgMFw). ### data.json Skript pro vygenerování souboru se seznamem obrázků: ```python from pathlib import Path import json directory = Path("images") imgs = directory.iterdir() data = json.dumps([str(i) for i in imgs]) with open("data.json", "w") as f: print(f"data = {data}", file=f) ``` ### gallery.js Základní struktura aplikace může vypadat takto: ```js var root = document.body; var data = []; // komponenta pro zobrazení přehledu všech obrázků var Gallery = { view: function() { console.log("Gallery.view"); return m(/* ... */) } } // komponenta pro zobrazení jednoho obrázku var Image = { view: function() { return m(/* ... */) } } m.route(root, "/gallery", { "/gallery": Gallery, "/image": Image, }) // obnovení UI po kompletním načtení dat window.onload = (event) => { console.log("window.onload"); m.redraw(); }; ``` V obou komponentách je potřeba doplnit vhodnou strukturu elementů. Abyste využili styly v připojeném CSS, snažte se přiblížit této struktuře: 1. `Gallery`: ![](https://jlk.fjfi.cvut.cz/md/uploads/2daa4ff3-cfde-4ff6-b88c-a297dba86c66.png) 2. `Image`: ![](https://jlk.fjfi.cvut.cz/md/uploads/263b0375-ed04-409a-b274-d6baeb57cdc7.png)