zpět na hlavní stránku

JSNotebook

Vytvořil Richard Kokštein, 2022.

JSNotebook umožňuje generovat dynamický obsah pomocí funkčních bloků. Je inspirován TeXem, Jupyter Notebookem a Matlab Live Scriptem. Funkční bloky umoňují přidávat text, rovnice, obrázky a JavaScript kód. Textové bloky mohou obsahovat HTML značky. JavaScript se používá pro výpočty nebo tvorbu složitějšího obsahu, než nabízejí základní bloky. Bloky s textem a rovnicemi umožňují dynamické nahrazení části obsahu odkazem na JavaScript objekt GLOBAL (nebo pouze G). Používá se pro to příkaz \var{GLOBAL.mojePromenna} nebo \var{G.mojePromenna}, který bude po kompilaci nahrazen obsahem proměnné. Vytvořené bloky lze ukládat i načítat. Obsah uloženého souboru obsahuje pouze JavaScript příkazy addTxtBlock(...), addEqBlock(...), addImgBlock(...) a addJsBlock(...). Celý JSNotebook je postavený na kontroverzní funkci eval(), která spouští JavaScript kód uložený v textové podobě (string). Šance na zneužití nebo útok je malá (stránka se nepřipojuje na žádný server ani nemanipuluje s citlivými daty) a škody by mohly být maximálně zamrznutý prohlížeč, přesto je dobré načítat a spouštět pouze bloky, u kterých jste si jistí jejich původem a neškodností. Defaultně načtené bloky jsou vytvořené mnou a neobsahují nebezpečný kód. Pokud máte problém s kompilací, můžete si v prohlížeči otevřít vývojářské nástroje, otevřít si konzoli a podívat se na chyby, které stránka při kompilaci hlásí. Obsah textových nebo rovnicových bloků začínajících středníkem (;, U+003B, alt+59) nebude zobrazen. Při kompilaci prohlížeč nachvilku zamrzne, kvůli výpočtům a renderování rovnic. Na mobilu může být zásek znatelně delší. Stránka je určena především pro desktopové webové prohlížeče.

howto/showcase video


Source


Result

Stránka využívá skripty MathJax, FileSaver.js a Blob.js.