TIM-JYU / TIM

TIM (The Interactive Material) is an open-source cloud-based platform for creating interactive learning documents.
https://tim.education/view/about/en-US
MIT License
13 stars 4 forks source link

Dokumentin käyttäminen palasina #3588

Open vesal opened 5 months ago

vesal commented 5 months ago

Kirjoittelen vähän ideoita muistiin.

Esimerkiksi tuon dokumentin:

voi esittää palasina tyyliin:

Noiden alkuja loppupaikkojen laskeminen on manuaalisesti hankalaa ja ylläpito vielä hankalampaa.

Sitten dokumentin makroissa on:

  tasknames:
# Muoto: - [tunnisteNimi, näkyväNimiLoppulistassa, lyhennenimiOmaanListaan]
     - ["kysymys-kvantti-synty",  "Kvanttikäsitteen synty", "synty"]
     - ["kysymys-kvantti-satunnaisuus",  "Kvanttifysikaalisen tapahtuman satunnaisuus", "sat"]
     - ["kysymys-nopanheitto-ABCD",  "Todennäköisyys nopanheitossa", "tod"]

Tuohon neljänneksi arvoksi pitäisi b-e väli miltä ko tehtävä löytyy.

Menuissa on

- %% dropMenu("Portit","portti") %%
    - [[X-portti = NOT-portti]{.green}](%%kotipolku%%materiaalia/a#x-port)
    - [SX](%%kotipolku%%materiaalia/a#sx-port)
    - [H](%%kotipolku%%materiaalia/a#h-port)
    - [Z](%%kotipolku%%materiaalia/a#z-port)
    - ...
- %% dropMenu("Sanat","aa") %%
    - [askel](%%kotipolku%%materiaalia/a#askel)
    - [bitti](%%kotipolku%%materiaalia/a#bitti)
    - [kontrollibitti](%%kotipolku%%materiaalia/a#kontrollibitti)
    - ...

ja noihinkin pitäisi saada oikeat b-e välit. Samoin sisällysluettelo (kirjan kuva) tarvitsisi b-e välin kullekin hyppypaikalle. Vielä lopuksi kunkin palan alussa ja lopussa olevat

   First part | Previous part | Next part | Last part

pitäisi saada vastaavat b-e välit.

b-e välin lisäksi tulisi ladata sopiva määrä lohkoja dokumentin alusta. Aina vähintään settings-osa ja automaattisen numeroinnin tapauksessa myös sen jälkeinen makrot sisältävä osa. Tämä voisi ehkä hoitaa dokumentin asetuksella jossa sanotaan mitkä lohkot on aina haettava.

Tarvittaisiin siis joku automaattisesti/manuaalisesti ajettava koodi, joka hoitelisi kaiken tämän.

Automaattinen numerointi

on hoidettu niin, että on makrotaulukko, jota pidetään ohjelmallisesti yllä, ja jossa on tarvittava tieto :

``` {settings="counters" id="5FpIZiClnpYL"}
macros:        
  use_autonumbering: true
  autocnts:
    "kuvafilt": {"v": 1, "p": "1", "s": "1", "r": "1", "t": "1", "l": "1", "h": "c:kuvafilt", "n": "kuvafilt", "y": "fig"}
    "kuvanum": {"v": 2, "p": "2", "s": "2", "r": "2", "t": "2", "l": "2", "h": "c:kuvanum", "n": "kuvanum", "y": "fig"}

Tässä voisi olla vastaavanlainen automaattisesti luotava makro-osa, jossa olisi valmiina laskettuna kunkin luvun b-e väli sisällysluettelon generointia varten ja sitten kunkin #-nimen b-e väli. Tällöin esim menut saisi tehtyä karkeasti tyyliin:

    - [[X-portti = NOT-portti]{.green}](%%kotipolku%%materiaalia/a?%%x-port.jmp%%)

missä tuo .jmp laajenisi:

  b=30&e=45#x-port

Sisällysluetteloa tehtäessä otettaisiin vastaavasti b-e väli sitä vastaavasti #-nimestä (ehkä voisi pakottaa antamaan kunnon #-nimen kullekin otsikolle). Vastaavalla tavalla välit saataisiin sivun alun ja lopun hyppylinkeille. Jos dokumenttia katsotaan kokonaisena, voisivat nuo b-e välit laajentua tyhjäksi jonoksi.

Tuon tasknames toimimaan saamiseksi pitäisi makrokorvausta pystyä ajamaan mkroille.

Näin voitaisiin saada automaattinen ylläpito dokun katsomiseksi eri kokoisina paloina niin että kaikki hypytkin toimivat eikä tarvittaisi erillisiä dokumentteja eri näyttömuotoihin. Ainoaksi miinukseksi jäisi se, että Ctrl-F ei toimisi yhtä sujuvasti. Osin tätä voisi korvata sillä, että TIMin omaan hakuun lisättäisiin mahdollisuus etsiä vain aktiivisesti dokumentista ja sille pikanäppäin.

vesal commented 5 months ago

Ideointia itse makroille:

macros:
  - sl: 0    # Split level, 0 = koko dokumentti
  - jmps:
      - "askel": {jmp: "#askel"}, # koko dokun hypyt
         "bitti": {jmp: "#bitti"},
          ...
      - "askel": {jmp: "b=54&e=67#askel"}, # 1. tason jako
         "bitti": {jmp: "b=68&e=95#bitti"} 
         .,,
      - "askel": {jmp: "b=54&e=58#askel"}, # 2. tason jako
         "bitti": {jmp: "b=68&e=72#bitti"} 
         ...
         .,,

Tuollaisenaan viite pitäisi olla:

     - [[bitti = pienin yksikkä]{.green}](%%kotipolku%%materiaalia/a?%%jmps[sl].bitti.jmp%%)

mutta tuota voisi varmaan siistiä samanlaisilla filttereillä kuin counter-tapauksessa ja ihanneoloissa se voisi ehkä olla vain

     - [[X-portti = NOT-portti]{.green}](%%kotipolku%%materiaalia/a?%%"bitti"|jmp%%)