# Dataview, Templater ja Advanced Canvas

## Ülevaade

Obsidiani kolm võimsamat pluginat artiklite kirjutamise automatiseerimiseks on **Templater** (automaatne note-struktuur ja frontmatter), **Dataview** (dünaamilised päringud ja ülevaated) ning **Advanced Canvas** (visuaalne planeerimine ja esitlusrežiim). Selles juhendis käsitletakse iga plugina seadistamist, praktilisi kasutusnäiteid artiklitöövoogu jaoks ning kõige levinumaid vigu, mida algajad teevad.

***

## Templater: automaatne mallide süsteem

### Miks Templater, mitte sisseehitatud Templates?

Obsidiani Core Templates plugin pakub lihtsat teksti sisestamist, kuid Templater lisab JavaScripti toe, dünaamilise kuupäevaarvutuse, automaatse faili ümbernimetamise ja kausta-põhise mallide sidumise. See tähendab, et saad luua "intelligentseid" malle, mis küsivad andmeid, arvutavad kuupäevi ja loovad struktuuri automaatselt.[1][2]

### Paigaldamine ja seadistamine

1. Settings → Community plugins → Otsi "Templater" → Install → Enable.
2. Loo vault'i juurde kaust `Templates/` ja sea see Templater seadetes: **Template folder location** → `Templates`.[3]
3. Lülita sisse **Trigger Templater on new file creation** ja seadista **Folder templates**: näiteks kaust `Articles/` → `Templates/Article Template.md`.[2][1]

### Artikli malli näide

Järgnev Templater-mall loob automaatselt frontmatter'i, küsib pealkirja ja lisab artikli põhistruktuuri:

```markdown
---
title: ""
created: 2026-03-02
updated: 2026-03-01
status: draft
type: article
tags: []
author: "Ardo Kubjas"
---

# 2026-03-01

## Sissejuhatus


## Probleem / Taust


## Lahendus / Analüüs


## Kokkuvõte

```

Malli olulised osad:

- **`tp.system.prompt()`** — avab dialoogiakna, mis küsib kasutajalt sisendi (pealkiri, tagid, autor).[4][3]
- **`tp.date.now("YYYY-MM-DD")`** — lisab tänase kuupäeva automaatselt.[5]
- **`tp.file.title`** — viitab faili nimele ja kasutab seda pealkirjas.[3]
- **`tp.file.last_modified_date()`** — lisab viimati muudetud kuupäeva.[6]

### Kausta-põhine automaatika

Templater'i seadetes saab siduda konkreetsed kaustad mallidega: iga kord, kui lood uue note'i kaustas `Articles/`, rakendatakse automaatselt artikli mall. Sama loogika töötab eraldi kaustade jaoks nagu `Research/`, `Daily/` jne — igaühel oma mall.[1][2]

### Faili automaatne ümbernimetamine

Templater võimaldab `tp.file.rename()` abil anda failile struktureeritud nime kohe loomisel:[7]

```markdown

```

See loob failid kujul `2026-02-26 SEO-vs-RAG.md`, mis hoiab kronoloogilise järjestuse.

### Keerulisem näide: post-creation hooks

Kui frontmatter vajab hilisemat muutmist (nt automaatse ID lisamine), kasuta `tp.hooks.on_all_templates_executed`:[7]

```javascript

```

***

## Dataview: dünaamilised päringud ja ülevaated

### Mida Dataview teeb

Dataview muudab vault'i SQL-sarnaseks andmebaasiks, kus saad küsida note'ide metaandmeid (frontmatter, inline-väljad) ja kuvada tulemusi tabelite, loendite, ülesannete ja kalendritena.[8][9]

### Paigaldamine

Settings → Community plugins → Otsi "Dataview" → Install → Enable. Seadetes lülita sisse **Enable JavaScript Queries** ja **Enable Inline Queries**, kui vajad keerulisemaid päringuid.[8]

### Neli päringu tüüpi

| Tüüp | Kirjeldus | Kasutuskoht |
|------|-----------|-------------|
| `TABLE` | Tabeli kujul ülevaade koos veergudega | Artiklite nimekiri staatuse, kuupäeva, tagidega[10] |
| `LIST` | Lihtsalt loend linkidega | Kiire ülevaade mustanditest[9] |
| `TASK` | Interaktiivne ülesannete loend | Artikli-seotud to-do'd[9] |
| `CALENDAR` | Kuupäevapõhine kalendervaade | Artiklite avaldamisgraafik[9] |

### Praktilised päringud artiklite jaoks

**Kõik artiklid staatuse järgi:**

```dataview
TABLE status AS "Staatus", updated AS "Uuendatud", tags AS "Tagid"
FROM "Articles"
SORT status ASC, updated DESC
```

See kuvab kõik note'id kaustast `Articles/` tabelina, kus on näha staatus, viimane uuendus ja tagid.[10][8]

**Viimase kuu jooksul muudetud mustandid:**

```dataview
LIST
FROM "Articles"
WHERE status = "draft" AND file.mtime >= date(today) - dur(30 days)
SORT file.mtime DESC
```

See näitab ainult mustandeid, mida on viimase 30 päeva jooksul puudutatud.[9][11]

**Avaldamata artiklite arv:**

```dataview
TABLE length(rows) AS "Kokku"
FROM "Articles"
WHERE status != "published"
GROUP BY status
```

See annab kiire ülevaate, mitu artiklit on igas staatuses.[11]

### Dataview vs Obsidian Bases

Alates Obsidian 1.9+ on saadaval sisseehitatud **Bases** core plugin, mis pakub visuaalset GUI'd päringute loomiseks ilma koodi kirjutamata. Peamised erinevused:[12][13][14]

| Omadus | Dataview | Bases |
|--------|----------|-------|
| Süntaks | Koodi kirjutamine (DQL/JS) | Visuaalne GUI (filter, sort) |
| Kiirus | Aeglane suurte vault'ide puhul | Peaaegu kohene, isegi 50 000+ note'i puhul[14] |
| Inline-väljad | Toetab `(key:: value)` süntaksit | Kasutab ainult frontmatter properties't[14] |
| Muutmine | Ainult lugemine | Otse tabelis redigeeritav[13] |
| Vaated | Tabel, list, task, calendar | Tabel (card ja list tulekul)[13] |
| Keerukus | Kõrge, aga paindlik | Madal, piisab enamiku jaoks[12] |

Enamiku artiklitöövoogude jaoks piisab Bases'ist. Dataview jää vajalikuks, kui vajad keerulisemaid JavaScript-põhiseid päringuid, inline-välju või väga spetsiifilisi filtreerimistingimusi.[14][12]

***

## Advanced Canvas: visuaalne planeerimine

### Mida Advanced Canvas lisab

Advanced Canvas on community plugin, mis laiendab Obsidiani sisseehitatud Canvas'it oluliselt:[15][16]

- **Graph view integratsioon** — `.canvas` failid ilmuvad graafivaattes koos linkide ja backlinkidega.[15]
- **Esitlusrežiim (Presentation Mode)** — loo slaidiesitlus otse Canvas'is, navigeeri nooleklahvidega.[15]
- **Portalid** — embed'i üht canvas'it teise sisse, ehitades hierarhilisi visuaalseid kaarte.[15]
- **Kokkuvolditavad grupid** — organiseeri suuri canvas'eid, peites ja avades sektsioone.[15]
- **Fookusrežiim** — hägustu kõik muud sõlmed peale valitu, et keskenduda ühele ideele.[15]
- **Flowchart kujundid** — kasuta vooskeemi tüüpi kujundeid (romb, ovaalne jne) struktureeritud planeerimiseks.[15]
- **Auto node resizing** — sõlmed kohandavad suurust sisu järgi automaatselt.[15]
- **Floating edges** — ühendusjooned valivad automaatselt parima külje.[16]

### Artikli planeerimine Canvas'is

Praktiline töövoog pikema artikli jaoks:

1. **Loo `.canvas` fail** artikli kõrvale (nt `SEO-vs-RAG.canvas` kaustas `Articles/`).
2. **Lisa struktuurikaardid** — tee sticky-note tüüpi kaardid: "Sissejuhatus", "Probleemipüstitus", "3 peamist argumenti", "Case study", "Kokkuvõte".
3. **Lisa research-note'id** — drag-and-drop'i oma `Research/` kaustast seotud note'id canvas'ile. Advanced Canvas loob automaatselt edge'id, kui frontmatter'is on vastavad lingid.[15]
4. **Ühenda joontega** — too esile loogiline voog: allikas → argument → järeldus.
5. **Kasuta kokkuvolditavaid gruppe** — pane iga artikli sektsioon oma gruppi, mida saad avada/sulgeda.[15]
6. **Esitlusrežiim** — märgi esimene slaid, ühenda noolega järgmisega. Käivita `Advanced Canvas: Start presentation` ja navigeeri nooleklahvidega. Hea struktuuri testimiseks enne kirjutamist.[16]

### Encapsulate Selection

Kui canvas muutub liiga suureks, vali hulk sõlmi ja kasuta "Encapsulate Selection" — see viib valitud sõlmed uude canvas'isse ja loob lingi tagasi algsesse. Nii saad hoida peamise canvas'i puhtana ja süveneda detailidesse eraldi "ala-canvas'ites".[15]

***

## Kolme plugina koostöö: automatiseeritud töövoog

### Samm-sammuline protsess

1. **Uue artikli loomine** — loo note kaustas `Articles/`. Templater rakendab automaatselt malli, küsib pealkirja, tagid, ja lisab frontmatter'i koos kuupäevaga.[2]
2. **Visuaalne planeerimine** — loo sama artikli jaoks Advanced Canvas fail. Lisa struktuuri-kaardid ja research-materjalid, ühenda joontega.[15]
3. **Kirjutamine** — täida artikli note'i sektsioonid Canvas'i plaani alusel.
4. **Ülevaade ja jälgimine** — Dataview päring (või Bases vaade) `Articles/` kaustast näitab kõiki artikleid koos staatusega, viimase muutmise kuupäevaga ja tagidega. Filtreeri `status = "draft"` et näha, mis vajab veel tööd.[10][8]
5. **Staatuse uuendamine** — kui artikkel valmib, muuda frontmatter'is `status: draft` → `status: published`. Dataview/Bases uuendab vaadet automaatselt.

### Soovitav Dataview dashboard

Loo note `Article Dashboard.md` vault'i juurtasemele:

```markdown
# 📝 Artiklite ülevaade

## Mustandid
\```dataview
TABLE updated AS "Uuendatud", tags AS "Tagid"
FROM "Articles"
WHERE status = "draft"
SORT updated DESC
\```

## Toimetamises
\```dataview
TABLE updated AS "Uuendatud", tags AS "Tagid"
FROM "Articles"
WHERE status = "edit"
SORT updated DESC
\```

## Avaldatud
\```dataview
TABLE updated AS "Uuendatud", tags AS "Tagid"
FROM "Articles"
WHERE status = "published"
SORT updated DESC
LIMIT 10
\```
```

***

## Levinumad vead ja kuidas neid vältida

### Viga 1: liiga palju pluginaid korraga

Paljud algajad paigaldavad esimesel päeval 15–20 pluginat, mis viib segaduse ja aeglase vault'ini. **Lahendus:** alusta kolme pluginaga (Templater, Dataview, Advanced Canvas) ja lisa uusi alles siis, kui konkreetne vajadus tekib.[17][18]

### Viga 2: tühi frontmatter tekitab Dataview vigu

Kui Templater'i mall jätab frontmatter'i välja tühjaks (nt `tags:` ilma väärtuseta), tekivad Dataview'is `null`-vead, mis võivad päringuid rikkuda. **Lahendus:** kasuta alati vaikeväärtusi mallis:[19]

```yaml
tags: []
status: "draft"
```

Kui väli on tühi, anna talle tühi massiiv `[]` või tühi string `""`, mitte jäta seda lihtsalt tühjaks.

### Viga 3: liiga keeruline kaustapuu

Sügavad kaustahierarhiad (nt `Projects/AI/LLM/RAG/2026/Articles/...`) muudavad note'ide leidmise raskeks ja nõuavad pidevat otsustamist, kuhu midagi panna. **Lahendus:** kasuta maksimaalselt 3–5 tippkausta ja lase tagidel + linkidel teha organiseerimistöö.[20][17]

### Viga 4: Dataview FROM ja WHERE süntaksivead

Levinuimad vead Dataview päringutes:[21]

- **Kaustanimi jutumärkides peab olema täpne:** `FROM "Articles"`, mitte `FROM "articles"` (case-sensitive).
- **WHERE tingimus puuduva välja puhul:** lisa alati kontroll, kas väli eksisteerib: `WHERE status AND status = "draft"`.
- **FROM ja WHERE kombinatsioon filtreerib liiga palju välja:** testi järk-järgult — eemalda kõigepealt WHERE, siis lisa tagasi üks tingimus korraga.[21]

### Viga 5: Templater frontmatter'i juurdepääsu probleem

`tp.frontmatter.property` annab `undefined`, kui malli rakendatakse enne, kui Obsidian on frontmatter'i indekseerinud. **Lahendus:** kasuta `tp.hooks.on_all_templates_executed()` callback'i, mis käivitub alles pärast malli täielikku rakendamist.[22][7]

### Viga 6: Dataview aeglustab vault'i

Suure vault'i (10 000+ note'i) puhul võib Dataview märgatavalt aeglustada, eriti mobiilis. **Lahendus:**[12][14]
- Piira igat päringut `LIMIT`-iga (nt `LIMIT 20`).
- Kasuta `FROM` klauslit, et piirata otsinguala konkreetse kaustaga.
- Kaalu üleminek Bases'ile tavaliste päringute jaoks — Bases on oluliselt kiirem.[14]

### Viga 7: kopeerid märkmeid, aga ei mõtle neid läbi

Artiklite ja tsitaatide kopeerimine ilma oma sõnadega ümbersõnastamata ei loo teadmist. **Lahendus:** iga note'i lõppu lisa sektsioon "Minu mõtted" või "Miks see on oluline", kus sõnastad oma arusaama.[18]

***

## Kokkuvõttev tabel: pluginate rollid

| Plugin                | Roll töövoos                               | Peamine kasu                                                  |
| --------------------- | ------------------------------------------ | ------------------------------------------------------------- |
| Templater             | Automaatne note'ide loomine ja frontmatter | Ühtlane struktuur, aja kokkuhoid, vähem vigu[2]               |
| Dataview              | Dünaamilised päringud ja ülevaated         | Artiklite staatuse jälgimine, filtreerimine, dashboard'id[10] |
| Advanced Canvas       | Visuaalne planeerimine ja esitlus          | Artikli struktuuri kavandamine, ideede seostamine[15]         |
| Bases (sisseehitatud) | Visuaalne GUI päringuteks                  | Lihtsam ja kiirem alternatiiv Dataview'ile[13]                |