singhaf9270171 downloadsPersian task reminders with Jalali calendar, Material time picker, colored task backgrounds, sidebar and dashboard.
Persian Reminder is a Persian-language task reminder plugin for Obsidian. It integrates with the Persian Calendar community plugin to select Jalali dates and provides a clock-style time picker, hashtags, locations, and task management views.
Install and enable the Persian Calendar plugin first.
Use the matching main.js, manifest.json, and styles.css from this archive or your repository release. Place them in YourVault/.obsidian/plugins/persian-reminder/, then enable Persian Reminder in Settings → Community plugins.
Keep your existing data.json when updating manually.
The plugin lists Markdown files with vault.getMarkdownFiles() at startup to find reminders throughout the vault. It reads notes through Obsidian's vault API and updates affected task lines when you add, edit, complete, or delete a task. This scan is necessary for vault-wide reminders, including notes that are not open. The plugin does not send note contents to external services.
Use Node.js 24 and npm. There are no third-party build dependencies; the committed package-lock.json records this dependency-free build.
npm ci
npm test
npm run check
Edit src/, then run npm run build to regenerate main.js and styles.css. CI checks that the committed bundles match the sources byte-for-byte.
The build workflow generates provenance attestations for main.js, styles.css, and manifest.json on pushes to main and on published releases. Release builds verify that the tag matches the version in manifest.json, then upload those exact files to the release. Use a new version/tag containing the workflow and fixes; existing release assets are not changed by a source commit.
gh attestation verify main.js --repo OWNER/REPOSITORY
gh attestation verify styles.css --repo OWNER/REPOSITORY
To publish a new version, update the manifest, package, lockfile, version map, and changelog, then push a commit whose complete message is Release X.Y.Z (matching the manifest). The workflow tests, attests, and publishes that exact commit with the three installable files.
Please use this repository's Issues tab to report bugs. For mobile issues, include your device model, Obsidian version, and a screenshot when possible.
افزونهای فارسی برای مدیریت وظایف و یادآوریها در Obsidian با پشتیبانی از تقویم جلالی، ساعت، هشتگ و مکان.
نسخه: 1.0.9 — برای انتخاب تاریخ شمسی، افزونهٔ Persian Calendar باید نصب و فعال باشد.
۱. به بخش Releases همین مخزن بروید و آخرین نسخهٔ منتشرشده را باز کنید.
۲. سه فایل زیر را از بخش Assets دریافت کنید:
main.js
manifest.json
styles.css
۳. آنها را در پوشهٔ زیر قرار دهید (در صورت نیاز پوشه را بسازید):
YourVault/.obsidian/plugins/persian-reminder/
۴. در Obsidian، افزونهٔ Persian Calendar را نصب و فعال کنید.
۵. از مسیر Settings → Community plugins، افزونهٔ Persian Reminder را فعال کنید.
فایل
data.jsonحاوی تنظیمات کاربر است؛ هنگام بهروزرسانی دستی آن را پاک نکنید.
۱. در یک یادداشت، وظیفهای ایجاد کنید.
۲. پنجرهٔ تنظیم یادآوری را باز کنید.
۳. در تب تاریخ، روز موردنظر را از تقویم شمسی انتخاب کنید.
۴. در تب ساعت، زمان یادآوری را تنظیم کنید.
۵. بخش مکان و هشتگها را باز کنید و اطلاعات اختیاری را وارد کنید.
۶. یادآوری را ذخیره کنید و آن را در پنل افزونه پیگیری کنید.
در هر یادداشتی که میخواهید فهرست برنامهها در آن دیده شود، این بلوک کد را قرار دهید:
نمونهٔ وظایف قابلشناسایی:
- [ ] آمادهکردن جلسه (@2026-11-03 09:30)
- [ ] خرید کتاب (@2026-11-04)
این بلوک، وظایف زماندار را از تمام فایلهای Markdown ولت جمعآوری میکند؛ بنابراین لازم نیست کارها در همان یادداشتی باشند که بلوک کد را در آن گذاشتهاید. هر وظیفهٔ تیکنخوردهای که نشانگر تاریخ (@YYYY-MM-DD) داشته باشد شناسایی میشود؛ ساعت اختیاری است. قالب شمسی افزونه نیز پشتیبانی میشود.
این قابلیت از ایندکس و متن اصلی یادداشتها استفاده میکند و هیچ نسخهٔ جداگانه یا دادهٔ تکراری نمیسازد. برای تبدیل و نمایش تاریخ شمسی، Persian Calendar باید فعال باشد.
کد منبع در پوشهٔ src/ بهصورت ماژولار نگهداری میشود:
| بخش | فایلهای اصلی |
|---|---|
| ساعت | src/ui/material-clock.js |
| تقویم و تاریخ | src/ui/calendar.js، src/core/dates.js |
| پنجرهٔ یادآوری | src/ui/task-modal.js |
| سایدبار | src/views/sidebar.js |
| داشبورد | src/views/dashboard.js |
| کارت وظایف | src/ui/task-card.js |
| تنظیمات | src/settings.js |
| استایلها | src/styles/ |
برای ساخت افزونه، Node.js لازم است؛ این پروژه اسکریپت ساخت بدون نصب بستهٔ اضافی دارد:
npm run build
برای اجرای آزمونهای پایه:
npm test
فایلهای خروجی main.js و styles.css در ریشهٔ پروژه ساخته میشوند. تغییر فایلهای src/ بدون اجرای ساخت، در افزونهٔ نصبشده اعمال نمیشود.
برای گزارش اشکال یا پیشنهاد قابلیت جدید، از بخش Issues همین مخزن استفاده کنید. هنگام گزارش مشکلات موبایل، مدل دستگاه، نسخهٔ Obsidian و تصویر خطا را نیز ذکر کنید.
تلگرام، بله و یوتیوب: @obsidiantut
ساختهشده برای کاربران فارسیزبان Obsidian ❤️
در تنظیمات افزونه، بخش یادداشت روز را باز کنید و پوشه، تقویم نام فایل و قالب نام را با یادداشتهای روزانهٔ موجود هماهنگ کنید. نمونهٔ مسیر همانجا نمایش داده میشود. برای استفاده از تنظیمات افزونهٔ اصلی Daily notes، گزینهٔ مربوط را روشن کنید.
از سایدبار یا داشبورد یک روز را انتخاب کنید و کار جدید را بزنید. مقصد از آن روز ساخته میشود و با تغییر تاریخ داخل مودال نیز تغییر میکند. کار زیر عنوان تعیینشده اضافه میشود؛ عنوان خالی یعنی انتهای یادداشت. کارهای موجود هنگام ویرایش به یادداشت دیگری منتقل نمیشوند.
در موبایل، فرم داخل مودال اسکرول میشود؛ سربرگ و دکمههای ذخیره بیرون از بخش اسکرول هستند. تغییر فضای قابلدیدن صفحه با VisualViewport پیگیری میشود تا فیلد در حال تایپ دیده شود.
آزمونهای مستقل از وابستگی شامل مسیر شمسی و میلادی، ایجاد پوشه، حفظ بخشهای یادداشت، متن ذخیرهنشدهٔ ویرایشگر و رویدادهای تغییر اندازهٔ کیبورد هستند. نمایش نهایی و رفتار کیبورد باید در Obsidian روی دستگاه واقعی هم بررسی شود.
در تنظیمات → عمومی، نوع هشدار را از میان پنجرهٔ هشدار، پیام کوتاه و خاموش انتخاب کنید. «نمایش نمونه» ظاهر هشدار را بدون تغییر هیچ کاری نمایش میدهد. پنجرهٔ هشدار، عنوان کار، زمان و مکان را نشان میدهد و دکمههای انجام شد، یادآوری مجدد و بازکردن یادداشت دارد. چند کار همزمان در یک پنجره جمع میشوند. مدت یادآوری مجدد میتواند ۵، ۱۰، ۱۵، ۳۰ یا ۶۰ دقیقه باشد.
هشدار داخل برنامه است و به بازبودن Obsidian وابسته است؛ این نسخه سرویس اعلان سیستمعامل برای برنامهٔ بسته ندارد. یادآوری مجدد، تاریخ همان کار را در همان یادداشت به زمان آینده تغییر میدهد.
tp.file.title برای تاریخ انتخابشده استفاده کنید؛ tp.date.now() تاریخ امروز را میدهد. قالب نباید یادداشت را به مسیر روز دیگری تغییر نام یا انتقال بدهد.بعد از نصب، یک کار با موعد یک دقیقهٔ دیگر ایجاد کنید و برنامه را باز نگه دارید. پنجرهٔ هشدار باید نزدیک سررسید ظاهر شود. سپس یادآوری مجدد را امتحان کنید. در اولین اجرای این نسخه، یادآوریهای انجامنشدهٔ ۲۴ ساعت گذشته ممکن است یک بار با سازوکار جدید نمایش داده شوند.
هشدارهای این نسخه داخل Obsidian هستند. در گوشی، توقف برنامه توسط سیستمعامل میتواند اجرای جاوااسکریپت را متوقف کند؛ یادآوریهای دیدهنشده پس از بازگشت به برنامه بررسی میشوند. اعلان محلیِ سیستمعامل هنگام بستهبودن برنامه در این نسخه وجود ندارد.
آزمونهای کد شامل زمانبندی با ساعت شبیهسازیشده، بازگشت از پسزمینه، فعالشدن دیرهنگام تقویم، رفتار Templater با قرارداد واقعی آن و کنترلهای رابط هستند. دسترسی به Obsidian روی مک و گوشی واقعی برای آزمون تصویری و سختافزاری در این محیط فراهم نبود.