hadi mozaffari 27 downloadsAutomatically converts Canvas text cards into notes named after their first line, and mirrors labeled arrow connections as wikilinks inside the source note.
Automatically converts Obsidian Canvas text cards into notes (named after their first line), and mirrors labeled arrow connections as wikilinks inside the source note. Example: if an arrow is labeled "Critique of this claim", the source note gets a line like Critique of this claim: [[Second note]].
Everything runs on-demand via a hotkey (default Ctrl+F12 / Cmd+F12 on Mac) or a ribbon-icon menu, so it never interrupts you while typing on a card or an arrow label. Optional toggles let you re-enable background automation if you prefer.
مستندات کامل و فارسی در ادامهی همین فایل آمده است 👇
پلاگین ابسیدین برای محیط Canvas، با دو کار مشخص:
نقد این ادعا: [[نوت دوم]]
ریشهی مشترکِ چند مشکلِ قبلی پیدا شد: اگر پردازشِ خودکار روشن باشد (چه با سوییچِ تنظیمات، چه بهخاطرِ شبکهی ایمنیِ «شورتکات تنظیم نشده»)، ممکن است پلاگین دقیقاً همان لحظهای که یک کارتِ تازه ساخته میشود — پیش از اینکه حتی یک حرف، از جمله علامتِ سنجاقکردن «.»، تایپ شده باشد — کارت را ببیند. چون کارت کاملاً خالی است، پلاگین مجبور بود با نامِ موقتِ «کارت بدون عنوان» تبدیلش کند به نوت؛ و از آن لحظه به بعد، چون کارت دیگر یک نوتِ واقعی است نه یک کارتِ متنی، حتی اگر بعداً نقطه و متنِ واقعی را تایپ کنید، ویژگیِ کارتِ سنجاقشده دیگر رویش اثر نمیکند (چون آن ویژگی فقط قبل از تبدیلشدن معنا دارد).
رفع شد: حالا کارتِ کاملاً خالی (یا فقط فاصله) که هنوز هیچوقت تبدیل نشده، اصلاً پردازش نمیشود و دستنخورده روی کانواس میماند — نه نوتی برایش ساخته میشود، نه نامِ الکی میگیرد. بهمحضِ اینکه چیزی (حتی یک نقطه) تویش تایپ شود، همان لحظهی بعدی که پردازش اجرا شود (خودکار یا با شورتکات)، طبقِ قوانینِ معمول رفتار میکند — یعنی اگر با نقطه شروع شده باشد، سنجاق میماند؛ وگرنه با همان متنِ واقعی به نوت تبدیل میشود.
اگه پردازشِ خودکار براتون فعاله بدونِ اینکه خودتون خواسته باشید، احتمالاً بهخاطرِ همون شبکهی ایمنیِ «شورتکاتی تنظیم نشده» است — از منوی آیکونِ نوارِ کناری (🔗) چک کنید که نوشته «✓ شورتکات تنظیم است» یا «⚠ شورتکاتی تنظیم نشده»؛ اگر حالتِ دوم بود، یک شورتکات براش تنظیم کنید تا پردازش فقط با کلیدِ خودتون اجرا بشه.
رفعِ نسخهی ۱.۳.۱ فقط نیمی از ماجرا بود: اگر یک نوت از قبل (مثلاً زیر نسخهی ۱.۳.۰، پیش از این رفع) با نامِ الکیِ «کارت بدون عنوان …» ساخته شده بود و بعداً متنِ واقعیاش هم نوشته شده بود، پلاگین همچنان اسمِ الکی رو دستنخورده نگه میداشت — چون این نوت اولینباری بود که با سیستمِ ردیابیِ عنوانِ نسخهی جدید دیده میشد، و پلاگین برای احتیاط (تا نامِ دستیِ شما رو بیجهت عوض نکنه) دست بهش نمیزد.
رفع شد: حالا اگر نامِ فعلیِ یک نوت دقیقاً همون الگوی خودِ پلاگین برای «کارت بدون عنوان» باشه، دیگه بهعنوانِ یک انتخابِ دستیِ کاربر در نظر گرفته نمیشه — چون هیچکس واقعاً از قصد نوتش رو «کارت بدون عنوان ۹۰۰۴۷۸» نمیذاره. در این حالت، همان اولینبار هم نامِ نوت با متنِ واقعیِ کارت همگام میشه. نامهای دستیِ واقعی (هر چیزِ دیگه) هنوز کاملاً محفوظ میمونن.
اگه نوتهایی دارید که از قبل با این اسمِ الکی گیر کرده بودن، کافیه دوباره روی همون کانواس شورتکات را بزنید — خودشان اصلاح میشن.
نسخهی ۱.۳.۰ یک باگِ جدید داشت: اگر یک کارت درست همون لحظهای که هنوز متنش خالی بود پردازش میشد (مثلاً کارت تازه ساخته شده بود و هنوز چیزی توش تایپ نکرده بودید)، پلاگین برایش یک نوتِ موقت با نامِ «کارت بدون عنوان» بههمراه یک رشتهی الکیِ حروف/عدد میساخت. تا اینجا طبیعی بود — اما رفعِ باگِ «برگشتنِ نامِ دستیِ نوت» در همین نسخه، بهاشتباه این نامِ الکی رو هم مثلِ یک تغییرِ دستیِ کاربر در نظر میگرفت و دیگر هیچوقت اصلاحش نمیکرد — حتی بعد از اینکه متنِ واقعیِ کارت را کامل مینوشتید.
رفع شد: حالا وقتی پلاگین یک نوتِ جدید میسازد (چه با نامِ واقعی، چه با نامِ موقتِ «کارت بدون عنوان»)، همان لحظه نامِ استفادهشده را بهعنوانِ خطمبنا ثبت میکند. پس اگر بعداً متنِ کارت کامل شود، پلاگین متوجهِ تغییر میشود و نامِ نوت را بهدرستی با متنِ تازه همگام میکند — بدون اینکه به نامهای دستیِ واقعی که خودتان بعداً روی نوتهای دیگر گذاشتهاید دست بزند.
کارتهای سنجاقشده (پیشوند نقطه). اگر سطر اول یک کارت با «.» شروع شود، آن کارت دیگر به نوت تبدیل نمیشود و همیشه بهصورت کارت روی کانواس باقی میماند. اگر پیکانی از یک نوت بهسمت چنین کارتی کشیده باشید، همان ارتباط در بخش تولیدشدهی نوتِ مبدأ ثبت میشود، با این تفاوت که چون کارتِ مقصد نوت نیست و لینکی برایش وجود ندارد، متنِ کارت بهجای لینک، داخل گیومه نوشته میشود:
ایدهها: «ایده جالب»
(نقطهی ابتدای کارت فقط یک نشانه است و در متنِ نمایشدادهشده حذف میشود.) این برای کارتهای کوچکِ یادداشتگونهای مناسب است که نمیخواهید هر کدام یک فایل جدا بشوند، ولی میخواهید سرِ یک نگاه در نوتِ اصلی معلوم باشد که چه کارتهایی به آن وصلاند. اگر بعداً نقطهی ابتدای کارت را بردارید، همان کارت طبق قوانین معمول (خودکار یا با شورتکات) به نوت تبدیل میشود و ارتباطهای ثبتشده هم خودش را بهروز کرده و بهجای متنِ داخل گیومه، لینکِ ویکی واقعی میشود.
این قابلیت فعلاً فقط وقتی کار میکند که مبدأ پیکان از قبل نوت شده باشد؛ اگر مبدأ هم خودش یک کارتِ سنجاقشده باشد (هنوز نوت نیست)، آن ارتباط ثبت نمیشود — دقیقاً مثل رفتار قبلی پلاگین برای هر کارتِ تبدیلنشدهی دیگر.
رفعِ بازگردانی نام دستیِ نوتها. پیش از این، اگر سوییچ «همگامسازی نام نوت با سطر اول» روشن بود، هر بار که کانواس پردازش میشد (حتی بدون هیچ تغییری در متنِ نوت)، پلاگین نامِ فایل را دوباره برابرِ سطرِ اول تنظیم میکرد. نتیجه این بود که اگر خودتان از داخل ابسیدین نامِ یک نوت را دستی عوض میکردید، با اولین پردازشِ بعدی، نام دوباره به همان چیزی که از سطر اول ساخته میشد برمیگشت — انگار اصلاً تغییرش نداده بودید.
رفع شد: پلاگین حالا برای هر نوت بهخاطر میسپارد که آخرین بار نامش را بر اساس کدام سطرِ اول تنظیم کرده. اگر سطرِ اول از آن موقع تغییر نکرده باشد ولی نامِ فایل با آن فرق داشته باشد، یعنی خودتان دستی تغییرش دادهاید — پلاگین دیگر رویش را برنمیگرداند. تغییرِ نام فقط وقتی دوباره اتفاق میافتد که واقعاً سطرِ اولِ نوت را عوض کنید.
رابط چندزبانه. پلاگین حالا زبان ابسیدین را تشخیص میدهد: کاربران فارسیزبان همان رابط فارسی را میبینند و بقیهی کاربران دنیا رابط انگلیسی. (تا پیش از این کل رابط فقط فارسی بود، درحالیکه پلاگین در دایرکتوری جهانی منتشر شده.)
عنوانگیری هوشمندِ markdown. پیش از این اگر سطر اول کارت # ادعای اصلی بود، فایل واقعاً به اسم «# ادعای اصلی» ساخته میشد. حالا نشانهگذاریهای markdown حذف میشوند و عنوان تمیز استخراج میشود:
| سطر اول کارت | نام نوت |
|---|---|
# ادعای اصلی |
ادعای اصلی |
- [ ] کار ناتمام |
کار ناتمام |
**متن پررنگ** |
متن پررنگ |
> نقل قول |
نقل قول |
[[note|نام نمایشی]] |
نام نمایشی |
همچنین اگر کارت با frontmatter (بلوک ---) شروع شود، از رویش رد میشود و اولین سطر واقعی را برمیدارد — پیش از این نام فایل --- میشد.
جهت پیکانها دیگر نادیده گرفته نمیشود. کانواس سه حالت دارد و هر سه اکنون درست تفسیر میشوند:
پشتیبانی از گروههای کانواس. اگر گزینهاش را روشن کنید، کارتی که داخل یک گروهِ نامدار قرار دارد، نام آن گروه را بهصورت تگ در بخش تولیدشده میگیرد (مثلاً گروهِ «استدلالها» میشود #استدلال-ها). گروههای تودرتو هم پشتیبانی میشوند.
پاکسازی نگاشت داخلی. نگاشتِ «کارت → نوت» که در تنظیمات ذخیره میشد بینهایت رشد میکرد و ورودیهای مربوط به کانواسهای حذفشده هیچوقت پاک نمیشدند. حالا هنگام بالا آمدن ابسیدین پاکسازی میشود و به رویدادهای تغییر نام و حذفِ فایل هم واکنش نشان میدهد (یعنی جابهجا کردن یک نوت یا کانواس دیگر نگاشت را خراب نمیکند).
بهبودهای جزئی: لینکهای تکراری در بخش تولیدشده حذف میشوند، تنظیمات به سه بخش دستهبندی شد، و عنوان پیشفرض بخش ارتباطها بر اساس زبان انتخاب میشود.
یک آیکون (🔗) به نوار کناری چپ ابسیدین اضافه شد. کلیک روی آن این منو را باز میکند:
Settings → Hotkeys (با جستوجوی ازقبلپرشدهی «Canvas Card Linker») تا شورتکاتِ دلخواهتان را ست کنید.شبکهی ایمنی: اگر برای دستورِ پردازش هیچ شورتکاتی تنظیم نشده باشد (مثلاً حذفش کردهاید یا هنوز وقت نکردهاید ستش کنید)، پلاگین بهطور موقت هر دو حالتِ خودکار را روشن در نظر میگیرد — یعنی دقیقاً رفتار قدیمیِ کاملاً خودکار — تا کارکردِ اصلی پلاگین از دست نرود. بهمحضِ اینکه یک شورتکات برای دستور تنظیم کنید، این حالتِ موقت خودکار خاموش میشود و همهچیز طبق دو سوییچِ بالا (پیشفرض هر دو خاموش) پیش میرود.
هر دو سوییچِ خودکار («تبدیل خودکار کارت به نوت» و «درج خودکار لینکِ برچسبِ پیکانها») حالا پیشفرض خاموش هستند. پلاگین دیگر هیچوقت خودشبهخود چیزی روی کانواس یا نوتها تغییر نمیدهد؛ همهچیز فقط وقتی اتفاق میافتد که شورتکات Ctrl+F12 (مک: Cmd+F12) را بزنید یا دستور «تبدیل کارتها و ارتباطهای کانواس فعلی» را از Command Palette اجرا کنید.
اگر نسخهی قبلی (۱.۰.۳) را نصب کرده بودید و سوییچ «تبدیل خودکار کارت به نوت» را دستی خاموش نکرده بودید، ممکن است در تنظیماتِ ذخیرهشدهی شما هنوز روشن باشد (چون مقدار قبلاً روی دیسک ذخیره شده و بهروزرسانیِ فایل بهتنهایی آن را عوض نمیکند). بعد از جایگزینکردن فایلها، یکبار به
Settings → Canvas Card Linkerسر بزنید و مطمئن شوید هر دو سوییچِ بالا خاموشاند.
در نسخهی ۱.۰.۲ هر دو کار (تبدیل کارت به نوت، و درج لینکِ برچسبِ پیکان در نوت) فقط دستی/با شورتکات انجام میشد. اما این دو کار از نظر ریسکِ «پرش حین تایپ» فرق دارند: تبدیلِ کارت فقط وقتی کارتِ تبدیلنشدهای وجود داشته باشد چیزی مینویسد، در حالی که لینکسازیِ پیکان دقیقاً همان لحظهای که روی برچسب تایپ میکنید هم فعال میشود (چون تغییرِ برچسب هم یک تغییر در فایل کانواس است).
تغییر: این دو حالا دو سوییچِ جدا هستند:
شورتکات Ctrl+F12 (مک: Cmd+F12) در هر حالتی هر دو کار را یکجا و فوری انجام میدهد.
پردازش خودکار پسزمینه باعث میشد پلاگین مدام فایل کانواس را از بیرون بازنویسی کند، و چون ویوی زنده در این حالت مجبور میشود فایل را دوباره از دیسک بخواند، زوم/موقعیت گراف ریست میشد و اگر همان لحظه روی برچسبِ یک پیکان تایپ میکردید، ویرایش میپرید.
رفع شد: حالا پیشفرض پلاگین پردازش خودکار ندارد. بهجایش یک دستور با شورتکات پیشفرض Ctrl+F12 (در مک: Cmd+F12) اضافه شده که هر وقت خودتان خواستید (بعد از تمامشدن نوشتن روی کارت یا برچسب پیکان) پردازش را اجرا میکند. اگر باز هم حالت خودکار قدیمی را میخواهید، میتوانید آن را از Settings → Canvas Card Linker → پردازش خودکار در پسزمینه روشن کنید (توصیه نمیشود، همان مشکل بالا را دارد).
در نسخهی قبلی، هر بار که یک کارتِ تبدیلشده را بیشتر ویرایش میکردید، یک نوتِ تازهی دیگر ساخته میشد (مثلاً «تست ۱»، «تست ۱ ۲»، «تست ۱ ۳»...). علتش این بود: وقتی کانواس باز است، ویوی زندهی ابسیدین یک کپی از دادهها را در حافظه نگه میدارد و هر چند وقت خودش آن را روی دیسک ذخیره میکند؛ این کار تغییرِ پلاگین را (که کارت را به فایل تبدیل کرده بود) دوباره به حالت متنی برمیگرداند، و پلاگین چون حافظهای نداشت، آن را دوباره «کارت جدید» تلقی کرده و نوتِ تازه میساخت.
رفع شد: پلاگین حالا برای هر کارت، شناسهاش را به مسیر نوتِ ساختهشده نگاشت میکند و این نگاشت را ماندگار نگه میدارد. اگر همان کارت دوباره بهصورت متنی دیده شود، بهجای ساخت نوتِ جدید، فقط محتوای همان نوتِ قبلی را با متن تازه همگام میکند.
پاکسازی نوتهای تکراریِ قبلی: نوتهایی که نسخهی قبلی بهاشتباه ساخته (مثل «تست ۱»، «تست ۱ ۲» و...) بهصورت خودکار حذف نمیشوند، چون پلاگین نمیداند کدامیک را خودتان لازم دارید. کافیست به کانواس نگاه کنید ببینید هر کارت الان به کدام نوت وصل است (روی کارت کلیک راست کنید یا نامش را ببینید)، همان را نگه دارید و بقیهی نسخههای تکراری را دستی حذف کنید.
canvas-card-linker (شامل manifest.json و main.js) را کامل کپی کنید داخل:<مسیر گنجینهی شما>/.obsidian/plugins/canvas-card-linker/
Settings → Community plugins بروید، مطمئن شوید Community plugins فعال است، و Canvas Card Linker را از لیست فعال (Enable) کنید.نیازی به Node.js یا مرحلهی بیلد نیست؛ main.js مستقیماً قابل اجراست.
نقد این ادعا: [[نوت دوم]]
یک اعلان کوچک («کانواس پردازش شد») تأیید میکند که کار تمام شده.بخش خودکار لینکها بین دو نشانهی مخفی (<!-- canvas-card-linker:start --> و ...:end) قرار میگیرد تا پلاگین بتواند فقط همان تکه را بازنویسی کند و بقیهی متن نوت دستنخورده بماند.
اگر شورتکات Ctrl+F12 با چیز دیگری (مثلاً DevTools) تداخل داشت، از
Settings → Hotkeysمیتوانید دستور «تبدیل کارتها و ارتباطهای کانواس فعلی» را جستوجو و شورتکاتش را عوض کنید.
| تنظیم | توضیح |
|---|---|
| تبدیل خودکار کارت به نوت | پیشفرض خاموش. اگر روشن کنید، کمی بعد از تمامشدنِ تایپ در یک کارتِ جدید، خودکار به نوت تبدیل میشود. |
| درج خودکار لینکِ برچسبِ پیکانها | پیشفرض خاموش، چون همان چیزی است که حین تایپِ برچسب باعث پرش میشود؛ توصیه میشود بهجایش از شورتکات استفاده کنید. |
| پوشه نوتهای جدید | اگر خالی باشد، نوت جدید کنار خود فایل کانواس ساخته میشود. |
| نمایش ارتباطهای بدون برچسب | پیکانهای بدون متن هم بهصورت [[نوت مقصد]] نمایش داده شوند یا نه. |
| همگامسازی نام نوت با سطر اول | اگر سطر اول نوت را بعداً عوض کنید، نام فایل هم خودکار عوض میشود (لینکها در کل گنجینه هم خودکار اصلاح میشوند). |
| زمان تأخیر پردازش خودکار | پس از آخرین تغییر روی کانواس، اینقدر صبر میکند و سپس (طبق دو سوییچ بالا) پردازش میکند. |
| خطوط بدون سرپیکان | خطی که هیچ سرپیکانی ندارد: لینک در هر دو نوت / فقط جهت رسم / نادیده گرفته شود. |
| پیکانهای دوسر | پیکانی با سرپیکان در هر دو طرف، در هر دو نوت لینک بسازد. |
| افزودن گروهِ کانواس بهعنوان تگ | نام گروهی که کارت داخلش قرار دارد، بهصورت تگ اضافه شود. |
| عنوان بخش ارتباطها | سرتیتر بخش خودکار لینکها در متن نوت. خالی = پیشفرضِ زبان جاری. |
.canvas (که یک JSON استاندارد است) را میخواند و مینویسد، نه API داخلی و مستندنشدهی Canvas؛ به همین دلیل با آپدیتهای آیندهی ابسیدین پایدارتر است.app.hotkeyManager) استفاده میکند. اگر این API در نسخهای از ابسیدین تغییر کند، پلاگین محافظهکارانه رفتار میکند (فرض میکند شورتکات هست، یعنی خودکار روشن نمیشود) تا رفتار غیرمنتظره پیش نیاید.\ / : * ? " < > | #) را حذف میکند و در صورت تکراریبودن نام، پسوند عددی ( 2, 3, ...) اضافه میشود.