یکی از مفید ترین کارهایی که با ابسیدین انجام میدم ساخت گزارش عملکرد شخصی است. این گزارش به من کمک میکنه اشراف کاملی نسبت به فعالیت های خودم داشته باشم و با اختیار داشتن جزئیات بتونم عملکرد خودم رو دقیق تر ارزیابی کنم.
نمونه این گزارشها رو میتونید در 📋 گزارشهای شخصی ببینید.
اگه میخواید از این روش استفاده کنید، توی این یادداشت کامل توضیح دادم تا چه طور از این مدل گزارش ها بسازید.
Yellow0
⚠️ این یادداشت فقط یه راهنمای کلیه و اگه تازه دارید از ابسیدین و کوارتز استفاده میکنید ممکنه انجامش براتون یه کم سخت باشه. اگه وقت شد میخوام یه ویدئو ضبط کنم تا بتونید راحتتر این گزارش رو بسازید.
گام اول: وارد کردن اطلاعات
در مرحله اول باید اطلاعاتتون رو وارد کنید. گزارشهای من معمولا دو بخش دارن. بخش اول محتواهایی که مصرف کردم. مثل کتاب، پادکست، دوره، فیلم و سریال و اینجور چیزا. بخش دوم ردیابی عادتهای روزمره. مثل ورزش کردن، مطالعه کردن و غیره.
این دو مورد رو تو یادداشتهای جداگانه توضیح دادم.
برای بخش محتواهای مصرف شده، یادداشت زیر رو ببینید.
برای ردیابی عادت هم یادداشت زیر رو ببینید.توی این یادداشت یه تمپلیت آماده کردم که میتونید به راحتی دانلودش کنید و استفاده کنید. راهنمای استفاده ازش رو هم کامل توضیح دادم:
طبق توضیحات این دو یادداشت، اطلاعاتتون رو وارد ابسیدین کنید. بعد از اینکه اطلاعات رو وارد کردید، میتونید گام بعدی رو شروع کنید.
گام دوم: استخراج و نمایش اطلاعات
اگه بر اساس مرحله قبلی پیش رفته باشید، پوشههای ابسیدین شما تقریباً این شکلی خواهد بود:
Journal
└── 1404
Resources
├── Books
├── Podcast
├── Movies
└── Media
(البته لزوما قرار نیست از همین عناوین استفاده کنید. فقط کافیه اطلاعات مربوط به عادت ها و محتواهایی که مصرف کردید رو وارد کرده باشید.)
مهم تر از فولدر ها خود فایل ها و تنظیم پراپرتی هاست. هر فایل پراپرتی مخصوص به خودش رو داره. مثلا تعداد صفحات برای کتاب، یا مدت زمان برای فیلم و سریال. اما یه سری موارد هم مشترکه مثل تاریخ و تگ. مهم تر از همه تگ هست. چون قراره اطلاعات رو بر اساس تگ فیلتر کنیم. (بر اساس فولدر هم میشه اما من از تگ استفاده میکنم)
حالا باید یک فایل جدید بسازیم و اطلاعاتی وارد شده رو استخراج کنیم و گزارش عملکرد بسازیم. برای اینکه کارتون راحت تر بشه یک فایل آماده کردم و دستورهای مورد نیاز رو داخلش گذاشتم. فقط کافیه شخصی سازی شون کنید.
پس:
- فایل Report-Template-Obsidian.md رو دانلود کنید و به والت تون اضافه کنید.
- پلاگین dataview رو نصب و فعال کنید.
- پلاگین contributionGraph رو نصب و فعال کنید.
- از تنظیمات ابسیدین بخش Appearance در قسمت CSS snippets روی آیکون فولدر(📁) کلیک کنید. فایل minimal-cards.css و custom css رو دانلود کرده و در این پوشه قرار بدید. حالا در قسمت CSS snippets روی آیکون ریلود(🔄️) کلیک کنید تا این دو فایل رو نمایش بده. بعد فعالشون کنید. (فایل minimal-cards.css استایل کارت رو میسازه مثل تم مینیمال. اگر از تم مینیمال استفاده میکنید لازم نیست این فایل رو اضافه کنید چون به صورت پیشفرض تم مینینمال از کلاس کارت پیشتیبانی میکنه. فایل custom css هم یه سری کلاس داره برای راستچین و وسط چین کردن خروجی پلاگین دیتا ویو)
حالا میتونیم بریم سراغ شخصی سازی گزارش. البته برای اینکار لازمه نحوه کار با پلاگین dataview رو بلد باشید. کار کردن باهاش چندان پیچیده نیست. اگر تا به حال ازش استفاده نکردید پیشنهاد میکنم مطالب زیر رو ببینید که یه مقدار با فضاش آشنا بشید:
- آموزش کار با پلاگین دیتاویو(Dataview) در ابسیدین
- How To Use Dataview in Obsidian
- نمونه های کاربردی پلاگین دیتاویو
خب بریم سراغ شخصی سازی گزارش. هر بخش یک گزارش آماری داره که توسط پلاگین دیتاویو انجام میشه. یک بخش گالری هم داره که با پلاگین base ابسیدین ساخته شده. بخش ردیابی عادت هم یک تقویم هیت مپ داره که با پلاگین contributionGraph ساخته شده. (شخصی سازی ردیاب عادت رو توی یادداشت ساخت هبیت ترکر در ابسیدین کامل توضیح دادم)
بخش آماری | پلاگین دیتا ویو
شخصی سازی این بخش رو باید دستی انجام بدید. این نمونه کد برای استخراج آمار کتاب هست:
```dataview
TABLE WITHOUT ID
length(rows) + " جلد کتاب" as count, // تعداد کل کتاب ها رو محاسبه میکنه
sum(rows.pages) + " صفحه" as sum // تمام پراپرتی های pages رو جمع میزنه
FROM #Book // مشخص میکنه اطلاعات از تگ book استخراج بشن
WHERE date >= date("2025-03-21") AND date <= date("2026-03-20") // بازه زمانی رو مشخص میکنه
GROUP BY "" // همه اطلاعات رو توی یک ردیف نمایش میده
```
- از بخش FROM تگی که استفاده کردید رو وارد کنید. اگر برای کتاب ها از تگ Book استفاده کردید همین دستور براتون کار میکنه. اگر از تگ دیگه ای استفاده کردید اون رو جایگزین کنید.
- از بخش WHERE تاریخ شروع و پایان رو باید وارد کنید تا فقط گزارش یکسال مشخص رو نمایش بده نه همه کتاب هایی که خوندید.
- دستور
sum(rows.pages)
هم همه پراپرتی های pages رو جمع میزنه. من توی این پراپرتی تعداد صفحات کتاب ها رو نوشتم. اگر از عنوان دیگه ای برای تعداد صفحات استفاده کردید اون رو جایگزین کنید.
ساختار باقی موارد هم مثل همینه. از باب نمونه یه مورد دیگه رو هم براتون توضیح میدم. این برای استخراج آمار فیلم هست:
```dataview
TABLE WITHOUT ID
length(rows) + " فیلم و سریال" as count,
round(sum(rows.length.hours),1) + " ساعت" as sum
FROM #Movie
WHERE date >= date("2025-03-21") AND date <= date("2026-03-20")
GROUP BY ""
```
دستور round(sum(rows.length.hours),1)
پراپرتی های length رو جمع میزنه. من توی این پراپرتی مدت زمان رو وارد کردم. اگر از عنوان دیگه ای استفاده کردید اون رو جایگزین کنید.
بخش FROM هم اطلاعات رو از تگ Movie استخراج میکنه. تاریخ هم که همونه.
بخش گالری | پلاگین base
این بخش رو می تونید از رابط کاربری خودش ویرایش کنید. از منوی Filter می تونید فایل ها رو مشخص کنید. به همون روشی که توی پلاگین دیتاویو داشتیم. یک تگ خاص مثلا Book رو فیلتر میکنیم. تاریخ رو هم بین بازه یکسال مشخص تنظیم میکنیم.
از بخش Properties هم میتونید محتویات کارت رو مشخص کنید که چه مواردی رو نمایش بده. به عنوان نمونه این کد برای بخش کتاب هست:
```base
views:
- type: cards
name: Cards
filters:
and:
- file.hasTag("Book")
- date <= "2026-03-21"
- date >= "2025-03-20"
order:
- file.name
- rating
- badge
- pages
image: note.cover
imageFit: contain
imageAspectRatio: 1
cardSize: 140
```
گام سوم : انتشار
در مرحله بعد اگه دوست داشتید میتونید گزارشتون رو با بقیه به اشتراک بذارید. اگه از کوارتز استفاده میکنید، یه روش خودکار و راحت برای این کار هست که بعداً توضیح میدم.
اما اگه بخواید گزارش رو تو سایت شخصیتون یا شبکههای اجتماعی منتشر کنید، باید اطلاعاتی که استخراج کردید رو به صورت دستی توی اونها وارد کنید. یعنی: یا آمار رو مستقیم تایپ کنید، یا اسکرین شات بگیرید و یا خروجی pdf بگیرید.
اما اگه از کوارتز استفاده کنید، یه روش بهینهتر وجود داره. میتونید مستقیم جدولهای دیتاویو رو توی کوارتز منتشر کنید. البته برای این کار به یه پلاگین دیگه به اسم dataview serializer نیاز دارید. چون دیتاویو فقط دادهها رو جمعآوری کرده و نشون میده. اما این پلاگین یه جدول واقعی از دادهها میسازه تا بتونید اطلاعات رو منتشر کنید. بخش گالری هم با همین پلاگین ساخته میشه چون پلاگین base توی کوارتز پشتیبانی نمیشه.
برای سهولت در انجام این مرحله هم یک فایل آماده کردم که دستورات از قبل آماده است فقط کافیه اون ها رو شخصی سازی کنید.
پس:
- فایل Report-Template-Quartz-md رو دانلود کرده و به والت ابسیدین خودتون اضافه کنید. یعنی پوشه content در کوارتز.
- پلاگین dataview serializer رو نصب و فعال کنید.
- فایل card-view رو دانلود و در مسیر
quartz/styles
قرار بدید. - بعد کد زیر رو به ابتدای فایل
custom.scs
اضافه کنید.
@use "./_card-view.scss";
(فایل card-view جدول ها رو تبدیل به نمای کارتی میکنه. اینجا بیشتر توضیح دادم)
تمام! حالا میتونید گزارشتون رو شخصی سازی کنید.
چه طور شخصی سازی کنیم؟
ویرایش این فایل مثل ویرایش دستوارت دیتا ویو هست فقط با این تفاوت که همه دستورات باید در یک خط باشند و نباید اینتر بخورند. همچنین باید در ساختار <!-- QueryToSerialize: <query> -->
قرار بگیرند. به عنوان نمونه دستوری که برای استخراج اطلاعات کتاب استفاده می کردم به این شکل می شود:
<!-- QueryToSerialize: table without id (""), file.name, "`" + pages + " صفحه`", rating FROM #Books WHERE date >= date("2024-03-20") AND date <= date("2025-03-20") SORT date DESC -->
<!-- SerializedQuery: table without id (""), file.name, "`" + pages + " صفحه`", rating FROM #Books WHERE date >= date("2024-03-20") AND date <= date("2025-03-20") SORT date DESC -->
| ("") | file.name | "`" + pages + " صفحه`" | rating |
| ---------------------- | --------- | ---------------------- | ------ |
<!-- SerializedQuery END -->
جزئیات بیشتر رو می تونید توی داکیومنت پلاگین دیتاویو سریالیزر مشاهده کنید تا بیشتر با فضاش آشنا بشید. جدول ها به صورت خودکار تولید میشن و هر موقع اطلاعات آپدیت بشن جداول هم آپدیت میشن. اگر نشد Ctrl + P را بزنید تا بخش command باز شود. دستور Scan and serialize all Dataview queries را جستجو و اجرا کنید.
(البته من از یک روش عجیب تر استفاده میکنم. وقتی فایل رو ویرایش کنید یعنی متنی رو اضافه یا کم کنید دیتایو سریالیزر فعال میشه و اسکن میکنه. من هم بعضی وقتا همین کار رو انجام میدم. مثلا یک 0 تایپ میکنم تا پلاگین فعال بشه و جدول رو آپدیت کنه. بعدش 0 رو پاک میکنم. یه کم عجیبه ولی خب کار میکنه حتی از خود اون دستور scan بهتر کار میکنه! چون بعضی وقتا اون دستور رو میزنم هیچ اتفاقی نمیفته)
چه طور والت اصلی را به والت کوارتز متصل کنیم؟
اگه والتی که برای انتشار استفاده میکنید همون والتی باشه که محتواها رو ثبت و عادتها رو ردیابی میکنید، هیچ مشکلی ندارید و خیلی راحت میتونید با دیتاویو سریالیزر اطلاعات رو استخراج کنید. اما اگه مثل من از دو والت جداگانه استفاده میکنید، با یه چالش روبرو میشید. اینکه اطلاعات توی یه والت هست و سایت توی یه والت دیگه.
برای حل این مشکل میتونید از Symbolic Link یا Junction استفاده کنید. با این روش در واقع یه کپی از فایل یا فولدرتون میسازید که به نسخه اصلیش لینک شده. این لینک دو طرفهست و هر نسخهای که تغییر کنه، بلافاصله نسخه دیگه هم تغییر میکنه.
لینک دایرکتوری
اگه میخواید یه فولدر رو لینک کنید، میتونید از Junction استفاده کنید. فرض کنید مسیر والتهای شما اینجوریه:
📂 والت نوت: C:\notes
📂 والت کوارتز: C:\quartz
حالا میخواید یه فولدر به اسم “share” بسازید که تو هر دو والت دیده بشه. کافیه از دستور زیر توی cmd استفاده کنید:
mklink /J "C:\notes\share" "C:\quartz\share"
علاوه بر این، میتونید از Symbolic Link هم برای لینک کردن دایرکتوری استفاده کنید. (البته این روش فقط از کوارتز ۴.۳.۱ به بعد کار میکنه و تو نسخههای قبلی ارور میده +) به این شکل:
mklink /D "C:\notes\share" "C:\quartz\share"
لینک فایل
اگه میخواید فقط یه فایل رو لینک کنید، میتونید از Symbolic Link استفاده کنید. برای این کار از دستور زیر استفاده کنید:
mklink "C:\notes\file.md" "C:\quartz\file.md"
در مورد این روش توی یادداشت لینک نمادین بیشتر توضیح دادم.
🚨توجه
در این روش حتما باید دقت کنید که مثل دستورات بالا فایل اصلی توی والت کوارتز باشه و نسخه لینک شده توی والت نوت. اگه لینک رو برعکس درست کنید - یعنی فایل اصلی توی والت نوت باشه و فایل لینک شده توی والت سایت - کوارتز ارور میده و نمیتونه فایل رو منتشر کنه.
نکته آخر اینه که لازم نیست پلاگین دیتاویو سریالیزر رو توی والت کوارتز نصب کنید. چون با این کار سریالیزر دوباره اطلاعات رو اسکن میکنه و از اونجایی که دادهای توی والت کوارتز وجود نداره، دادههای شما رو نشون نمیده. البته میتونید از بخش تنظیمات پلاگین مشخص کنید که فایلهای موجود توی یه فولدر خاص اسکن نشه.