Skip to content

Kpimark parser written using mistletoe

Sebastián Trebuňák requested to merge st557by/it4kt-builder:kpimark_ng into master

PROPOSAL:

  • Ak s tym suhlasite, KPIMark by sme mohli premenovat na Kpimark. Vyzera to byt "syntakticky jednoduchsie" pomenovanie 😄. Primarnym cielom Kpimarku bolo zjednodusit pisanie studijnych materialov, tak preco nezacat nazvom?

FEATURES:

  • mistletoe-based (#23 (closed))
  • Example admonition (#26 (closed))
  • LaTeX podpora renderovania pre matematicke vzorce
  • Dalsie Nove elementy z (#26 (closed)), konkretne:
    • Sekcia Summary - zhrnutie cvicenia
    • Admonition Wrong Example - chybny priklad
    • YouTube element - Element, ktory vytvori ukazku videa zo sluzby YouTube
      ![alt](youtube: YT-VIDEO-ID "title")
    • Video element - Video moze byt nacitane z lokalnej alebo remote adresy.
      ![alt](video: https://cesta.k.videu/video.mp4 "title")
    • Audio element - Audio moze byt nacitane z lokalne alebo remote adresy.
      ![alt](audio: https://cesta.k.videu/video.mp3/ogg "title")

BREAKING CHANGES:

  • Niektore uz existujuce dokumnety napr. zsi/lab/11.md obsahuje nie tak celkom validnu syntax pre vnoreny zoznam. Taketo odsadenie nezobrazi spravne ani Markdown prehliadac tu v Gitlab-e

    Uvediem priklad priamo z 11.md predmetu ZSI:

    ...
    
      1. Objavenie problému — buď pri testovaní alebo používaní sa ukáže problém.
      2. Zaznamenanie problému — do systému na správu problémov sa zaznamená tento problém. Každý problém musí mať vyplnený popis a príčinu problému.
    
        > Upozornenie:
        > Pri zaznamenávaní problému nezadávajte požadované riešenie. Má to za následok to, že 
    riešiteľ problému musí skutočný problém najskôr identifikovať. V popise problému je možné odporučiť istý druh riešenia.
    
      3. Počiatočný posudok — pre každý problém treba určiť:
        * Stav problému — určuje štádium v ktorom sa problém nachádza:
            * Nový (New) - určuje problém, ktorý bol vytvorený a ešte nebol skontrolovaný.
            * Otvorený (Open) - problém s týmto stavom začína byť okamžite riešený.
            * Odložený (Deferred) - problém je odložený na neskôr.
            * Preložený (Referred) - problém je preložený na inú skupinu (napr. z dôvodu že je mimo aktuálneho uplatnenia tímu).
            * Zrušený (Cancelled) - žiadna reakcia na tento problém nebude vykonaná ani teraz, ani v budúcnosti.
        * Kategória problému — pri zapísaní problému sa mu priradí nejaká kategória...
    
    ...

    Blok Upozornenia nebude sucastou prvku listu 2. Zaznamenanie problému, pretoze odsadenie sa nezhoduje. Je mozne si vsimnut, ze blok je odsadeny prave o 2 znaky medzeri. Pri cislovanom zozname nie su dva znaky medzery pre odsadenie postacujuce (zdroj https://meta.stackoverflow.com/editing-help#advanced-lists). Dopatral som sa, ze to funguje nasledovne:

    a) pri OL -> 1. || 1) => Je potrebne odsadit na uroven prveho znaku za medzerou. Cize ak 1. Tu je prvok zoznamu, tak je potrebne odsadit na uroven prveho pismena - "T". To znamena, ze aspon tri medzery (idealne 4). b) pri UL -> - || * => Je potrebne odsadit na uroven prveho znaku za medzerou. Cize ak - Tu je prvok zoznamu, tak je potrebne odsadit na uroven prveho pismena - "T". To znamena, ze aspon dve medzery (idealne 4).

    Kedze raz vidiet je viac ako citat moj nezrozumitelny text 😄 Commonmark editor OL/UL example

    Spravne riesenie v ramci Commonmarku by vyzeralo nasledovne:

    ...
    
      1. Objavenie problému — buď pri testovaní alebo používaní sa ukáže problém.
      2. Zaznamenanie problému — do systému na správu problémov sa zaznamená tento problém. Každý problém musí mať vyplnený popis a príčinu problému.
    
         > Upozornenie:
         > Pri zaznamenávaní problému nezadávajte požadované riešenie. Má to za následok to, že riešiteľ problému musí skutočný problém najskôr identifikovať. V popise problému je možné odporučiť istý druh riešenia.
    
      3. Počiatočný posudok — pre každý problém treba určiť:
         * Stav problému — určuje štádium v ktorom sa problém nachádza:
             * Nový (New) - určuje problém, ktorý bol vytvorený a ešte nebol skontrolovaný.
             * Otvorený (Open) - problém s týmto stavom začína byť okamžite riešený.
             * Odložený (Deferred) - problém je odložený na neskôr.
             * Preložený (Referred) - problém je preložený na inú skupinu (napr. z dôvodu že je mimo aktuálneho uplatnenia tímu).
             * Zrušený (Cancelled) - žiadna reakcia na tento problém nebude vykonaná ani teraz, ani v budúcnosti.
         * Kategória problému — pri zapísaní problému sa mu priradí nejaká kategória...
    ...
    

    Pouzivam Prettier (cli/vscode extension), ktory mi povodny text cvicenia automaticky naformatoval do spravnej podoby. Nevyhodou je, ze odstanil aj uvodne odsadenie celeho bloku.

  • Dalsie som si zatial nevsimol.

NOTES & TODOS:

  • Kod validacie je momentalne zakomentovany a bude postupne pridavany.
  • Neobsahuje systematicke riesenie vypisov ani lokalizacie, ktore budu riesene obobitne a pridane inkrementalne

TESTS:

  • Je potrebne vypracovat zvysne testy, ktore su momentalne zakomentovane
Edited by Sebastián Trebuňák

Merge request reports