TITLE=TTGWIKI ROUTE=/dos/ttgwiki LOCALE=hu MODIFIED=1792417593 URL=https://wiki.teletypegames.org/hu/dos/ttgwiki L=1 #50 L=2 #16 L=3 https://git.teletypegames.org/dos/ttgwiki L=4 https://git.teletypegames.org/dos/ttgwiki/releases L=5 https://git.teletypegames.org/dos/ttgwiki/releases/download/v0.2.0/TTGWIKI-v0.2.0.zip L=6 https://git.teletypegames.org/dos/ttgwiki/releases/download/v0.2.0/TTGWIKIW-v0.2.0.zip L=7 #72 L=8 #17 q│ A TTGWIKI ennek a wikinek a nyilvános oldalait olvassa DOS-on (cTTGWIKI.EXEq, q│ C++, Open Watcom, 8086-os kód, mTCP) és Windows 95-ön vagy újabbon q│ (cTTGWIKIW.EXEq, Winsock, konzolablakban). Egy DOS-gép nem tud HTTPS-t, ezért q│ ugyanennek a repónak a szerveroldala sima szövegfájlokba exportálja a wikit, q│ és a Teletype Games 1FTP-szervere kínálja anonim, csak olvasható FTP-n, a q│ 2DOSINST programtára mellett. q│ q│ Egy oldal akkor töltődik le, amikor elolvassák, és a lemezen marad, így q│ később hálózat nélkül is olvasható; az cF6q mindet letölti. Az export 15 q│ percen belül követi a wikit. • bRepó:0 3git.teletypegames.org/dos/ttgwiki • bExport:0 cftp://ftp.teletypegames.org/WIKI0 (anonim, csak olvasható) • bTelepítés:0 cTTGWIKI0 és cTTGWIKIW0 a 2DOSINST programtárából, vagy a 4kiadások közül: DOS: 5TTGWIKI-v0.2.0.zip · Windows 95 és újabb: 6TTGWIKIW-v0.2.0.zip i[Kép: A TTGWIKI egy oldalt olvas DOSBoxban] r────────────────────────────────────────────────────────────────────────────── 1Mit tud 1═══════ • bA tartalomjegyzék0 fában mutatja az oldalakat, az utolsó módosításuk dátumával. Gépeléssel keres a címekben, a kis- és nagybetűt meg az ékezeteket nem nézve (a ckezdo0 megtalálja a iKezdőlap0ot). Az cF20 vált az angol és a magyar között; a fordítás nélküli oldal azon a nyelven jelenik meg, amelyen írták, c[en]0 jelöléssel. • bAz olvasó0 úgy mutatja az oldalt, ahogy a wikiben van: címsorok, listák, kódblokkok, idézetek és táblázatok, színesen. A cTab0 / cShift+Tab0 kiválasztja a linkeket, az állapotsor megmondja, hová visznek, az cEnter0 követi a linket egy másik oldalra, a cBackspace0 visszalép. Egy webes linket csak kiír: azt egy másik gépen kell megnyitni. • bHálózat nélkül0: egy egyszer elolvasott oldal a program melletti cCACHE\ mappában marad. Ha a szerver nem érhető el, a TTGWIKI ezt kiírja, és a lemezről olvas. Az elutasított kapcsolatot a master azonnal jelzi; a 0.2.0 előbb még kivárja az mTCP 10 másodperces kapcsolódási időkorlátját. Az cF6 (vagy a cTTGWIKI SYNC0) egy nyelv minden oldalát letölti. • bFrissen0: induláskor és cF50-re a TTGWIKI elolvassa a szerverről a cWIKI.INI0-t. Ha az exportnak új generációja van, jön az új oldallista, és a megváltozott oldalak törlődnek a lemezről, így olvasáskor újra letöltődnek. Mást nem tölt le. • bNyomtatás0: a cTTGWIKI SHOW /dos/gmenu > PRN0 sima szövegként kinyomtat egy oldalt. • bKódlapok0: a cTTGWIKI.CFG0-ben a cCODEPAGE=8520 minden magyar betűt mutat; a 437-es kódlapon (ez az alapértelmezés) a hiányzók egy közeli betűvé válnak (ő → ö). p TTGWIKI a wiki böngészése p TTGWIKI SYNC [nyelv] egy nyelv minden oldalának letöltése p TTGWIKI SHOW útvonal [nyelv] egy oldal kinyomtatása 1Hogyan működik 1══════════════ p wiki.teletypegames.org (Grav) p │ /custom/sitemap.json, /custom/page.json (a wiki docker-hálózatán » p belül) p ▼ p exporter (server/export.py) induláskor, aztán 15 percenként p │ WIKI.INI, EN/INDEX.TXT, EN/FILES.LST, EN/P0000001.TXT, ... HU/... p ▼ p FTP (infra/ftp-server) ftp://ftp.teletypegames.org/WIKI p │ p ▼ p TTGWIKI.EXE / TTGWIKIW.EXE CACHE\EN\..., CACHE\HU\... • Az bexporter0 ugyanazokat a JSON-végpontokat olvassa, mint a 7wiki BBS, minden nyilvános oldal HTML-jét szöveggé rendereli (cserver/render.py0), és nyelvenként egy mappát ír. Újraindítás után azonnal exportál. Új export csak akkor készül, ha valami változott: a nyelvi mappák átnevezéssel cserélődnek, és a cWIKI.INI0 kerül ki utoljára, a következő generációszámmal. Egy sikertelen futás (ha a wiki nem érhető el) semmit nem változtat. • bA privát oldalak sosem hagyják el a szervert0: kimaradnak a sitemapből, és token nélkül a Grav amúgy sem adja ki a szövegüket. • bEgy oldalfájl0 fejlécsorokkal kezdődik (cTITLE=0, cURL=0, linkenként cL= c0), utána legfeljebb 78 karakteres sorok jönnek, UTF-8-ban. A stílusokat (c01h c0) és a linkeket (c02h n 03h0 … c04h0) oszlopot nem foglaló vezérlőbájtok jelölik; minden sor önmagában teljes, így az olvasó bárhol kezdheti. A TTGWIKI a szöveget a képernyő kódlapjára alakítja, karakterenként egy bájtra, és az oldalt soronként olvassa a lemezről (a leghosszabb oldal közel 3000 sor). • bAz azonosítók maradnak0: egy oldal egyszer kap számot (cP0000123.TXT0), amit minden export visszaolvas az cINDEX.TXT0-ből; a két nyelv közösen használja, így az cF20 ugyanazt az oldalt mutatja. • A cFILES.LST0 minden fájl CRC-32-jét és méretét tartalmazza, a DOSINST formátumában: minden letöltés ellenőrzött. 1A szerver 1═════════ A cttgwiki0 stack a vps.teletype.hu-n (c/srv/stacks/ttgwiki0, ccompose.yaml0) már csak az exporter. Az 1FTP-szerver cWIKI0 mappájába ír (c/srv/stacks/ftp-server/root/WIKI0), amelyet az a 21-es porton kínál: anonim, csak olvasható, csak passzív mód. A 0.2.0-tól a TTGWIKI alapból ide kapcsolódik (cPORT=210, cPATH=/WIKI0); a 0.1.0 a 2121-es portot használta, ez megszűnt. Az exporter a cwiki-pages0 stack hálózatához csatlakozik. A master ágra pusholt, a szerveroldalt érintő változást a pipeline telepíti. 1Fordítás és tesztek 1═══════════════════ Open Watcom v2, ahogy a DOSINST-nél: a cSOURCE/build.sh0 mindkét programfájlt lefordítja. A kliens rétegekben épül a 8DOSLIB-re (ami ehhez kapta meg a 437-es és 852-es kódlapot és a fájlon belüli pozicionálást). A pipeline futtatja a szerveroldal tesztjeit (a renderer, az exporter egy hamis wikin), a kliens unit-tesztjeit a fejlesztőgépen, és két végponttól végpontig tartó tesztet: az exporter egy kis exportot ír, az FTP-szerver kiszolgálja, a TTGWIKI pedig fej nélküli DOSBox Staging-ben fut (nyomtatás, letöltés, új export, 852-es kódlap, hálózat nélkül, böngészés szkriptelt billentyűkkel), a TTGWIKIW pedig Wine alatt. A teszt lépés a cdos-ci0 image-ben fut (cgit.teletypegames.org/build/dos-ci:bookworm0), előre telepített eszközlánccal, a release lépés a cci-tools0 image-ben. A deploy és a store lépés csak meghívja SSH-n a szerver cdeploy0 felhasználóját, mindkettő a saját, egyetlen rögzített parancshoz kötött kulcsával (cci-deploy ttgwiki0, cci-deploy dos-ttgwiki-store0; cinfra/host-config0): a deploynál a szerver maga klónozza a mastert, és egy szabályzat szerint ellenőrzi a ccompose.yaml0-t, így a pipeline-nak nem kellenek trusted volume-ok. Részletek: a repó README-je.