# WebApp_builder Skript pro sestavování webových aplikací pro ESP8266/ESP32. Používá se jako Git submodul u projektu. ## Návod k použití Pro svoji práci používá soubor `project.json`, který obsahuje parametry pro sestavení. Povinná sekce je sekce `build`, která musí obsahovat následující: * `approotdir` - cesta ke kořenovému adresáři projektu ```json "approotdir":"./", ``` * `outputdir` - cesta k adresáři, do kterého je umístěna sestavená verze projektu bez použití komprese souborů (určena pro kontrolu a případné ladění na PC) ```json "outputdir":"./dist/", ``` * `datadir` - cesta k adresáři, do kterého je generovaný výsledný obsah včetně případné komprese souborů ```json "datadir":"../AZP_IoT_PIO/data/", ``` * `flist` - jméno souboru s obsahem webu pro případnou automatickou aktualizaci ze zařízení. Není-li uvedeno, seznam se negeneruje. ```json "flist": "flist.txt", ``` * `combine` - seznam souborů, vzniklých kombinací (spojením) souborů jiných. Určeno pro minimalizaci současně stahovaných souborů. ```json "combine": [ {"name": "js/app.js", "items":[ "js/l10n/l10n.js", "js/drooltip/package/js/build/drooltip.js", "js/MsgPop/js/msgPop.js", "js/sparkline/sparkline.js", "js/es6-promise.auto.min.js", "js/SweetAlert2/dist/sweetalert2.min.js", "js/menu.js", "js/app.js" ] } ], ``` * `copy` - seznam souborů a adresářů pro vytváření finální aplikace, obashuje také příznaky pro kompresi ```json "copy": [ {"src":"img/","dst":""}, {"src":"lang/","dst":""}, {"src":"html/favicon.png","dst":"favicon.png"}, {"src":"html/index.htm","dst":"index.htm","compress": true,"istemplate":true,"flistforce":true}, {"src":"html/setup.htm","dst":"setup.htm","compress": true,"istemplate":true,"flistforce":true}, {"src":"html/update.htm","dst":"update.htm","istemplate":true}, {"src":"devices/basic.json","dst":"basic.json","flistignore": true}, {"src":"devices/acdc.json","dst":"acdc.json","flistignore": true}, {"src":"devices/nmcu.json","dst":"nmcu.json","flistignore": true}, {"src":"devices/creas.json","dst":"creas.json","flistignore": true}, {"src":"js/microajax.js","dst":"","compress": true}, {"synthetic":true, "src":"js/app.js","dst":"","compress": true}, {"synthetic":true, "src":"css/app.css","dst":"","compress": true}, {"src":"html/.htaccess","dst":".htaccess","flistignore":true} ] ``` Doplňující parametry v sekci `copy` jsou: * `compress` - při kopírování do `datadir` se použije komprese gzip a jméno souboru se doplní o příponu `.gz`. * `istemplate` - při kopírování se použije textový template engine s nahrazováním - určeno pro uložení čísla verze * `flistforce` - v souboru se seznamem se použije klíčové slovo `force`, které vynutí násilný přepis souboru v cílovém zařízení * `flistignore` - soubor se neuloží do seznamu v souboru * `syntehtic` - příznak, že soubor pro přesun vznikl pomocí sekce `combine` a nemá se tedy hledat ve zdrojových adresářích * `templatevariables` - seznam proměnných a jejich hodnoty, nahrazované template procesorem. ```json "templatevariables": {"title":"Titulek", "name":"Jmeno aplikace"} ``` K projektu ho většinou přidáváme pomocí ```sh git submodule add https://git.xpablo.cz/xPablo.cz/WebApp_builder.git ./tools/generate ```