Persian Calendar

approved

by Hossein Maleknejad

Persian Calendar for managing periodic notes based on persian solar (shamsi) calendar.

100 stars7,802 downloadsUpdated 1mo ago
View on GitHub

Obsidian Persian Calendar

This tool lets you see events, add and organize notes from daily to yearly on the Persian calendar, use templates with placeholders, and works with all Obsidian daily plugins.

تقویم فارسی ایسیدین

Usage

  • Can add daily, weekly, monthly, Seasonal and yearly notes based on Persian calendar.
  • Modify path for creating notes.
  • Can reference notes by typing @ or selecting them.
  • Can add {{placeholders}} in templates to enrich your templates. Works fine with Templater plugin for note templates.
  • Works fine with all obsidian daily plugins.
  • Works with Georgian and Hijri calendar in one view.
  • Showing events of Iranian official calendar.

افزونه تقویم فارسی ابسیدین

این افزونه تقویم فارسی را به ابسیدین اضافه می‌کند و شما می‌توانید بااستفاده از آن روزنوشت‌، هفته‌نوشت، ماه‌نوشت، فصل‌نوشت و سال‌نوشت تولید کنید و آن‌ها را مدیریت کنید، به آسانی به آن‌ها ارجاع دهید و نوشته‌هایتان را غنی‌تر کنید.

نمای اصلی افزونه تقویم فارسی ابسیدین

قابلیت‌ها

  • ایجاد یادداشت‌های روزانه، هفتگی، ماهانه، فصلی و سالانه
  • برای یادداشت‌های روزانه و هفتگی موجود در فولدری که تعریف شده است یک نقطه زیر آن‌ها نمایش داده می‌شود.
  • سازگاری کامل با افزونه Templater
  • سازگاری با تم‌های اصلی ابسیدین
  • امکان رفرنس دادن به یادداشت‌ها از طریق تایپ کردن '@' یا سلکت کردن عبارت‌ها برای قالب‌ها.
  • امکان قرار دادن {{عبارت‌های معنادار}} در قالب‌ها برای غنی‌تر کردن یادداشت‌ها
  • ذخیره‌سازی فایل‌های روزنوشت به میلادی برای سازگاری بیشتر با افزونه‌های ابسیدین
  • قابلیت نمایش همزمان تقویم میلادی و قمری
  • نمایش مناسبت‌ها تقویم شمسی و میلادی و هجری
  • امکان تنظیم نمایش مناسبت‌ها

راهنمای نصب

این افزونه در مخزن افزونه‌های ابسیدین نمایه شده است. برای نصب افزونه کافیست از طریق تنظیمات در بخش Community plugins نام Persian Calendar را جستجو کنید و افزونه را نصب کنید. بعد از فعالسازی افزونه در صورتی که افزونه را در سایدبار سمت چپ نمی‌بینید، با دستور «باز کردن تقویم فارسی» آن را در سایدبار باز کنید. پس از اجرای دستور، افزونه باید در سایدبار سمت چپ بالا به شما نمایش داده شود.

راهنمای استفاده

پس از نصب افزونه اولین کار مهم تعریف مسیرهای ایجاد یادداشت‌های تقویم است. برای این کار به تنظیمات افزونه رفته و مسیرهای ایجاد فایل‌ها را مطابق توضیحات ایجاد کنید. امکان مسیردهی داینامیک یادداشت‌های تقویم به صورت سالانه، فصلی و ماهانه وجود دارد.

مسیر داینامیکمقدار نمونهتوضیحات
jYYYY1404سال شمسی به صورت چهار رقمی
jQQQQپاییزنام فصل شمسی
jQQ03شماره‌ی فصل شمسی
jQ3شماره‌ی فصل شمسی
jMMMMآذرنام ماه شمسی
jMM09شماره‌ی ماه شمسی
jM9شماره‌ی ماه شمسی

تنظیمات افزونه

تنظیمات افزونه

می‌توانید یا از طریق مسیردهی قالب درون تنظیمات یا از طریق افزونه Templater برای یادداشت‌های تقویم قالب تعیین کنید.

آموزش استفاده به همراه افزونه Templater

با استفاده از افزونه Templater می‌توانید قالب‌های مشخصی را برای یاداشت‌های روزانه، هفتگی، ماهانه، فصلی و سالانه خود مشخص کنید: کافیست افزونه Templater را نصب کنید و مطابق تصویر زیر برای هر نوع از فایل‌ها یک قالب به افزونه معرفی کنید. در نظر داشته باشید مسیرهایی که به افزونه معرفی می‌کنید با مسیرهای مشخص شده در تنظیمات افزونه یکسان باشد. حتما باید گزینه Trigger Templater on new file creation روشن باشد. برای غنی‌تر کردن قالب‌ها حتما بخش عبارت معنادار این افزونه را مطالعه کنید.

راهنمای استفاده به همراه Templater

امکان درج عبارت معنادار در قالب‌ها

میتوانید با درج عبارت‌های معنادار زیر تاریخ‌ها را در قالب‌ها اضافه کنید:

عبارات معنادار وابسته به روزنوشت

فقط در روزنوشت کار می‌کند.

عبارتمقادیر نمونهتوضیحات
{{تاریخ شمسی یادداشت}}1404-11-30تاریخ روزنوشت را برمی‌گرداند.
{{تاریخ میلادی یادداشت}}2026-02-19تاریخ روزنوشت را برمی‌گرداند.
{{تاریخ قمری یادداشت}}1447-09-01تاریخ روزنوشت را برمی‌گرداند.
{{روز هفته یادداشت}}پنجشنبهنام روز هفته روزنوشت را برمی‌گرداند.
{{روز ماه یادداشت}}30روز ماه یادداشت را برمی‌گرداند.
{{مناسبت یادداشت}}(همان متنی که در مناسبات تقویم نمایش داده می‌شود)مناسبت‌های روزنوشت را برمی‌گرداند.

عبارات معنادار وابسته به هفته

فقط در روزنوشت و هفته‌نوشت کار می‌کند.

عبارتمقادیر نمونهتوضیحات
{{هفته یادداشت}}1404-W49مشخصه‌ی هفته را برمی‌گرداند.
{{اول هفته}}2026-02-14روز اول هفته‌نوشت را برمی‌گرداند.
{{آخر هفته}}2026-02-20روز آخر هفته‌نوشت را برمی‌گرداند.

عبارات معنادار وابسته به ماه

فقط در روزنوشت و ماه‌نوشت کار می‌کند.

عبارتمقادیر نمونهتوضیحات
{{ماه یادداشت}}1404-11مشخصه‌ی ماه روز نوشت را برمی‌گرداند.
{{نام ماه یادداشت}}بهمننام ماه روز نوشت را برمی‌گرداند.
{{اول ماه}}2026-01-21روز اول ماه‌نوشت را برمی‌گرداند.
{{آخر ماه}}2026-02-19روز آخر ماه‌نوشت را برمی‌گرداند.

عبارات معنادار وابسته به فصل

فقط در روزنوشت، ماه‌نوشت و فصل‌نوشت کار می‌کند.

عبارتمقادیر نمونهتوضیحات
{{فصل یادداشت}}1404-S4مشخصه‌ی فصل روز نوشت را برمی‌گرداند.
{{نام فصل یادداشت}}زمستاننام فصل روز نوشت را برمی‌گرداند.
{{اول فصل}}2025-12-22روز اول فصل‌نوشت را برمی‌گرداند.
{{آخر فصل}}2026-03-21روز آخر فصل‌نوشت را برمی‌گرداند.

عبارات معنادار وابسته به سال

در روزنوشت، هفته‌نوشت، ماه‌نوشت و سال‌نوشت به درستی کار می‌کند.

عبارتمقادیر نمونهتوضیحات
{{سال یادداشت}}1404سال یادداشت را برمی‌گرداند.
{{اول سال}}2025-03-21روز اول سال را برمی‌گرداند.
{{آخر سال}}2026-03-20روز آخر سال را برمی‌گرداند.

عبارات معنادار زمان حال

عبارتمقادیر نمونهتوضیحات
{{تاریخ شمسی جاری}}1404-11-26تاریخ شمسی جاری را برمی‌گرداند.
{{تاریخ میلادی جاری}}2026-02-15تاریخ میلادی جاری را برمی‌گرداند.
{{تاریخ قمری جاری}}1447-08-26تاریخ قمری جاری را برمی‌گرداند.
{{روز هفته جاری}}یکشنبهنام روز هفته امروز را برمی‌گرداند.
{{روز ماه جاری}}26روز ماه امروز را برمی‌گرداند.
{{هفته جاری}}1404-W49مشخصه‌ی هفته جاری را برمی‌گرداند.
{{نام ماه جاری}}بهمننام ماه جاری را برمی‌گرداند.
{{ماه جاری}}1404-11مشخصه‌ی ماه جاری را برمی‌گرداند.
{{نام فصل جاری}}زمستاننام فصل جاری را برمی‌گرداند.
{{فصل جاری}}1404-S4مشخصه‌ی فصل جاری را برمی‌گرداند.
{{سال جاری}}1404سال جاری را برمی‌گرداند.
{{مناسبت جاری}}(همان متنی که در مناسبات تقویم نمایش داده می‌شود)مناسبت‌های امروز را برمی‌گرداند.

روزهای گذشته و باقیمانده

به صورت پیشفرض به تاریخ روزنوشت وابسته هستند اما اگر در روزنوشت نباشند نتیجه را براساس تاریخ جاری نمایش می‌دهند.

عبارتمقادیر نمونهتوضیحات
{{روزهای گذشته سال}}334تعداد روزهای گذشته از ابتدای سال را برمی‌گرداند.
{{روزهای باقیمانده سال}}31تعداد روزهای باقی‌مانده تا پایان سال را برمی‌گرداند.
{{روزهای گذشته فصل}}58تعداد روزهای گذشته از ابتدای فصل را برمی‌گرداند.
{{روزهای باقیمانده فصل}}31تعداد روزهای باقی‌مانده تا پایان فصل را برمی‌گرداند.
{{روزهای گذشته ماه}}28تعداد روزهای گذشته از ابتدای ماه را برمی‌گرداند.
{{روزهای باقیمانده ماه}}2تعداد روزهای باقی‌مانده تا پایان ماه را برمی‌گرداند.

امکان ارجاع به یادداشت‌ها از طریق تایپ کردن '@' یا انتخاب کردن

میتوانید از طریق تایپ کردن نویسه '@' در وسط نوشته‌ها به یادداشت‌های خود ارجاع دهید. یادداشت‌های پشتیبانی شده تا به امروز:

  • روزهای جاری به صورت امروز، دیروز، فردا، پریروز و پس‌فردا (هماهنگ با تنظیم میلادی و خورشیدی)
  • روزهای هفته:روز هفته(روز هفته جاری)، روز هفته بعد، روز هفته قبل (هماهنگ با تنظیم میلادی و خورشیدی)؛ نکته: اگر مثلا دوشنبه باشد و شما یکشنبه را انتخاب کنید یکشنبه بعدی انتخاب می‌شود. یکشنبه ای که گذشته است در تعریف این افزونه یکشنبه گذشته است و باید از عبارت یکشنبه قبل استفاده کنید.
  • هفته‌ها به صورت این هفته، هفته قبل و هفته بعد
  • ماه‌ها به صورت این ماه، ماه قبل و ماه بعد
  • فصل‌ها به صورت این فصل، فصل قبل و فصل بعد
  • سال‌ها به صورت امسال، سال قبل و سال بعد همچنین میتوانید با انتخاب کردن عبارت‌های فوق را به روزنوشت‌ها لینک کنید. مثلا اگر فردا را انتخاب کنید و انتخاب دستور مرتبط یادداشت‌ها را لینک کنید. فیلم زیر را برای درک بهتر این موضوع ببینید. در نظر داشته باشید به صورت پیش‌فرض این افزونه فایل‌ها را نمی‌سازد و خودتان باید فایل‌ها را ازطریق افزونه بسازید. suggester

امکان استفاده از API اختصاصی

این پلاگین یک API اختصاصی در اختیار شما قرار می‌دهد تا بتوانید داخل اسکریپت‌های Obsidian(مانند dataviewjs ،templater و…) از قابلیت‌های تبدیل عدد و تاریخ استفاده کنید.

const pcApi = app.plugins.getPlugin("persian-calendar").api;

// for numbers
pcApi.toEnNumber("۱۲۳ تست test"); // "123 تست test"
pcApi.toFaNumber("123 تست test"); // "۱۲۳ تست test"

// for Jalali/Shamsi/Khorshidi
pcApi.jalaliToDate(1405, 9, 13); // jalali to Date
pcApi.jalaliToGregorian(1405, 9, 13); // {gy: 2026, gm: 12, gd: 4}
pcApi.jalaliToHijri(1405, 9, 13); // (iran){hy: 1448, hm: 6, hd: 24}
pcApi.jalaliToHijri(1405, 9, 13, { base: "umalqura" }); // (umalqura){hy: 1448, hm: 6, hd: 24}
pcApi.jalaliMonthName(9); // آذر
pcApi.jalaliMonthName(9, "en"); // Azar
pcApi.seasonName(3); // پاییز
pcApi.seasonName(3, "en"); // Autumn

// for Gregorian/Miladi
pcApi.dateToGregorian(new Date()); // {gy, gm, gd}
pcApi.gregorianToDate(2026, 12, 4); // gregorian to Date
pcApi.gregorianToJalali(2026, 12, 4); // {jy: 1405, jm: 9, jd: 13}
pcApi.gregorianToHijri(2026, 12, 4); // (iran){hy: 1448, hm: 6, hd: 24}
pcApi.gregorianToHijri(2026, 12, 4, { base: "umalqura" }); // (umalqura){hy: 1448, hm: 6, hd: 24}

// for Hijri-iran
pcApi.hijriToDate(1448, 6, 24); // (iran)hijri to Date
pcApi.hijriToGregorian(1448, 6, 24); // (iran){gy: 2026, gm: 12, gd: 4}
pcApi.hijriToJalali(1448, 6, 24); // (iran){jy: 1405, jm: 9, jd: 13}

// for Hijri-umalqura
pcApi.hijriToDate(1448, 6, 24, { base: "umalqura" }); // (umalqura)hijri to Date
pcApi.hijriToGregorian(1448, 6, 24, { base: "umalqura" }); // (umalqura){gy: 2026, gm: 12, gd: 4}
pcApi.hijriToJalali(1448, 6, 24, { base: "umalqura" }); // (umalqura){jy: 1405, jm: 9, jd: 13}

// for all events
pcApi.checkHoliday(new Date()); // (is holiday?)true|false

pcApi.dateToEvents(new Date()); // [{(fa & en)title, categories, isHoliday},...]
pcApi.dateToEvents(new Date(), "umalqura"); // (hijri based on umalqura)[{(fa & en)title, categories, isHoliday},...]

دستورات تعریف شده در افزونه

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

  • دسترسی به روزنوشت، هفته‌نوشت، ماه‌نوشت، فصل‌نوشت و سال‌نوشت جاری
  • ارجاع متن انتخاب شده به یادداشت مرتبط
  • تبدیل تاریخ بین شمسی و میلادی به صورت خودکار و با فرمت YYYY-MM-DD . (سال بیشتر از 1700 میلادی و کمتر از آن شمسی است. این حرکت اشتباه اما کار راه‌اندازتر است!)

دستورات تعریف شده در تقویم

قابلیت نمایش تقویم میلادی

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

افزونه به همراه تقویم میلادی

قابلیت نمایش تقویم قمری و میلادی به صورت همزمان

در تنظیمات تقویم میتوانید مشخص کنید تقویم قمری نمایش داده شود یا خیر. این تنظیمات باعث میشود که بتوانید در کنار تقویم شمسی و میلادی تقویم قمری را هم داشته باشید.

تنظیم نمایش مناسبت‌های در تقویم

مناسبت‌های تقویم ایران به این افزونه اضافه شده است. میتوانید تنظیم کنید در تولتیپ (وقتی موس را روی روز قرار می‌دهید باکسی نمایش داده می‌شود که به آن تولتیپ می‌گویند) چه مناسبت‌هایی را نمایش دهد. به صورت معمول سه دسته مناسبت در تقویم ایران وجود دارد:

  • مناسبت‌های تقویم رسمی: این مناسبت‌ها به صورت رسمی در کشور تصویب شده‌اند
  • مناسبت‌های باستانی:‌ مناسبت‌های که در تقویم باستانی ایران وجود دارد
  • مناسبت‌های جهانی: دارای بیش از ۱۳۰ مناسبت جهانی
  • مناسبت‌های اسلامی: مناسبت‌های اهل تشیع و اهل تسنن را می‌توانید در کنار تنظیم پایه‌ی تقویم هجری قمری بر اساس ستاد استهلال ایران یا ام‌القری عربستان به کار بگیرید

نمایش مناسبت‌های تقویم شمسی

مسیر مشارکت در توسعه افزونه

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

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.