وقتی جملهٔ فارسی توی Obsidian با انگلیسی شروع می‌شه

توی Obsidian یک مشکل داشتم. خودش جهت متن رو اتومات هندل می‌کنه، ولی وقتی جملهٔ فارسی با یک کلمهٔ انگلیسی شروع می‌شه، گاهی جهتش اون چیزی نمی‌شه که می‌خوام.

مثلاً جمله با Obsidian شروع می‌شه، ولی ادامه‌ش فارسیه. من می‌خوام همین جمله از راست خونده بشه.

ساده‌ترین راه برای من نوشتن یک اسنیپت با افزونهٔ Templater بود. کد، یک کاراکتر نامرئی به اسم RLM اول متن سطر می‌ذاره. این کاراکتر کمک می‌کنه جهت متن از راست به چپ مشخص بشه. بعد هم می‌شه براش یک میان‌بر مثل Ctrl+Shift+R گذاشت و هر وقت لازم شد اجراش کرد.

چیزی شبیه رفتاری که از Ctrl+Shift سمت راست در Word می‌خوام.

وسط متن فارسی هم گاهی ترجیح می‌دم سطر انگلیسی هم همون جهت رو داشته باشه. برای همین لازم نیست کد بررسی کنه ادامهٔ سطر حتماً فارسیه.

فایل کد رو هم اینجا گذاشتم که اگر همین مشکل رو داری، دانلودش کنی.

دانلود قالب Templater و راهنما (ZIP)

دانلود مستقیم فایل قالب Markdown

نمونه

قبل از اجرا، متن سطر اینه:

Obsidian برای یادداشت‌های فارسی من هم استفاده می‌شه.

بعد از اجرا، از نظر کاراکترها این شکلی می‌شه:

[U+200F]Obsidian برای یادداشت‌های فارسی من هم استفاده می‌شه.

[U+200F] رو فقط برای نشون‌دادن کاراکتر نامرئی نوشتم. خود کد این عبارت رو اضافه نمی‌کنه، فقط همون یک کاراکتر RLM رو می‌ذاره.

راه‌اندازی و چند نکته

نوشتهٔ شهرزاد

شهرزاد:

Obsidian یک برنامهٔ یادداشت‌برداری با فایل‌های Markdown است. Templater هم یک افزونهٔ جامعهٔ کاربریه که می‌تونه داخل قالب‌ها JavaScript اجرا کنه. فایل دانلودی این مطلب، قالب Templater است، نه یک افزونهٔ جدا.

برای استفاده، اول Templater رو از بخش Community plugins نصب و فعال کن. فایل obsidian-rlm-templater.md رو توی پوشهٔ قالب‌هات بذار و همون پوشه رو در تنظیم Template folder location انتخاب کن. بعد در بخش Template Hotkeys همین فایل رو برای فرمان Insert اضافه کن، نه Create که یادداشت جدید می‌سازه. در Settings → Hotkeys برای فرمان همین قالب Ctrl+Shift+R بذار. اگر میان‌بر قبلاً استفاده شده، یک ترکیب آزاد انتخاب کن.

برای اصلاح چند سطر، اون‌ها رو انتخاب کن و میان‌بر رو بزن. بدون انتخاب متن، فقط سطر فعلی بررسی می‌شه. نسخهٔ دانلودی تیتر، لیست، نقل‌قول و سلول‌های جدول رو هم در نظر می‌گیره. frontmatter، بلوک‌های کد با بک‌تیک یا تیلدا، کدهای تورفته با چهار فاصله یا tab و بلوک‌های ریاضی با $$ رو کنار می‌ذاره. محافظت از حصار کد داخل نقل‌قول و لیست هم بررسی شده. در موارد مبهم محافظه‌کارانه بعضی سطرها رو تغییر نمی‌ده، از جمله متن‌هایی با تورفتگی زیاد و بلوک‌های HTML.

این کد تنظیم alignment یا CSS رو عوض نمی‌کنه. RLM با کد U+200F واقعاً داخل فایل ذخیره می‌شه و همراه متن کپی می‌شه. برای حذف یک علامت اضافه می‌تونی از Undo استفاده کنی. بهتره بار اول روی یک کپی از یادداشت امتحانش کنی.

کد عمداً وجود فارسی رو شرط نمی‌ذاره. اگر سطر کاملاً انگلیسی هم وسط متن فارسی داری و می‌خوای جهتش همین‌طور باشه، می‌تونی انتخابش کنی و قالب رو اجرا کنی. سطرهای شروع‌شده با عدد لاتین یا inline code هم ممکنه تغییر کنن. این یک تشخیص‌دهندهٔ کامل جهت همهٔ زبان‌ها یا یک Markdown parser کامل نیست.

خود Obsidian هم در Settings → Editor → Display تنظیم Right-to-left (RTL) برای جهت پیش‌فرض یادداشت‌ها داره. این قالب برای اصلاح موضعی متن است. اثرش ممکنه بین حالت ویرایش و Reading view فرق کنه، چون هر سطر Markdown لزوماً یک پاراگراف جدا در خروجی نیست. برای اجرا، یادداشت رو در ویرایشگر باز کن.

به‌روزرسانی ۱۹ اکتبر ۲۰۲۶: فایل دانلودی نسخهٔ دوم قالب است. در نسخهٔ قبلی، بعضی بلوک‌های کد داخل نقل‌قول یا دارای تورفتگی محافظت نمی‌شدن. این باگ و تغییر ناخواستهٔ سطر بعدی وقتی انتخاب اول اون سطر تموم می‌شد، اصلاح شد. تشخیص حرف لاتینِ اعراب‌دار و نشانهٔ فارسی قبل از انگلیسی هم اصلاح شد. ۵۷ سناریو با دادهٔ مصنوعی و اجرای خود قالب بررسی شده. این آزمون در مدل API ویرایشگر انجام شده، نه روی همهٔ نسخه‌ها و تم‌های Obsidian. بدون انتخاب، سطر فعلی و با انتخاب، سطرهای همون محدوده پردازش می‌شن. پشتیبانی چند انتخابِ جدا اضافه نشده.

منابع