NWeb / ZX Spectrum Next / WiFi
NWeb: webový prohlížeč pro ZX Spectrum Next
NWeb nevznikl úplně od nuly. Vychází z mého staršího projektu SpeccyWeb, tedy textového webového prohlížeče pro ZX Spectrum Next. Ten fungoval, ale postupně mě na něm začala štvát jeho omezení: žádné obrázky, prakticky žádné styly, žádné skutečné rozložení stránky a web se ve výsledku redukoval hlavně na text a odkazy.
Tak jsem vzal jeho funkční síťové jádro, proxy princip a část komunikace a znovu je použil jako základ pro něco výrazně ambicióznějšího. NWeb už se nesnaží web jen „přečíst“. Snaží se ho na možnostech Nextu opravdu zobrazit – s obrázky, tabulkami, sloupci, základními styly a formuláři.
A myslím, že se to povedlo výrazně víc, než jsem původně čekal. Samozřejmě z toho není Chrome pro Z80 – a díkybohu za to – ale web na Nextu najednou opravdu připomíná web.
Web v 640×256
NWeb přináší na ZX Spectrum Next webové stránky přes vestavěný WiFi modul. Běží v rozlišení 640×256, používá proporcionální písmo a kompletně se ovládá myší nebo klávesnicí. Rozhraní je dostupné česky i anglicky a vizuálně zapadá do stejné rodiny jako NWord a NMail. Kdo zná jeden z těchto programů, nebude v NWebu hledat menu nebo dialogy na opačné straně obrazovky jen proto, aby to bylo originální. Spustit ho lze jako dot command .nweb přímo z NextBASICu. Po ukončení dot commandu jste zpět v BASICu a paměť použitá NWebem se zase uvolní.
Jak to celé funguje
Moderní web je pro Z80 problém hned několikrát. Next neumí TLS a dnešní HTML stránky mohou mít megabajty skriptů, stylů a obrázků ještě dřív, než se na obrazovce vůbec něco objeví. NWeb proto nepřistupuje na web přímo. Přes obyčejné HTTP komunikuje s malou NWeb bránou napsanou v PHP.
- stáhne původní stránku, včetně HTTPS webů,
- zpracuje HTML a CSS,
- odstraní nebo zjednoduší věci, které Next nepotřebuje,
- převede obrázky do formátu vhodného pro Next,
- a výsledná kompaktní data pošle NWebu.
Po instalaci se používá veřejná brána na perrada.cz, takže uživatel nemusí nastavovat vlastní server. Pokud ale chcete, můžete si provozovat vlastní.
Princip je vlastně pokračováním toho, co už dělal SpeccyWeb. Rozdíl je v tom, že NWeb posunul proxy z prostého převodníku textu na poměrně schopný preprocessor celé webové stránky.
Co NWeb umí zobrazit
- Nadpisy, odstavce, seznamy, citace a tabulky.
- Tučné písmo a kurzívu.
- Českou a další středoevropskou diakritiku.
- Volitelné písmo stránky: Next, Sans nebo Serif.
To už je proti původnímu SpeccyWebu poměrně zásadní rozdíl. Stránka není jen dlouhý seznam řádků textu, ale začíná mít vlastní typografii a strukturu.
CSS – ne celé, ale dost na to, aby to mělo smysl
NWeb není plnohodnotný CSS engine a ani se o to nepokouší. Brána ale čte styly stránky a využívá informace, které dávají smysl na obrazovce Nextu.
- viditelnost prvků,
- zarovnání,
- mezery a odsazení,
- jednoduchý flex, grid a float,
- spojování krátkých bloků do sloupců,
- zachování bočních menu vedle hlavního textu,
- horizontální horní menu,
- sloučení rámců do výsledné stránky.
Cílem není pixel-perfect kopie desktopového webu. Cílem je zachovat jeho logiku a čitelnost v rozlišení 640×256.
Obrázky přímo ve stránce
Tohle je asi nejviditelnější rozdíl proti SpeccyWebu. NWeb umí zobrazovat obrázky přímo uvnitř stránky. V běžném režimu jsou převedené do 16 barev a jejich velikost vychází z HTML, CSS nebo skutečného rozměru. Text může běžet vedle obrázku a krátké karty s obrázky se mohou skládat vedle sebe do řady.
Načítání obrázků na pozadí
Obrázky se nestahují všechny předem. Jakmile se dostanou do viditelné části stránky, NWeb je začne postupně načítat. Jeden obrázek obvykle trvá přibližně dvě až tři sekundy, ale stránku můžete během toho dál posouvat a používat menu. BREAK stahování zastaví. Pokud nechcete obrázky načítat automaticky, mohou zůstat jen jako rámečky s popisem a stáhnout se až přes EXT+P.
Obrázek přes celou obrazovku
Kliknutím na obrázek nebo pomocí EXT+W se otevře jeho plnoobrazovková verze ve 256 barvách. Převod a přenos trvá přibližně deset sekund. Klávesou S lze obrázek uložit jako NXI a použít ho v dalších programech.
Stahování souborů
Pokud odkaz vede na soubor – například ZIP, TAP nebo NEX – NWeb nabídne jeho stažení. Přes souborový dialog vyberete cílovou složku a název souboru. Před přepsáním existujícího souboru se program zeptá a průběh stahování zobrazuje ve stavovém řádku. BREAK přenos zastaví a nedokončený soubor se smaže. Takže po přerušeném downloadu nezůstane na kartě polovina ZIPu, která bude dalších šest měsíců předstírat, že je v pořádku.
Zpět a Vpřed bez dalšího čekání
Posledních 16 stránek se ukládá na SD kartu. Návrat zpět nebo vpřed tedy nemusí znovu sahat na síť. Obnoví se i původní pozice na stránce; obrázky se pouze znovu načtou podle potřeby.
Historie, záložky a domovská stránka
Přes EXT+Y se otevře historie posledních 50 stránek, a to i z minulých spuštění programu. NWeb podporuje až 30 záložek a libovolnou vlastní domovskou stránku. Pokud domovskou stránku nenastavíte, zobrazí se úvodní stránka se záložkami a několika připravenými odkazy: SpecNext, Spectrum Computing, SpecNext Wiki a MB Maniax.
Formuláře a hledání
NWeb umí i jednoduché HTML formuláře. Vyhledávací pole a formuláře až se třemi položkami se otevřou v dialogu. Heslové pole se na obrazovce maskuje. EXT+S otevře hledání v aktuální stránce, což je u delších textů výrazně pohodlnější než energicky roztáčet kolečko myši a doufat, že jste hledaný odstavec právě nepřejeli.
Myš i klávesnice
- Kliknutí otevírá odkazy a obrázky.
- Kolečko posouvá stránku.
- Scrollbar lze táhnout.
- Červený křížek za průběhovým pruhem zastaví načítání.
- Stavový řádek ukazuje adresu odkazu pod kurzorem.
- Pravé tlačítko otevírá kontextové menu pro odkaz, obrázek nebo stránku.
Myš ale není nutná. Všechno jde ovládat i z klávesnice, včetně přecházení mezi jednotlivými odkazy.
Vestavěná nápověda
EXT+H otevře nápovědu rozdělenou do témat. Má vlastní vyhledávání – začnete psát slovo a seznam témat se rovnou filtruje podle toho, kde se daný výraz vyskytuje.
Omezení – protože pořád mluvíme o Z80
- JavaScript se nespouští. Weby postavené čistě na JavaScriptu mohou zůstat prázdné.
- Stránky chráněné CAPTCHA nebo anti-bot kontrolou obvykle nelze otevřít.
- CSS není kompletní. Layout se přizpůsobuje malé obrazovce a nemusí odpovídat desktopové verzi.
- Po zjednodušení může stránka mít nejvýš 60 kB.
- Limit je 1000 odkazů a 64 obrázků.
- URL může mít maximálně 240 znaků.
- Pod otevřeným menu nebo dialogem se obrázek dočasně zobrazuje jen jako prázdný rámeček.
Soukromí a hesla
Každá stránka prochází přes NWeb bránu. Next neumí TLS, takže komunikace mezi NWebem a bránou běží nešifrovaně. Heslo je sice na obrazovce skryté, ale k bráně se neposílá šifrovaným spojením. Důležitá hesla proto přes NWeb nepoužívejte.
Požadavky
- ZX Spectrum Next s 2 MB RAM.
- WiFi/ESP modul připojený k síti v NextZXOS.
- SD karta a přístup k internetu.
- Myš je volitelná.
Spuštění jako dot command
Soubor NWEB zkopírujte do C:/DOT/. Potom lze použít:
| Příkaz | Co udělá |
|---|---|
.nweb | Otevře domovskou nebo úvodní stránku. |
.nweb "http://speccy.cz" | Otevře konkrétní adresu. |
.nweb "d:/web" | Použije jiný domovský adresář. |
.nweb -h | Zobrazí krátkou nápovědu. |
V domovském adresáři se ukládá NWEB.CFG, NWEB.BMK, NWEB.HIS a cache stránek pro Zpět/Vpřed. EXT+Q ukončí dot command a vrátí vás do BASICu.
Spuštění jako NEX
Pokud nechcete dot command, stačí nweb.nex zkopírovat do libovolné složky na SD kartě a spustit ho z Browseru NextZXOS. Konfiguraci, historii, cache i záložky pak ukládá přímo vedle programu.
Vlastní NWeb brána
Pokud nechcete používat veřejnou bránu, můžete si spustit vlastní. Na server zkopírujte:
nweb.php
proxy.php
cacert.pem
Brána potřebuje PHP 5.6 nebo novější a pro obrázky rozšíření GD. Schopnosti serveru lze ověřit přes nweb.php?a=ping.
Hlavní klávesy
| Klávesa | Funkce |
|---|---|
| EXT+G | Otevřít adresu. |
| EXT+B / EXT+F nebo CAPS+5 / CAPS+8 | Zpět / vpřed. |
| EXT+R / EXT+T | Načíst znovu / domovská stránka. |
| CAPS+6 / CAPS+7 | Posun stránky. |
| CAPS+3 / CAPS+4 | Stránka nahoru / dolů. |
| EXT+3 / EXT+4 | Začátek / konec stránky. |
| EXT+SPACE / EXT+A | Další / předchozí odkaz. |
| ENTER | Otevřít vybraný odkaz. |
| EXT+S | Hledat na stránce. |
| EXT+K / EXT+D | Záložky / přidat záložku. |
| EXT+L | Nastavit jako domovskou stránku. |
| EXT+Y | Historie. |
| EXT+P / EXT+W | Načíst obrázky / obrázek přes celou obrazovku. |
| EXT+O / EXT+H / EXT+M | Nastavení / nápověda / menu. |
| EXT+Q | Konec do BASICu. |
| BREAK | Zpět; během načítání přenos zastaví. |
EXT = CAPS SHIFT + SYMBOL SHIFT, BREAK = CAPS SHIFT + SPACE.
Stejná rodina jako NWord a NMail
NWeb používá stejnou obrazovku, písma a způsob ovládání jako NWord a NMail. To je záměr. Tyhle programy nestavím jako izolované utility, ale jako jednu rodinu aplikací, které se mají chovat předvídatelně. Použitá písma Liberation jsou pod licencí SIL Open Font License. Verze programu: 0.1. Program: Shrek / MB Maniax.
SpeccyWeb byl začátek. NWeb je to, co jsem chtěl původně mít.
SpeccyWeb mi ukázal, že web na ZX Spectrum Next dává smysl. NWeb je pokus odstranit právě ty limity, které mě na první verzi začaly nejvíc štvát: čistě textový výstup, žádné obrázky a prakticky nulové rozložení stránky. Jádro jsem tedy nevzahodil – naopak jsem ho znovu použil tam, kde už bylo osvědčené, a kolem něj postavil nový prohlížeč. A tentokrát mám pocit, že se z experimentu stal program, který se dá opravdu používat.
Stahovat můžete zde: https://shrek128.itch.io/nweb








Komentáře
Zatím tu nikdo nic nenapsal. Buď první!