🇮🇷 فارسی
# هایلایت رفرنس چیست؟
**Highlight Reference** سینتکس معمولی `==هایلایت==` در Obsidian را به یک **مرجع دانش تعاملی** تبدیل میکند.
کافی است موس را روی یک کلمهٔ هایلایتشده ببری تا معنی یا توضیح آن بدون باز کردن فایل دیگری نمایش داده شود.
در واقع میتوانی آن را مثل یک:
> **واژهنامه، فرهنگ اصطلاحات یا پایگاه دانش شخصی داخل یادداشتها**
در نظر بگیری.
### ایدهٔ اصلی
```text
==کلمه== → هاور → نمایش معنی
↓
ویرایش یا افزودن
```
---
## چرا Highlight Reference؟
لازم نیست:
* پنل جداگانهای باز کنی.
* سینتکس جدیدی یاد بگیری.
* تعریف یک کلمه را در چند یادداشت تکرار کنی.
پلاگین با همان قابلیت داخلی هایلایت Obsidian کار میکند:
```markdown
==کلمه==
```
و تعریفها را در فایلهای Markdown معمولی نگه میدارد.
---
## مناسب چه کسانی است؟
**زبانآموزها**
برای دیدن سریع معنی و ترجمهٔ واژههای جدید.
**دانشجوها**
برای ساخت یک مرجع شخصی در کنار یادداشتهای درسی.
**پژوهشگران**
برای ثبت اصطلاحات تخصصی و علمی.
**نویسندهها**
برای ساخت واژهنامه یا راهنمای اصطلاحات شخصی.
**کاربران PKM**
برای اتصال یادداشتها به مراجع مرکزی بدون ایجاد اطلاعات تکراری.
---
# قابلیتها
| قابلیت | توضیح |
| ------------------------------- | ---------------------------------------- |
| 🖱️ نمایش معنی با هاور | نمایش فوری توضیح |
| ➕ افزودن سریع | اضافه کردن عنوانهای جدید |
| ✏️ ویرایش سریع | ویرایش تعریف بدون ترک یادداشت |
| 📂 باز کردن مرجع | رفتن مستقیم به خط مربوطه |
| 📌 معنی درونخطی | نمایش توضیح کنار هایلایت در Reading View |
| 🗂️ چند مرجع | اتصال یک یادداشت به چند مرجع |
| 🌐 رابط دو زبانه | فارسی و انگلیسی |
| 📝 پشتیبانی از Markdown | لینک، لیست، بولد و سایر قالبها |
| 🔁 سازگاری با Spaced Repetition | استفاده از مرجع برای فلشکارت |
| ⚡ کش هوشمند | جلوگیری از پردازش غیرضروری |
| 📱 پشتیبانی از موبایل | مناسب برای Obsidian موبایل |
---
# شروع سریع
## ۱. ساخت مرجع
یک یادداشت معمولی بساز:
```text
واژهنامه.md
```
و داخل آن بنویس:
```markdown
عنوان :: توضیح
```
مثلاً:
```markdown
==فتوسنتز== :: فرایندی که گیاهان با استفاده از نور، انرژی شیمیایی تولید میکنند.
==کلروپلاست== :: اندامکی که فرایند فتوسنتز در آن انجام میشود.
```
---
## ۲. اتصال مرجع
در ابتدای یادداشتت بنویس:
```yaml
---
reference: "واژهنامه"
---
```
یا:
```yaml
---
reference: "[[واژهنامه]]"
---
```
---
## ۳. استفاده از هایلایت
در متن بنویس:
```markdown
گیاهان از طریق ==فتوسنتز== انرژی تولید میکنند.
```
حالا موس را روی `فتوسنتز` ببر.
تعریف آن نمایش داده میشود.
---
# مثال کامل
### یادداشت مرجع
```markdown
==میتوکندری== :: اندامکی که نقش مهمی در تولید ATP و تأمین انرژی سلول دارد.
==ریبوزوم== :: ساختاری که در فرایند ساخت پروتئین نقش دارد.
==هسته== :: بخشی از سلول که بیشتر DNA سلول در آن قرار دارد.
```
### یادداشت مطالعه
```markdown
---
reference: "مرجع زیست"
---
سلول دارای بخشهای مختلفی است.
==میتوکندری== در تأمین انرژی نقش دارد و ==ریبوزوم==
در ساخت پروتئین فعالیت میکند.
```
با قرار دادن موس روی هر کلمه، توضیح آن نمایش داده میشود.
---
# تعامل با هایلایتها
| عمل | نتیجه |
| --------------------------- | ----------------------------- |
| **هاور** | نمایش توضیح |
| **کلیک** | نمایش توضیح یا پیشنهاد افزودن |
| **Ctrl/Cmd + کلیک** | باز کردن خط مربوطه در مرجع |
| **Shift + کلیک** | ویرایش تعریف |
| **Ctrl/Cmd + Shift + کلیک** | باز کردن یا افزودن |
| **تپ در موبایل** | نمایش توضیح |
در موبایل، دکمههای داخل تولتیپ برای ویرایش و باز کردن مرجع در دسترس هستند.
---
# دستورات پالت
با `Ctrl/Cmd + P` میتوانی به این دستورات دسترسی داشته باشی:
* **بارگذاری دوبارهٔ مرجع این یادداشت**
* **انتخاب یادداشت مرجع برای این یادداشت**
* **افزودن/ویرایش عنوان هایلایت زیر نشانگر**
---
# چند مرجع همزمان
میتوانی یک یادداشت را به چند مرجع متصل کنی:
```yaml
---
reference: "مرجع اصلی"
glossary: "اصطلاحات تخصصی"
---
```
پلاگین هر دو فایل را میخواند و ورودیها را با هم ترکیب میکند.
اگر یک عنوان در چند مرجع وجود داشته باشد، **اولین ورودی پیداشده اولویت دارد.**
مثلاً میتوانی داشته باشی:
```text
واژهنامه عمومی
+
اصطلاحات تخصصی
+
واژههای شخصی
```
بدون اینکه تعریفها را در یادداشتهای مختلف کپی کنی.
---
# کلیدهای Frontmatter
کلید پیشفرض:
```yaml
reference: "واژهنامه"
```
اما پلاگین کلیدهای دیگری را نیز میشناسد.
### انگلیسی
```text
reference
dictionary
glossary
vocab
lexicon
source
```
### فارسی
```text
مرجع
منبع
واژهنامه
لغتنامه
واژگان
```
کلید اصلی نیز از بخش تنظیمات قابل تغییر است.
---
# مسیر مرجع
### نام ساده
```yaml
---
reference: "واژهنامه"
---
```
### ویکیلینک
```yaml
---
reference: "[[واژهنامه اصلی]]"
---
```
### مسیر کامل
```yaml
---
reference: "پوشه/زیرپوشه/واژهنامه.md"
---
```
---
# توضیحات چندخطی
تعریفها میتوانند چندخطی باشند.
برای ادامهٔ توضیح، خطهای بعدی را با حداقل دو فاصله شروع کن:
```markdown
==فتوسنتز== :: فرایندی که گیاهان با استفاده از نور
انرژی شیمیایی تولید میکنند.
این فرایند عمدتاً در کلروپلاست انجام میشود.
```
یا:
```markdown
==فتوسنتز== :: فرایندی که گیاهان با استفاده از نور انرژی تولید میکنند.
> این فرایند در کلروپلاست انجام میشود.
> اکسیژن نیز بهعنوان محصول جانبی آزاد میشود.
```
---
# پشتیبانی از Markdown
تعریفها میتوانند Markdown داشته باشند:
```markdown
==Obsidian== :: یک برنامهٔ مدیریت دانش با پشتیبانی از
**Markdown**، [[Wikilink]] و فهرستها.
```
بنابراین میتوانی داخل تعریفها از موارد زیر استفاده کنی:
* **متن ضخیم**
* *متن ایتالیک*
* لینک
* ویکیلینک
* فهرست
* قالببندی Markdown
---
# Spaced Repetition
Highlight Reference میتواند در کنار پلاگین **Spaced Repetition** استفاده شود.
[Spaced Repetition در GitHub](https://github.com/st3v3nmw/obsidian-spaced-repetition?utm_source=chatgpt.com)
ایده ساده است:
```text
یادداشت مرجع
│
┌────────┴────────┐
↓ ↓
Highlight Reference Spaced Repetition
↓ ↓
نمایش معنی فلشکارت
```
مثلاً:
```markdown
==میتوکندری== :: اندامکی که در تولید ATP نقش دارد. #flashcard
==ریبوزوم== :: ساختار مسئول ساخت پروتئین است. #flashcard
==هسته== :: محل قرارگیری بیشتر DNA سلول است. #flashcard
```
در یادداشت مطالعه:
```markdown
---
reference: "مرجع زیست"
---
==میتوکندری== در تأمین انرژی سلول نقش دارد.
```
حالا:
* Highlight Reference هنگام هاور، تعریف را نشان میدهد.
* Spaced Repetition میتواند همان ورودیها را برای مرور استفاده کند.
### مزیت اصلی
**یک بار بنویس، چند بار استفاده کن.**
همان تعریف میتواند برای:
* مطالعه
* یادداشتبرداری
* مرجع سریع
* فلشکارت
* مرور فاصلهدار
استفاده شود.
> نوع هشتگ فلشکارت به تنظیمات Spaced Repetition بستگی دارد. بخش **Flashcard tags** را در تنظیمات آن بررسی کن.
---
# معنی درونخطی
با فعال کردن گزینهٔ **درج توضیح کنار هایلایت**، معنی در Reading View کنار کلمه نمایش داده میشود.
این قابلیت برای موارد زیر مفید است:
* یادداشتهای آموزشی
* مرور درسی
* چاپ
* خروجی PDF
* متون آموزشی
---
# نرمالسازی واژهها
برای اینکه تطبیق فارسی و عربی بهتر انجام شود، واژهها قبل از مقایسه نرمال میشوند.
| تبدیل | مثال |
| ------------------------- | ------------------ |
| `ي` → `ی` | `كتاب` → `کتاب` |
| `ك` → `ک` | `كتاب` → `کتاب` |
| `أ`، `إ`، `آ` → `ا` | `أحمد` → `احمد` |
| `ة` → `ه` | `مدرسة` → `مدرسه` |
| حذف کاراکترهای صفرعرض | `میرود` → `میرود` |
| حذف فاصلههای اضافی | `a b` → `a b` |
| حروف انگلیسی کوچک میشوند | `Word` → `word` |
بنابراین:
```text
كتاب
کتاب
```
بهعنوان یک عنوان در نظر گرفته میشوند.
---
# کش هوشمند
فایلهای مرجع برای جلوگیری از پردازش اضافی کش میشوند.
وقتی فایل مرجع تغییر کند:
1. تغییر شناسایی میشود.
2. کش قبلی کنار گذاشته میشود.
3. فایل دوباره خوانده میشود.
همچنین میتوانی از Command Palette بهصورت دستی مرجع را Reload کنی.
---
# تنظیمات
| تنظیم | توضیح | پیشفرض |
| -------------------------- | ------------------------------ | ----------- |
| **زبان** | زبان رابط پلاگین | فارسی |
| **کلید Frontmatter** | کلید اصلی مرجع | `reference` |
| **نمایش معنی با هاور** | فعال/غیرفعال کردن تولتیپ | فعال |
| **تاخیر هاور** | زمان انتظار برای نمایش | ۲۰۰ms |
| **پیام پیدا نشد** | نمایش گزینهٔ افزودن عنوان جدید | فعال |
| **درج توضیح کنار هایلایت** | نمایش معنی در Reading View | غیرفعال |
تاخیر هاور بین:
```text
0 تا 1000 میلیثانیه
```
قابل تنظیم است.
---
# پشتیبانی از موبایل
Highlight Reference برای Obsidian موبایل نیز طراحی شده است.
برای مدیریت بهتر موقعیت پنجرهها هنگام باز شدن کیبورد از:
```text
visualViewport
```
استفاده میشود.
مشکل قرار گرفتن پنجره زیر کیبورد در **نسخهٔ 1.0.2** برطرف شده است.
---
# عیبیابی
معنیها نمایش داده نمیشوند
1. وجود `reference` یا یکی از کلیدهای مجاز را در Frontmatter بررسی کن.
2. مطمئن شو فایل مرجع وجود دارد.
3. مسیر مرجع را بررسی کن.
4. دستور **بارگذاری دوبارهٔ مرجع این یادداشت** را اجرا کن.
5. تعداد ورودیهای بارگذاریشده را در Status Bar بررسی کن.
تولتیپ نمایش داده نمیشود
1. گزینهٔ **نمایش معنی با هاور** را بررسی کن.
2. مقدار **تاخیر هاور** را کاهش بده.
3. در Reading View امتحان کن.
4. مطمئن شو عنوان موردنظر در مرجع وجود دارد.
تغییرات مرجع نمایش داده نمیشوند
ابتدا فایل مرجع را ذخیره کن.
پلاگین تغییرات را بهصورت خودکار تشخیص میدهد.
اگر تغییر نمایش داده نشد:
```text
Command Palette
→ Reload this note's reference
```
را اجرا کن.
کلمات بهصورت غیرمنتظره Match میشوند
پلاگین واژهها را قبل از مقایسه نرمال میکند.
برای مثال:
```text
كتاب
کتاب
```
معادل در نظر گرفته میشوند.
اگر تطبیق دقیقتری لازم داری، از عنوانهای مشخصتر استفاده کن.
پنجره در موبایل زیر کیبورد قرار میگیرد
از نسخهٔ **1.0.2 یا جدیدتر** استفاده کن.
مدیریت موقعیت پنجرهها در این نسخه بهبود یافته است.
---
# جزئیات فنی
Highlight Reference از APIهای زیر Obsidian استفاده میکند:
```text
Plugin
Modal
FuzzySuggestModal
MarkdownRenderer
metadataCache
registerMarkdownPostProcessor
```
### ذخیرهسازی
مسیر مراجع از Frontmatter یادداشت و از طریق `metadataCache` خوانده میشود.
### رندر
معنیهای درونخطی با:
```text
registerMarkdownPostProcessor
```
پردازش میشوند.
### موبایل
برای مدیریت موقعیت رابط کاربری:
```text
visualViewport
```
استفاده میشود.
### وابستگی خارجی
این پلاگین:
```text
هیچ وابستگی خارجی ندارد.
```
---
# ساختار فایلها
```text
.obsidian/plugins/highlight-reference/
├── main.js
├── manifest.json
└── styles.css
```
---
# نصب
## نصب از Community Plugins
1. Obsidian را باز کن.
2. به **Settings → Community plugins** برو.
3. روی **Browse** کلیک کن.
4. عبارت **Highlight Reference** را جستجو کن.
5. روی **Install** کلیک کن.
6. پلاگین را **Enable** کن.
## نصب دستی
[آخرین نسخه Highlight Reference](https://github.com/singhaf9270/obsidian-highlight-reference/releases?utm_source=chatgpt.com)
این سه فایل را دانلود کن:
```text
main.js
manifest.json
styles.css
```
و داخل این مسیر قرار بده:
```text
.obsidian/plugins/highlight-reference/
```
سپس Obsidian را دوباره اجرا و پلاگین را فعال کن.
## نصب با BRAT
برای نسخههای آزمایشی:
1. BRAT را نصب کن.
2. وارد تنظیمات BRAT شو.
3. **Add Beta plugin** را انتخاب کن.
4. این آدرس را وارد کن:
```text
https://github.com/singhaf9270/obsidian-highlight-reference
```
5. روی **Add Plugin** کلیک کن.
---
# مشارکت
اگر ایده، پیشنهاد یا باگی داری، خوشحال میشوم آن را در GitHub مطرح کنی.
[گزارش Issue](https://github.com/singhaf9270/obsidian-highlight-reference/issues?utm_source=chatgpt.com)
[مشاهده کد منبع در GitHub](https://github.com/singhaf9270/obsidian-highlight-reference?utm_source=chatgpt.com)
اگر پلاگین برایت مفید بود، میتوانی به مخزن ⭐ بدهی.
---
# مجوز
این پروژه تحت مجوز **MIT License** منتشر شده است.
برای جزئیات، فایل `LICENSE` را ببین.
---
# آموزشهای Obsidian
برای آموزشها و مطالب فارسی Obsidian:
* [تلگرام — @obsidiantut](https://t.me/obsidiantut?utm_source=chatgpt.com)
* [بله — @obsidiantut](https://ble.ir/obsidiantut?utm_source=chatgpt.com)
* [یوتیوب — @obsidiantut](https://youtube.com/@obsidiantut?utm_source=chatgpt.com)
---
**ساخته شده با ❤️ برای جامعهٔ Obsidian**