YAML'dan bilgi alan basit bir tablo nasıl görünüyor:

Eklenecek kod:
```dataviewjs
const pages = dv.pages('"2. Areas/Занятие спортом/Динамика веса"')
.where(p => p.Вес && p.date)
.sort(p => p.date);
let rows = [];
let prevWeight = null;
const goal = 80;
for (let p of pages) {
const date = new Date(p.date).toLocaleDateString();
const weight = p.Вес;
let diffDisplay = "–";
let toGoal = `${(goal - weight).toFixed(1)} kg`;
if (prevWeight !== null) {
const diff = weight - prevWeight;
if (diff > 0) {
diffDisplay = `🟢 +${diff.toFixed(1)}`; // kilo alma = iyi
} else if (diff < 0) {
diffDisplay = `🔴 ${diff.toFixed(1)}`; // kaybetme = kötü
} else {
diffDisplay = "➖ 0";
}
}
rows.push([date, weight, diffDisplay, toGoal]);
prevWeight = weight;
}
dv.table(["📅 Tarih", "⚖️ Kilo (kg)", "📈 Fark", "🎯 Hedefe (80 kg)"], rows);```
→ const pages = dv.pages(‘“2. Areas/Занятие спортом/Динамика веса”’) — YAML’lı notlarının bulunduğu kendi yolunla değiştir → Son üç apostrof karakterini yeni bir satıra taşı
🧠 Bu kodu daha derin anlamak isteyenler için açıklama:
Bu kod sadece bir tablo değil. Doğrudan Obsidian içinde akıllı bir kilo takipçisidir. Şunları gösterir:
-
kayıt tarihi;
-
mevcut kilo;
-
önceki kayda göre kilodaki değişim;
-
hedefe ne kadar kaldığı (örn. 80 kg).
Ve hepsi — otomatik olarak, Excel ya da üçüncü taraf uygulamalar olmadan.
dataviewjs, sıradan dataview’den nasıl farklı?
Sıradan dataview | dataviewjs |
|---|---|
Excel’deki gibi yazarsın: sadece tablo, sıralama, filtre. | JavaScript kullanırsın — yani daha karmaşık mantık yapabilirsin: karşılaştırmalar, hesaplamalar, duygular. |
| Basit liste ve tablolar için uygun. | İleri düzey takipçiler, hesaplamalar, görselleştirmeler için uygun. |
| Değerler arasındaki farkı hesaplayamaz. | Karşılaştırabilir, farkı hesaplayabilir ve hatta sonuca göre emoji çıkarabilir. |
Kodun adım adım açıklaması
const pages = dv.pages('"2. Areas/Занятие спортом/Динамика веса"')
.where(p => p.Вес && p.date)
.sort(p => p.date);-
“Kilo dinamiği” klasöründeki tüm notları alıyoruz.
-
Filtreliyoruz: yalnızca hem kilo hem tarih olanlar lazım.
-
Tarihe göre sıralıyoruz — sırayla olsun.
let rows = [];
let prevWeight = null;
const goal = 80;-
rows— tablo satırları burada toplanacak. -
prevWeight— mevcutla karşılaştırmak için önceki kiloyu hatırlayacağız. -
goal— hedefin (örn. 80 kg). Kod ne kadar kaldığını gösterecek.
for (let p of pages) {
const date = new Date(p.date).toLocaleDateString();
const weight = p.Вес;-
Her nottan tarih ve kiloyu alıyoruz.
-
Tarihi okunabilir yapıyoruz (örn. “27.05.2025”).
let diffDisplay = "–";
let toGoal = `${(goal - weight).toFixed(1)} kg`;-
diffDisplay— geçen seferden beri kiloya ne oldu. -
toGoal— hedefe kilogram olarak ne kadar kaldı.
if (prevWeight !== null) {
const diff = weight - prevWeight;
if (diff > 0) {
diffDisplay = `🟢 +${diff.toFixed(1)}`;
} else if (diff < 0) {
diffDisplay = `🔴 ${diff.toFixed(1)}`;
} else {
diffDisplay = "➖ 0";
}
}-
Kiloyu karşılaştırıyoruz: arttı, azaldı ya da aynı mı kaldı.
-
Bir renk ve emoji ekliyoruz:
-
🟢 kilo aldı — iyi!
-
🔴 kaybetti — belki yemek yemen lazım 😅
-
➖ aynı kaldı — istikrar!
-
rows.push([date, weight, diffDisplay, toGoal]);
prevWeight = weight;-
Her şeyi tabloya ekliyoruz.
-
Sonrakiyle karşılaştırmak için mevcut kiloyu hatırlıyoruz.
dv.table(["📅 Tarih", "⚖️ Kilo (kg)", "📈 Fark", "🎯 Hedefe (80 kg)"], rows);-
Güzel bir tablo çıkarıyoruz:
-
tarih,
-
kilo,
-
değişim,
-
hedefe ne kadar kaldığı.
-
💥 Sonuç
Doğrudan Obsidian’da şunları yapan bir tablo elde edersin:
-
ilerlemeyi hesaplar;
-
nerede kaybettiğini ya da kazandığını gösterir;
-
devam etmeye motive eder.
Kişisel gelişim ve ilerleme takibi için mükemmel bir araç. Ve bunu sen kendin yaptın — Excel olmadan, uygulama olmadan, sadece Obsidian temelinde.