# timOhjeet

TIM-ohjeet

Apua voit tarvittaessa kysyä: tim@jyu.fi

TIMin käyttämään merkitsemiskieleen (Markdown) voit tutustua esimerkiksi ohjeesta: Pandoc's Markdown. Tässä dokumentissa esitetään tästä kielestä tärkeimmät ominaisuudet ja voit kokeilla niitä samalla kun tutustut tähän dokumenttiin.

# create

1. Uuden dokumentin luominen

Seuraavassa sijainti (kansio, folder) ja dokumentin nimi eivät ole kiveen kirjoitettuja ja niitä voi aina muuttaa jälkeenpäin ja jopa tehdä dokumentille aliaksia, joiden ansiosta se näkyy eri sijainneissa mahdollisesti eri nimelläkin. Eli voit ihan hyvin aloittaa henkilökohtaisella dokumentilla.

  • henkilökohtainen vaiko yleinen:
    • jos haluat tehdä oman henkilökohtaisen dokumentin, paina sivun yläreunassa olevaa nimeäsi ja valitse sieltä My documents
      • täällä voit vielä tarvittaessa ensin valita uuden kansion luomisen Create new folder jos haluat dokumentin johonkin alakansioon
      • jos sinulla on jo valmiiksi alakansioita, siirry sopivaan
    • mikäli haluat tehdä kurssin tms. uuden dokumentin:
      • jos haluat tehdä koko kurssin, johon liittyy useita dokumentteja, lue myös Opettajan ohje
      • mene pääsivulle https://tim.jyu.fi
      • mieti mihin kategoriaan dokumenttisi kuuluisi.
      • vielä täälläkin voit valita että jos dokumentti on henkilökohtainen tai ihan kokeilu, paina My documents.
      • Jos dokumentti kuuluu selkeästi jollekin kurssille, niin
        • Valitse All documents ja sitten esimerkiksi kurssit-kohdan alta sopiva kohta.
        • Jos ei ole sinulle sopivaa organisaatiota, niin pyydä ylläpitoa
          tim@jyu.fi
          luomaan sinulle sopiva kansio joka vastaa organisaatiotasi ja jatka sitten dokumentin tekemistä organisaatiosi alle.
        • mieti vielä tuleeko "kurssiisi" useita dokumentteja. Jos tulee, luo vielä kurssin nimeä kuvaava kansio kohdasta Create a new folder.
  • paina Create a new document
  • anna dokumentille hyvä nimi, esimerkiksi tilastoperusteet

1.1 Dokumenttipolun ja nimen kirjoittaminen osoitepalkkiin

Vaihtoehtoisesti, jos tiedät dokumentin polun ja nimen, niin tämän voi kirjoittaa suoraan selaimen osoitepalkkiin (ja enter), jolloin TIM (olettaen, että oikeudet ovat kunnossa) antaa mahdollisuuden luoda dokumentin ja kansiopolun suoraan.

Esimerkiksi, jos haluaisin luoda dokumentti-nimisen dokumentin kansioon nimeltä kansio, niin menisin osoitteeseen

https://tim.jyu.fi/view/kansio/dokumentti

1.2 Dokumentin kopiointi

Jos haluat kopion jo olemassa olevasta dokumentista, niin tämä mahdollisuus on Manage-näkymässä Create a copy.

Jos tarvitse kopioida useita tiedostaja kerralla, katso Hakemiston kopiointi.

1.3 Templaatit

Jos joudut luomaan useita samanlaisia dokumentteja, niin tämän helpottamiseksi TIMissä on mahdollista käyttää dokumenttipohjia, eli templaatteja, uusien dokumenttien pohjana.

Käyttääksesi templaatteja luo uusien dokumenttien kansioon tai yläkansioihin kansio nimeltä

templates 

TÄRKEÄÄ: Kansion nimen täytyy olla tämä.

Templates-kansioiden sisälle voit luoda dokumentteja, joiden sisältö voidaan kopioida uuteen dokumenttiin. Tämä kopiointimahdollisuus näytetään, kun dokumentissa ei ole vielä sisältöä.

Toiminto on oikein käyttökelpoinen esimerkiksi opiskelijoiden raporteissa yms, jolloin valmis pohja (template) tuo kaikki tarvittavat perusasetukset sekä mahdollisen jäsennyksen perusotsikoineen.

1.3.1 Pakotetut pohjat

Jos tietyn kansion kaikkiin uusiin dokumentteihin halutaan aina sama pohja, voi templates-kansioon luoda pohjan lyhytnimellä force. Tällöin aina, kun uusi dokumentti luodaan, ladataan siihen suoraan kyseinen force-pohja.

# perus

2. Perustekstin kirjoittaminen

TIM-dokumentti koostuu lohkoista (block). Yksi lohko voi sisältää yhden tai useita tekstikappaleita tai yhden interaktiivisen komponentin (plugin). Lohko on pienin yksikkö, jota voi muokata ja johon liittyy kommentointimahdollisuus sekä luetuksi merkitseminen.

Pitäisikö olla sinisessä laatikossa? Sisältö hyvä :)

25 Mar 22

Kielen kappale ja lohko eivät siis ole sama asia, vaikka tässäkin ja monessa muussa TIM-oppaassa sanaa kappale (paragraph) käytetään välillä tarkoittamaan lohkoa.

Tosin usein voi olla ihan perusteltua kirjoittaa yhteen lohkoon yksi luonnollisen kielen kappale. Tässä lohkossa on kaksi luonnollisen kielen kappaletta. Sen näkee siitä, että kun tätä kappaletta klikkaa, tulee valituksi myös samassa lohkossa oleva edellinen kappale.

Tyhjässä dokumentissa tai dokumentin loppuun lisättäessä saa uuden lohkon kun painaa Add paragraph-painiketta. Muihin paikkoihin lisäys tai muokkaus tehdään muokkausmenun kautta.

2.1 Muokkausmenu

Saat muokkausmenun klikkaamalla jotakin dokumentin lohkoa ja klikkaamalla lohkon oikealla puolella ilmestynyttä -painiketta.

Muokkausmenusta voit valita muokkauksen tai lohkon yläpuolelle lisäämisen. Alapuolelle lisäämistä ei ole, sillä alapuolelle voi aina lisätä siirtymällä pykälän alaspäin ja lisäämällä yläpuolelle. Poikkeuksen tekee dokumentin loppuun lisääminen, jolle on oma aina näkyvä painike.

Muokkausmenu
Muokkausmenu
Muokkausmenu ja edit-valikon avaaminen
Muokkausmenu ja edit-valikon avaaminen

Muokkausmenussa on alalaidassa kynän kuva, josta saat laajemman muokkausmenun, jossa on lohkon kopiointiin, tuhoamiseen, alueen valintaan yms. liittyviä lisätoimintoja.

Menussa on myös tukku radiopallukoita. Jos joku niistä on valittuna, tapahtuu vastaava toiminto tuplaklikkaamalla lohkoa. Eli jos muokkaa paljon, kannattaa sen valita oletukseksi, jolloin tuplaklikkauksella pääsee muokkaamaan. Toisaalta valinta sotkee sanan valitsemista tuplaklikkauksella, joten toiset haluavat pitää pallukan menun sulkemisen kohdalla.

Mikäli Cut toiminnon valitsee oletukseksi, kannattaa se palauttaa Close Menu-kohtaan kun loptettaa massatuhoamisen. Muuten voi tulla jatkossa yllätyksiä.

2.1.1 Muokkausmenun paikan vaihtaminen

Oletuksena muokkausmenu ilmestyy painikkeena sivun oikealle puolelle. Menun paikan voi vaihtaa myös vasemmalle puolelle menun "Move menu to left" -toiminnolla:

Menun suunnan vaihtaminen
Menun suunnan vaihtaminen

Kun menun suuntaa vaihdetaan vasemmalle, avatuu menu lohkon vasemmalla puolella olevasta palkista:

Muokkausmenun avaaminen vasemmalta puolelta
Muokkausmenun avaaminen vasemmalta puolelta

Huomaa, että palkki ilmestyy vain, kun siirrät kursorin lohkon vasemmalle puolelle.

Edit-menun aukaiseminen vasemmalta puolelta Video (10s)

2.2 Muokkausikkuna

Lisäämisessä (Add paragraph above) saat uuden tyhjän lohkon, johon voit kirjoittaa kappaleen tai kappaleiden sisällön. Muokkauksessa (Edit) saat auki vanhan lohkon sisällön. Joka tapauksessa aukeaa muokkausikkuna (Edit paragraph):

Muokkausikkuna
Muokkausikkuna

Muokkausikkunan alareunassa on esikatseluikkuna (Preview), joka samalla kertoo montako lohkoa ikkunan tallentamisesta syntyy. Ikkunan yläreunassa on välilehtiä eri toimintojen tekemiseksi. Kaikki toiminnot voi tehdä ilmankin välilehtien käyttämistä, mutta välilehdet auttavat varmasti muutamalla ensimmäisellä käyttökerralla. Kunkin välilehden alla on omia toimintojaan.

Muokkausikkunan painikkeet ja valinnat:

  • Save: tallentaa muokatun lohkon/lohkojen sisällön
  • Cancel: unohtaa tehdyt muutokset
  • Delete: tuhoaa muokkauksessa olevan lohkon/lohkojen sisällön pois dokumentista. Saman voi tehdä myös tyhjentämällä editorissa näkyvän sisällön ja painamalla Save. Toiminto varmistetaan vielä käyttäjältä.
  • Mark as unread: toiminto on toistaiseksi hieman väärässä paikassa. Jos avataan muokattavaksi jo luetuksi merkitty lohko, laittaa taas lohkon lukemattomaan tilaan (eli tulee punainen reunapalkki).
  • Advanced view -valinnalla voidaan valita suppea tai laaja näkymä muokkaukseen. Suppeassa näkymässä häviävät välilehdet ja suuri osa painikkeista.
  • ACE editor: tällä voidaan valita minkälaista muokkauseditoria käytetään. Oletus riippuu käytettävästä laitteesta. Työasemilla oletuksena on ACE-editori, joka on vapaan lähdekoodin selaimessa toimiva editori, jossa on useita muista editoreista tuttuja toimintoja Mobiililaitteissa aukeaa selaimen oma "alkeellinen" teksti-ikkuna, jossa toimii selaimen omat toiminnot. Editorien välillä voi vaihtaa painamalla tätä painiketta. ACE editorissa on runsaasti pikanäppäimiä jotka auttava käyttöä. Lista ACE-editorin pikanäppäimistä. Iteraktiivinen versio jossa pikanppäimia voi kokeilla.
  • Fullscreen: vaihtaa muokkauksen kokoruutuun/pois.
  • Mark as read: kun muokkausikkuna suljetaan, merkitään samalla syntynyt uusi teksti luetuksi
  • Wrap -kentässä on arvo sarakkeelle, jonka jälkeen teksti katkaistaan automaattisesti uudelle riville. Jos et halua käyttää wrap-toimintoa lainkaan, pistä tähän arvo 0. Arvosta riippumatta rivitystä ei tehdä, jos tekstissä on jono ``` (plugin tai kirjoituskoneteksti) tai merkki | (taulukot). Klikkaamalla wrap-sanaa, voidaan silti pakottaa rivittämään vaikka em. jonoja olisikin tekstissä. Mikäli wrap arvo on pienempi kuin 0, käytetään sen itseisarvoa, mutta rivitystä ei tehdä automaattisesti, vaan ainoastaan klikkaamalla wrap-sanaa.
  • ->: preview-osan oikeassa yläkulmassa olevalla nuoli-painikkeella voidaan irrottaa preview omaksi ikkunakseen. Toiminnosta on hyötyä mikäli on käytössä suuri ruutu ja sijoitetaan preview muokkausikkunan viereen. Vastaavasti irroitetun ikkunan <- -painikkeesta voidaan palauttaa preview muokkausikkunan alareunaan.

Mikäli haluat luoda useampia lohkoja samalla muokkauksella, niin lisää lohkojen väliin merkit

#-

joko painamalla Insert-välilehdestä Paragraph break tai näppäinkomennolla Shift+Enter tai kirjoittamalla ko merkit. Toki voit erottaa yhden lohkon sisällä kappaleita toisistaan tyhjillä riveillä ja tällöin rivit näkyvät lukijalle erillisinä riveinä, mutta lukumerkintä koskee aina yhtä lohkoa.

Tarvittaessa voit samalla tavalla pilkkoa isomman tekstin pienempiin osiin. Lohkoja voi tarvittaessa yhdistää aluetoiminnon kautta.

Mikäli haluat pakotetun rivinvaihdon jonkin rivin loppuun, laita viimeiseksi merkiksi \-merkki, paina Insert välilehdestä End line tai Ctrl + Enter. Tämän merkin jälkeen ei saa olla edes välilyöntejä.

# rivinvaihto

Tehtävä: Harjoittele rivinvaihtoa

Kokeile erilaisia tapoja jakaa lohkoa visuaalisesti. Huom älä muokkaa itse TIM tekstiä, pelkästään alla olevaa laatikko saa muokata!

Vaikka teksti olisi
jaettu useamalle riville, se rivitetään uudelleen kun se näytetään.

Jos rivien väliin laitetaan tyhjä rivi, alkaa siitä aina uusi näkyvä
tekstikappale.

Mikäli rivin loppuun\ laitetaan
`\`-merkki, tulee siihen kohti pakotettu rivinvaihto.
**HUOM!** Käytä tätä erittäin harkiten, se pilaa usein automaattimuotoilun

#-
aloittaa lukijalle erikseen näytettävän lohkon.

 

Lohkoja voi kopioida, poistaa ja siirtää valitsemalla muokkausmenusta kynän kuvan. TIMissä on lohkoille leikepöytä, joka ei teknisten esteiden takia ole yhteydessä koneen omaan leikepöytään. TIMin leikepöydälle laitetut lohkot ovat tallessa vaikka välillä vaihtaisi konettakin.

Muokkausmenussa on pallukka kunkin toiminnon vieressä. Jos ruksit jonkin kohdan, niin se on oletustoimintona ja näin voit helposti esimerkiksi siirtyä aina muokkaamaan tuplaklikkaamalla lohkoa.

Suurelle osalle tässä ohjeessa esiteltävistä toiminnoista löytyy valmiina aputoimintoja editorin välilehdiltä:

  • Navigation - nuolinäppäimiä mobiililaitteiden käytön parantamiseksi
  • Style - tyyliasioita kuten lihavointi, otsikot jne.
  • Insert - kuvien, linkkien yms. lisääminen
  • Special characters - erikoismerkkejä joiden tekeminen voi joskus olla vaikeaa mobiililaitteilla
  • TeX - apuja matematiikan kirjoittamiseen
  • Plugins - eri "lisukkeiden" lisääminen (ajettavat ohjelmakoodit, kuvat joiden kokoa voidaan säätää jne...)
  • Upload file/Image - muiden tiedostojen lisääminen (kuvat, muut tiedostot)
# rivinvaihdot

2.3 Kirjoita, mutta älä välitä rivinvaihdoista

Kun kirjoitat TIM tekstiä, niin varsinaisesta rivittämisestä huolehtii se laite, jolla tekstiä luetaan. Mobiilissa laitteessa näyttö on kapeampi, ja siksi näytettävät rivit ovat lyhyempiä.

Älä siis kirjoittaessa mieti sitä, miltä teksti näyttää, vaan anna laitteen huolehtia siitä.

Kun kirjoitat TIMin editorissa tekstiä, katko rivit sen mittaisiksi, että niitä on kiva lukea muokkauseditorissa. Eli laita rivinvaihto aina noin 70 merkin jälkeen viimeistään. Näytettäessä tekstiä peräkkäisistä riveistä tehdään yksi kokonaisuus (poikkeuksen tekee listat ja koodityyli), joka rivitetään katseluhetkellä olevan näytön leveyden mukaan sopivaksi.

# lohko

2.4 Lohko vs. kappale, pitkä vai lyhyt

Vaikka teksti näyttää samalle riippumatta siitä, kirjoittiko yhteen lohkoon monta kappaletta tai monta lohkoa joissa kaikissa on yksi kappale, on tällä kuitenkin eroa muokkauksen ja lukijan kannalta.

Lohkon pituutena kannattaa maksimissaan pitää noin puolta näytön korkeudesta (joskus esim pluginien osalla tästä on pakko poiketa). Näin saadaan editoitavista osista järkevän kokoisia. Pitkän tekstin muokkaaminen on aina hankalaa. Erityisesti mobiililaitteilla pitkät lohkot ovat hankalia käsitellä.

Kommentointimahdollisuus ja lukumerkintöjen tekeminen liittyy myös vain lohkoihin. Silloin liian pitkissä lohkoissa kommentti kohdistuu väärään paikkaan, koska kommentit näytetään aina lohkon alusta eteenpäin.

Tämä kannustaisi kirjoittamaan lohkoja, jotka olisivat suurinpiirtein sama kuin yksi tekstikappale (ja siksi monissa TIM-oppaissa käsitteet sekoittuvatkin). Tämä on kommentoinnin kannalta oikein hyvä tapa. Samoin lukumerkintä kohdistuu tällöin yhteen tekstikappaleeseen.

Olemassa olevaan tekstiin lohkokatkoja saa lisäämällä

#-

Toisaalta jotkut lukijat eivät tykkää klikkailla luetuksi liian lyhyitä tekstiyksiköitä, ja siksi ehkä voisi lohkon suosituskokona pitää kohtuullisen kokoista samaan asiaan liittyvää joukkoa.

Numeroitujen listojen automaattinumerointi ei jatku lohkorajojen ylitse. Eli yksi numeroitu lista pitää saada mahtumaan yhteen lohkoon tai sitten manuaalisesti ylläpitää jatkolohkossa numeroinnin alkua.

3. Oikeuksien lisääminen dokumentille

Kun uusi dokumentti luodaan, niin dokumentille annetaan tietyt oletusoikeudet. Ne näytetään, kun uusi dokumentti luodaan, ja niitä voi muokata haluamakseen. Myöhemmin oikeuksia voi tarvittaessa muuttaa Manage-sivulta:

  • Mene Manage-sivulle:
    • Tapa 1:
      • dokumentin ylälaidassa on linkki Manage
    • Tapa 2:
      • mene pääsivulle https://tim.jyu.fi
      • siirry siihen kansioon missä dokumentti on
      • dokumentin kohdalla oikeassa laidassa on rattaan kuva
  • paina Add right -painiketta.
  • valitse alasvetolistasta haluamasi oikeus
  • sitten name: kohtaan kirjoita uuden haltijan käytäjätunnus tai ryhmän nimi tai paina jotakin valmiiden ryhmien painikkeista
  • paina Add (paitsi valmiiden ryhmien painike sisältää Add-toiminnon)
# oikeustasot

Käytössä olevia oikeustasoja:

  • view: oikeus katsella dokumenttia ja tehdä siellä olevia tehtäviä, mikäli on kirjautunut sisään. Mikäli tehtäville on annettu oikeus tehdä ilman kirjautumista, voivat kirjautumattomatkin tehdä tehtäviä, mutta tulokset eivät tallennu mihinkään. Lisäksi on oikeus katsella ei-pluginlohkojen markdownia View source kautta.
  • copy: tämän oikeuden haltija voi nähdä dokumentin markdownin myös pluginien osalta (View source) sekä kopioida dokumentin (manage-näkymän kautta) itselleen. Tällöin mahdolinen pluginissa oleva vastaus tai pisteytysperuste näkyy kanssa, joten tätä oikeutta ei kannata antaa jos vastaukset on tarkoitus salata.
  • edit: oikeus muokata dokumenttia. Tämä kannattaa antaa sille ryhmälle, joka dokumenttia kehittää. Yleiskäyttöisissä (wiki-luonteisissa) dokumenteissa myös jyu.fi users voi olla käyttökelpoinen vaihtoehto. Miksei jopa Logged-in users.
  • see answers: oikeus katsella (mutta ei muuttaa) muiden vastauksia. Vastaajien nimet näkyvät anonyymisti. Tämä oikeus kannattaa useimmiten antaa vain ryhmälle, jolle ko. tehtävät kuuluvat, kun tehtävien takaraja on mennyt. Esimerkiksi ohj2k16.
  • teacher:
    • ei oikeutta muokata dokumenttia, eli edit-oikeus annettava erikseen
    • oikeus tehdä luentoja dokumenttiin liittyen sekä niihin luentokysymyksiä
    • oikeus katsella kaikkia dokumenttiin tulleita vastauksia
    • oikeus muuttaa vastausten pisteitä
    • oikeus antaa opiskelijalle palautetta vastauksista
    Tämän oikeuden antamista tulee huolella miettiä, koska silloin näkee käyttäjien nimiä ja käyttäjätunnuksia. Huom: teacher-oikeus ei automaattisesti anna edit-oikeutta.
  • manage: oikeus muuttaa dokumentin oikeuksia paitsi omistajia. Sisältää toki kaikki edelliset oikeudet. Sisältää mm. edit ja teacher -oikeudet.
  • owner: korkein oikeustaso.

Edellisten lisäksi kullakin dokumentilla ja kansiolla on vielä omistaja (Document owner), jonka voi manage-sivulta valita haluamakseen. Tämä oikeus on kaikkein laajin ja kannattaa miettiä, antaako sitä muuta kuin itselleen.

Jos dokumentille ei ole annettu yhtään oikeuksia, niin dokumentin taustalla näkyy himmeällä teksti UNPUBLISHED. Jos teksti häiritsee etkä halua vielä antaa oikeuksia kenellekään, voit antaa view-oikeuden dokumenttiin itsellesi, minkä jälkeen kyseinen taustateksti poistuu.

Sitten toki on dokumentteja joille aidosti pitää antaa rajatummat oikeudet, kuten tenttikysymykset, valmisteluryhmien dokumentit jne. Luentomateriaalit olisi kuitenkin kiva pitää mahdollisimman avoimina.

3.1 Oikeudet mieluummin ryhmille

Vaikka oikeuksia voidaan antaa yksittäisille henkilöille, niin mieluummin oikeuksia kannattaisi antaa ryhmille.

Valmiita suurempia ryhmiä ovat:

  • jyu.fi users: Korpin/JYUn kautta kirjautuneet käyttäjät. Nämä ovat luotettavasti kirjautuneita käyttäjiä ja näitä tunnuksia ei kuka tahansa voi ihan helposti luoda. Näille käyttäjille voi antaa usein enemmän oikeuksia, koska väärinkäytösten tapauksessa heidän tunnuksensa on helpompi pistää kiellettyjen listalle tai ottaa heihin yhteyttä.
  • logged-in users: henkilöt, jotka ovat sisäänkirjautuneita. Tähän ryhmään kuuluvat siis myös ne, jotka ovat itse tehneet Sign in-kohdasta sähköpostin avulla itselleen tunnuksen. Näillä henkilöillä on ainakin toimiva sähköposti, koska ovat siihen saaneet TIM-tunnuksen. Näidenkin henkilöiden käyttö voidaan väärinkäytösten tapauksessa evätä, mutta he voivat aina luoda uuden tunnuksen toisella sähköpostiosoitteella, joten yhtä luotettavia he eivät ole kuin Korppi-kirjautuneet.
  • anonymous users: käyttäjät, jotka eivät ole kirjautuneet lainkaan. Tälle ryhmälle voi usein antaa lukuoikeuden, mutta muokkausoikeuden kanssa pitää olla varovainen.

TIMin ideologiaan kuuluisi että jos mahdollista, annetaan anonymous-lukuoikeus, eli tehdään mahdollisimman julkista materiaalia. Mikäli dokumentissa on tehtäviä, eivät ne tallennu kirjautumattomille, joten silloin suositus on logged-in users.

Voidaan luoda myös uusia ryhmiä ja antaa niille kuvaavia nimiä. Ryhmä voi olla esimerkiksi tietyn kurssin opiskelijat tai opettajat.

Esimerkiksi Ohjelmointi 1 -kurssin opettajia ja ohjaajia varten on tehty ryhmä ohj1. Kun kurssin dokumentin manage tai owner oikeus annetaan tuolle ryhmälle, niin vaihtamalla ryhmän jäseniä vuosittain, voidaan säätää kerralla kuka pääsee mitäkin muokkaamaan. Joko samalle tai eri ryhmälle voi antaa opettajaoikeuden, joka mm. oikeuttaa antamaan palautetta opiskelijoiden vastauksiin.

Eli mahdollisista dokumentin ylläpitäjästä kannattaa tehdä ryhmä heti, jos ylläpitäjiä on enemmän kuin yksi henkilö. Jopa yhdenkin henkilön tapauksessa ryhmä kannattaa tehdä jos on pienikin mahdollisuus sille, että ylläpitäjiä tulee enemmän.

Jos lukuoikeus ei ole joku yleisistä Logged in, Anonymous tai joku Haka-ryhmistä, niin lukuoikeuden omistavistakin henkilöistä kannattaa tehdä ryhmä.

Ryhmän voi tehdä kohdasta Luo uusi ryhmä rattaan takaa. Kursseja varten tarvittavat ryhmä saadaan Sisun kautta

Omien ryhmien luominen vaatii oikeuden, jonka voi tarvittaessa pyytää ylläpidolta. Sisusta automaattisesti tulleille ryhmille opettajilla on jo valmiiksi riittävät oikeudet niihin.

Ryhmän hyvä puoli on myös se, että sille voidaan luoda viestilista (postilista).

3.2 Oletusoikeuksien asettaminen uusille dokumenteille ja kansioille

Useita dokumentteja luotaessa oikeuksien asettaminen kullekin erikseen on aikaa vievää, ja se voi myös unohtua helposti. Siksi on mahdollista asettaa kansiokohtaisesti oletusoikeudet uusille dokumenteille ja kansioille.

Jos esimerkiksi haluat, että kansioon harjoitustyot luotuihin dokumentteihin tulee automaattisesti katseluoikeus ryhmälle jyu.fi users, etene seuraavasti:

  • Mene kansion harjoitustyot hallintasivulle (Manage).
  • Klikkaa välilehteä Default rights for new documents.
  • Lisää view-kohtaan oikeus ryhmälle jyu.fi users.

Vastaavalla tavalla voit asettaa oletusoikeuksia uusille kansioille (välilehdeltä Default rights for new folders).

Huomaa, että ylempiin kansioihin asetetut oletusoikeudet periytyvät myös alempiin kansioihin.

3.2.1 Tietyn oikeuden antaminen vain yhdelle lohkolle

Tarvittaessa voidaan oikeus antaa myös vain yhdelle lohkolle. Usein oikeus on rajoittava, eli esimerkiksi dokumentin muokkausoikeus on annettu laajalle joukolle, mutta jotakin tiettyä lohkoa eivät saa muokata vain samat henkilöt, joilla on manage-oikeus. Tällöin lohkon voi aloittaa

#- {edit="manage"}

3.3 Oikeuksien massamuuttaminen

Jos on jo paljon kansioita/dokumentteja joiden oikeuksia pitää muuttaa, on yksittäisen kohteen Manage tähän hidas ratkaisu. Silloin muuttamista varten kannattaa mennä muutettavan joukon yläkansioon (hakmeistoon) ja sen Manageen. Siellä valitaan Rights of subitems:

Rights of subitems
Rights of subitems

Tässä voidaan taulukon suodatin rivillä suodattaa halutun rivit, sitten ruksia tarvittavat (tai kaikki näkyvillä olevat) ja lisätä/poistaa haluttuja oikeuksia.

# timedrights

3.4 Ajastetut oikeudet

Oikeutta annettaessa voidaan valita milloin annettu oikeus on voimassa. Toki oikeuden voimassaoloa voi säätää manuaalisesti niin, että lisää ja poistaa oikeutta kun tarvitsee.

Mutta jossakin tapauksessa on ihan järkevää antaa aikarajoitettu oikeus.

Käyttökohteita voi olla esimerkiksi:

  • dokumenttiin pääsee vain tentin ajan
  • mallivastaukset ovat näkyvissä vain kurssin loppuun
  • joitakin tehtäviä voi tehdä vain rajoitetun minuuttimäärän tiettynä aikavälinä
  • tehtäviä voi tehdä milloin vaan rajoitetun minuuttimäärän

Seuraavissa esimerkeissä oleva Require confirmation tarkoittaa sitä, että oikeus on annettu valmiiksi, mutta se pitää esimerkiksi vahvistaa kun henkilö saapuu tenttiin. Vahvistamisessa voidaan käyttää hyväksi mm. viivakoodia tai QR-koodia

3.4.1 Dokumentti auki tiettynä aikavälinä

Rajoitettu aikaväli
Rajoitettu aikaväli

3.4.2 Dokumenttia saa katsella vain tietyn ajan milloin vaan

Rajoitettu aika milloin vaan
Rajoitettu aika milloin vaan

3.4.3 Rajoitettu aika tiettynä aikavälinä

Rajoitettu aika tiettynä aikavälinä
Rajoitettu aika tiettynä aikavälinä

4. Otsikoiden kirjoittaminen

Eri tasoisia otsikoita voidaan kirjoittaa aloittamalla rivi tarvittavalla määrällä risuaitoja (#). Ennen #-merkkiä pitää olla tyhjä rivi.

  • # ensimmäisen tason otsikko
  • ## toisen tason otsikkon
  • ... jne

Tämä ohje alkaa esim. riveillä:

# TIM-ohjeet
TIMin käyttämään merkitsemiskieleen...
# otsikot

Tehtävä: Muokkaa otsikoita

Kokeile erilaisia otsikoita laittamalla rivien alkuun #-merkkejä. Laita väliin myös tavallisia kappaleita.

# Isoin otsikko
seuraavaksi toisen tason otsikko

## Tämä on toisen tason otsikko
Lisää alle vielä kolmannen tason otsikko

 

Mikäli haluat että otsikolla on itse annettu tunniste, mihin voi toisesta dokumentista hypätä, kirjoita sen perään aaltosuluissa tunniste #-merkillä aloittaen

# Otsikko jolla oma tunniste {#omatunniste}

Jos haluat hypyn tähän otsikkon samasta dokumentista, kirjoita linkiksi

[katso oma tunniste](#omatunniste)-kohta

Mikäli haluat toisesta dokumentista (tai miltä tahansa HTML-sivulta) hypätä tuohon kohtaan, niin siirrä kursori otsikkorivin loppuun, silloin sinne ilmestyy #-merkki, josta hiiren oikealla painikkeella painamalla voit kopioida paikan osoitteen. Esimerkiksi:

https://tim.jyu.fi/view/tim/TIM-ohjeet#omatunniste
# listat

5. Listojen kirjoittaminen

# bulletlistat

5.1 Bullet-listat

Listan voi kirjoittaa kirjoittamalla joukon peräkkäisiä rivejä, jotka alkavat väliviivalla (-) rivin 1. sarakkeessa.

Lista

  • eka listan alkio
  • toka listan alkio

tulee kirjoittamalla

- eka listan alkio
- toka listan alkio
# listat2

Tehtävä: Muokkaa listoja

Kokeile muokata alla olevia listoja. Listan sisälle saat listan kun sisennät alalistaa vähintään neljällä väilyönnillä. Tekstissä lista on erotettava muusta tekstistä vähintään yhdellä tyhjällä rivillä.

- tämä on eka rivi
- tämä on toka rivi
- ja vielä kolmas rivi
    - hupskukkuu

 

5.2 Numeroidut listat

# numlistat

Tehtävä: Muokkaa numeroituja listoja

Kokeile muokata alla olevia listoja. Listan sisälle saat listan kun sisennät alalistaa vähintään neljällä välilyönnillä. Tekstissä lista on erotettava muusta tekstistä vähintään yhdellä tyhjällä rivillä.

1. tämä on eka rivi
2. tämä on toka rivi
    1. eka alakohta
    2. toinen alakohta
3. ja vielä kolmas rivi
4. hupskukkuu

 

5.3 Sisennettyjen listojen numerointi

Sisennetyt listat voi numeroida päälistan alkioiden mukaisesti kirjoittamalla oma CSS-laskin dokumentin asetuksiin:

``` {settings=""}
css: |!!
.sub-numbering {
  ol { counter-reset: item; }
  li {
    display: block;
    
    &:before {
      content: counters(item, ".") ". ";
      counter-increment: item;
    }
  }
}
```
# numlistatali

Tehtävä: Muokkaa sisennettyjä numeroituja listoja

Kokeile sisennettyjen listojen numerointia. Huomaa, että numerointi saa päälle laittamalla .sub-numbering-luokka lohkon alkuun

#- {.sub-numbering}
1. tämä on eka rivi
2. tämä on toka rivi
    1. eka alakohta
    2. toinen alakohta
        1. Alakohdan alakohta
3. ja vielä kolmas rivi
4. hupskukkuu

 

5.4 Oma numerointi listoihin

Listojen numerointia voi muuttaa CSS-numeroinnilla ja ::marker-määritteellä:

``` {settings=""}
css: |!!
.axioms li::marker {
  content: "(A" counter(list-item) ") ";
}
```

CSS-kielessä listoilla on valmiiksi määritelty list-item-numeroija, jota voi käyttää yksinkertaisiin itse tehtyihin numerointeihin:

# numcustomcss

Tehtävä: Kokeile itse tehtyä numerointia

Kokeile .axioms-luokalla määriteltyä numerointia.

Zermelo-Fraenkelin aksioomat ovat (A1–A9):

#- {.axioms}
>1. Ekstensionaalisuusaksiooma
2. Tyhjän joukon aksiooma
3. Pariaksiooma
4. Yhdisteaksiooma
5. Äärettömyysaksiooma
6. Erotteluaksiooma
7. Korvausaksiooma
8. Potenssijoukkoaksiooma
9. Säännöllisyysaksiooma

 

5.5 Kirjainlistat

# listata

Tehtävä: Muokkaa kirjainlistoja

Kokeile muokata alla olevia listoja. Listan sisälle saat listan kun sisennät alalistaa vähintään neljällä välilyönnillä. Tekstissä lista on erotettava muusta tekstistä vähintään yhdellä tyhjällä rivillä.

a. tämä on eka rivi
a. tämä on toka rivi
    i. eka alakohta
    i. toinen alakohta
a. ja vielä kolmas rivi
a. hupskukkuu

A) eka rivi isolla kirjaiamella
B) toka rivi isolla

 

Mikäli haluat että numeroiden tilalla on aina kirjaimia, lisää dokumentin asetuksiin tyyliohjeet tätä varten:

``` {settings=""}
css: |!!
ol {
  list-style-type: lower-alpha;  # a, b, c -lists
}
```

5.6 Lohkossa tavallista tekstiä ja listoja

Jos haluat että samassa lohkossa on ensin tavallista tekstiä ja sitten lista, pitää lista erottaa yhdellä tyhjällä rivillä peruskappaleesta, eli tyyliin:

Perustekstiä

- listan 1. rivi
- listan 2. rivi

Mikäli tuota erottamista ei tee, tulee kaikki yhteen pötköön. Harjoittele edellä olevassa listaesimerkissä tätä.

# listat2a

Huomaa tyhjä rivi ennen listaa

Huomaa että jos listaa edeltää tavallinen teksti, on ennen listaa lisättävä yksi rivinvaihto

Jos tämä on kiinni listassa, menee kaikki yhteen
- tämä on eka rivi
- tämä on toka rivi
- ja vielä kolmas rivi
    - hupskukkuu

Mutta jos ennen listaa on yksi tyhjä rivi, niin silloin lista toimii

- tämä on eka rivi
- tämä on toka rivi
- ja vielä kolmas rivi
    - hupskukkuu

 

# listspacing

5.7 Listojen riviväli

Listojen riviväliä voi säätää sillä kuinka tiheään tekstiä kirjoittaa. Jos listan lähdetekstissä on yksikin tyhjä rivi, tehdään koko lista harvalla.

# listatrivivalit

Listojen riviväli

Huomaa että alkuperäisen tekstin riviväli heijastuu listoihin yksi rivinvaihto

Tiheä lista

- tämä on tiheän listan eka rivi
- tämä on toka rivi
- ja vielä kolmas rivi
    - hupskukkuu 2. tasolle
        - ja sitten vielä 3. taso
- takaisin 1. tasolle

Harva lista

- tämä on harvan listan eka rivi
- tämä on toka rivi

- ja vielä kolmas rivi
    - hupskukkuu 2. tasolle
        - ja sitten vielä 3. taso
- takaisin 1. tasolle

Lista jossa muutama rivi tiheässä ja sitten isompi väli

- tämä
- ja tämä rivi tiheässä
\
\
- sitten isompi väli
- ja sitten taas yhdessä

Pikkuisen pienemmällä isolla välillä

- tämä
- ja tämä rivi tiheässä
<§§>
- sitten ei ihan niin iso väli
- ja sitten taas yhdessä

 

5.8 Listat ja moniriviset kohdat

Joskus voi olla tarpeen sisällyttää kokonaisia tekstikappaleita listojen sisään. Tämä onnistuu sopivalla sisennyksellä.

# lista-moni

Listat ja sisennykset

Monirivinen lista

1. Kohta 1

   Tämä tekstikappale kuuluu edelliseen kohtaan, koska se on sisennetty samalle tasolle.
2. Kohta 2
3. Kohta 3

   Tämä kappale kuuluu kohtaan 3 sisennyksen takia.

   Tämäkin kappale kuuluu listaan.

***

Moniriviset sisäkkäiset listat

1. Kohta 1

   Tämä on osaa kohtaa 1. Niin on tämä listakin:

   * Alakohta 1
   * Alakohta 2

     Tämä kappale on osa alakohtaa 2 (sama sisennystaso).
   * Alakohta 3

   Tästä jatkuu kohta 1.
2. Kohta 2

   Kohdan alle voi laittaa mitä tahansa, kunhan sisennys on kunnossa. Esimerkiksi tämä koodipätkä:

   ```js
   let a = 1 + 1;
   ```

3. Kohta 3

Tavallinen teksti.

 

6. Koodilohko

Laatikossa olevan "koodilohkon" voi kirjoittaa sisentämällä jokaista riviä 4:n merkin verran. Koodilohkon voi tuottaa myös näppäimillä Ctrl + Alt + O.

Kirjoittamalla

    eka
    toka
    kolmas

tulee lohko

eka
toka
kolmas

Lohkon voi kirjoittaa myös sisentämättä aloittamalla sen kolmella `-merkillä ja lopettamalla samalla tavalla. Seuraavassa ÄLÄ aukaise TIMin editoria, vaan kirjoita suoraan alla olevaan laatikkoon.

# koodilohko

Tehtävä: Kirjoita koodilohko

Lisää muutama tavallinen rivi ja sitten tyhjä rivi ja sen jälkeen ``` ja kirjoita koodilohkoon tulevaa tekstiä ja sitten vielä tuo sama yhdistelmä lohkon lopettamiseksi.

Kirjoita tämän rivin perään koodilohko

joka loppuu ennen tätä riviä.

 

7. Tekstin korostukset

Erilaisia korostuksia voidaan tehdä määrittelemälle korostettavan tekstinosan ympärille korostusmerkkejä. Korostusmerkit voi

  • kirjoittaa käsin
  • ottaa Edit-ikkunan Style-välilehdeltä
  • tuotattaa pikanäppäimillä jotka selviävät kun vie kursorin Style-välilehdellä vastaavan korostuksen kohdalle
Style-välilehti
Style-välilehti

Mikäli joku alue on valittuna ja painetaan korostuksen pikanäppäintä, lihavointiin esimerkiksi Ctrl + B, tulee korostusmerkit (esimerkin tapauksessa **) valitun alueen ympärille ja toisella valinnalla ne katoavat. Mikäli mitään aluetta ei ole valittuna, tulee korostusmerkit tyhjän ympärille ja kursori jää niiden väliin (esimerkissä **|**).

Seuraavassa esimerkissä voi korostusmerkkejä kirjoittaa käsin. Pikanäppäimet ja Style-välilehti näkyvät omaa dokumenttia muokatessa.

# korostukset

Tehtävä: Kokeile tekstin korostuksia

Seuraavassa esimerkkejä erilaisista korostuksista. Kokeile:

Aluksi *kursiivia*, sitten **lihavaa** ja lopuksi `koodi-merkistöä`.

 

# styles

8. Eri tyylin käyttäminen

8.1 Tyyli lohkolle

Jos lohkolle haluaa käyttää normaalista poikkeavaa tyyliä, voidaan tyyli antaa lohkolle määrittelyssä:

#- {.huomautus}
kissa on kissaeläin
#-
Tavallista tekstiä

tuottaisi tuloksen:

kissa on kissaeläin

Tavallista tekstiä

Omia tyylejä dokumenttiin voi tehdä alempana olevilla ohjeilla.

# erityyli

Tehtävä: Eri tyyli kappaleessa

Kirjoita `huomautus`-tyylillä oleva lohko alla olevien rivien väliin

Tämän rivin jälkeen lisää `huomautus` tyylinen lohko

joka loppuu ennen tätä riviä

 

8.2 Tyyli kappaleen sisällä

Kappaleen sisällä saadaan eri tyylejä kirjoittamalla

Seuraava sana on [punaisella]{.red} värillä.

Seuraava sana on punaisella värillä.

Tämän muotoilun saa lisättyä suoraan editoristakin kohdasta Style/Style. Toistaiseksi Style tuottaa aina tekstin

[teksti]{.red}

josta joutuu itse vaihtamaan sanan red tilalle jonkin alla olevista (kirjoita vain se pisteellä alkava sana, sen perässä aaltosulkeissa on sanan määritys).

.tim         { color: $basic-color}
.red         { color: red; }
.blue        { color: blue; }
.green       { color: green; }
.yellow      { color: yellow; }
.white       { color: white; }
.gray        { color: gray; }
.lightgray   { color: lightgrey; }
.bggray      { background: #e6e6e6; }
.bgred       { background: red; }
.bgblue      { background: blue; }
.bggreen     { background: green; }
.bgyellow    { background: yellow; }
.bglightgray { background: lightgrey; }
.bgtim       { background: $basic-color}
.bgwhite     { background: white; }
.border      { border: 1.00pt solid #000000; }
.radius      { border-radius: 0.3em; }
.bgreadline  { background: #ff6600c0; }
.bgreadmodified  { background: #ffff00c0; }
.obs         { border: 1.00pt solid #000000; padding: 0.1em; background: #e6e6e6;}
.note .answer { color: blue; }

Tyylejä voi luetella useampiakin välilyönnillä eroteltuna ja niitä voidaan sisällyttää toisiin tyyleihin.

# erityylikappaleensisalla

Tehtävä: Eri tyyli kappaleen sisällä

Muuta sana "tämä" keltaiseksi.

Muu[ta [tämä]{.white .bgblue} sa]{.obs .radius}na keltaiseksi. TIM tyylillä
saa [TIMin perusväriä]{.tim} samoin [taustaksi]{.bgtim}.

Saat myös painikkeen näköisiä korostuksia:  Selain virkistetään
[F5]{.button}-painikkeella.

 

# c1

Valmiita tyylejä:

    .tim         { color: $basic-color}
    .red         { color: red; }
    .blue        { color: blue; }
    .green       { color: green; }
    .lime        { color: lime; }
    .yellow      { color: yellow; }
    .white       { color: white; }
    .gray        { color: gray; }
    .lightgray   { color: lightgrey; }
    .bggray      { background: #e6e6e6; }
    .bgred       { background: red; }
    .bgblue      { background: blue; }
    .bggreen     { background: green; }
    .bglime      { background: lime; }
    .bgyellow    { background: yellow; }
    .bglightgray { background: lightgrey; }
    .bgtim       { background: $basic-color}
    .bgwhite     { background: white; }
    .border      { border: 1.00pt solid #000000; }
    .radius      { border-radius: 0.3em; }
    .bgreadline  { background: #ff6600c0; }
    .bgreadmodified  { background: #ffff00c0; }
    .obs         { border: 1.00pt solid #000000; padding: 0.1em; background: #e6e6e6;}
    /* .note .answer TODO: do we dare to use pure .answer?  Otherwise it is not visible in preview */
    .answer      { color: $answer-color; }
    .smaller     { font-size: smaller; }
    .small       { font-size: small; }
    .x-small     { font-size: x-small; }
    .xx-small    { font-size: xx-small; }
    .larger      { font-size: larger; }
    .large       { font-size: large; }
    .x-large     { font-size: x-large; }
    .xx-large    { font-size: xx-large; }

    img.smallimage {
        display: inline;
    }

    .text-start .parContent {
        text-align: left !important;
    }

Lisäksi normaalin TIM-painikkeen saa tehtyä:

Lisäksi normaalin [TIM-painikkeen]{.timButton} saa tehtyä:

Näitä tyylejä voidaan käyttää myös lohkojen tyyleinä. Ja kuten lohkotyylienkin kanssa, voit määritellä itse dokumenttiisi lisää tyylejä tarpeen mukaan.

# tooltip

8.3 Tooltippien lisääminen

Joskus halutaan niin, että ilmestyy lisäteksti kun kursorin vie tietyn sanan tai lauseen päälle. Kokeile seuraavassa kissa-sanaa:

Joskus kissa istuu puussa.

Tämä saadaan kirjoittamalla:

 Joskus [kissa]{title="eläin"} istuu puussa.

Tämän voi toki yhdistää muiden tyylien kanssa, esim värin:

Joskus kissa istuu puussa.

Tämä saadaan kirjoittamalla:

 Joskus [kissa]{.red title="eläin"} istuu puussa.

Laittamalla dokumentin css-asetuksiin esimerkiksi:

.hred:hover {
    color: red;
}

saadaan:

Joskus kissa istuu puussa.

kun kirjoitetaan:

 Joskus [kissa]{.hred title="eläin"} istuu puussa.

Saisiko tooltipin tekstin sijaan näkyviin esim. texiä tai kuvan?

VL: saa, lopussa esimerkki, LaTeX vastaavasti

11 Dec 19 (edited 14 Aug 20)

Myös kosketuslaitteilla toimiva tooltip saadaan, jos halutaan kikkailla vielä lisää tyyliasetuksilla. Tässä on myös se hyvä puoli, että saadaan kopioitavissa oleva tooltipin sisältö.

.mytooltip {
    position: relative;
    border-bottom: 1px dotted black;
}

.mytooltip .tooltiptext {
    visibility: hidden;
    background-color: black;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px;

    /* Position the tooltip */
    position: absolute;
    top: -1.9em;
    left: -0px;
    z-index: 1;
}

.mytooltip:hover .tooltiptext {
    visibility: visible;
}

jolloin saadaan:

Joskus kissaeläin istuu puussa.

kun kirjoitetaan:

 Joskus [kissa[eläin]{.tooltiptext}]{.red .mytooltip} istuu puussa.

Jos edellä olevia joutuu kirjoittamaan paljon, voisi kirjoittamista vähentää lisäämällä dokumentin asetuksiin makron:

macros:
  tooltip: "]{.tooltiptext}]{.red .mytooltip}"

jolloin riittäisi kirjoittaa:

Joskus [kissa[eläin%%tooltip%% istuu puussa.

Periaatteesa em. tavalla voi tooltippiin sijoittaa mitä vaan MarkDown-koodia, eli

Joskus kissa istuu puussa.

syntyy kun kirjoittaa

Joskus [kissa[![](/images/209705/image.png)]{.tooltiptext}]{.red .mytooltip} istuu puussa.

8.4 Kelluvat lohkot

Lohkoja voi muuttaa kelluttaviksi antamalla lohkon määritellyssä

#- {float="true" float_caption="Otsikko"}

Tämä on kellutettava lohko

Kellutettavan lohkon voi "irrottaa" kelluvaksi lohkon yläpuolella olevalla -painikkeella:

Tämä on esimerkki lohkosta, joka voi irrottaa kelluvaksi.

Irrotetun lohkon voi siirtää, ja sen kokoa voi muuttaa. Irrotettu lohko käyttäytyy kuin ikkuna.

# linkkienlisaaminen

9. Linkkien lisääminen

Jos linkille ei haluta erillistä otsikkoa, riittää kirjoittaa linkki sellaisenaan <> -merkkien väliin.

<http://fi.wikipedia.org/wiki/Koira>

Jos halutaan erillinen otsikko, saadaan linkki kissa Wikipediassa seuraavasti:

[kissa Wikipediassa](http://fi.wikipedia.org/wiki/Kissa)

Toisen TIM-dokumentin tiettyyn kohtaan viitataan koko dokumentin polulla:

[linkkien lisääminen ohjeessa](/view/tim/TIM-ohjeet#linkkienlisaaminen)

Dokumentteihin voi viitata URL-osoitteella:

[linkkien lisääminen ohjeessa](https://tim.jyu.fi/view/tim/TIM-ohjeet#linkkienlisaaminen)

Dokumenttilinkeissä kannattaa välttää alkuosan https://tim.jyu.fi käyttämistä, jotta linkit eivät riippuisi TIMin osoitteesta.

Yksittäisiin lohkoihin voidaan lisätä hyppyankkureita lisäämällä lohkon alkuun

#- {#linkki}

tai otsikoihin tyyliin

## Kissat valloillaan {#kissat}

Otsikothan saavat toki automaattisestikin ankkurin, jonka voi katsoa kun vie kursorin otsikkorivin oikeaan reunaa ja katsoo siellä olevasta #-merkistä. Näitä automaattisia ankkureita on kuitenkin huono käyttää pysyvinä linkkeinä, koska automaattinen ankkuri muuttuu, mikäli otsikkotekstiä muutetaan. Siksi otsikkoon itse laitettu ankkuri pysyy paremmin muuttumattomana.

Itse määritetyt ankkurit kannattaa nimetä selkeästi erilaiseksi kuin kaikki otsikot. Joissain tapauksissa järjestelmä ei osaa erottaa otsikosta tehtyä automaattista ankkuria itse määritetystä, ja silloin linkki dokumentin sisäiseen ankkuriin saattaa johtaa väärään kohtaan dokumenttia.

Linkki dokumentin sisäiseen ankkuriin saadaan kirjoittamalla:

[tekstiä](#linkki)
# linkit

Tehtävä: Muokkaa linkkejä

Kokeile muokata alla olevia erilaisia linkkejä

[kissa Wikipediassa](http://fi.wikipedia.org/wiki/Kissa)

<http://fi.wikipedia.org/wiki/Koira>

 

10. Taulukot

TIMiin voi tehdä kahdentyyppisiä taulukkoja: TIMiin varta vasten kehitettyjä TimTableja, ja vanhempia, TIMin hyödyntämän Pandoc-sovelluksen valmistaulukoita. TimTablet ovat ilmaisuvoimaisempia ja helpompia muokata, ja niiden ohje löytyy täältä.

Muut tämän luvun ohjeet koskevat Pandoc-sovelluksen valmistaulukoita.

Pandoc-taulukoita voidaan tehdä useita erilaisia. Helpoin on perustaulukko, jossa on lyhyitä tekstejä sarakkeissa. Otsikkorivin otsikon sijainti sen alla olevaan viivaan nähden määrää, miten sisältö keskitetään. Sarakkeet määräytyvät viivassa olevien välien mukaan. Tosin tämä muoto on hyvin tarkka sille että sisällöt ovat sopivasti allekkain. Jos tämä on ongelma, käytä myöhemmin esiteltävää tolppaeroteltua taulukkoa.

# taulukko1

Tehtävä: Muokkaa yksinkertaista taulukkoa

Kokeile miten sarakeotsikon paikka vaikuttaa keskitykseen. Lisää myös taulukkoon muutama rivi.

Table:  Otsikko taulukolle

Otsikko    Vasen laita    Keskitetty    Oikea laita
---------- ------------- ------------ -------------
1. rivi      2                  3         4
2. rivi        1000      2000             30000

 

# taulukko2

Tehtävä: Muokkaa taulukkoa jossa ei ole otsikkoa

Sarakeotsikkorivi voidaan jättää pois, mutta silloin pitää olla taulukon lopettava alaviiva. Sisennykseen vaikuttaa nyt itse alkioiden sijainti. Koko taulukolle tulevasta otsikosta saa jättää Table-sanan pois. Toki koko otsikonkin voi jättää pois. Kokeile.

:  Otsikko taulukolle

---------- ------------- ------------ -------------
1. rivi      2                  3         4
2. rivi        1000      2000             30000
---------- ------------- ------------ -------------

 

# taulukko3

Tehtävä: Muokkaa monirivistä taulukkoa

Taulukko, jossa yhden solun sisältö on monella rivillä, voidaan tehdä niin, että aloitetaan ja lopetetaan taulukko pitkällä yhtenäisellä viivalla ja taulukon rivit erotetaan toisistaan tyhjillä riveillä. Rivinvaihtoja voi pakottaa \-merkillä

Table:  Otsikko taulukolle voi
jakaantua usealle riville

-----------------------------------------------------
Ekan       Toisen\         kolmas\            neljäs\
sarakkeen   sarakkeen\     keskitettynä      oikeassa\
otsikko    otsikko                           reunassa
---------- ------------- -------------- -------------
1. rivi     toki\              3         4
voi olla    sisältökin
useita        voi\
rivejä      olla
            monella\
            rivillä

2. rivi        1000      2000             30000
-----------------------------------------------------

 

# taulukko4

Tehtävä: Muokkaa viivoilla kehystettyä taulukkoa

Taulukko voidaan rakentaa myös kehysviivoilla. Tällöin ei voida vaikuttaa keskityksiin. Tämä muoto on erityisen tarkka siitä, että +-merkit ovat viivojen risteyksissä. Itse viivojen paikoista ei ole niin suurta väliä, mutta toki on helpompi lukea jos viivat ovat alekkain. Mallitaulukon rivejä harventaa viimeisen sarakkeen listat. Kokeile poistaa - -merkit.

: Viivoilla tehty taulukko

+---------------+---------------+----------------------+
| Hedelmä       | Hinta         | Edut                 |
+===============+===============+======================+
| Banaani       |  1.34 €       | - valmis kääre       |
|               |               | - kirkas väri        |
+---------------+---------------+----------------------+
| Appelsiini    |  2.10 €       | - auttaa keripukkiin |
|               |               | - makea              |
+---------------+---------------+----------------------+

 

Kaikista käyttökelpoisin taulukkomuoto on ehkä tolppa (|)-eroteltu taulukko. Hyöty on siinä, että sarakkeiden ei tarvitse olla täsmälleen kohdakkain, ainoastaan tolppien määrä ratkaisee sarakkeiden paikat. Tolppaerottelussa on sekin hyvä puoli että TIMin makrolaajennukset toimivat niiden sisällä rikkomatta taulukkoa.

# taulukko5

Tehtävä: Muokkaa tolppa-eroteltua taulukkoa

Taulukko voidaan tehdä myös tolppa | merkeillä. Sisennyksen määrää kaksoipisteet viivarivillä.

: Tolpilla eroteltu taulukko

| Oikea | vasen| oletus  | Keskitetty |
|------:|:-----|---------|:----------:|
|   12  |  12  |    12   |    12      |
|  123  |  123 |   123   |   123      |
|    1  |    1 |     1   |     1      |

 

# taulukko6

Tehtävä: Muokkaa tolppa-eroteltua taulukkoa

Tolppataulukon etuna on se, että se voidaan kirjoittaa myös rumasti. Samoin alku ja lopputolpat voidaan jättää pois.

: Tolpilla eroteltu taulukko rumasti kirjoitettuna

Oikea|vasen|oletus|Keskitetty
--:|:-|--|:--:
12|12|12|12
123|123|123|123
1|1|1|1

 

Taulukoita tehdessä apuna voi olla että painaa Ins-painiketta, jolloin voi vaihtaa lisäystilan ja päällekirjoitustilan välillä. Samoin erityisesti viivoitetuissa taulukoissa voi käyttää apuna editorin ominaisuutta, missä pitämällä Alt-painiketta pohjassa maalauksen aikana, saa maalattua suorakulmaisen muotoisia alueita. Esimerkiksi pystyviiva on helppo lisätä maalaamalla sarakkeen kohdalle nollalevyinen suorakaide (taulukon korkuinen) ja sitten painamalla tolppa (|) -merkkiä, saa koko maalatun alueen korvaantumaan tolppa-merkeillä. Tässä ohjeessa em. toimii kun painaa Highlight -editorin päälle. Se onkin päällä itse tavallista dokumenttia muokattaessa.

Parempaa taulukkoeditoria odotellessa voit luoda taulukoita esimerkiksi Table Editor sivun avulla kun valitset kohteeksi Markdown. Toinen vaihtoehto on Tables Generator

11. Kuvien lisääminen

11.1 Tavallinen kuva

Jos kuvan kokoa ei haluta muokata, voidaan kuva lisätä koodilla jossa on ensin kuvaotsikko ja sitten kuvan osoite. Huomaa että linkkiin verrattuna erona on se, että koodi alkaa huutomerkillä:

# kuva1

Tehtävä

Kokeile vaihtaa kuvan osoitetta sekä kuvatekstiä

![Kuva 1: Volkkari](/images/24/dsc_0014.jpg)

 

Mikäli kuvaa ei valmiiksi ole netissä missään, voidaan se lisätä TIMiin editorin Upload file/image-välilehdeltä.

# showimage

11.2 Kuvan kokoa halutaan muuttaa

Jos taas kuvan kokoon halutaan vaikuttaa, niin voidaan kirjoittaa kuvan perään aaltosulkeisiin kuvan koon määräävät attribuutit:

# kuva21
![Pitkä auto](/images/24/dsc_0014.jpg){width=600 height=150}

 

Mikäli toinen kokoa määrittävä attribuutti jätetään pois, niin silloin toinen määrää kuvan sen suuntaisen koon ja toinen määräytyy automaattisesti kuvasuhteesta. Siksi useimmiten onkin järkevää antaa vain toinen attribuutti.

Edellä mainitulla tavalla tehtyjä kuvioita voidaan sijoittaa myös taulukoihin. Seuraavana esiteltävää pluginiin perustuvaa kuvaa ei voida sijoittaa taulukkoon.

Kuvan koko voidaan määritellä myös käyttämällä kuva-pluginia (jos koodin kirjoittamisen jälkeen kuva ei näy, paina Refresh, F5). Kuva plugin käyttö on hyödyllistä lähinnä silloin jos halutaan hyödyntää muitakin pluginin tarjoamia attribuutteja.

# kuva2
``` {#k1 plugin="showImage" .csRunDiv}
header: Pitkä
stem: Auto on venynyt pitkäksi
width: 600
height: 150
footer: Pitkä auto
file: /images/24/dsc_0014.jpg
```

 

# kuva3
``` {#kuva3 plugin="showImage"}
width: 60
height: 200
file: /images/24/dsc_0014.jpg
footer: Lyhyt auto
```

 

11.3 Vinkki kuvan lisäämiseen

Levyltä olevia kuvia on kohtuullisen helppoa lisätä seuraavalla kikalla:

  1. avaan Windows Explorer (tai Macin Finder) yhteen ikkunaan
  2. avaa TIMin ediitorissa välilehti Upload file/image
  3. raahaa Explorerista kuva Choose File-painikkeen päälle

Jos käytät editorina Html:n TextArea editoria (paina Editor painiketta), niin voit raahata kuvia suoraan editoriin. Kursori pitää ennen raahaamista olla siinä kohti, johon haluat kuvan tulevan.

Tabletista tai käännykästä kuvan voi lisätä painamalla Choose File ja sitten valitsemalla että otetaan kameralla kuva.

# imagepaste

11.4 Kuvan lisääminen leikepöydältä

Kuva lisätä suoraan leikepöydältä Paste toiminnolla, siis Ctrl-V tai hiiren oikealla ja Paste.

Editorina HTML TextArea
Editorina HTML TextArea

Kuvan lisääminen leikepöydältä toimii sekä TextArea että ACE-editorissa.

# windowsscreenshot

11.4.1 Kätevä kikka Windows kuvankaappauksen tekemiseen

Erilaisia käyttöohjeita kirjoitettaessa on kiva saada kuvakaappaus nopeasti ruudulla olevasta ohjelmasta.

Paina Windows key+Shift+s, niin aukeaa työkalu ruudulta leikkaamiseen ja sitten kun leikkaus päättyy, niin kuva on leikepöydällä, josta sen saa sitten TIMiin Ctrl+v.

Katso myös Print Screen Key käyttö.

Windowsin oma Snipping tool on osin käyttökelpoinen, mutta sillä kuvan muokkaaminen on työlästä. Hyvältä ja monipuoliselta vaikuttaa ilmainen ShareX, jolla voi myös tehdä lyhyitä GIF-animaatioita. Siinä kannattaa ensin vaihtaa haluamansa pikanäppäimet ja sitten asetus että kaappauksen jälkeen kuva menee leiköpöydälle (ei turhaan tiedostoon eikä palvelimelle) sekä ehkä käynnistää muokkauseditorin jolla voi tehdä korostuksia kuvaan.

11.5 SVG-kuva

SVG-kuva voidaan lisätä tavallisena kuvana. Mutta jos SVG-kuva sisältää linkkejä, niin ne eivät toimi tavallisena kuvana esitettäessä.

Dokumentissa SVG on esitetty muita tapoja laittaa SVG-kuvia TIMiin.

11.6 Kuvat rinnakkain

Mikäli kuvia haluaa laittaa samalle riville useita rinnakkain, voi sen tehdä esimerkiksi tekemällä asetuksiin dokumenttikohtaisen tyylin

css: |!!
.palstatKaksi img {
    max-width: 100%;
    display: inline;
    margin: 0 auto;
}
!!
# kuvapalstat
#- {.palstatKaksi}
![Kuva 1](/static/images/tim-logo_42height.png)
![Kuva 2](/static/images/tim-logo_42height.png)

 

Huomattakoon että tässä tapauksessa ei tule kuvatekstejä.

Jos haluaa käyttää valmiita tyylejä, saman saa aikaiseksi:

#- {.mathp .inline}
![Kuva 1](/static/images/tim-logo_42height.png)
![Kuva 2](/static/images/tim-logo_42height.png)

11.7 Isot kuvat

Jos dokumentin palstatila ei riitä isolle kuvalle leveyssuunnassa, kuvaa skaalataan pienemmäksi. Palstan kokoa voi kuvien osalta leventää tekemällä ensin asetuksiin dokumenttikohtaisen tyylin:

css: |!!
.isokuva img {
    max-width: 130%;
    display: inline;
    margin: 0 auto;
}
!!

Ja kasvattamalla tai pienentämällä max-width -arvoa tarpeen mukaan.

#- {.isokuva}
![](/images/128473/kartta.png)

11.8 Kuvat tekstin seassa

Mikäli kuvia halutaan tekstin sekaan, voidaan niille antaa .smallimage-tyyli. Samalla voidaan määrätä myös kuvan koko jos tarvitsee.

# kuvainl
Ei ole pakko kirjoittaa TIM vaan voidaan näyttää logo
![Kuva 2](/static/images/tim-logo_42height.png){.smallimage width=40}
samassa paikassa.

 

11.9 Useita vuorottelevia kuvia

Jos halutaan näyttää samassa kohdassa useita vuorottelevia kuvia (carousel) pitää käyttää - showImages -komponenttia.

# progimages

11.10 Kuvien piirtäminen ohjelmallisesti

TIMIssä kuvia voi piirtää useilla eri ohjelmilla ja näin voidaan tehdä käyttäjälle interaktiivisia kuvia, joissa käyttäjä voi muuttaa kuvan tekemiseen käytettyjä lähtöarvoja.

Aina interaktiivinen kuva ei ole itseisarvo, mutta sen piirtämisessä jollakin ohjelmalla on se etu, että kuvan piirtämiseen käytetty lähdekoodi säilyy TIMissä ja on siten nopeasti muutettavissa jos jotakin pientä tekstiä tai lähtöarvoa pitää muuttaa. Jos dokumentti sisältää paljon tällaisia kuvia, jotka joudutaan laskemaan uudelleen dokumenttia ladattaessa, hidastuu dokumentin lataantuminen. Tähän auttaa kuvien laskeminen käteismuistiin (cache).

Tätä toimintoa voidaan käyttää minkä tahansa ohjelman kanssa, joka tuottaa kuvan tai tekstiä, esimerkiksi Python:

``` {plugin="csPlugin" #pythonkuvaaja}
type: py
cache: true
imgsource: image.png
fullprogram: |!!
import numpy as np
import matplotlib.pyplot as plt
plt.plot([1, 3, 2,1,6,9,1 ])
plt.savefig('image.png')
!!
```
# pythonkuvaaja-1

Tästä tarkemmin ohjeita csPlugin-ohjeessa.

Kuvia voi piirtää myös \(\text{\LaTeX}\)in Tikz-komennoilla.

11.11 DrawIO piirto-ohjelmalla lisätyt kuvat

DrawIO-piirto-ohjelmalla voit piirtää staattisia kuvia joita on helppo jatkossa ylläpitää TIMissä.

Voit tehdä myös tehtäviä, joissa lukijan pitää itse piirtää kuvia. Kuvat voi aloittaa tyhjästä tai niille voi tehdä pohjan jota aloitetaan muokkaamaan.

# drawiootava

Tehtävä: Otava

Täydennä Otavan tähtikuvio

Open JS-frame

 

DrowIO-piirto-ohjelman käyttämisestä on omat sivut.

11.12 Kuvien katseluoikeudet

Dokumenttiin ladatut kuvat näkyvät vain niille käyttäjille, joilla on itse dokumenttiin vähintään katseluoikeus. Jos katseluoikeus dokumenttiin poistetaan, niin myöskään kuvia ei enää näe, vaikka käyttäjällä olisi niihin suorat linkit.

Jos dokumentti kopioidaan Manage-näkymän toiminnolla, siinä olevat kuvat näkyvät niille, joilla on vähintään yhteen kopioon katseluoikeus.

Yksittäisiä kuvia ei toistaiseksi voi oikeudellisesti liittää toisiin dokumentteihin. Toisin sanoen jos kuva K on alun perin ladattu dokumenttiin D ja kyseisen kuvan osoite lisätään toiseen dokumenttiin D2, niin K ei välttämättä näy kaikille niille, joilla on dokumenttiin D2 katseluoikeus, sillä kuvan K katseluoikeus määräytyy edelleen dokumentin D perusteella.

Kuvan liitos dokumenttiin ei poistu, vaikka kuvalinkin pyyhkisi pois dokumentista, eli kuvan pystyy näkemään edelleen suoralla kuvalinkillä, jos dokumenttiin on katseluoikeus.

Yllä oleva koskee myös muita ladattuja tiedostoja.

TIM osaa automaattisesti laajentaa kuvan oikeudet uusiin dokumentteihin. Tämä edellyttää, että

  • Kuva on ladattu TIMiin
  • Sinulla on vähintään manage-oikeus dokumenttiin, johon kuva oli alunperin ladattu
  • Sinulla on vähintään edit-oikeus dokumenttiin, jossa haluat kuvan näkyvän
  • Sinulla on tiedossa kuvan URL-osoite

Silloin kuvan oikeus automaattisesti kopioituu dokumenttiin, kun lisäät kuvan linkin kohdedokumentin johonkin lohkoon. Siinä tapauksessa kaikki kohdedokumenttiin view-oikeuden omaavat voivat myös nähdä kuvan. Huomaa, ettei oikeuden automaattinen kopioituminen ei toimi toistaiseksi lohkokopioinnin tai lohkoviittauksen kanssa. Kuvan oikeus kopioituu vain, jos kuvan URL-osoite lisätään lohkoon.

Yksi varmempi tapa kiertää rajoitusta, että kuville ei voi erikseen antaa katseluoikeutta on tehdä itselleen muutama "kuvienjakodokumentti", joihin lataa kuvat ja sitten muissa dokumenteissa käyttää samaa linkkiä. Silloin oikeuksia voi säätää tuolla "kuvienjakodokumentilla". Yhdessä dokumentissa voisi olla vaikka kaikille sallitut kuvat (anonymous user) ja dokumentin oikeus vastaavasti. Toisessa kirjaantuneille jne.

# video

12. Videoiden lisääminen

Videoita voidaan lisätä koodilla (jos koodin kirjoittamisen jälkeen kuva ei näy, paina Refresh, F5):

# videoesim1
``` {#V2 plugin="showVideo"}
footer: "Video 1: GalaxyTrip less than 5 minutes, Demonstrated
in SIGCSE11 symposium. Antti-Jussi Lakanen/Vesa Lappalainen"
iframe: true
width: 400
height: 300
start: 1:30
end: 2:10
file: //www.youtube.com/embed/cHJ73xVOFD4
```

 

Youtube-videoissa voi käyttää myös normalia katselulinkkiä ja TIM muuttaa sen automaattisesti vaaditavaan embed-muotoon. Eli toimi myös

file: https://www.youtube.com/watch?v=cHJ73xVOFD4

Huomaa kuitenkin ettei linkki saa sisältää mitään ?-merkin jälkeistä osaa kuten index=4 tms.

Jos halutaan tehdä "vähemmän tyrkyllä" oleva videolinkki tyyliin:

# V3
TIM esittely 5.6.2015 "Tietojenkäsittelytieteen päiviltä" videoituna TIM (28m24s)

voidaan se tehdä koodilla

# videoesim2
``` {#V3 plugin="showVideo"}
type: small
stem: 'TIM esittely 5.6.2015 "Tietojenkäsittelytieteen päiviltä" videoituna'
videoname: TIM
start: "01:15"
end: "01:30"
width: 400
height: 300
file: "http://kurssit.it.jyu.fi/TIEP111/2015/tim/tim02.mp4"
```

 

Videosta voidaan toki jättää alku- ja loppuajat pois, mikäli niitä ei tarvita. Kokeile muokata edellisessä esimerkissä videon aikoja.

Videot eivät ole tehokkuussyistä ladattuna ennenkuin käyttäjä klikkaa videon ikonia. Videot näkyvät aluksi valitun kokoisena, mutta videon alalaidasta voi videon klikata koko ruudun kokoiseksi.

Moniviestinvideota varten ota file-kohtaan tuleva osoite moniviestimessä kohdasta Lataukset ja sieltä se parhaan resoluution kohdalla oleva osoite. Poista myös mahdollinen iframe-rivi.

# tekstitys

12.1 Tekstitysten lisääminen

Videoihin voidaan liittää mukaan tekstityksiä WebVTT muodossa.

WEBVTT Kind: captions; Language: fi

1
00:00:00.000 --> 00:00:02.610
Tervetuloa! Tässä videossa

2
00:00:02.750 --> 00:00:03.300
kerrotaan kissoista.

Tekstitykset kannattaa laatia erillisenä TIM-dokumenttina, jolloin niitä pystyy muokkaamaan samaan tapaan kuin muita dokumentteja, ja niiden sijainnit lisätään videon asetuksiin URL-osoitteina. Tekstitystiedoston asetuksissa (ratas ja Edit settings) tulee olla rivi

textplain: true

Vaihtoehtoisia tekstityksiä voi olla useampia, jolloin kuvaavat nimet auttavat erottamaan ne toisistaan.

subtitles:
 - name: esittely
   file: /print/users/tekstitykset/esittely.vtt

Huomaa, että jos tekstitys on TIMissä, niin otetaan nimenomaan se print-näkymä, ei normaali view-näkymä. textplain: true tekee sen että print-näkymään tulee vain dokumentin tekstisisältä.

Tekstityksiä ei voida kuitenkaan liittää YouTuben kautta upotettuihin videoihin. Tekstitykset tulee lisätä kyseiseen palveluun, jolloin ne tulevat TIMiin katseltavaksi.

12.1.1 Oletustekstitykset

Oletuksella selain valitsee automaattisesti parhaan tekstitysraidan (yleensä kielikoodin perusteella). Oletuksen voi muuttaa asetuksella defaultSubtitles. Esimerkiksi

defaultSubtitles: esittely
subtitles:
 - name: esittely
   file: /print/users/tekstitykset/esittely.vtt

pakottaa esittely-raidan päälle, kun video käynnistyy.

12.2 Moniviestimen tekstitykset

Moniviestimeen valmiiksi lisätyt tekstitykset tulevat videon valikkoon näkyville käyttämällä upotettua linkkiä. Tällä tavalla tekstitykset saa TIMin videoon näkyville kopioimatta niitä ensin erilliseen TIM-dokumenttiin. Valitse Moniviestimen upotuslinkki, jos aikomuksena on käyttää Moniviestimen tekstityksiä.

iframe: true
file: https://m3.jyu.fi/jyumv/embed?uid=8408ebbfc5f64a7cb813876a150f98d1

Moniviestimen automaattitekstitys tekee videoon valmiit aikaleimat, jolloin tekstityksestä riittää tarkistaa tekstityksen oikeellisuus ja kirjoitusasu. Tätä helpottamaan tekstitys voidaan kopioida TIM-dokumenttiin muokattavaksi. Valitse Moniviestimen latauslinkki, jos aikomuksena on käyttää TIMin tekstityksiä.

iframe: false
file: https://m3static.cc.jyu.fi/m3videos/3/jyumv/8408ebbfc5f64a7cb813876a150f98d1/8408ebbfc5f64a7cb813876a150f98d1_SDH264-20200930-07091601450738.mp4
subtitles:
 - name: esittely
   file: /print/users/tekstitykset/esittely.vtt

12.3 Videon taustakuvan (thumbnail) muuttaminen

Oletuksena videon taustakuvana on iso sininen 'play'-nappi. Jos tuon haluaa vaihtaa, riittää lisätä videopluginin asetuksiin kohta

thumbnailFile: [polku kuvaan]

Valitettavasti suoraan videosta ei saa automaattisesti kuvaa, mutta kuvan voi luoda vaikkapa ottamalla kuvakaappauksen (tai sitten jopa piirtää oman kuvan) ja tuolla thumbnailFile-asetuksella asettaa se kuvaksi. Kuvan voi myös jopa ladata TIMiin editorin Upload-välilehdeltä ja käyttää ladatun kuvan linkkiä pohjakuvana. Esimerkiksi näin:

``` {#V3 plugin="showVideo"}
stem: 'TIM esittely 5.6.2015 "Tietojenkäsittelytieteen päiviltä" videoituna'
videoname: TIM
start: "01:15"
end: "01:30"
width: 800
height: 600
file: "http://kurssit.it.jyu.fi/TIEP111/2015/tim/tim02.mp4"
thumbnailFile: /images/631685/Screenshot_2023-11-15_144845.png
```


Tämä näyttää siis seuraavanlaiselta (esimerkissä taustakuva ja video eivät liity toisiinsa):

# V4

TIM esittely 5.6.2015 "Tietojenkäsittelytieteen päiviltä" videoituna



Video-ikonin (sinisen 'play'-napin) saa pois laittamalla videopluginin asetuksiin

videoicon: false

13. Matemaattisten kaavojen kirjoittaminen

Matemaattiset kaavat kirjoitetaan $$ -merkeillä erotettuun väliin.

# matematiikka

Tehtävä: Muokkaa matemaattista kaavaa

Kirjoita TeXillä alla olevan toisen asteen yhtälön ratkaisukaavan tilalle Pythagoraan lause

$$
x = \frac {-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

 

# matematiikka2
Kaavoja voidaan kirjoittaa $\text{\LaTeX}$-notaatiolla myös tekstin
sekaan $x^2 + 3x - 2$ käyttäen yhtä \$-merkkiä.

 

Monivalintakysymyksissä matematiikkaa kirjoitettaessa pitää teksti kirjoittaa yksinkertaisiin lainausmerkkeihin, eli kirjoittaa esim:

stem: 'Määrätty integraali $\int_a^b f(x) dx$...'

AMS-\(\text{\LaTeX}\)ista tuttuja align-ympäristöjä ja muita sellaisia ei voi käyttää, mutta varsin laaja osa AMS-\(\text{\LaTeX}\)in kaavakielestä on kaavojen sisällä käytettävissä. align-ympäristönkin puute on kierrettävissä:

# amsmath
$$
\begin{aligned}
a & b \\
c & d
\end{aligned}
$$

 

# kaavasvg

13.1 Kaavojen esittäminen SVG-muodossa

Oletuksena matemaattiset kaavat "piirretään" käyttäjän selaimessa dokumentin latautuessa, jolloin paljon matematiikkaa sisältävät dokumentit tuntuvat latautuvan hitaasti. Lisäksi selain ei osaa piirtää aivan kaikkia \(\text{\LaTeX}\)in osaamia kaavoja.

Ongelman ratkaisemiseksi on olemassa dokumentti- ja lohkokohtainen asetus math_type, joka voi saada arvon mathjax (joka on oletus) tai svg. Asettamalla arvoksi svg kaavat piirretään palvelimella, jolloin selaimen tehtäväksi jää ainoastaan kaavan esittäminen. Lisäksi saadaan käyttöön laajempi joukko kaavoja, koska kaavat ladotaan \(\text{\LaTeX}\)-moottorilla.

``` {settings=""}
math_type: svg

Kun dokumenttiin tekee tämän muutoksen, kestää seuraava dokumentin latauskerta helposti 10-15 min. Tätä lataamista pitää vaan yrittää virheilmoituksesta huolimatta ehkä kymmenenkin kertaa, jotta kaikki kaavat saadaan ladattua. Tämän jälkeen seuraavat käyttäjät saavat kaavat nopeammin näyttöönsä (ominaisuutta yritetään automatisoida, mutta tähän hätään tuo refresh-tekniikka...).

HUOM: Kaavojen piirtäminen SVG-tilassa voi tuottaa erilaisia tuloksia kuin selainpiirtäminen!

math_type: mathjax käyttää kaavojen piirtämiseen MathJax tai KaTeX -työkalua, joiden syntaksi paikoin poikkeaa todellisesta \(\text{\LaTeX}\):n matematiikasta. Tästä syystä math_type: svg -asetuksen kytkeminen päälle saattaa rikkoa jotain matemaattisia kaavoja. Alle on listattu jotain esimerkkejä sekä ehdotuksia niiden "yhteensopivalle" kirjoitustavalle (eli tapa, joka on yhteensopiva \(\text{\LaTeX}\)-piirtämisen kanssa).

  • $\LaTeX$: Aiheuttaa virheen, koska tämä on matemaattinen symboli MathJaxissa, muttei \(\text{\LaTeX}\):ssa. Yhteensopiva kirjoitustapa: $\text{\LaTeX}$.

Lisätietoja eroista lötyy MathJaxin dokumentaatiosta.

13.1.1 Esimerkki lohkokohtaisesta asetuksesta

Seuraava markdown:

#- {math_type="svg"}
$a+b$

tuottaa:

# tikz

13.1.2 Matematiikan alustuskomennot

SVG-kaavoissa saattaa toisinaan tarvita \(\text{\LaTeX}\)-paketteja, jotka eivät oletuksena ole käytössä. Tällöin voi käyttää dokumentti- ja lohkokohtaista asetusta math_preamble, johon voi syöttää merkkijonona halutut alustuskomennot.

Alapuolen esimerkissä alustuskomennoksi annetaan \usetikzlibrary{shapes}. Huomaa, että merkki \ täytyy kahdentaa.

#- {math_type="svg" math_preamble="\\usetikzlibrary{shapes}"}
\begin{tikzpicture}
\node[draw=black,shape=diamond] {diamond};
\end{tikzpicture}

Tämä tuottaa:


Mikäli samaa pakettia tarvitsee hyvin monessa lohkossa, voi paketin latauksen ilmoittaa dokumentille globaalisti, eli muokkaamalla asetukset (rattaan kuva ja Edit settings) esimerkiksi (mallissa myös laitettu automaattinen otsikoiden numerointi):

``` {settings=""}
auto_number_headings: 1
math_type: svg
math_preamble: '\usepackage{gensymb}'
```

Useampaa pakettia ladatessa täytyy rivit erotella:

``` {settings=""}
auto_number_headings: 1
math_type: svg

math_preamble: |!!
    \usepackage{color}
    \usepackage{gensymb}
!!
```

Vastaavalla tavalla voi muuttaa \(\text{\LaTeX}\)-asetuksia. Jos esimerkiksi haluaa muuttaa matriisien ja kaavojen riviväliä, onnistuu se muuttamalla arraystretch-muuttuja:

math_preamble: '\renewcommand{\arraystretch}{1}'

TIM:n oletus rivivälille verkkosivuilla on 1.5, joka poikkeaa siis \(\text{\LaTeX}\):n oletusarvosta 1. Täten yllä oleva rivi palauttaa rivivälin takaisin arvoon 1.

Tällä attribuutilla voi antaa myös \(\text{\LaTeX}\)-makroja. Esimerkiksi jos haluaa käyttää merkintää \R reaalilukuja varten, voi tehdä \(\text{\LaTeX}\)-makron

math_preamble: '\newcommand{\R}{\mathbb{R}}'

Jos tämän laittaa dokumentin asetuksiin, niin se vaikuttaa kaikkiin kaavoihin. Jos dokumentin asetuksissa on jo math_preamble, pitää tämä laittaa kuten usean paketin latauksessa, eli

``` {settings=""}
auto_number_headings: 1
math_type: svg

math_preamble: |!!
    \usepackage{color}
    \usepackage{gensymb}
    \newcommand{\R}{\mathbb{R}}
!!
```

Jos dokumentin asetuksia muutetaan, ei automaattisesti kaikkia \(\text{\LaTeX}\) SVG-kaavoja lasketa uudestaan, ainoastaan ne, jotka muuttuvat asetusten muuttamisen jälkeen. Kaikki kaavat saa virkistettyä kirjoittamalla osoiterivillä sivun osoitteen perään

?nocache=true

eli esimerkiksi tämä sivu laskettaisiin kokonaan uudestaan jos osoiterivillä osoite muutetaan muotoon:

https://tim.jyu.fi/view/tim/TIM-ohjeet?nocache=true

Jos sivulla on paljon kaavoja voi uudelleenlaskenta kestää useita minuutteja.

Mikäli määrittelee omia paketteja tai makroja, pitää huomata että samat määritykset tulevat myös tulostukseen, mikäli dokumenttia halutaan tulostaa. Eli kokonaisuutena edellinen pelkkä makro pitäisi olla tulostus huomioon ottaen (ks: Tulostuksen käyttöohje, tuo lisäksi tietysti kaikki muuta tarvittavat asetukset):

``` {settings=""}
math_type: svg
math_preamble: |!!
\newcommand{\R}{\mathbb{R}}
!!
texmacros:
 texmacros: |!!
\newcommand{\R}{\mathbb{R}}
!!
```

Jos on paljon dokumentteja samassa hakemistossa, joihin lisäys tarvitaan, voi kannattaa harkita preamble-dokumentin tekemistä ja laittaa määritykset sinne.

14. Syöttökentät

Toistaiseksi erilaisten "pluginien" lisääminen TIM dokumenttiin vaatii kirjoittajalta hieman ylimääräistä vaivaa. Kunhan projektille saadaan lisää rahoitusta, niin muokkaustilaa parannetaan niin, että näiden vuorovaikutteisten osioiden lisääminen on helpompaa.

14.1 Tekstin syöttäminen

Syöttökenttä saadaan lisäämällä lohko jossa on seuraava koodi:

``` {#taskNimi plugin="csPlugin"}
type: text
button: Tallenna
rows: 1
placeholder: 'Kirjoita nimesi (sukunimi etunimi)'
stem: 'Vastaajan nimi (sukunimi etunimi):'
```

Tällä saadaan seuraavanlainen syöttökenttä:

# taskNimi

Vastaajan nimi (sukunimi etunimi):

 

Näiden niin sanottujen pluginien kielenä on YAML. Kieli koostuu attribuuteista ja niiden arvoista. Tässä on erittäin tärkeää että attribuutit kuten type, button jne alkavat vasemmasta reunasta ja niiden jälkeen on kaksoispiste. Jos itse sisältö tarvitsee kaksoispisteen, on sisältö laitettava lainausmerkkeihin. Mikäli syöttökenttään halutaan jokin oletusarvo, se voidaan tehdä byCode-attribuutin perään.

Pluginin esittely alkaa kolmella takaperoisella heittomerkillä ```. Sen jälkeen aaltosulun jälkeen on risuaita (#) jonka perään pitää antaa yksilöivä nimi, jolla kenttään syötetty teksti tallentuu tietokantaan. Nimi ei saa sisältää pistettä.

# syotto

Tehtävä: Muokkaa syöttöaluetta

Kokeile muokata syöttöalueen tietoja

``` {#taskNimi plugin="csPlugin"}
type: text
button: Tallenna
rows: 1
placeholder: 'Kirjoita nimesi (sukunimi etunimi)'
stem: 'Vastaajan nimi (sukunimi etunimi):'
```

 

# numberrule

14.2 Luvun syöttäminen

Lukuja voidaan syöttää edellisen esimerkin mukaisesti tekstialueeseen tai voidaan tehdä pienempi alue /tiny määreellä. Toki myös tekstiä voidaan lukea samalla tavalla kunhan oikeellisuustieto käsitellään eri tavalla kuin alla olevassa esimerkissä.

# luvunsyotto4

Tehtävä: Muokkaa luvun syöttöä

Kokeile muokata syöttöalueen tietoja

``` {#luku plugin="csPlugin"}
type: text/tiny
-pointsRule:
    numberRule: 'pisteitä 1 jos yli 3 mutta alle 6'
cols: 3
stem: 'Anna luku väliltä 3-6'
placeholder:luku
```

 

Oikeellisuustarkistusta varten annetaan pistesääntöihin attribuutti numberRule. Tämän perään kirjoitetaan kolme lukua (mahdolliset kirjaimet tai välimerkit niiden välistä hävitetään) joista ensimmäinen määrittää montako pistettä saa mikäli luku on kahden seuraavan välissä rajat mukaan lukien.

Tarvittaessa rajoja voidaan antaa useampikin seuraavanlaisella säännöllä:

-pointsRule:
    numberRule: 
        - 0.2 1 10  # 0.2 p jos luku on [1,10]
        - 0.4 3  7  # 0.4 p jos luku on [3,7]
        - 1   5     # 1 p jos luku on tasan 5    

Mikäli säännöt ovat päällekkäisiä, eli käyttäjän vastaus osuu useampaan sääntöön, annetaan pisteet suurimman pistemäärän tuottavan säännön perusteella.

Voit kokeilla em. säännön toimintaa alla olevassa kentässä antamalla erilaisia arvoja luvulle.

# luvunsyotto2
Anna luku väliltä 1-10

Mikäli numeron syötöstä tai tekstin syötöstä haluaa antaa enemmän palautetta, pitää palaute kirjoittaa jollakin ohjelmointikielellä. Ks csPlugin. Edellä on myös ohjeet miten palautteen voi antaa esimerkiksi kuvana.

Mikäli halutaan tarkistaa että syöttö on oikeaa muotoa, voidaan vielä lisätä attribuutit tätä varten:

validityCheck: '^(10|[1-9])$'
validityCheckMessage: 'Anna kunnon numero'
# luvunsyotto3
Anna luku väliltä 1-10

14.3 Automaattinen pisteytys ja palautteen anto

Tekstuaalisia kenttiä voidaan pisteyttää ja antaa automaattista palautetta käyttämällä jotakin seuraavista:

15. Monivalinnat

Monivalitatehtävän tai yksi-monesta -tehtävän saa lisättyä kun valitsee editorissa Questions ja sieltä haluamansa kysymystyypin ja sitten muuttelee pohjassa olevaa tekstiä.

On olemassa myös uudempi versio erilaisista kysymystyypeistä.

Käytettävän YAML-kielen syntaksista voi halutessaan lukea lisää dokumenteista:

Tehtäviin voi oletuksena vastata ne, joilla on View-oikeus. Poikkeuksen muodostaa tilanne, jossa Anonymous-käyttäjällä on dokumenttiin View-oikeus. Oletuksen he voivat silloin katsoa tehtäviä, mutta eivät vastata. Jos halutaan että anonymous-käyttäjätkin voivat vastata (silloin yksi vastaaja voi vastata useita kertoja vaihtamalla selainta), pitää tehtävien attribuutteihin lisätä rivi:

anonymous: true

15.1 True/False-tyyppiset kysymykset

Tämä on poistuva komponentti, käytä QST-kysymystyyppiä

Alla olevat esimerkit ovat mmcq ja mcq komponenteilla tehtyjä. Nuo poistuvat aikanaan käytöstä. Nykyisin suositellaan mieluummin käyttämään qst-komponenttia jonka saa lisätty normaalista muokkausmenusta kohdasta Add question above. Siinä on tehtävän tekemiselle käyttöliittymä ja enemmän vaihtoehtoja.

Esimerkiksi True/False kysymyksen:

# moni1
Väittämiä

Mitkä väittämät pitävät paikkaansa?

vastausten selityksineen saa lisäämällä tekstin:

# truefalse

Tehtävä: Muokkaa kysymystä

Lisää tehtävään yksi väittämä jonka oikea vastaus on True. Toistaiseksi tässä ohjeessa voi muokata malliksi tuota kysymystä, mutta siihen ei voi vielä täysin vastata, mallina olevaan yläpuolella olevaan voi vastata.

``` {#moni1 plugin="mmcq"}
headerText: Väittämiä
buttonText: Vastaa
trueText: Totta
falseText: Tarua
correctText: Oikein!
wrongText: Väärin!
stem: 'Mitkä väittämät pitävät paikkaansa?'
choices:
  -
    correct: true
    text: 'Shakissa valkoisilla pelaava aloittaa.'
    reason: 'Tämä on säännöissä'
  -
    correct: false
    text: 'Kuu on yhtäsuuri kuin aurinko.'
    reason: 'Kuu on merkittävästi pienempi, mutta se näyttää
             yhtäsuurelta koska on huomattavasti lähempänä.'
  -
    correct: false
    text: '2 euroa on vähemmän kuin 30 senttiä.'
    reason: 'Jos rahasta puhutaan, niin 2 euroa on 200 senttiä
             joka on enemmän kuin 30 senttiä.'
```

 

Tehtävän tekemisessä käytettävä kieli on YAML, jossa pitää olla hyvin tarkkana sisennysten ja rivitysten kanssa. Helpointa on matkia yllä olevaa mallia ja Copy/Pasteta siitä uusia vaihtoehtoja. Muista aina vaihtaa #-merkin jälkeinen tehtävän tunnistenimi. Jos kahdella tehtävällä on sama tunniste, tallentuvat vastaukset samaan paikkaan.

TIMissä on myös muita kysymystyyppejä ja silloin niille on myös editori, jossa kysymyksiä voi muokata "graafisesti".

15.2 Yksi monesta -kysymykset

Tämä on poistuva komponentti, käytä QST-kysymystyyppiä

Mikäli haluaa tehdä "mielipidekysymyksen", voi jättää correct ja myös reason attribuutit pois, jolloin riittää kirjoittaa minimissään:

``` {#moni1 plugin="mmcq"}
headerText: ''
stem: "Miltä tuntuu"
choices: 
  - text: "Väsyttää"
  - text: "Olen iloinen"    
  - text: "Jaksan huomiseen"
```

Vastaavasti saa aikaiseksi yksi "monesta tehtävän" kun mmcq tilalle laittaa mcq.

# mcq1

Myös mcq tehtävään voi toki lisätä reason ja correct attribuutit.

Oletusotsikon (Check your understanding) voi poistaa/vaihtaa laittamalla attribuutin:

headerText: ''
# vastauskerrat

15.3 Vastauskertojen lukumäärän rajoittaminen

Oletuksena monivalintatehtävissä on vain yksi yrityskerta.

Mielipidetyylisiä tehtäviä varten voi olla järkevää olla rajoittamatta vastauskertojen lukumäärää tai rajoittaa sitä jollain luvulla:

answerLimit:                # kertoja ei rajoiteta lainkaan
answerLimit: 5              # yrityskertoja on 5 kpl

Tämä valinta toimii myös muissa "plugineissa". Asetus kirjoitetaan esimerkiksi stem-sanan yläpuolelle.

15.4 Pistemäärän piilottaminen

Jos et halua, että tehtävästä saatu pistemäärä näkyy opiskelijalle, voit lisätä tehtävään asetuksen

showPoints: false

Opettajaoikeudella pistemäärä edelleen näkyy, mutta sen vieressä on huomautus "only visible to teachers".

15.5 Tehtävien arpominen

Tehtävien arpomiseksi suuremmasta joukosta katso: Satunnaistus.

# othertasks

16. Muut tehtävätyypit

Muita tehtävätyyppejä on esimerkiksi

Esimerkiksi palautuslaatikon, johon voi palauttaa kuvia tai PDF-tiedostoja, voi tehdä csPlugin-tehtävien sovelluksena.

``` {plugin="csPlugin" #PLUGINNAMEHERE}
stem: Voit palauttaa myös kuvan tai PDF
type: upload
```

Muutkin csPluginin attribuutit ovat käytettävissä palautuslaatikon koristelemiseen (kuten header jne). Edellä mainittu esimerkki näyttäisi tältä:

# palaute1

Voit palauttaa myös kuvan tai PDF

 

Huomaa: TIM toistaiseksi laskee vastauksen palautusajaksi sen hetken, kun tiedosto on onnistuneesti ladattu ja prosessoitu. Erityisesti suurten PDF-tiedostojen kohdalla prosessointiaika saattaa olla minuutin kertaluokkaa.

Mikäli käytät upload-tehtävätyyppiä sekä palautusajan rajoittamista, ota huomioon mahdollinen lataus- ja prosessointiajasta johtuva viive. Voit tarvittaessa käyttää answer_submit_time_tolerance-dokumenttiasetusta, jotta hieman yli palautusajan lähetettyä tehtävää ei merkitä epävalidiksi.

Tehtävätyyppiä upload ei kannata käyttää lyhyiden leipätekstivastausten (esim. ohjelmakoodinpätkät) palautukseen. Siihen soveltuvampi on type: text, ellet halua käyttää jotakin tarkempaa ohjelmointitehtävätyyppiä. Alla oleva toimii myös millä tahansa ohjelmatehtävätyypillä.

Tähänkin saa mahdollisuuden palauttaa tiedosto lisäämällä siihen attribuutti upload: true

``` {#teksti2 plugin="csPlugin"}
type: text
upload: true
uploadstem: Lataa tai raahaa tekstitiedosto tähän tai kirjoita tai kopioi se alle.
highlight:
placeholder: ""
stem: "Kerro tähän tietosi kissoista"
button: Tallenna
rows: 5
```
# teksti2

Kerro tähän tietosi kissoista

 

# settings

17. Dokumentin asetukset ja dokumenttikohtaiset tyylit

Dokumenttikohtaisia asetuksia pääsee muuttamaan Settings-lohkon kautta. Settings-lohkon saa näkyviin valitsemalla vasemmasta yläkulmasta rattaan kuvan ja siitä Edit Settings.

Täydellisempi lista dokumentin asetuksista löytyy dokumentista Dokumentin asetukset.

Lohkon muoto on esimerkiksi:

``` {settings=""}
auto_number_headings: 1
math_type: svg

global_plugin_attrs:
    csPlugin:
        stem: Kaikkien csPluginien yhteinen otsikko
        deadline: '2019-02-25 23:10:05'
    all:
        stem: Kaikkien pluginien yhteinen otsikko
css: |!!
body {
  background-color: lightgray;
}
!!
```

Huom! Edellä aika UTC:nä!

17.1 Dokumenttikohtaiset CSS-tyylit

Tässä luvussa kuvataan tyylien muuttamista CSS:ää muokkaamalla. Kannattaa kuitenkin tutustua myös ohjeeseen TIM ja tyylit, jossa neuvotaan miten voi käyttää hyväkseen "teemoja". Teemoja käyttäen saadaan paremmin yleistyviä ja ylläpidettäviä tyyliasetuksia.

Edellä olevalla css.attribuutilla voi säätää dokumenttikohtaisia ulkoasusta. css:-kohdan alle voi kirjoittaa mitä tahansa normaalia css-koodia eri elementtien ulkoasun säätämiseksi. global_plugin_attrs-kohtaan voi taas asettaa plugin-tyyppien mukaan oletusarvoja plugineille. Useimmiten tätä kohtaa ei tietysti ole, vaan säädetään esimerkiksi pelkästään dokumenttikohtaisia tyylejä.

Eli tyypillinen asetus voisi olla vaikkapa

``` {settings=""}
css: |!!
.huomautus {
  background-color: lightblue;
}
!!
```

Settings-lohkon lisäämisen tai muuttamisen jälkeen sivu pitää virkistää (refresh, F5), jotta asetukset tulevat voimaan.

Eri tyylejä on helpoin muokata selaimen omassa muokkaustilassa, esim. Chromessa F12 ja sitten jotakin dokumentin lohkoa klikataan hiiren oikealla ja Inspect element. Sitten kun saa muokattua mieleisensä tyylin, sen voi kopioida tuonne settings-lohkoon.

Mikäli tuntuu etteivät asetukset vaikuta mitään, tarkista Manage-tilassa ettei ennen settings -riviä ole varmasti mitään.

Lueteltujen listojen tyylin vaihtaminen katso esim: list-syle-type eli asetuksiin esim:

css: |!!
ol {
  list-style-type: upper-alpha;
}

Mikäli tekee dokumenttiin omia tyylejä ja halutaan tulostaa dokumentti laadukkaasti, pitää tehdä myös vastaava TeX-tyylit. Katso tästä lisää tulostusoppaasta.

Tyylejä voit opetalla myös HTML Cheat Sheetin avulla.

Seuraavassa videossa tehdään oma tyyli vain itseä varten. Dokumentti varten tyylin voi tehdä samalla tavalla, mutta tulos pastetaan asetusten css-lohkoon.

17.2 Makrot

Makrojen avulla voit kirjoittaa esimerkiksi jonkin jatkuvasti toistuvan tekstin asetuksiin ja siten viitata tähän tekstissä. Jos tätä vakiotekstiä pitää muuttaa, riittää silloin muuttaminen yhdessä paikassa. Jos sinulla on jo settings osa, niin täydennä makrot siihen, muuten luo settings-lohko (vasemman yläkulman rattaan kuvasta Edit settings):

``` {settings=""}
macros:
 vuosi: '2019'
```

Kun tekstissä tarvitset makron arvoa, kirjoita

Vuoden %%vuosi%% kurssilla...

jolloin tämän näkyy tekstissä esimerkiksi:

Vuoden 2019 kurssilla...

Makroja voidaan kirjoittaa myös lohkon texmacros alle. Silloin ne vaikuttavat vain TeX-tulostuksessa. Ominaisuudesta tarkemmin tulostuksen käyttöohjeessa.

# charmacros

17.3 Kirjainmakrot (charmacros)

Kirjainmakroilla saadaan yksi kirjain laajentumaan isommaksi alueeksi.

Jos asetuksiin laitetaan esimerkiksi

charmacros:
    £: "punta"
    USA$: "dollari"

jolloin kirjoittamalla

Englannin rahayksikkö on £ ja USAn USA$.

saadaan teksti:

Englannin rahayksikkö on punta ja USAn dollari.

Mikäli käytetään kirjainmakroja, on oltava huolellinen mitä kirjaimia sillä määritellään. Määrittelyn jälkeen vastaavia kirjaimia (tai yhdistelmiä) ei ole käytössä tavalliseen tarkoitukseen. Määriteltäväksi kannattaa valita sellaisia merkkejä tai merkkiyhdistelmiä (nimestä huolimatta määriteltävä symboli voi olla joukko merkkejä), joita tekstissä ei tarvita muualla.

Hätätilassa lohkon alkuun voi aina merkitä

#- {nomacros=true}

jolloin mitään makroja ei suoriteta ko. lohkossa ja voidaan vapaasti kirjoittaa kaikkia merkkejä.

Valmiita kirjainmakroja on esimerkiksi automaattisen numeroinnin tilassa:

charmacros:
    '{§':  '%%"'             # nimetyn laskurin alku
    '\§}': '"|c_tag%%'       # nimetyn laskurin loppu kun tarvitaan tag
    '§}':  '"|c_%%'          # nimetyn laskurin loppu
    §a:    '%%0|c_%%'        # autom. nimetty laskuri + anchor
    §n:    '%%0|c_n%%'       # autom. nimetty laskuri ei anchor
    §\:    '%%0|c_tag%%'     # autom. nimetty tag-laskuri (LaTeX)

17.3.1 Osoiteriviltä tulevat makrot (urlmacros)

Määrityksen macros lisäksi voidaan tehdä makroja, joiden arvo muuttuu sen mukaan, mitä tietoa tuodaan sivun osoiterivillä.

Esimerkiksi:

``` {settings=""}
urlmacros:
 group: ohj1s19r1
 field: d1
```

toimisi vastaavasti kuin tavallinenkin macros jos ei tehdä mitään muuta. Mutta jos sivun osoitteeseen lisätään:

?group=ohj1s19r2&field=d2

niin näitä käytetään makron arvoina. Toki käyttäjä harvoin haluaa osoiteriviä muutella, mutta itse dokumenttiin on nyt helppo tehdä linkkejä tyyliin:

[Syksy 19 ryhmä 1, demo 1](/view/kurssit/tie/ohj1?group=ohj1k19r1&field=d1)
[Syksy 19 ryhmä 2, demo 1](/view/kurssit/tie/ohj1?group=ohj1k19r2&field=d1)
[Syksy 19 ryhmä 2, demo 2](/view/kurssit/tie/ohj1?group=ohj1k19r2&field=d2)
[Syksy 19 ryhmä 3, demo 2](/view/kurssit/tie/ohj1?group=ohj1k19r3&field=d2)

jolloin varsinaista sivua ei välttämättä tarvitse tehdä erikseen eri ryhmille, vaan nyt ryhmä ja demokerran numerotietoa voidaan käyttää, jotta sivu näyttää erilaiselta.

Tätä ideaa voidaan vielä täydentää ottamalla syöttötieto dokumenttiin laitetuista kentistä (fields).

Muista rajoittaa silmukoihin tai luotavien olioiden määriin liittyvät URL-makrojen arvot!

# urllimits

Mikäli urlmacros käytetään niin, että siinä tuleva parametri määrittää jonkin silmukan koon tai luotavien kenttien tms määrän, on aina syytä käyttää macros-osaan kirjoittevia MIN ja MAX rajoittimia tyyliin:

``` {settings=""}
macros:
 MAXfields: 25 
 MINfields: 3 
urlmacros:
 fields: 10
```

Eli rajoitin alkaa sanalla MIN tai MAX ja sillä on sama nimen loppuosa kuin urlmacros-osassa olevan makron nimi on. Rajoitus tulee tehdä sen takia, että koska kuka tahansa käyttäjä voi kirjoittaa osoiteriville mitä tahansa, niin suojaudutaan jonkin verran mahdollisia väärinkäytöksiä vastaan. Rajoittimien arvoja ei saa sulkea missään tapauksessa lainausmerkkeihin, silloin ne eivät ole numeerisia arvoja. Mikäli pieni arvo (tai negatiivinen) ei voi aiheuttaa ongelmia, ei MIN-rajoitetta ole pakko antaa. Rajoittimia EI SAA kirjoittaa urlmacros-kohtaan, koska silloin käyttäjä voisi ohittaa ne.

Myöskään tehtäviin ei kannata tehdä muuttuvia osia urlmacron perusteella, sillä mikään ei takaa että osoiterivin parametrit olisivat vastaavalla tavalla seuraavalla kertaa ja tällöin tulee helposti ongelmia pistelaskun kanssa.

17.3.2 Makrojen täydentämisen estäminen

Koska % on erikoismerkki tekstissä, voi joskus joutua laittamaan lohkon alkuun eston sille ettei makroja käytetä:

#- {nomacros=true}

tai pluginien tapauksessa tyyliin:

``` {#ohjelmaesimerkki plugin="csPlugin" nomacros="true"}
# readymacros

17.3.3 Automaattisesti määritellyt makrot

Aina automaattisesti määriteltyjä makroja ovat seuraavat:

makro esimerkki
userid 0
username Anonymous
realname Anonymous user
useremail None
userfolder users/Anonymous
docid 63
docpath tim/TIM-ohjeet
docdir tim
doclang
docname TIM-ohjeet
doctitle TIM-ohjeet
loggedUsername Anonymous
host https://tim.jyu.fi
"" | now 28.3

Makro loggedUsername antaa aina selainta käyttävän henkilön tunnuksen. username antaa opettajan Teacher-näkymässä valitun opiskelijan tunnuksen. Tätä makroa on syytä käyttää niin, että lohko otsikossa on nocache=true tyyliin:

#- {nocache=true}

muuten arvoksi jää viimeisen muokkaajan tunnus.

Filtterin now käytöstä katso lisää satunnaistusdokumentista.

Samoin katso docid ja docpath filtterimuodosta lisää satunnaistusdokumentista.

Makro username korvataan käyttäjän tunnuksella ja realname käyttäjän koko nimellä.

Esimerkki: Tunnuksesi on %­%username%­% ja koko nimesi %­%realname%­%.

Esimerkki: Tunnuksesi on Anonymous ja koko nimesi Anonymous user.

Kyseisiä makroja EI voi korvata dokumentin asetuksissa omilla vakioarvoilla.

17.3.4 Lohkokohtainen makro

Lohkokohtaisesti voi tehdä vaikka silmukoita seuraavien ohjeiden mukaisesti:

Esimerkiksi taulukko:

nr Nimi Ikä Osoite
1 Aku 1 31 Paratiisitie 11
2 Aku 2 32 Paratiisitie 12
3 Aku 3 33 Paratiisitie 13

syntyisi koodilla:

|nr  | Nimi | Ikä | Osoite |
|------:|:-----|---------|:------:|
{% for i in [1,2,3] %}
| %%i%% | Aku %%i%% | %%i+30%% | Paratiisitie %%10+i%%  |
{% endfor %}

tai

|nr  | Nimi | Ikä | Osoite |
|------:|:-----|---------|:------:|
{% for i in range(1,4) %}
| %%i%% | Aku %%i%% | %%i+30%% | Paratiisitie %%10+i%%  |
{% endfor %}
# srange

17.3.5 srange-filtteri

Edellinen voitaisiin tehdä myös srange-filtterillä:

|nr     | Nimi  | Ikä  | Osoite |
|------:|:------|------|:------:|
%% '{0} |Aku {0}| {1}  | Paratiisitie {1} |\n' | srange(1,3,1,10) %%

Eli tehdään merkkijono, jossa paikat {0} korvataan juoksevilla luvuilla 1,2,3 (eli 1:stä 3:seen asti, 1:n välein) ja paikat {1} numeroilla 1+10, 2+10, 3+10.

Eli filtterillä srange voidaan tehdä aika helposti erilaisia toistuvia juoksevia merkkijonoja. Yksinkertaisin muoto srange-filtteristä on

%%'d{0}\n'|srange(1,4)%%

eli ensin kirjain d, sitten juokseva numero 1-4 ja kunkin jonon loppuun rivinvaihto (\n). Tämä tuottaisi tekstin:

d1
d2
d3
d4

Tätä voidaan käyttää hyväkseen aikanaan, kun esimerkiksi pitää tuottaa vaikka iso joukko demotehtävien nimiä lomakkeita varten.

# srangekoe

Tehtävä: Kokeile srange-filtteriä

Kokeile muokkailla srange-filtteriä ja jonoa. Parametrit:

1. aloitusarvo
2. lopetusarvo
3. askeleen pituus
4. lisättävä luku
5. kerroin jolla askel kerrotaan eli {1} = kerroin*askel + lisättävä
6. kuten 4.
7. kuten 5.  6 ja 7 ovat kuten 4 ja 5 mutta arvo menee  {2}

Kokeile srangen käyttöä

 

17.3.6 Lohkokohtaiset muuttujat

Lohkokohtaisesti voi tehdä muuttujia tyyliin:

{% set summa = '175 €' %}
Laskun summa oli %%summa%%.  Toki %%summa%% on ihan liikaa!

Josta tulee:

Laskun summa oli 175 €. Toki 175 € on ihan liikaa!

Myös laskuja voi tehdä:

{% set a = 5 %}
{% set b = 6 %}
Jos suorakulmaisessa kolmiossa on a = %%a%% ja b = %%b%%,\
niin kolmion ala = %%a*b/2%% ja hyptenuussan neliö = %%a**2+b**2%%.

Josta tulee:

Jos suorakulmaisessa kolmiossa on a = 5 ja b = 6,
niin kolmion ala = 15.0 ja hyptenuussan neliö = 61.

17.3.7 Satunnainen muuttuja

Satunnaisluku

{% set arpa = [1,2,3,4,5,6] | random %}
Arvanheitosta tuli: %%arpa%%.

Josta tulee:

Arvanheitosta tuli: 1.

Sisällön arpomiseen erityisesti tehtäviä varten on kuitenkin oma mekanisminsa: Satunnaistus, jota kannattaa käyttää, koska tällöin otetaan huomioon se, että sivut toimivat oikein henkilön eri käyttökerroilla.

# local

17.3.8 Lohkokohtaiset muuttujat LOCAL-lohkolla

Lohkokohtaisia muuttujia voidaan esitellä myös YAML-syntaksilla käyttäen LOCAL-lohkoa. Tästä enemmän satunnaistusdokumentissa.

{!!!LOCAL
a: 5
b: 6
!!!}
Jos suorakulmaisessa kolmiossa on a = %%a%% ja b = %%b%%,\
niin kolmion ala = %%a*b/2%% ja hyptenuussan neliö = %%a**2+b**2%%.

Josta tulee:

Jos suorakulmaisessa kolmiossa on a = 5 ja b = 6,
niin kolmion ala = 15.0 ja hyptenuussan neliö = 61.

17.3.9 Globaalit makrot

Tarvittaessa Jinja2 -makroja voidaan esitellä myös globaalisti. Käytännössä tämä tekee sen, että globaali lohko kopioidaan aina lokaalin lohkon alkuun. Tästä kerrotaan enemmän satunnaistusdokumentissa.

# autonumber

17.4 Otsikoiden automaattinumerointi

Asetuksissa (ratas + Muokkaa asetuksia) voi määrittää dokumentin otsikoille automaattinumeroinnin. Oletustyylisen numeroinnin saa käyttöön auto_number_headings-määreellä:

``` {settings=""}
auto_number_headings: 1
```

Oletusnumeroinnissa päälukujen numeroihin lisätään piste (esim. 1. Johdanto) ja muiden tasojen numeron loppuun ei (esim. 1.2 Taustaa).

Numerointilogiikkaa voi säätää tasokohtaisesti heading_format-määreellä. Oletustyylin asetus näyttää seuraavalta:

heading_format:
  1: '{h1}. {text}'
  2: '{h1}.{h2} {text}'
  3: '{h1}.{h2}.{h3} {text}'
  4: '{h1}.{h2}.{h3}.{h4} {text}'
  5: '{h1}.{h2}.{h3}.{h4}.{h5} {text}'
  6: '{h1}.{h2}.{h3}.{h4}.{h5}.{h6} {text}'

Tässä siis muuttuja {hx} tarkoittaa tason x nykyistä numeroa ja muuttuja {text} tarkoittaa otsikossa olevaa tekstiä. Formaatissa ei ole pakko käyttää kaikkia muuttujia. Mitään ylimääräisiä muuttujia ei saa käyttää.

Eli esimerkiksi jos haluaa ettei 1. tason otsikon jälkeen ole pistettä, voi lisätä uuden määritelyn vain 1. tasolle:

auto_number_headings: 1
heading_format:
  1: '{h1} {text}'

Jos haluat, että jokin otsikko ei tule numerointiin mukaan, sille voi antaa nonumber-määreen:

# Otsikko ilman numeroa {.nonumber}

Jos haluaa esimerkiksi niin, että numerointi koskee vain 2. tason ja sitä alempia otsikoita, voi laittaa:

auto_number_headings: 2

joka asettaa otsikoiden muotoilun oletuksen:

heading_format:
  1: '{text}'
  2: '{h2}. {text}'
  3: '{h2}.{h3} {text}'
  4: '{h2}.{h3}.{h4} {text}'
  5: '{h2}.{h3}.{h4}.{h5} {text}'
  6: '{h2}.{h3}.{h4}.{h5}.{h6} {text}'

Vastaavasti toimii tasot 3 ja 4.

Numeroinnin voi laittaa tekstin jälkeenkin ja voi lisätä vakio-otsikon tyyliin:

auto_number_headings: true
heading_format:
  ... 
  2: 'Kysymys: {text}? {h2}.'
  ...

Ottamatta kantaa onko esimerkissä järkeä, rivistä

## Onko kissat vihreitä

tulisi otsikkoteksti

Kysymys: Onko kissat vihreitä? 1.

Jos esimerkiksi dokumentti on jaettu useisiin osiin, voidaan haluta kunkin osan numerointi aloittaa jatkumaan edellisestä Tällöin dokumentin numeroinnin voi pakottaa alkamaan halutusta luvusta asetuksien attribuutilla:

auto_number_start: -1

Edellinen asetus pakottaisi pääotsikon numeroinnin alkamaan 0:sta, sillä arvoksi annetaan luku, jota kasvatetaan yhdellä ensimmäisen numeron kohdalla (oletusarvo on siis 0).

auto_number_start hyväksyy tasokohtaiset numeroinnit. Esimerkiksi

auto_number_start:
  1: 1
  2: -1

Aloittaa pääotsikon numeroinnin 2:sta ja toisen tason otsikon 0:sta.

17.5 Muiden elementtien automaattinumerointi

Kaavojen, kuvien, taulukoiden ja minkä tahansa muun asian numerointi voi tehdä luomalla automaattinen laskuri.

Automaattisen numeroinnin laajat ohjeet löytyvät omasta dokumentista:

Automaattinen numerointi

17.6 Yhteenveto tehtävistä

Asetuksella

show_task_summary: true

käyttäjälle näytetään dokumentin alussa yhteenveto hänen tekemiensä tehtävien yhteispisteistä ja tehtävien määrästä.

# erikoisvalimerkit

17.7 Erikoisvälimerkkien (lainausmerkki, ajatusviiva) kirjoittaminen ja korvaaminen

Riippuen dokumentin tarkoituksesta ja käytettävästä kielestä, saattaa tulla tarve käyttää ajatusviivoja (– ja —), kaksisuuntaisia lainausmerkkejä (“ ja ”) taikka pistekolmikkoa (…). Nämä merkit voi lisätä tekstiin käyttämällä käyttöjärjestelmäkohtaisia pikanäppäimiä. Esimerkiksi ajatusviivan saa seuraavasti:

  • Windows: Win + 0150 ja Win + 0151 (Numpad-näppäimistö)
  • macOS: ⌥ Option + - + - ja ⌥ Option + -

Jos on tarkoitus käyttää erikoisvälimerkkejä usein, dokumentin asetuksiin voi laittaa seuraavan asetuksen:

smart_punct: true

Tämä asetus muuttaa "tavalliset" näppäimistöllä kirjoitettavat merkit seuraavasti:

Merkki TIMin tuloste Esimerkki
" tai "test" -> “teksti”
' tai 'teksti' -> ‘teksti’
-- Ollaanko -- vai eikö? -> Ollaanko – vai eikö?
--- Ollaanko --- vai eikö? -> Ollaanko — vai eikö?
... Teksti... -> Teksti…

Asetus on käytettävissä myös lohkokohtaisesti:

# smartpunct-esimerkki

Tehtävä: Kokeile show_punct -asetusta lohkokohtaisesti

Kokeile, miltä sama Markdown-teksti näyttää kahdessa eri lohkossa.

#-{smart_punct="true"}
`smart_punct="true"`

"Tämä on teksti", hän sanoi -- epäröiden...

#-{smart_punct="false"}

`smart_punct="false"`

"Tämä on teksti", hän sanoi -- epäröiden...

 

# minimal

17.8 Minimaalinen ulkoasu

Joissakin tilanteissa voi olla hyvä, että käyttäjälle ei näytetä kaikkia TIMin elementtejä (esim. ei ole näkyvissä yhtään linkkiä, jolla hän voi eksyä väärälle sivulle). Tällöin voi käyttää yhtä useasta minimaalisen ulkoasun tilasta.

Tällä hetkellä tuetaan seuraavat ulkoasuasetukset:

  • hide_links -- piilottaa linkit
  • hide_top_buttons -- piilottaa yläpalkin (logot, hakupainike ja linkit)
  • pars_only -- piilottaa kaikki elementit paitsi tekstin ja kirjautumispainikkeen
  • exam_mode -- piilottaa tentin kannalta yleisesti tarpeettomat elementit

Esimerkiksi jos haluaa piilottaa linkit, voi laittaa asetuksiin rivin

hide_links: view

mikä tarkoittaa, että view-käyttöoikeudella olevilta piilotetaan näkyvistä kaikki ylimääräiset linkit.

Asetukset voi yhdistellä eri tavalla saadakseen haluttu ulkoasu dokumentille.

Alla vielä selostusta siitä, miten jokainen asetus vaikuttaa ulkoasuun.

17.8.1 Linkkien piilotus

Linkit voidaan piilottaa hide_links-asetuksella. Siinä tapauksessa ainoastaan dokumenttiin itse lisätyt linkit toimivat.

Minimaalinen ulkoasu hide_links-asetuksella
Minimaalinen ulkoasu hide_links-asetuksella

17.8.2 Yläpalkin piilotus

Yläpalkki voidaan piilottaa hide_top_buttons-asetuksella. Siinä tapauksessa TIMin logot, hakupainike ja näkymälinkit piilotetaan.

Yläpalkin piilotus hide_top_buttons-asetuksella
Yläpalkin piilotus hide_top_buttons-asetuksella

17.8.3 Puhdas teksti -näkymä

Kaikki elementit voidaan piilottaa pars_only-asetuksella. Siinä piilotetaan kaikki elementit paitsi tekstit ja pluginit.

Kaikkien elementtien piilotus pars_only-asetuksella
Kaikkien elementtien piilotus pars_only-asetuksella
# exammode

17.8.4 Tenttinäkymä

Asetus esimerkiksi:

exam_mode: view

Tenttinäkymässä (exam_mode-asetus) piilotetaan kaikki tentin kannalta turhat osat. Tarkemmin

  • Sivupalkista piilotetaan kaikki paitsi sisällysluettelo (jos sitä on).
  • Yläpalkista piilotetaan linkit sekä hakupainike. Logot ovat näkyvissä.
  • Käyttäjävalikosta piilotetaan kaikki valinnat paitsi "Kirjaudu ulos"-toiminto.
  • Tekstin editointiasetukset (sininen palkki) ja kommentointipainike piilotetaan.
  • Sivun pohjateksti (ns. footer) piilotetaan myös.
  • Kun käyttäjä avaa dokumentin ensimmäistä kertaa, koko dokumentti merkataan luetuksi. Tällöin lukumerkinnät eivät näy ensimmäisellä lukukerralla. Jos dokumenttiin tehdään muutoksia, ne ilmestyvät käyttäjälle näkyviin.
Tenttien kannalta turhien elementtien piilotus exam_mode-asetuksella
Tenttien kannalta turhien elementtien piilotus exam_mode-asetuksella

17.8.5 Näkyvyyden hienosäätöä sekä muuta huomioitavaa

Edellisiä asetuksia käyttäessä on huomattava, että asetuksella view, näkyy kaikki dokumentin muokkaajalle.

Muita asetuksia ovat:

edit
teacher
answer

Jos halutaan poistaa ihan kaikki "ylimääräinen", voidaan tämä tehdä laittamalla asetuksiin:

``` {settings=""}
hide_links: view
css: |!!
.readline, .areareadline {
    width: 0em;
    height: 100%;
    border-right: 0px solid;
    border-color: #F60;
}

.readsection {
    visibility: hidden;
}

.siteheader {
    visibility: hidden;
}

.left-fixed-side {
    visibility: hidden;
}
!!
```

Haittana tässä on se, että muutos vaikuttaa kaikkiin käyttäjiin ja myös muokkaaja menettää menut yms. Kaikkia tyylejä ei toki ole tuosta pakko käyttää.

# taskgroups

17.9 Tehtävien ryhmittely ja pisteiden laskenta

Sivulla tehtävistä muodostuvat pisteet näkyvät opiskelijalle kun laitetaan asetus:

show_task_summary: true

Mikäli alla mainittuja ryhmittelyjä ei käytetä, niin tällöin näytetään kaikki pisteet.

17.9.1 Yksinkertainen ryhmittely

Dokumentissa olevat tehtävät voi tarvittaessa ryhmitellä isompiin kokonaisuuksiin. Jos esimerkiksi halutaan ryhmitellä kaikki t1-, t2- ja t3-alkuiset tehtävät omiin ryhmiinsä sekä laskea vain kahden parhaan tehtäväryhmän tulos, niin dokumentin asetuksiin voi lisätä point_sum_rule-kentän:

point_sum_rule:
 groups:
  t1: t1.*
  t2: t2.*
  t3: t3.*
 count:
  best: 2

Tässä groups-kentän alla määritellään kunkin tehtäväryhmän nimi ja säännöllinen lauseke, jota vastaavat tehtävät otetaan ryhmään mukaan. Kentän count alla määritellään pistelaskutapa. Voidaan laskea joko \(n\) kpl parasta tehtäväryhmää (best) tai \(n\) huonointa (worst).

17.9.2 Ryhmien luetteleminen

Ryhmiin kuuluvat tehtävät voi myös luetella yksitellen. Lisäksi kunkin ryhmän kohdalla voi määrittää, lasketaanko kyseisen ryhmän pisteet tehtäväpisteistä (t), viimeisimmän vastauksen velppipisteistä (v) vai molemmista (vt):

point_sum_rule:
    groups:
     t1:
      match: t1.*
      type: v
     t2:
      min_points: -2
      max_points: 5
      match:
       - t2a
       - t2b
      type: t

Edellä on annettu vielä yhteen ryhmään oletuksista poikkeavat minimit ja maksimit. Oletukset olisivat että minimi on 0 ja maksimi ääretön.

17.9.3 Päällekkäin menevät ryhmät

Jos tehtävien ryhmät menevät päällekkäin, niin Total points näyttää liikaa, koska se oletuksena laskee ryhmien pisteet yhteen. Silloin voi itse tehdä yhden ryhmittelijän, esim kaikki:

point_sum_rule:
    total: [kaikki]
    hide: [kaikki]
    sort: false
    count_all: true
    groups:
        kaikki:
          match: 
            - .*
        tauno:  
          match: 
            - kaannataulukko
            - vaihdajokatoinen
        ...
        

jolla sanoo mitkä tehtävät lasketaan kokonaissummaan. Sitten attribuutilla:

total: [lista ryhmistä pilkulla eroteltuna]

kerrotaan mitkä ryhmät summataan yhteispisteisiin (TODO: tällä hetkellä lasketaan aina ensimmäinen ryhmä riippumatta total-attribuutin sisällöstä). Yleensä riittää yksi ryhmä. Attribuutilla hide voidaan kertoa mitkä ryhmät jätetään näyttämättä käytäjälle. Edellä esim. kaikki olisi turha näyttää kun siinä on sama tieto kuin Total sum.

Attribuutilla sort (oletus: true) määritellään lajitellaanko ryhmä aakkosjärjestykseen vai ei. Attribuutti count_all (oletus: false) määrää näytetään tehtävien määräksi ryhmien määrä vaiko kaikkien tehtävien riippumatta ryhmistä (tämä näytetään myös mikäli point_sum_rule puuttuu kokonaan). Tehtäviksi lasketaan kaikki pluginit, joissa on #nimi.

Edellisten asetusten jälkeen käyttälle näkyisi:

Task Summary Total points: 3.5 (tauno: 0.5, tahti: 1.0, perus: 2.0), total tasks: 3 / 6

Esimerkki monimutkaisemmasta määrittelystä:

point_sum_rule:
    breaklines: true
    force: true
    linktext: ">mene"
    groups:
        T1p:
         match: t1p.*
         type: t
         expl: "{1:.2f}/1.00 = Tehtävä 1. Funktiot, pitäisi tulla - osuus"
         link: "#t1p1a"
        T1t:
         match: t1vaali 
         type: t
         expl: "{1:.2f}/2.00 = Tehtävä 1. Funktiot, ohjelmaosuus"
         link: "#t1vaali "
        T2p:
         match: t2p.*
         type: t
         expl: "{1:.2f}/1.00 = Tehtävä 2. Funktiot, pitäisi tulla - osuus"
         link: "#t2p1a"
        T2t:
         match: t2vaali
         type: t
         expl: "{1:.2f}/3.00 = Tehtävä 2. Funktiot, ohjelmaosuus"
         link: "#t2vaali"

Tässä:

  • breaklines = pakottaa kunkin ryhmän tekstin omalle rivilleen
  • force = näyttää ryhmittelyn vaikka ei olisi yhtään pistettä
  • 'linktext:' = jos ryhmälle on annettu linkki, näytetään se tällä tekstillä. Jokaisella ryhmälle voidaan määritellä omakin linkkiteksti
  • expl = selitys, jonka perusteella ryhmä näytetään. {n} ovat paikkoja tulostettaville asioille:
    • {0} = ryhmän nimi
    • {1} = ryhmän kokonaissumma
    • {2} = ryhmän tehtävien summa
    • {3} = ryhmän velp-merkintöjen summa
  • link = paikka mihin hypätään kun linkkitekstiä painetaan

Tällä saadaan seuraavanlainen sivun alku:

# breaklinesgroup

17.9.4 Ryhmien tulostaminen eri riveille

Esimerkki monimutkaisemmasta määrittelystä:

point_sum_rule:
    breaklines: true
    force: true
    linktext: ">mene"
    groups:
        T1p:
         match: t1p.*
         type: t
         expl: "{1:.2f}/1.00 = Tehtävä 1. Funktiot, pitäisi tulla - osuus"
         link: "#t1p1a"
        T1t:
         match: t1vaali 
         type: t
         expl: "{1:.2f}/2.00 = Tehtävä 1. Funktiot, ohjelmaosuus"
         link: "#t1vaali "
        T2p:
         match: t2p.*
         type: t
         expl: "{1:.2f}/1.00 = Tehtävä 2. Funktiot, pitäisi tulla - osuus"
         link: "#t2p1a"
        T2t:
         match: t2vaali
         type: t
         expl: "{1:.2f}/3.00 = Tehtävä 2. Funktiot, ohjelmaosuus"
         link: "#t2vaali"

Tässä:

  • breaklines = pakottaa kunkin ryhmän tekstin omalle rivilleen
  • force = näyttää ryhmittelyn vaikka ei olisi yhtään pistettä
  • 'linktext:` = jos ryhmälle on annettu linkki, näytetään se tällä tekstillä. Jokaisella ryhmälle voidaan määritellä omakin linkkiteksti
  • expl = selitys, jonka perusteella ryhmä näytetään. {n} ovat paikkoja tulostettaville asioille:
    • {0} = ryhmän nimi
    • {1} = ryhmän kokonaissumma
    • {2} = ryhmän tehtävien summa
    • {3} = ryhmän velp-merkintöjen summa Tulostuksen muotoilu käyttäen Pythonin sääntöjä. Edellä {1:.2f} tarkoittaa että ryhmän kokonaissumma tulostuu tähän 2:lla desimaalilla.
  • link = paikka mihin hypätään kun linkkitekstiä painetaan

Tällä saadaan seuraavanlainen sivun alku silloin kun tehtäviä ei vielä ole aloitettu tekemään:

Task Summary Total points: 0
0.00/1.00 = Tehtävä 1. Funktiot, pitäisi tulla - osuus >mene
0.00/2.00 = Tehtävä 1. Funktiot, ohjelmaosuus >mene
0.00/1.00 = Tehtävä 2. Funktiot, pitäisi tulla - osuus >mene
0.00/3.00 = Tehtävä 2. Funktiot, ohjelmaosuus >mene
total tasks: 0 / 4

# privatecomments

17.10 Julkisten kommenttien kieltäminen

Esimerkiksi tenttidokumenteissa voi olla tarpeellista kieltää julkiset kommentit, mikä onnistuu asetuksella

comments: private

jolloin vain yksityisten (eli vain itselle näkyvien) kommenttien lähettäminen on sallittua.

17.11 Dokumenttiin tulevien muutosten seuranta

Mikäli dokumentista on klikkailtu pois punaiset oikean reunan palkit, nähdään uudet dokumenttiin tulleet lohkot punaisilla palkeilla ja muuttuneet keltaisilla palkeilla. Dokumentin omistaja voi katsoa muutokset Manage-sivulta.

17.11.1 Muutoksista tulevat viestit

Mikäli haluaa seurata enemmän reaaliajassa milloin dokumenti muuttuu tai siihen tulee uusia kommentteja, voi Manage-sivulla ruksia mistä muutoksista haluaa viestejä itselleen.

Näitä muutosviestejä kannattaa pyytää erityisesti keskustelutyyppisistä dokumenteista tai dokmenteista, joihin on antanut muille muokkausoikeuden ja haluaa tarkkailla että muutokset ovat sellaisia, joita voi hyväksyä.

# dirchange

17.11.2 Muutosviestien pyytäminen useammalle dokumentille kerralla

Mikäli viestejä haluaa useammista eri dokumenteista, voi käydä ruksimassa vastaavan hakemiston Manage-sivulta että mitä viestejä haluaa. Hakemistolle laitetut muutosviestit tulevat kaikista hakemiston muuttuneista dokumenteista, myös hakemiston alihakemistosta.

17.11.3 Liikojen muutosviestien estäminen

Joskus hakemistolle annettu muutosviestipyyntö voi johtaa melkoiseen viestitulvaan. Erityisesti opettajilla, jotka pyytävät opiskelijoita tekemään tehtäviä johonkin tiettyyn hakemistoon, jonka ylähakemistossa on muutosviestipyyntö.

Omista asetuksistaan (Rattaankuva/Customize TIM) voi käydä katsomassa mistä kaikista dokumenteista muutosviestejä on tulossa. Listan lopussa on syöttökenttä Exclusion list, johon voi ilmoittaa ehdon, jota verrataan dokumentin koko nimeen (sisältäen siis myös sen hakemiston nimen) ja jos ehto täyttyy, niin dokumentin muutoksesta ei lähetetä viestiä.

# preamble

18. Johdantodokumentti

Joskus samassa hakemistossa oleville dokumenteille halutaan antaa samoja asetuksia. Lisäksi dokumenttien alkuun voidaan haluta samantyyliset alkukappaleet, kuten tietynlainen otsikko ja/tai linkkilista muihin dokumentteihin.

Oletetaan, että edellä mainittua halutaan soveltaa dokumenteille

  • users/matti/demot/d1
  • users/matti/demot/d2
  • users/matti/demot/d3

Luo tällöin uusi dokumentti preamble, jonka polku on

users/matti/demot/templates/preambles/preamble

Kyseisen dokumentin lyhytnimi on siis oltava preamble ja sen täytyy sijaita hakemistossa templates/preambles suhteessa niihin dokumentteihin, joihin kyseistä johdantodokumenttia halutaan käyttää. Sen otsikko (title) voi olla mitä tahansa.

Tällöin kaikki asetukset, joita preamble-dokumenttiin lisätään, periytyy myös dokumenteille d1, d2 ja d3. Vastaavasti preamble-dokumentin sisältö lisätään automaattisesti kunkin dokumentin alkuun.

Huomaa, että voit käyttää johdantodokumentissa sellaisiakin makroja, joita ei määritellä johdantodokumentin asetuksissa vaan vasta varsinaisissa dokumenteissa d1, d2 ja d3. Tällä tavalla voit käyttää johdantodokumenttia ikään kuin muottina.

Jos dokumenteista d1, d2 ja d3 on erikielisiä käännöksiä, voit tehdä myös johdantodokumentista vastaavat käännökset ja niitä käytetään automaattisesti vastaavissa kieliversioissa. Johdantodokumentin kielitunnisteiden on tietenkin vastattava dokumenttien d1, d2 ja d3 tunnisteita.

Johdantodokumentit vaikuttavat myös alihakemistoihin. Jos siis johdantodokumentti

users/matti/templates/preambles/preamble

on olemassa, niin sen sisältö ja asetukset haetaan ennen demot-hakemiston johdantodokumenttia, kun dokumenttia d1, d2 tai d3 esitetään.

18.1 Johdantodokumentin sivuuttaminen tai vaihtaminen

Jos johonkin dokumenttiin ei halua johdantodokumentin vaikutusta, sen asetuksiin voi lisätä:

preamble:

eli määrittää preamble-kohdan ja jättää sen tyhjäksi.

Hakemiston templates dokumentteihin ei koskaan käytetä johdantodokumentteja.

Samalla asetuksella voit määrittää haettavan johdantodokumentin lyhytnimen. Esimerkiksi jos laitettaisiin dokumenttiin d1 asetus

preamble: alku

niin silloin johdantodokumentteja etsittäisiin poluista

templates/preambles/alku
users/templates/preambles/alku
users/matti/templates/preambles/alku
users/matti/demot/templates/preambles/alku

18.1.1 Useamman johdantodokumentin yhdistäminen

Voit määrittää dokumentille tarvittaessa useita johdantodokumentteja. Tällöin niiden nimet erotetaan pilkuilla, esim.

preamble: preamble,chat

jolloin johdantodokumentteja etsittäisiin dokumentin d1 tapauksessa seuraavasti:

templates/preambles/preamble
templates/preambles/chat
users/templates/preambles/preamble
users/templates/preambles/chat
users/matti/templates/preambles/preamble
users/matti/templates/preambles/chat
users/matti/demot/templates/preambles/preamble
users/matti/demot/templates/preambles/chat

Järjestyksellä siis on väliä, eli preamble,chat on eri kuin chat,preamble.

Oletus johdantodokumentin lyhytnimelle on aina preamble. Huomaa, että tätä asetusta ei voi määrittää itse johdantodokumenteissa, vaan sen on aina oltava dokumentissa itsessään.

18.1.2 Johdantodokumentin absoluuttinen polku

Voit määrittää johdantodokumentin nimen sijaan sen absoluuttisen polun. Vaatimukset:

  • Johdantodokumentti on preambles-kansiossa (itse kansion sijainnilla ei merkitystä)
  • preamble-asetukseen kirjoitetaan koko dokumentin polku. Polun alkuun pitää laittaa /-merkki

Esimerkiksi:

preamble: /users/matti/templates/preambles/preamble

Hakee johdantodokumentin aina users/matti/templates/preambles/preamble-dokumentista. Kuten suhteellisten polkujen kanssa, myös absoluuttisten polkujen tapauksessa johdantodokumentit etsitään kaikista yläpoluista. Esimerkissä

preambles/preamble
templates/preambles/preamble
matti/templates/preambles/preamble
users/matti/templates/preambles/preamble

18.1.3 Lyhytnimen ja absoluuttisen polun yhdistäminen

Useamman johdantodokumentin tapauksessa näytetään ensin lyhytnimet pilkulla erotellun listan kuvaamassa järjestyksessä, minkä jälkeen näytetään absoluuttisessa polussa sijaitsevat johdantodokumentit. Esimerkiksi

preamble: preamble,chat,/users/matti/templates/preambles/preamble

asetuksella näytetään johdantodokumentit järjestyksessä

templates/preambles/preamble
templates/preambles/chat
users/templates/preambles/preamble
users/templates/preambles/chat
users/matti/templates/preambles/preamble
users/matti/templates/preambles/chat
users/matti/demot/templates/preambles/preamble
users/matti/demot/templates/preambles/chat
preambles/preamble
matti/templates/preambles/preamble

Johdantodokumentti näytetään vain kerran ja lyhytnimet käsitellään aina ensin.

18.1.4 Muista monirivisiin asetuksiin tarvittaessa append-lisäys

Jos preamble-dokumentti sisältää esimerkiksi css-määrityksiä ja niitä halutaan lisätä jossakin dokumentissa, pitää laittaa append-määre:

```
css: |!! a
   h1 { color: red; }
!!
```

18.2 Rajoitteita

Johdantodokumenteissa on toistaiseksi muutama rajoite, jotka on otettava huomioon.

18.2.1 Lohkotunnisteiden yksikäsitteisyys

Johdantodokumenttien lohkotunnisteiden on oltava keskenään erilaisia eikä myöskään varsinaisessa dokumentissa saa esiintyä samoja lohkotunnisteita kuin johdantodokumenteissa. Jos näin käy, tulee dokumenttia näytettäessä varoitus.

Yleensä TIM luo lohkotunnisteet automaattisesti ja tästä ei tule ongelmaa. Ongelma saattaa sattua silloin, jos manage-näkymästä kopioi ja liittää tekstiä niin, että lähde ja/tai kohde on johdantodokumentti.

18.2.2 Useampi alias tuottaa ongelmia

Jos

  • dokumentilla on yksi tai useampi johdantodokumentti,
  • dokumentilla on enemmän kuin yksi alias ja
  • aliakset sijaitsevat eri hakemistoissa

niin silloin johdantodokumentit eivät kyseisen dokumentin osalta toimi kunnolla.

# editor_templates

19. Editorin tekstipohjat

Dokumentin asetuksiin voidaan lisätä attribuutti editor_templates, jolla editoriin voidaan luoda uusia vakiotekstejä tuottavia menuvalintoja.

Syntaksi:

editor_templates:
   editor_tabs:
     - text: UUDEN TABIN TEKSTI
       items:
          - text: UUSI MENU OTSIKKO
            items:
              - data: ALAMENUSTA TULEVA TEKSTI
                text: UUSI ALAMENUN OTSIKKO (ei pakollinen)
                expl: TOIMINNON SELITYS (ei pakollinen)

Kukin tekstikohta voi toistua useita kertoja ja näin voidaan luoda niin monta uutta välilehteä kuin halutaan ja kuhunkin niin monta menukohtaa ja vastaavasti alamenukohtaa kuin halutaan. Voidaan käyttää myös olemassa olevien välilehtien nimiä, jotta voidaan lisätä toimintoja olemassa oleviin välilehtiin tai niiden menuihin. Laittamalla asetus johdantodokumenttiin voidaan toimintoja lisätä kaikkiin vastaavassa hakemistossa oleviin dokumentteihin.

Esimerkiksi seuraava koodi:

``` {settings=""}
editor_templates:
 editor_tabs:
   - text: Elukat
     items: 
     - text: Kissat
       items:    
        - text: Kotikissa
          data: Kissa
          expl: Tavallinen kotikissa
        - text: Tiikeri
          data: Viirullinen tiikeri
          expl: Viidakossa elävä tiikeri
     - text: Koirat
       items:    
        - text: Saksan pk
          data: Saksan paimenkoira
          expl: Saksaanpaimenkoira, jotkut sanovat myös susikoiraksi
        - text: Pystykorva
          data: Suomen pystykorva
          expl: Kansalliskoira
```

tuottaisi editoriin uudet tekstipohjat:

Esimerkki uusista tekstipohjista
Esimerkki uusista tekstipohjista

Jos haluat kursorin johonkin kohti, niin laita data-attribuutissa siihen kohti merkki:

Jos tarvitaan useita rivejä jostakin templatesta, niin voidaan käyttää monirivistä TIMin YAML-laajennosta tyyliin:

          data: Suomen pystykorva

tilalle:

          data: |!!
Suomen pystykorva
on kova koira haukkumaan
!!
# reference

20. Toisen TIM-dokumentin lohkon lainaaminen

  • viite (reference) on tekniikka, jossa "lainataan" sisältöä toisesta kohtaa samaan tai eri dokumenttiin.

Tätä voi käyttää esim siten, että saa saman alkuosan jokaisen dokumentin alkuun. Kurssien tapauksessa tämä voi olla esimerkiksi linkkilista kurssin tärkeimmille sivuille.

Samoin toimintoa voidaan käyttää jos on toinen dokumentti, jossa pitää toistaa täsmälleen samaa tekstiä kuin toisessa dokumentissa ja halutaan ylläpitää tekstiä vain yhdessä dokumentissa.

Alla olevissa ohjeissa käytetään termejä lähdedokumentti ja kohdedokumentti. Vaikka ne usein ovat eri dokumentteja, voi kohdedokumentti toki olla samakin kuin lähdedokumentti. Eli jos samaa tekstiä tarvitaan dokumentin sisällä useassa eri kohtaa, voidaan valita joko niin, että muissa kohdissa linkitetään alkuperäiseen kohtaan normaalilla linkillä tai sitten muihin kohtiin kopioidaan viite alkuperäiseen tekstiin, jolloin teksti näkyy siinä kohti ilman käyttäjän erillisiä toimenpiteitä.

20.1 Yhteisen alkuosan tekeminen

Tee ensin uusi dokumentti, jossa on haluamasi yhteinen alkuosa, esimerkiksi dokumentti jonka nimi on alkulinkit ja sisältönä vaikkapa:

[Koti 2016](/view/kurssit/tie/ohj2/2016k/koti) 
[Luennot](/view/kurssit/tie/ohj2/2016k/luentojen-aiheet) 
[Ohjaukset](https://trac.cc.jyu.fi/projects/ohj2/wiki/2016/paate) 
[Harjoitustyö](https://trac.cc.jyu.fi/projects/ohj2/wiki/harjoitustyo) 
[Yleinen](/view/kurssit/tie/ohj2/yleinen) 
[Moniste](/view/2)
[Demot](https://trac.cc.jyu.fi/projects/ohj2/wiki/2016/demot): 

joka näyttäisi siis seuraavalta:

HUOM! Edellisestä esimerkistä kannattaa oppia idea, mutta tuollainen menumainen sisältö kannattaa nykyisin tehdä oikeilla menuilla.

20.2 Lohkon kopioiminen toiseen dokumenttiin

Lohkon kopioiminen toiseen dokumenttiin kopiona tai viitteenä onnistuu helpoimmin kun aukaisee laajennetun muokkausmenun.

  1. avaa lähdedokumentti ja kohdedokumentti eri välilehtiin tai selaimen ikkunoihin

  2. valitse kopioitava lohko lähdedokumentista

  3. avaa normaali muokkausemenu vasemmasta reunasta
    Image

  4. menun alareunassa on kynän kuva jota painamalla aukeaa laajempi muokkausmenu
    Image

  5. valitse sieltä Copy paragraph

  6. siirry kohdedokumenttiin oikean lohkon kohdalle

  7. aukaise tässäkin laajennettu muokkausmenu

  8. valiste sieltä Paste...

  9. aukeaa vaihtoehtoja lohkon kopiointiin:
    Image

  10. Valitse kombinaatiosta oikea:

    • Above: liittää valitun lohkon yläpuolelle
    • Below: liittää valitun lohkon alapuolelle
    • as a reference: liittää viitteenä niin, että jos alkuperäinen lohko muuttuu, muuttuu tämäkin lohko
    • as content: tekee tavallisen kopion, jolloin alkuperäisen lohkon muuttuminen ei vaikuta tähän lohkoon

20.3 Usean lohkon kopioiminen toiseen dokumenttiin

Toimitaan muuten samoin kuin edellä, mutta valitaan ensin lähdedokumentissa alue. Alue voidaan valita kun laajennetusta muokkausmenusta otetaan ensimmäisen lohkon kohdalle Start selecting area. Tämän jälkeen siirrytään viimeisen lohkon kohdalle ja valitaan muokkausmenun tilalle aukeavasta aluemenusta

Aluemenu
Aluemenu

toiminto Copy area. Tämän jälkeen siirrytään kohdedokumenttiin ja toimitaan kuten edellä Paste-kohdassa.

20.4 Nimetyn alueen kopioiminen

Kopioimalla alue edellisen esimerkin ohjeilla, siitä tulee viitteinäkin kopioituna useita viitattuja lohkoja kohdedokumenttiin. Tämän haittana on se, että lähdedokumentissa kopioituihin lohkoihin tehdyt muutokset näkyvät kohdedokumentissa, mutta jos lisätään lohkoja kopioitujen väliin, niin tämä muutos ei näy kohdedokumentissa.

Ongelmaa voi kiertää nimeämällä lähdedokumentin alueita ja sitten kopioimalla viitteitä nimettyihin alueisiin. Mikäli lähdedokumentissa muutetaan tai lisätään lohkoja nimetyn alueen sisälle, näkyvät kaikki nämä muutokset kohdedokumentissa.

Nimetyn alueen kopioinnille ei ole vielä automaattista käyttöliittymää. Mutta tämän voi tehdä manuaalisesti seuraavasti:

Ensin pitää nimetä lähdedokumentin alue:

  1. valitse lähdedokumentin alue kuten edellisessä ohjeessa

  2. sitten aluemenussa valitse Name area

  3. anna alueelle hyvä yksikäsitteinen nimi, jossa ei ole erikoismerkkejä (eikä välilyöntejä)

  4. muista tämä nimi jatkoa varten

  5. kopioi malliksi yksi lohko viitteenä (reference) lohkon kopioimisen ohjeilla

  6. aukaise kohdedokumentissa viitattu lohko kopioitavaksi.

  7. sen pitäisi näyttää suurinpiirtein seuraavalta:

     #- {rd="63" rl="no" rp="TgNDKqzUwCy5"}
    • rd: lähdedokumentin (referenced document) sisäinen id-numero (identifier number), voi olla hyvinkin suuri nykyisin
    • rp: lähdedokumetin lohkon (referenced paragraph) sisäinen tunniste
    • rl: linkki lähdedokumentin kyseiseen kohtaan. Mikäli tämän kohdan pyyhkii pois näkyy viitekopioin vieressä tieto siitä, mistä dokumentista kopio on ja linkki siihen kohtaan hyppäämiseksi. Arvo voi olla "no" tai "yes"
  8. korvaa ominaisuuden rp nimi ominaisuudella ra (referenced area) ja lähdedokumentissa alueelle antamallasi nimellä.

  9. Esimerkiksi siis rivi voisi muokkauksen jälkeen olla

     #- {rd="63" rl="no" ra="ohjeKahvinKeittoon"}

    tai

     #- {rd="63" ra="ohjeKahvinKeittoon"}

    mikäli halutaan linkki alkuperäisdokumenttiin.

Jatkossa tätä riviä voidaan kopioida kohdedokumentissa on normaalilla Copy/Paste toimininnolla kaikkiin paikkoihin, joissa halutaan viitata samaan lähdedokumenttiin. Toki kopioista vaihdetaan aina alueen nimi.

20.5 Manuaalinen viittaaminen toiseen dokumenttiin

# translations

20.6 Dokumentin kääntäminen toiselle kielelle

Usein on tarve ylläpitää samasta dokumentista erikielisiä versioita. TIMin ratkaisu asiaan on tehdä käännöksestä dokumentti, jossa on lohkot viitteinä alkuperäiseen dokumenttiin. Näin käännetty dokumentti saa tiedon siitä, että alkupeärinen dokumentti on muuttunut. Tällöin käännöksestä vastaavan henkilön ei tarvitse koko ajan katsoa että onko joku muuttunut, vaan hän voi esimerkiksi tilata automaattisen sähköpostin siitä, milloin seurattava dokumentti muuttuu.

Huomattakoon että kyseessä ei ole automaattinen käännös, vaan kun käännösdokumentti luodaan, se on vain "kopio" alkuperäisestä. Käännöksestä vastaava henkilö kirjoittaa kopioiden päälle käännöksen. Alkuperäisen muuttuessa jonkun lohkon kääntämisen jälkeen, tulee käännetyn lohkon kohdalle merkintä muutoksesta.

  • Mene Manage-sivulle:
    • Tapa 1:
      • dokumentin ylälaidassa on linkki Manage
    • Tapa 2:
      • mene pääsivulle https://tim.jyu.fi
      • siirry siihen kansioon missä dokumentti on
      • dokumentin kohdalla oikeassa laidassa on rattaan kuva

Kohdassa Translations on joukko rivejä dokumentin kaikista käännöksistä. Ensimmäinen rivi koskee dokumenttia itseään. Tässä voit antaa dokumentille kielitunnisteen (esim. fi) jolla se tulee näkymään myöhemmin kielipalkissa. Otsikko (title) määrää, mitä selaimen otsikkorivillä näytetään.

Voit luoda uuden käännöksen Create translation -painikkeella ja syöttämällä uuden käännöksen kielitunnisteen ja otsikon. Käännösdokumentti sisältää samat lohkot kuin alkuperäinen, mutta viitteinä joille voit kirjoittaa uuden tekstin. Dokumentin eri kieliversiot ilmestyvät sen oikeaan yläreunaan, josta käyttäjät voivat valita haluamansa kielen. Käännettyyn dokumenttiin pääsee myös suoraan osoiteriviltä / linkillä lisäämällä osoitteen perään esim. '/en'.

Jos haluat luoda käännöksen sijaan dokumentin, joka sisältää lohkot sellaisenaan esimerkiksi kootaksesi kaikki luentomonisteen esimerkit samalle sivulle, voit tehdä sen Create a cited copy -painikkeella. Kielitunnisteen ja otsikon sijaan viitekopiolle annetaan kokonainen nimi polkuineen.

Katso myös:

# relevanssi

21. Relevanssi

Dokumenteille ja kansioille voi määrittää tärkeysarvon eli relevanssin, joka kertoo kohteen prioriteetin TIM-hauissa. Mitä suurempi relevanssi, sitä korkeammalla dokumentit näkyvät niitä koskevissa hakutuloksissa. Vastaavasti asettamalla relevanssin matalaksi dokumentteja voi siirtää hakutuloksien pohjalle tai ulkopuolelle.

21.1 Relevanssiarvojen merkitys

Käyttäjä voi määritellä haun lisäasetuksissa mikä on pienin relevanssiarvo joka otetaan mukaan hakuun. Oletuksena tämä on 1 eli jos kohteen relevanssi on nolla tai negatiivinen, se ei tule mukaan hakuihin ellei käyttäjä erikseen muuta asetuksia.

Relevanssiarvot jaetaan suuntaa-antavasti seuraavalla tavalla:

  • 100 = hyvin tärkeä, suositellaan käytettäväksi esimerkiksi kurssien pääsivuilla tms. dokumenteissa, jotka käyttäjän halutaan löytävän ensimmäisenä
  • 50 = tärkeä, esim. keskeiset kurssimateriaalit
  • 10 = normaali eli oletusarvo, joka suurimmalla osalla dokumenteista on
  • 1 = ei tärkeä, pienin arvo joka tulee mukaan hakuihin oletuksena
  • 0 = huomiotta jätettävä, ei tule mukaan hakuihin ellei hakija muuta hakuasetuksia
  • -100 = haudattu, merkitsee dokumentin piilotettavaksi hakutuloksista (huom. hakija voi vielä ottaa dokumentin mukaan hakuihin muuttamalla relevanssikynnysarvoa hakuasetuksissa)

Relevanssiarvoksi saa asettaa mitä tahansa kokonaislukuja näiden väliltä. Myös yli 100 ja alle -100 ovat mahdollisia, tosin muokkaajia pyydetään pidättäytymään käyttämästä turhan korkeita relevanssiarvoja jotta muut tärkeät dokumentit saavat tasapuolisesti sijan hakutuloksissa.

Relevanssin lisäksi hakutuloksien järjestykseen vaikuttaa myös sen osumien määrä. Relevanssi toimiikin käytännössä hakuosumien lisääjänä: dokumentti saa suoraan relevanssiarvon verran lisäosumia sen järjestämisen kannalta. Näin ollen esimerkiksi dokumentti, jonka relevanssi on 100 ja josta tuli osumia 1 kappale näkyy korkeammalla kuin dokumentti josta tuli 12 tulosta mutta jonka relevanssi on vain 10. Korkea relevanssi ei yksinään tuo dokumenttia mukaan hakuihin, joissa dokumentista ei tullut yhtään osumaa.

Muista myös, että dokumentin oikeudet vaikuttavat sen näkyvyyteen hauissa. Jos esimerkiksi dokumentin katsomisokeudet on annettu vain tietylle ryhmälle, se ei tällöin tule mukaan muiden käyttäjien hakutuloksissa vaikka relevanssi olisikin korkea.

21.2 Relevanssi hakuasetuksissa

Hakua tehdessä relevanssi vaikuttaa sekä tuloksia

  1. suodattavasti eli relevanssin raja-arvon alle jäävät dokumentit pudotetaan pois tuloksista, että
  2. järjestävästi eli arvot vaikuttavat tuloksien esitysjärjestykseen.

Relevanssin raja-arvoa voi muuttaa haun lisäasetuksissa. Lisäasetukset avataan klikkaamalla TIM-hakupaneelista lisäasetuksien-painiketta (kolme päällekkäistä viivaa). Raja-arvoa muokataan lisäasetuksien Relevance-syöttökentässä, jota muokattaessa ehdottaa relevanssin suuntaa-antavia arvoja.

Oletuksena raja on 1 eli mukaan tulevat kaikki dokumentit, joita ei ole merkitty huomiotta jätettäviksi (relevanssi 0 tai negatiivinen), mutta asettamalla eri arvon mukaanoton rajaa voidaan muuttaa. Esimerkiksi arvolla 100 haku rajoitetaan vain keskeisimpiin, hyvin tärkeiksi merkittyihin dokumentteihin, ja laskemalla rajan -1000:n tuloksia ei suodateta relevanssin perusteella lainkaan (poikkeuksena mahdollisesti vielä pienemmän relevanssin omaavat dokumentit).

Hakutulosikkunassa tulokset järjestetään oletuksena relevanssin mukaan. Järjestyskriteeriä voidaan muuttaa tulosikkunan vasemman alalaidan pudotusvalikosta. Järjestämisen vaihtoehtoina ovat relevanssin ohella osumien määrä, dokumentin nimi ja dokumentin polku.

21.3 Relevanssin muokkaus ja resetointi

Relevanssin muokkaaminen vaatii muokkausoikeudet (manage rights). Arvon vaihtamisen voi tehdä joko sivupalkista tai manage-välilehdeltä käsin.

  • Tapa 1:
    • Mene Manage-välilehdellä Relevance-kohtaan
    • Muuta syöttökentän numeroarvoa tai klikkaa kentän oikean laidan nuolia. Tällöin näkyviin tulee pudotuslista suositelluista relevanssiarvoista selityksineen.
    • Valitse arvo pudotuslistasta tai syötä suoraan oma arvo.
    • Kun olet varma muutoksestasi, paina Save-painiketta tallentaaksesi muutoksen.
  • Tapa 2:
    • Klikkaa rattaan kuvaa sivun vasemmassa ylälaidassa ja sieltä edelleen Edit relevance-painiketta. Painikkeen perässä oleva numero kertoo sivun voimassaolevan relevanssiarvon.
    • Näkyviin tulee ikkuna, joka sisältää numeroiden syöttökentän.
    • Muuta syöttökentän numeroarvoa tai klikkaa kentän oikean laidan nuolia. Tällöin näkyviin tulee pudotuslista suositelluista relevanssiarvoista selityksineen.
    • Valitse arvo pudotuslistasta tai syötä suoraan oma arvo.
    • Kun olet varma muutoksestasi, paina Save-painiketta tallentaaksesi muutoksen.
    • Sulje ikkuna klikkaamalla Close-painiketta tai yläkulman ruksia.

Jos haluat palauttaa oletusarvon, avaa relevanssin muokkaus jommalla kummalla tavalla ja paina Reset-painiketta. Tällöin dokumentin relevanssi palaa alkutilaansa eli yläkansioiden relevanssit voivat vaikuttaa siihen.

Huom. relevanssin muutos vaikuttaa dokumenttiin vasta hakuindeksin päivittämisen jälkeen, joka tehdään tasapuolitunnein. Jos haluat testata relevanssiarvon muutoksia, tee testihaut reilut puoli tuntia myöhemmin.

21.4 Kansioiden relevanssi ja oletusrelevanssi

Kansioiden relevanssia muokataan ja tarkastellaan vastaavasti kuin dokumenttienkin. Kansion relevanssiarvoa muuttamalla kaikki sen sisältämät dokumentit ja alikansiot perivät kyseisen arvon eli kansion relevanssiarvo vaikuttaa sen koko sisällön näkyvyyteen hauissa.

Relevanssilla on kolme eri tilaa:

  • Oletusrelevanssi (10), jota käytetään jos dokumentti ja mikään sen yläkansioista hakemistohierarkiassa ei sisällä muutettua relevanssia.
  • Peritty relevanssi, joka saadaan lähimmältä yläkansiolta jonka relevanssia on muutettu.
  • Kansion tai dokumentin oma muutettu relevanssi: ottaa aina etusijan ylempää perittyihin verrattuna.

Esimerkiksi:

  • Pääkansio, relevanssi 0
    • Alikansio 1, relevanssia ei muutettu: perii arvon 0
      • Dokumentti 1, relevanssia ei muutettu: perii pääkansion relevanssin 0
      • Dokumentti 2, relevanssiksi asetettu -10: oma relevanssiarvo -10 ottaa etusijan
    • Alikansio 2, relevanssiksi asetettu 25: oma arvo 25 ottaa etusijan
      • Dokumentti 3, relevanssia ei muutettu: perii alikansion 2 relevanssiarvon 25
      • Dokumentti 3, relevanssiksi asetettu 100: oma relevanssi 100 ottaa etusijan

22. Kalvot

Sivuista saa auttavat kalvot yläpalkin linkistä Slide view.

Kalvoissa on kaksi kuvaketta nuolien vierellä:

  • Full Screen - näyttää kalvot koko ruudulla
  • Ohjain - tästä voi avata luennoitsijan näkymän jota voi käyttää vaikkapa kännykältä kauko-ohjaimena kalvoihin

Kalvoja kirjoitettaessa voi avata erikseen itselleen apunäkymän, jonka saa vaihtamalla osoiterivillä olevan slide tilalle show_slide. Esimerkiksi siis:

https://tim.jyu.fi/show_slide/tim/TIM-ohjeet#/

Tälle ei ole vielä valmista käyttöliittymää. Jos toisessa selaimen ikkunassa (tai jopa monitorissa) pitää auki muokkausnäkymää (View) ja toisessa kalvonäkymää (Slide), voi helpommin katsoa miltä kalvot näyttävät. Toistaiseksi pitää käsin painaa kalvoikkunassa refresh (F5) jotta näkee muutokset.

22.1 Taustakuva

Kalvojen taustaan voi vaikuttaa asetuksiin kirjoitettavilla arvoilla:

slide_background_url: "/images/118378/Aikajana.png"
slide_background_color: "red"

Taustakuvan osoite voi olla mikä tahansa osoite, jossa on kuva, tai kuvan voi ladata niin, että laittaa kursorin riville, jossa lukee tuo slide_backgroud_url: mutta ei vielä muuta ja sitten ottaa Upload file/image ja lataa sopivan kuvan, niin osoite tulee tuolle riville.

Taustakuvan saa pois laittamalla taustalle valkoisen valmiin kuvan:

slide_background_url: "/static/images/white.png"

22.2 Kalvojen koko

Oletuksella kalvon koko on 960x700 px. Tämä tarkoittaa, että kalvot skaalataan näytön koosta riippuen siten, että ne näyttäytyvät samalta kuin 960x700 -kokoisella näytöllä.

Kalvojen koko voi kasvattaa slide_size-asetuksella:

slide_size: [1280, 720]

Mitä suurempi kalvot ovat, sitä pienemmältä niiden sisältö näyttää suhteessa kalvoihin.

22.3 Kalvon teema

Oletuksena kalvoissa on käytössä JYU-teema, jossa käytetään Jyväskylän yliopiston tyylisääntöjen mukaiset värit ja fontit.

Teemoja voi vaihtaa käyttämällä slide_themes-asetusta:

slide_themes: ["black"]

jyu-teeman lisäksi kaikki reveal.js-kirjaston teemat ovat käytössä.

22.4 Kalvon vaihto

Oletuksena kalvonvaihdot tulee aina otsikoiden kohdalle

Pitkien kalvojen tapauksessa kalvonvaihdon saa pakotettua ottamalla editorin palkista:

Insert / Slide / Slide Break

Tämä tekee tyhjän kappaleen, jossa on kolme miinusmerkkiä, eli kalvon vaihdon saa aikaiseksi myös kirjoittamalla itse:

#-
---
#-

TIMissa käytetään reveal.js-kirjastoa kalvojen näyttämiseen selaimessa. Reveal.js -kirjastossa kalvot voi ryhmitellä allekkain esimerkiksi aiheen mukaan. Alakalvot saa lisäämällä slide_break="sub"-attribuutti lohkoon. Esimerkiksi

#-{slide_break="sub"}
---
#-

Laittaa seuraavan lohkon tekstisisällön alakalvoon. Alakalvojen erotin saa editorista valitsemalla:

Insert / Slide / Subslide Break

22.5 Tekstin näkyvyys

Tekstin näkyvyyttä kalvolla voi säädellä tyyleillä:

#- {.hideinslide}
Tämä kappale ei näy kalvoilla.

#- {.showonlyslide}
Tämä kappale näkyy vain kalvoilla.

#- 
Lohkon sisällä voidaan myös säätää näkyvyyttä: [tämä teksti ei näy kalvolla]{.hideinslide}
[tämä teksti näkyy vain kalvolla]{.showonlyslide}.

22.6 Kuvat vierekkäin

Alueita saa vierekkäin esimerkiksi flexboxilla. Tällöin dokumentin asetuksiin on lisättävä css-muotoilu

css: |!!
.showflex  {
  display: flex;
}

minkä jälkeen alueita saa vierekkäin laittamalla ne area-tägien väliin:

#- {area="kuvat1" .showflex}
 (alue 1)
 (alue 2)
 ...
#- {area_end="kuvat1"}
# img1

The band structures of Si3N4--Al2O3 phononic crystals with lattice constant of and filling factor of \(0.7\) with a thick layer of Si3N4, for varying thicknesses of an Al2O3 layer.

# img2

The band structures of Si3N4--Al2O3 phononic crystals with lattice constant of and filling factor of \(0.7\) with a thick layer of Si3N4, for varying thicknesses of an Al2O3 layer.

23. Dokumentin muokkaaminen

23.1 Editorin toimintoja

  • Editorin pikakommennot
  • Paina Ctrl-, (Ctrl-pilkku) niin saat editorin optioita. Siellä yksi hyödyllinen optio on Wrap lines, jolloin muokkauksen aikana pitkät rivit näytään peräkkäisinä riveinä.
  • editorissa on Painike Editor ja silloin kun sitä painetaan, vaihdetaan "värikkään" ja "värittömän" välillä. Väritön on selaimen oma peruseditori, jossa toimii mm oikoluku. Voit vaihtaa tilaa tarpeen mukaan.
  • Editorin alla oikeassa alanurkassa on nuoli, josta esikatselun voi irroittaa ja siirtää vaikka kirjoitettavan tekstin vierelle.

23.2 Editointitila

Sen lisäksi, että dokumenttia voidaan muokata itse editorin avulla, voidaan siirtyä editointitilaan painamalla muokkausmenun vasemmassa alakulmassa olevaa kynän kuvaa.

Editointinäkymä
Editointinäkymä

Edit-tilassa voidaan:

  • valita isompi joukko lohkoja muokattavaksi ottamalla Start selecting area
  • leikata (Cut) tai kopioida (Copy) TIMin sisäiselle leikepöydällä yksi tai usemapia lohkoja
  • liimata (Paste) TIMin sisäiseltä leikepöydältä lohkoja valitun kohdan ylä- tai alapuolelle.
  • Paste voidaan tehdä toiseenkin dokumentiin ja siinä voidaan valita tuleeko liimattuun kohtaan lohkon sisältö vaiko viite. Mikäli laitetaan viite, niin alkuperäisen sisällön muuttuessa muuttuu myös viitattu sisältö.
  • TIMin sisäiselle leikepöydälle siirretty tieto säilyy vaikka siirrytään koneelta toiselle, kunnes tilalle laitetaan uutta sisältöä.
  • voidaan antaa valituille alueille nimiä ja samalla tehdä niistä esimerkiksi sulkeutuvia/avautuvia
  • Edit-tilassa dokumentissa näkyy lisätyt kalvonvaihtorajat, kommentoidut alueet yms. mitä ei näy tavallisessa dokumentissa.

23.3 Aluemuokkaustila

Muokkausmenun oikeasta alakulmasta voidaan siirtyä aluemuokkaustilaan, jolloin nähdään paremmin dokumenttiin laitetuja nimettyjä alueita ja voidaan käsitellä niitä.

# collapse

24. Sulkeutuvat alueet

Tässä on esimerkki sulkeutuvasta alueesta:

Saako sulkeutuvan alueen sisälle vielä uuden sulkeutuvan alueen? Tällä tavoin tehtynä ulommainen aukoo kaikki syömänsä sulkeutuvat alueet.

14 Nov 19

Uuden avautuvan/sulkeutuvan (collapse) alueen voi tehdä seuraavasti:

  1. mene alueen ensimmäiseen kappaleeseen
  2. valitse muokkausmenusta kynä (ks Editointitila) ja sitten Start selecting area
  3. valitse mitä kappaleita haluat piilottaa
  4. valitse edit menusta Name area ja sitten anna alueelle nimi, valitse onko sulkeutuva ja sitten mahdollisen aikaraja (joka valitettavasti vielä on UTC)

Tiedoksi: Tämä tuottaa seuraavanlaisen koodin, jos alueita haluaa itse tehdä käsin:

#- {area="sulkeutuva" collapse="true"}
Tässä on esimerkki sulkeutuvasta alueesta:

#-
Tämä teksti on oletuksena piilossa.

#- {area_end="sulkeutuva"}

Tässä on tärkeää huomata, että aluella on alkulohko ja loppulohko, joissa molemmissa on sama nimi. Ilman loppulohkoa koko dokumentti menisi piiloon. Tämä pitää tiedostaa, jos dokumentista "syö" lohkoja pois varomattomasti.

Normaalisti nämä sulkeutuvat alueet aukeavat ja sulkeutuvat klikkaamalla missä tahansa alueen otsakerivin sisällä. Voit kokeilla tätä alla klikkaamalla sinisen otsakealueen sisällä.

Sulkeutuvan alueen otsake

Jos haluat, että otsakealueen jokin osa ei aukaise/sulje aluetta, voit lisätä sille osalle tyylin .no-areaexpand:

#- {area="tehtavat_ma" collapse="true" .sulkeutuva_otsake defaultplugin="cbfield"}
Maanantain tehtävät [{#cb_tehty #} Tehty]{.no-areaexpand  .cb_in_area_asettelu}

#-
- t1
- t2
- t3

#- {area_end="tehtavat_ma" }


#- {area="tehtavat_ti" collapse="true" .sulkeutuva_otsake defaultplugin="cbfield"}
Tiistain tehtävät [{#cb_tehty2 #} Tehty]{.no-areaexpand  .cb_in_area_asettelu}

#-
- t1
- t2
- t3

#- {area_end="tehtavat_ti"}

#- {area="tehtavat_ke" collapse="true" .sulkeutuva_otsake defaultplugin="cbfield"}
Keskiviikon tehtävät [{#cb_tehty3 #} Tehty]{.no-areaexpand .cb_in_area_asettelu}

#-
- t1
- t2
- t3

#- {area_end="tehtavat_ke"}

Maanantain tehtävät

Please to interact with this component.

Tehty

Tiistain tehtävät

Please to interact with this component.

Tehty

Keskiviikon tehtävät

Please to interact with this component.

Tehty



TIM ei toistaiseksi tue kunnolla sisäkkäisiä alueita. Niistä ei tule virheilmoituksia, mutta dokumentti ei todennäköisesti näytä järkevältä, koska alueet eivät tule sisäkkäin selaimen rakennepuuhun. Siksi sisäkkäisiä alueita kannattaa toistaiseksi välttää.

# menu

25.1 Mallimenu

Tyypillinen käyttötapaus on kurssin luento- ja materiaalidokumenttien linkkien esittäminen kompaktisti käyttäjien navigoinnin helpottamiseksi.

Esimerkki kurssin navigointimenusta:

Kyseinen menu luodaan seuraavalla koodilla:

``` {plugin="timMenu" .hidden-print}
backgroundColor: "lightGray"
separator: "|"
#openingSymbol: "▿"
menu: |!!
 - Luennot
   - [Luento 1](/view/tim/ohjeita/mallikurssi/luennot/luento1)
   - [Luento 2](/view/tim/ohjeita/mallikurssi/luennot/luento2)
   - [Luento 3](/view/tim/ohjeita/mallikurssi/luennot/luento3)
   - [Luento 4](/view/tim/ohjeita/mallikurssi/luennot/luento4)
   - [Luento 5](/view/tim/ohjeita/mallikurssi/luennot/luento5)
   - *Luento 6 (ilmestyy myöhemmin)*
   - Kurssin lisäosan luennot
     - [Extraluento 1](/view/tim/ohjeita/mallikurssi/luennot/lisa1)
     - [Extraluento 2](/view/tim/ohjeita/mallikurssi/luennot/lisa2)
 - Materiaalit
   - [Kurssimoniste](/view/tim/ohjeita/mallikurssi/moniste)
   - [Diat (kokooma)](/view/tim/ohjeita/mallikurssi/diat)
   - [Lisämateriaalit](/view/tim/ohjeita/mallikurssi/lisamateriaali)
 - [Demot](/view/tim/ohjeita/mallikurssi/demot)
 - [Harjoitustyöt](/view/tim/ohjeita/mallikurssi/ht)
!!

Siinä backgroundColor, separator, openingSymbol ja menu ovat pluginin attribuutteja, joista menu määrittää varsinaisen menurakenteen ja on siten pakollinen, ja muut ovat vapaaehtoisia ulkoasuun vaikuttavia attribuutteja.

Menu-pluginin saa lisättyä helpoiten editorin menupohjien avulla.

  1. Avaa dokumentin muokkaus ja mene Insert-välilehdelle ja valitse Menus-valikosta sopiva menupohja. Valittavana on useita vaihtoehtoja, mutta aloittelijalle suositellaan joko
    • timMenu-pohjaa, joka sisältää useita muotoiluja ja alivalikoita mallina menujen laatimiseen tai
    • timMenu (simple) -pohjaa, joka on minimaalinen vaihtoehto yhdellä pudotusvalikolla.

Myös edellisen luvun mallimenu toimii pohjana.

  1. Muokkaa menurakenne pluginin menu-attribuutissa kaksoishuutomerkkien (!!) väliin (ne ilmaisevat, että muuttuja sisältää rivinvaihtoja).

    • Menurakenteen syntaksi eli kielioppisäännöstö noudattaa pitkälti samaa logiikkaa kuin numeroimattomat listat (ks. TIMin listaohje).
    • Keskeistä menurakenteessa on erottaa menualkiot rivinvaihdoilla, merkitä ne väliviivalla (-) ja sisentää listattuja alkioita, jos ne halutaan sijoittaa edellisestä alkiosta aukevaan valikkoon tai alivalikkoon (ks. syntaksin tarkemmat ohjeet).
    • Esim. menurakenne yhdellä pudotusvalikolla ja kahdella menualkiolla luodaan seuraavasti:
    menu: |!!
    - Pudotusvalikko 1
      - [Linkkiteksti 1](http://www.esimerkkilinkki1.jyu.fi)
      - [Linkkiteksti 2](http://www.esimerkkilinkki2.jyu.fi)
    !!
  2. Muokkaa valikkorakenteen otsikot ja menukohtien tekstit haluamallasi tavalla.

    • Linkit toimivat menukohdissa samoin kuin muuallakin TIMissä eli [Linkin_teksti](Linkin_osoite).
    • Otsikoissa ja menukohdissa voi käyttää TIMin perusmuotoiluja kuten kursivointia ja lihavointia.
  3. Tallenna muutokset Save-painikkeella tai kumoa Cancel-painikkeella.

25.3 Lisäominaisuudet ja tarkemmat ohjeet

TimMenu tukee erilaisia ulkoasuun ja käytettävyyteen liittyviä asetuksia ja ominaisuuksia, mukaan lukien kuvien lisääminen menun sisään, valikoiden näkyvyyden säätäminen käyttöoikeuksien mukaan sekä valikon värien ja koon muokkaus.

# luentokysymykset

26. Luentokyselyt ja luentoseinä

TIMissä voi tehdä interaktiivisia luentoja, joissa on luentoseinä ja luennolla voi esittää interaktiivisia kysymyksiä. Opiskelijat voivat vastata kysymyksiin kännykällä, täppärillä tai kannattavalla. Vastaamisen edellytyksenä on HTML5-pohjainen selain joka on nykyään jo useimmissa laitteissa.

26.1 Luennon luominen

Luentoa varten pitää ensin luoda luento joko etukäteen tai luennon aluksi:

  1. Siirry Lecture view välilehdelle
  2. Paina No running lectures alta + ja luo uusi luento
  3. Anna luennon nimi (koodia ei aina kannata antaa) ja alku ja loppuaika (lokaali aika)
  4. Kopioi "Link to automatically join lectures for this document:" alle tuleva osoite ja ilmoita se opiskelijoille tai tee siitä sivullesi QR-koodi tai lyhenne r.jyu.fi-sivuilla (kannattaa kirjaantua niin voi valita itse lyhennenimen)
  5. Paina Create
  6. Jos ei liity automaattisesti luennolle, paina liittymispainiketta.
  7. Luentoseinä tulee näkyviin.

26.2 Kysymysten luominen

Joko ennen luennon luomista tai luennon luomisen jälkeen voit Lecture View-tilassa tehdä kysymyksiä. Luennon ei tarvitse olla aktiivinen kysymysten luomisen aikana, mutta jos haluaa kokeilla niiden toimintaa, silloin pitää luennon olla aktiivinen.

  1. Valitse normaalisti Edit-menu mutta valitse sieltä nyt Create lecture question
  2. Anna kysymykselle sopiva kysymysotsikko (Question) ja lyhenne (Title) jolla kysymys tallentuu tietokantaan.
  3. Valitse kysymyksen tyyppi
  4. Täytä kysymyksen pisteet.
  5. Valitse kysymykselle sopiva kysymyksen näyttöaika (yleensä 20-60 sek on hyvä).
  6. Save

Toista em. kaikille kysymyksille joita haluat luoda. Luennon ja kysymysten sivun ei tarvitse olla sama. Voit tehdä kysymyksiä muillekin sivuille ja silti kysyä niitä opiskelijoilta jotka ovat liittyneet ilmoittamallesi luentosivulle.

Kysymyksiä voit tarvittaessa muokata myös tekstieditorilla kun otat niiden viereen syntyvästä Edit-menusta Edit. Tai voit kopioida niitä lohkon kopiointi-toiminnolla paikasta toiseen. Eli ota Edit-menusta kynän kuva ja sieltä tarvittava toiminto.

26.3 Kysymysten kysyminen

Kysymykset näkyvät dokumentissasi pieninä kysymysmerkki-lohkoina. Klikkaamalla kysymysmerkkiä, voi muokata kysymystä tai kysyä sen.

Kun kysyt kysymyksen, se ilmestyy kirjaantuneille opiskelijoille ja valittu aika juoksee. Kun kysymys on päättynyt (tai jopa ennen päättymistä), voit näyttää Show answers-painikkeesta vastausten jakauman. Klikkaamalla Bar-tekstiä tai kysymyksen otsikkoa voi vaihtaa pysty- ja vaakapalkkien välillä.

Kysymyksen jälkeen Show points- painikkeella voit lähettää opiskelijoille näkyviin heidän saamansa pisteet.

Tarvittaessa voit kysyä saman kysymyksen uudelleen jollain vastaukset menevät samaan kohtaan tai voit kysyä kysymyksen uutena (esim. keskustelujen jälkeen). Jos haluat muuttaa pisteytystä, voit tehdä sen tässä Edit points-toiminilla

Kun haluat vaihtaa toiseen kysymykseen, sulje kysymysikkunan ja paina taas toisen kysymyksen kysymysmerkkiä.

Jos tekee dokumenttiin tavallisia kysymyksiä uusilla kysymystyypeillä, voi niitäkin kysyä luentokysymyksinä.

26.4 Tilastot

Vasemman ylänurkan henkilökuvakkeesta näet luennolle kirjaantuneet henkilöt.

Tohtorinhatusta näet dokumenttiin liitetyt luennot ja luennon nimeä klikkaamalla pääset luennon statistiikkaan. Täällä yhteenvetosivulla voit tarkastella kaikkien vastauksia tai yhden vastaajan vastauksia.

'Download as plain text'-painikkeella saat muodon, jonka voi siirtää esimerkiksi Korppiin (kun tarvittaessa muuttaa kenttien nimiä).

# QR

26.5 QR-koodin tekeminen sivulle

Joskus kannattaa laittaa esimerkiksi luentosivun alkuun QR-koodi, jolla opiskelijat pääset kännykällä helposti liittymään luennolle.

QR-koodin saa tehtyä kun lisää dokumenttiin seuraavan lohkon:

#- {.kuvavasen}
![Näytä tätä
puhelimelle](https://chart.googleapis.com/chart?chs=400x400&cht=qr&chl=
https://tim.jyu.fi/lecture/tim/TIM-ohjeet?lecture=autojoin)

missä tietysti korvaa tuon https-alkuisen rivin oman luennon koodilla. QR-koodi näyttää seuraavalta:

Näytä tätä puhelimelle
Näytä tätä puhelimelle

Koodin kokoa voi tarvittaessa säätää luentotilan ja tykin kuvan koon mukaan chs-parametrin jälkeen olevaa 400x400 lukua muuttamalla.

Ohjeita QR-koodin lukemisesta eri laitteilla on sivulla QR-lukijoita-eri-laitteilla.

26.6 Lyhennelinkki

Yleensä luentosivun alkuun kannattaa pistää myös jollakin tehty lyhennelinkki näkyville tyyliin:

r.jyu.fi/tim

Näin niidenkin on helppoa liittyä luennolle, joilla ei ole QR-koodin lukevaa laitetta.

Lyhennelinkin tekemiseksi kannattaa kirjaantua sivulle:

  • lyhennelinkkiin kannattaa laittaa luennolle liittyminen suoralla linkillä:

    https://tim.jyu.fi/lecture/slidetesti?lecture=kellotesti 

    Toinen vaihtoehto on korvata luennon nimi lecture=kellotesti parametrillä lecture=autojoin linkin perässä. Esimerkiksi

    https://tim.jyu.fi/lecture/slidetesti?lecture=autojoin

    jolloin luennolle liittyminen tapahtuu automaattisesti, jos dokumentissa on yksi luento käynnissä. Molemmat linkit löytyy luennon luontilomakkeen alaosasta.

# advquestion

26.7 Edistyneempiä ominaisuuksia

  • mikäli kysymyksiin halutaan matematiikkaa tai muuta muotoilua, pitää tekstikenttä aloittaa tunnuksella md:. Esimerkiksi:

      md:$\int_0^1 f(x)dx$
      md:*Tämä on kursiivilla*
  • jos itse kysymysrivin tekstistä tulee niin pitkä, ettei se näy mielekkäästi jakaumakuvassa, voi !!-jonon jälkeen antaa vaihtoehtoisen tekstin, joka näkyy jakaumassa. Samoin jakaumakuvissa ei näy oikein esimerkiksi matematiikka ja tällöin voi myös olla etua vaihtoehtoisesta tekstistä:

      Tämä on liian pitkä teksti jakaumakuvaan !! Lyhyt versio
  • jos rivin otsikkoon antaa vielä lisää !!-jonoja, voidaan niillä määrätä jakaumakuvaan tulevan tekstin yhden rivin maksimipituus ja rivien määrä. Jos vaihtoehtoinenteksti jätetään tyhjäksi, käytetään varsinaista tekstiä:

      Jakaumaan max 15 merkkiä/rivi ja korkeintaan 2 riviä !! !! 15 !! 2
  • jakaumakuvien suuntaa voi vaihtaa Bar-tekstiä klikkaamalla ja tai kysymyksen otsikon kysymystekstiä klikkaamalla.

  • yhteenvetokuvassa voi jakauman leveyttä ja korkeutta säätää linkeistä

      w- w+ h- h+
  • luennon aikana jakaumakuvan kokoa voi säätää oikeasta reunasta tai alareunasta venyttämällä

27. Lomakkeet

TIMissä lomakkeet ovat tavallisia dokumentteja, joihin on sijoiteltu syöttökenttiä tarpeen mukaan.

Lomakkeiden avulla voidaan tehdä esimerkiksi kurssin osasuositusten seurantaa tai erilaisia kyselyitä. Lomakkeiden kenttien avulla voidaan tehdä erilaista laskentaa, mm. laskea kurssin arvosana, värittää puutteellisia suorituksia yms.

Lisäksi voidaan tuottaa erilaisia graafeja laskennan ja lomakkeiden arvojen pohjalta. Joku voisi jopa nimittää tätä oppimisanalytiikaksi.

28. Dokumenttien näyttäminen pienempinä paloina

Jos dokumentit latautuvat hitaasti esimerkiksi dokumentin pituuden tai laitteen vuoksi, selausta voidaan nopeuttaa ottamalla käyttöön dokumenttien näyttäminen pienempinä paloina.

Dokumenttien paloittelutilaan siirrytään klikkaamalla Show page in parts -linkkiä sivuvalikon Document settings -kohdassa, johon pääsee klikkaamalla rattaan kuvaa sivun vasemmassa yläkulmassa.

Paloittelutilassa dokumentti ladataan uudelleen jaettuna paloihin eli kerrallaan näytetään vain rajattu määrä lohkoja. Palojen välillä liikutaan sivun ylä- ja alareunoihin ilmestyvien navigaatiolinkkien avulla. Linkkien kautta on pääsy seuraavaan ja edellisen palaan, sekä dokumentin alkuun ja loppuun. Jos dokumentti on lyhyempi kuin määritetty osakoko (oletuksena 20 lohkoa), navigaatiolinkkejä ei näytetä.

Paloittelutila pysyy päällä dokumenttien välillä niin pitkään kun selaimen evästeet ovat tallella. Uudelle TIM-sivulle siirryttäessä avataan tällöin aina oletuksena kyseisen dokumentin ensimmäinen pala.

Paloittelutilasta poistutaan palaamalla sivuvalikkoon ja klikkamalla Show page in full -linkkiä, tai vaihtoehtoisesti klikkaamalla valinta Enable partitioning documents pois päältä paloitteluasetuksikkunassa (rattaan kuva navigaatiolinkkien ja paloittelutilalinkin vieressä) ja tallentamalla muutokset painamalla Ok. Tällöin dokumentti ladataan uudelleen kokonaisuudessaan.

28.1 Paloittelutilan ongelmat

Paloittelutila on ratkaisu yhteen ongelmaan (sivun hidas latautuminen), mutta sen käytöstä seuraa uusia ongelmia:

  1. Jos jostakin on suora linkki johonkin dokumentin kohtaan, niin tällaiset linkit eivät toimi.
  2. Sisällysluettelon linkit eivät toimi.

Molemmat ongelmat ovat teknisesti hyvin haastavia erityisesti muuttuvalla palakoolla. Koska paloittelutilaa käytetään suhteellisen vähän suhteessa koko TIMin käyttöön, ei tämän hetken resurssit riitä haasteiden korjaamiseen.

Joskus voi tulla erillinen paloittelutila, joka pohjautuu lukujen osalta jakamiseen. Siinäkin on omat haasteensa ja siksi sekään ei ole tällä hetkellä työlistalla.

28.2 Palakoko

Oletuksena dokumentin palakoko on 20 lohkoa. Haluttaessa palakokoa voidaan muuttaa paloitteluasetusikkunassa (Edit view range), joka voidaan avata joko navigaatiolinkkien tai sivuvalikon Show page in parts/full -linkin vieressä olevasta rattaan kuvasta . Palakoko syötetään numerokenttään kohdassa Piece size ja sen muutokset tallennetaan painamalla Ok.

Huomaa, että palojen todellinen koko voi vaihdella, sillä paloittelu pyrkii välttämään lohkoalueiden (area) katkaisemista ja voi pyöristää lyhyet palat (alle puolet palakoosta) dokumentin alussa tai lopussa mukaan.

28.3 Paloittelu ja preamblet

Kun paloittelutila on päällä, preamble-dokumenteista tuleva sisältö ladataan oletuksena vain dokumentin ensimmäisessä palassa. Haluttaessa preamble-dokumentin muokkaaja voi asettaa lohkon ladattavaksi joka palan alkussa lisäämällä sille luokan includeInParts, esim.

#- {.includeInParts}
Tulen preamblesta joka palaan mukaan
# hakemistonkopiointi

29. Hakemiston kopiointi

Jos esimerkiksi kurssin vuosittain muuttuvat osat on tallennettu hakemistoon

ohj1/2020s

ja on tarve kaikista dokumenteisa kopio seuraavalle vuodelle, niin voi menetellä seuraavasti:

  1. mene kopioitavaan hakemistoon (esimerkissä 2020s)
  2. mene "hakemiston" manageen
  3. siellä on alempana koko hakemiston kopiointi (Copy contents)
  4. siinä voi antaa ehdon "mitä ei kopioida"

Kunnolliset ohjeet tähän, erit. kansioiden/dokumenttien exclude

15 Mar 24

30. Tulostus

TIMissä on kaksi tapaa tulostaa:

  • selainpohjainen tulostus, jolloin selain tulostaa dokumentin niin kuin se näkyy näytössä. Tämä sopii kun on tarve nopeasti tehdä tilapäinen tulostus
  • TeX-ladontaohjelmaan perustuva tulostus, jolla saadaan kirjapainotasoista tulostusjälkeä. Ominaisuuden käyttäminen vaatii yleensä jonkin verran vaivannäköä.

Tulostuksen löytää oikean yläkulman menusta rattaan kuvan takaa.

Tarkemmat käyttöohjeet ja säätömahdollisuudet löytyvät tulostuksen käyttöohjeesta

# input_format

31. Muut syöttömuodot kuin md

Jos haluttaisiin käyttää muuta syöttömuotoa, kuin oletuksen olevaa MarkDownia, niin yksittäinen lohko voidaan aloittaa tyyliin:

#- {input_format="latex"}

Jos koko dokumentti halutaan kirjoittaa toisella formaatilla, voidaan dokumentin asetuksiin laittaa:

input_format: "latex"

Syöttömuoto voi olla:

commonmark
gfm
markdown
markdown_strict
mediawiki
rst
latex

Lista kaikista syöttömuodoista: Pandoc formats. Huomaa, että TIM ei toistaiseksi salli kaikkien syöttömuotojen käyttämistä yhteensopivuusongelmien välttämiseksi.

32. Osioiden tarkempia lisäohjeita

  • velpit = Virtuaaliset Esipainetut Liukkaat PostIT -laput.
    = valmiita korjaus- ja palautefraaseja palautteen antamiseksi opiskelijoiden tehtäviin ja kirjoitelmiin.
  • ImageX = komponentti erilaisten kuvaraahaustehtävien tekemiseen

33. Liikenteen rajoittaminen

Joskus tulee tarve rajoittaa liikennettä tiettyyn dokumenttiin. Esimerkiksi

  • Dokumentti on niin suuri, että sen lataamisessa kestää
  • Dokumentti on "kuuma", eli suuri käyttäjämäärä haluaa päästä dokumenttiin samaan aikaan (esim. tentti)
  • Dokumentti on luonteeltaan sellainen, että käyttäjä saattaa haluta päivittää sivua usein (esim. aikarajoitettu dokumentti)

Siinä tapauksessa on syytä rajoittaa liikennettä ja samalla tarjota visuaalinen vaste käyttäjälle siitä, että sivu latautuu. Tälle on kaksi menetelmää: goto-odotussivu ja goto-linkki.

33.1 Goto-odotussivu

Mikä tahansa linkki dokumentteihin voidaan muuttaa odotuslinkiksi lisäämällä linkin perään goto-attribuutti:

[Klikkaa tästä (odotuksen kanssa)](minundokumentti?goto=Odotathan, sivua ladataan)

Attribuutin arvoksi annetaan teksti, joka näytetään käyttäjälle odotuksen aikana.

Siinä tapauksessa käyttäjää ensin ohjataan erikoiselle (erittäin nopeasti latautuvalle) odotussivulle, joka puolestaan aloittaa varsinaisen sivun lataamisen. Näin käyttäjä tietää, että sivua haetaan, vaikka siinä kestäisikin aikaa.
Lisäksi, vaikka käyttäjä alkaisi hätäisesti päivittää sivua, hän ei kuormittaisi TIMia jatkuvilla hitailla sivupyynnöillä.

33.1.1 Käytössä olevat attribuutit

Attribuutit säädetään linkkiattribuuttina

  • goto: kytkee odotussivun päälle. Arvona pitää olla odotusteksti, joka käyttäjälle näytetään.
  • wait_max (oletus: 0): suurin odotusaika sekuntteina, ennen kuin haluttua sivua aloitetaan hakea oikeasti
  • direct_link_timer (oletus: 15): aika sekuntteina, jonka jälkeen odotussivulla näytetään suora linkki dokumenttiin

33.2 Goto-linkki

Vaihtoehto goto-sivulle on dokumenttiin upotettava goto-linkkikomponentti.
Silloin odotussivun sijaan odotusteksti upotetaan suoraan dokumenttiin, kun linkkiä klikataan.

Goto-linkki eroaa goto-sivusta seuraavasti:

  • käyttäjä pysyy alkuperäisellä sivulla latauksen aikana
  • jos linkki on TIM-dokumentti ja
    • sille on annettu rajoitettu oikeus, goto-linkki estää sivun avautumisen, jos käyttäjän oikeudet eivät riitä
    • pääsyoikeus ei vielä alkanut, goto-linkki näyttää ajastimen hetkeen, kun oikeus alkaa
  • goto-linkki voi olla ulkoasultaan painike tai linkki

Goto-linkki lisätään seuraavasti (esimerkiksi):

#- {allowangular="true"}
<tim-goto-link href="minundokumentinlinkki" max-wait="10" reset-time="15">
    Klikkaa tästä!
</tim-goto-link>

33.2.1 Attribuutit

Attribuutit ovat suunnilleen samat kuin goto-odotussivulle:

  • href: osoite, johon pitää mennä. Jos tyhjä, tämänhetkinen sivu päivitetään.

  • target: kohde, johon linkki avataan. Sama kuin a-elementin target-attribuutti. Oletuksena linkki avataan samaan välilehteen.

  • check-unsaved: jos true ja dokumentissa on tallennettavia plugineja (tekstitehtävät, csplugin, yms.), estää linkin avautumisen, mikäli käyttäjällä on jotain tallentamattomia vastauksia.

  • max-wait: suurin odotusaika sekunteina, ennen kuin haluttua sivua aloitetaan hakea oikeasti. Oletuksena ei odotusta.

  • reset-time: aika sekunteina, jonka jälkeen linkistä tulee taas klikattava. Oletuksena 15 sekunttia.

  • is-button: jos true, linkki näyttää painikkeelta

  • open-at: päivämäärä, jolloin linkki avataan. Kun käyttäjä klikkaa linkkiä, ilmestyy countdown-laskuri linkin avautumisaikaan.

    Päivämääräksi sopii kahdentyyppistä arvoa:

    • Päivämäärä ja UTC-aika Moment.js -kirjaston tukemassa formaatissa. Suosittelen muotoa YYYY-MM-DD HH:MM:SS.
    • *: jos arvoksi antaa tähden ja href-attribuuttina on linkki TIM-dokumenttiin, avautumispäivämäärä haetaan suoraan palvelimelta

    Kun aika menee countdown menee nollaan, linkki avautuu automaattisesti edellisten attribuuttien asetuksien mukaisesti.

  • close-at: päivämäärä, jolloin linkki ei ole enää avattavissa. Sallitut arvot samat kuin open-at

  • wait-text: odotusteksti, joka näytetään painalluksen jälkeen. Jos ei määritetä, näytetään kielikohtainen oletusteksti.

  • countdown-text: teksti, joka näytetään ajastuksen aikana (ks. open-at). Erikoismerkillä {0} voi tulostaa ajastimen ajan. Jos ei määritetä, näytetään kielikohtainen oletusteksti.

  • unauthorized-text: teksti, joka näytetään, kun käyttäjällä ei ole pääsyoikeutta linkkiin. Jos ei määritetä, näytetään kielikohtainen oletusteksti.

  • past-due-text: teksti, joka näytetään, kun käyttäjän pääsyoikeys loppui dokumenttiin. Erikoismerkillä {0} voi tulostaa ajan oikeuden päättymisestä. Jos ei määritetä, näytetään kielikohtainen oletusteksti.

  • unsaved-changes-text: teksti, joka näytetään, jos check-unsaved on määritelty ja sivulla on tallentamattomia vastauksia

  • time-lang: kieli, joka käytetään ajan tulostuksessa. Oltava kielikoodi, esim. en tai sv. Oletuksena käytetään käyttäjän kieliasetusta.

Saisiko countdown-text:in ajastimen ajan tunnit näkymään päivinä ja tunteina, kun aukeamiseen on yli 24 tuntia? Toki esim.

5 päivää 22:34:55

ei ehkä ole hyvä muoto, vaan sitten pitäisi olla esim.

5 päivää 22 tuntia 34 minuutti 55 sekuntia

ja ottaa huomioon kieli. Kuukausia ja vuosia ei varmaan ole tarvetta purkaa erilleen

23 Sep 20

33.2.2 Esimerkkejä

Linkki, oletusteksti, ei hidastusta

Linkki, oletusteksti, max 10 s hidastus

Linkki, käyttäjän asettama teksti

Linkki, painikkeen näköinen

Linkki, avautumispäivämäärä 2050-05-19 12:00

Linkki, avautumisaika haetaan palvelimelta

34. Sekalaista

34.1 Sisällön lainaaminen Google Sheetistä

Mikäli halutaan esimerkiksi lainata osa taulukosta Google Sheetissä, tämä voidan tehdä seuraavasti:

  1. Google Sheetissä valiste menusta File/Tiedosto
  2. Valitse Publish to the web.../Julkaise internettiin...
  3. Valitse Link/Linkki
  4. Valitse mitä julkaiset
  5. Paina Publish/Julkaise
  6. Kopioi syntyvä osoite joka alkaa siis htts://docs.google.com/...
  7. Siirry TIM dokumenttiin siihen kohtaan mihin haluat lainauksen
  8. Lisää uusi lohko ja valitse editorissa Plugins/Others/Upotettu sisältö
  9. Korvaa file: kohdassa oleva linkki kopimallasi Google-osoitteella
  10. Lisää osoitteen loppuun (ennen lainausmerkkiä) &embedded=true
  11. Korvaa tarvittaessa koko-parametrejä ja erityisesti kohta videoname sopivalla teksillä.
  12. Jos haluat että taulukko aukeaa ilman että hiiri pitää viedä sen päälle, laita vielä iframe: true -rivin perään rivi: lazy: false
  13. Voit myös poistaa halutessasi rivin videoname jos et halua linkkinä näkyviin. Mikäli haluat sulkemislinkin pois, vaihda piilotus rivi muotoon: hidetext:

Mikäli Googlessa valitset että julkaistaan kaavio, niin silloin ehkä siistimmän saat lisäämällä vaan TIMiin editorin kohdasta Insert/Image ja sitten kopioimalla Googlen linkin ()-merkkien väliin ja hakasulkujen [] väliin kirjoitat kuvan otsikon.

Googlesta "lainatut" taulukot ja kuvat päivittyvät automaattisesti kun TIM-sivu päivitetään (refresh) jos Google taulukko on muuttunut.

34.2 Sisällön tuominen Office 365:sta

Menenee edellistä soveltamalla, en ole vielä kokeillut, jos joku kokeilee voisi tähän täydentää ohjeita.

34.3 Pelillistäminen

Dokumentin/dokumenttien pelillistämisestä on omat ohjeensa.

Esimerkki, jossa otettu 5 demo-dokumenttia ja 4 luento-dokumenttia mukaan. Yhtään tehtävää ei ole vielä tehty
Esimerkki, jossa otettu 5 demo-dokumenttia ja 4 luento-dokumenttia mukaan. Yhtään tehtävää ei ole vielä tehty

34.4 Datan visualisointi

Datan visualisoinnista on omalla TIM-sivulla lisää tietoa.

34.5 Muuta sekalaista

Tässä sekalaista vielä jalostamatonta tekstiä.

34.6 Omien vastausten piilottaminen

Tälle ei vielä ole käyttöliittymää, mutta jos esimerkiksi demotehtäviä esitellessä haluaa näyttää omia sivuja, joissa on jo vastauksia ja haluaa ne piiloon, voi tämän tehdä lisäämällä osoiterivin perään:

?noanswers=true

eli esimerkiksi

https://tim.jyu.fi/view/kurssit/tie/ohj2/2016k/demot/Demo11?noanswers=true

34.7 LaTeX-dokumentin tuominen

# muut

35. Lista muista TIM-oppaista

Peruskäyttäjälle:

Ylläpitäjille ja kehittäjille:

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.