این تمپلیت به شما کمک می‌کند عادت‌های روزانه، هفتگی و ماهانه‌ی خود را در نرم‌افزار ابسیدین ردیابی کنید.
همه فایل‌ها و پلاگین‌های موردنیاز از قبل آماده شده‌اند؛ فقط ریپازیتوری را دانلود و در ابسیدین باز کنید.


✨ امکانات

  • 📅 گزارش‌های خودکار هفتگی، ماهانه، سه‌ماهه و سالانه
  • 🔥 تقویم هیت‌مپ، نمودار و آمار دقیق
  • 📌 داشبورد روزانه برای مشاهده وضعیت عادت‌ها
  • ⛓️ ردیابی زنجیره‌ی فعلی و طولانی‌ترین زنجیره (نمایش جزئیات با هاور کردن)
  • 🏆 تعیین دستاورد و نمایش مدال

📥 دانلود

  1. ابتدا وارد صفحه ریپازیتوری شوید.
  2. فایل‌ها را دانلود کنید. دو روش برای این کار وجود دارد:
    • روش ساده (دانلود ZIP): روی دکمه سبز رنگ Code کلیک کنید، گزینه Download ZIP را انتخاب کنید، سپس فایل ZIP را در کامپیوترتان ذخیره و Extract (استخراج) کنید.
    • روش حرفه‌ای (Clone با Git): اگر روی سیستم شما Git نصب است، در ترمینال یا CMD دستور زیر را وارد کنید:
git clone https://github.com/fardm/Obsidian-Habit-Tracker.git
  1. فولدر پروژه را در ابسیدین از بخش Open folder باز کنید.
  2. در اولین اجرا، پنجره‌ای نمایش داده می‌شود، روی گزینه‌ی Trust author and enable plugins کلیک کنید.
  3. در سایدبار راست، یک تقویم قابل مشاهده است. با کلیک روی روزها: یادداشت روزانه ایجاد می‌شود، و با کلیک روی هفته/ماه/فصل/سال: گزارش هفتگی، ماهانه یا سالانه ساخته می‌شود.

🛠️ شخصی‌سازی


برای شخصی‌سازی باید فایل‌های موجود در پوشه Templates را تغییر دهید. به عنوان نمونه چهار عادت در این تمپلیت قرار داده شده: ورزش، مطالعه، یادگیری زبان و سوشال مدیا. می‌توانید آنها را حذف یا ویرایش کنید.

افزودن عادت

برای افزودن عادت جدید مراحل زیر را دنبال کنید:

  1. ابتدا فایل Daily را باز کنید و در بخش پراپرتیز، عادت‌ خود را مثل نمونه‌های موجود تعریف کنید. عادت می‌تواند مثل ورزش بولین باشد یا مثل مطالعه مقدار عددی بگیرد.
  2. سپس فایل Add Boolean Habit یا Add Numeric Habit را با توجه به نوع عادت باز کنید.
  3. از سه نقطه بالا گزینه Replace را انتخاب کنید.
  4. در فیلد Find عبارت {{name}} را وارد کنید. در فیلد Replace عادتی که در مرحله1 تعریف کردید را وارد کنید. دقیقا همانی که در پراپرتی روزنوشت وارد کردید، بدون کروشه {{}}.
  5. روی replace all کلیک کنید.
  6. اگر عادت عددی است به همین ترتیب ‌واحد مقدار خود را جایگزین {{unit}} کنید.
  7. حالا کد هر بخش را به فایل مربوط به آن منتقل کنید یعنی:
    • هفتگی به Weekly
    • ماهانه به Monthly
    • سه‌ماهه به Quarterly
    • سالانه به Yearly

مسیر ذخیره‌سازی

یادداشت‌های جدید به‌طور پیش‌فرض در پوشه‌ی Journal ذخیره می‌شوند. برای تغییر آن از بخش «مسیر یادداشت‌های تقویم» در تنظیمات پلاگین Persian Calendar، مسیر دلخواه خود را وارد کنید.

تمپلیت‌ها هم توسط همین پلاگین اعمال می‌شوند. از بخش «قالب یادداشت‌های تقویم» می‌توانید مسیر آن را تغییر دهید.


داشبورد

در این تمپلیت یک داشبورد هم قرار دارد که به صورت خودکار اطلاعات را از یادداشت‌های روزانه جمع‌آوری می‌کند. پیکربندی و شخصی‌سازی این داشبورد از بخش CONFIG که در ابتدای فایل قرار گرفته انجام می‌شود.

محل فایل‌ها (from)

از این بخش باید محل روزنوشته‌ها را مشخص کنید. می‌توانید مسیر پوشه را وارد کنید یا تگی که در آنها استفاده کرده‌اید را تعیین کنید.

const from = {
  tags: ["journal"],    //تگ موجود در روزنوشته‌ها
  paths: []             // مسیر پوشه‌هایی که فایل‌ها در آن هستند
};

منبع تاریخ (dateSource)

در این بخش مشخص می‌کنید که تاریخ هر یادداشت از کجا خوانده شود. اگر filename باشد، تاریخ از نام فایل (مثل 2025-08-15.md) خوانده می‌شود. اگر frontmatter باشد، تاریخ از یک فیلد در بخش پراپرتیز (frontmatter) یادداشت خوانده می‌شود.

const dateSource = {
  type: "filename",        // filename یا frontmatter
  frontmatterField: "date", // نام فیلد تاریخ در frontmatter
  dateFormat: "YYYY/MM/DD"  // فرمت تاریخ
};

تعریف عادت‌ها (habits)

در این بخش لیست عادت ها وارد می شود. هر عادت شامل ویژگی‌های زیر است:

const habits = [
  {
    id: "reading",               // شناسه یکتا عادت
    title: "",                       // نام عادت
    field: "📚reading",    // نام فیلدی که داده در آن ذخیره می‌شود
    type: "numeric",        // نوع داده: numeric یا boolean
    unit: "",                      // واحد اندازه‌گیری
    progressMax: 16,      // بیشترین مقدار برای نوار پیشرفت
 
    completeCondition: {    // شرایط تکمیل عادت
      kind: "gte",                  // نوع مقایسه: eq, gte, lte
      value: 1                       // مقدار مرجع برای تکمیل عادت
    },
 
    chain: {                    // تنظیمات زنجیره
      graceDays: 1,        // تعداد روزهای وقفه مجاز در زنجیره
      cupEvery: 15         // هر چند روز موفقیت کاپ تعلق می‌گیرد
    },
 
    achievement: [                  // محدوده و نشان‌های مدال
      { range: [10, 12], label: "🏅 سوپراستار" }, 
      { range: [7, 9],   label: "🥇 طلا" }, 
      { range: [4, 6],   label: "🥈 نقره" },
      { range: [1, 3],   label: "🥉 برنز" }, 
      { range: [0, 0],   label: "⚪" } 
    ],
 
    lowerIsBetter: false      // اگر مقدار کمتر بهتر است (مثل سوشال مدیا) ترو بذارید، اگر مقدار بیشتر بهتر است (مثل مطالعه) فالس بذارید.
  }
];

زنجیره(chain): اگر به این بخش نیاز نداشتید می‌توانید مقدار null را تنظیم کنید.

روز مهلت (graceDays): این گزینه تعیین می‌کند که در شمارش زنجیره، چند روز وقفه مجاز دارید. اگر 0 باشد: هیچ ارفاقی وجود ندارد و زنجیره با یک روز وقفه قطع می‌شود. اگر 1 باشد: یک روز وقفه مجاز است. یعنی اگر یک روز نتوانستید عادت را انجام دهید، زنجیره همچنان ادامه پیدا می‌کند.

نوع مقایسه(kind):

  • eq : مساوی بودن مثلا دقیقا ۳۰ دقیقه (یا مثلا ورزش که باید برابر با true باشد)
  • gte : بیشتر یا مساوی بودن مثلا حداقل ۳۰ دقیقه (مناسب برای مطالعه که مقدار بیشتر بهتر است)
  • lte : کمتر یا مساوی بودن مثلا حداکثر ۳۰ دقیقه (مناسب برای سوشال مدیا که مقدار کمتر بهتر است)