جایگزینی فیلدها
- جایگزینیهای پایه
- خطوط جدید
- تبدیل متن به گفتار برای فیلدهای منفرد
- تبدیل متن به گفتار برای چند فیلد و متن ایستا
- فیلدهای ویژه
- فیلدهای راهنما
- پیوندهای واژهنامه
- حذف HTML
- متن راستبهچپ
- نویسههای روبی
- رسانه و LaTeX
- بررسی پاسخ شما
جایگزینیهای پایه
سادهترین قالب چیزی شبیه این است:
{{Front}}
وقتی متنی را داخل آکولاد میگذارید، آنکی دنبال فیلدی با آن نام میگردد و متن را با محتوای واقعی فیلد جایگزین میکند.
نامهای فیلد به بزرگی و کوچکی حروف حساساند. اگر فیلدی به نام Front دارید، نوشتن {{front}} درست کار نمیکند.
قالبهای شما به فهرستی از فیلدها محدود نیستند. میتوانید متن دلخواهی هم در قالبهایتان بگنجانید. مثلاً اگر پایتختها را میآموزید و نوع یادداشتی با فیلد "Country" ساختهاید، ممکن است قالبِ رویی مانند این بسازید:
What's the capital city of {{Country}}?
قالب پشتِ پیشفرض چیزی شبیه این خواهد بود:
{{FrontSide}}
<hr id=answer>
{{Back}}
یعنی «متنِ روی کارت را نشانم بده، سپس یک خط جداکننده و سپس فیلد Back».
بخش "id=answer" به آنکی میگوید جداکننده میان پرسش و پاسخ کجاست. این به آنکی اجازه میدهد هنگام زدن show answer روی کارت بلند، بهطور خودکار به جایی که پاسخ شروع میشود پیمایش کند (بهویژه روی دستگاههای موبایل با صفحههای کوچک سودمند است). اگر نمیخواهید در ابتدای پاسخ خط افقی باشد، میتوانید بهجای آن از عنصر HTML دیگری مانند پاراگراف یا div استفاده کنید.
خطوط جدید
قالبهای کارت مانند صفحات وباند؛ یعنی برای ساختن خط جدید به فرمان ویژهای نیاز است. مثلاً اگر این را در قالب مینوشتید:
one
two
در پیشنمایش در واقع این را میدیدید:
one two
برای افزودن خط جدید، باید کد <br> را به انتهای خطی اضافه کنید؛ مانند:
one<br>
two
کد br مخفف «(line) br(eak)» است.
همین درباره فیلدها هم صادق است. اگر بخواهید دو فیلد را نمایش دهید، هر کدام در یک خط، از این استفاده میکردید
{{Field 1}}<br>
{{Field 2}}
تبدیل متن به گفتار برای فیلدهای منفرد
این قابلیت نیازمند آنکی 2.1.20، AnkiMobile 2.0.56 یا AnkiDroid 2.17 است.
برای آنکه آنکی فیلد Front را با صدای انگلیسی آمریکایی بخواند، میتوانید این را در قالب کارتتان بگذارید:
{{tts en_US:Front}}
در ویندوز، macOS و iOS، آنکی از صداهای داخلی سیستمعامل استفاده میکند. در لینوکس صدایی بهصورت داخلی موجود نیست، اما میتوان صداهایی را از افزونهها تأمین کرد؛ مانند این افزونه.
برای دیدن فهرست همه زبانها/صداهای موجود، این را در قالب کارتتان بگذارید:
{{tts-voices:}}
اگر چند صدا از زبان انتخابیتان پشتیبانی میکنند، میتوانید صداهای دلخواه را بهصورت فهرست مشخص کنید و آنکی اولین صدای موجود را انتخاب میکند. مثلاً:
{{tts ja_JP voices=Apple_Otoya,Microsoft_Haruka:Field}}
این روی دستگاه اپل از Otoya و روی رایانه ویندوزی از Haruka استفاده میکند.
مشخصکردن سرعت متفاوت در بعضی پیادهسازیهای TTS ممکن است:
{{tts fr_FR speed=0.8:SomeField}}
سرعت و صدا هر دو اختیاریاند، اما زبان باید بیاید.
روی مک میتوانید صداهای موجود را سفارشی کنید:
-
صفحه System Preferences را باز کنید.
-
روی Accessibility کلیک کنید.
-
روی Speech کلیک کنید.
-
روی فهرست کشویی system voice کلیک کنید و Customize را انتخاب کنید.
بعضی صداها بهتر از بقیهاند؛ پس آزمایش کنید تا موردی را که ترجیح میدهید برگزینید. توجه کنید که صدای Siri فقط توسط برنامههای اپل قابل استفاده است. پس از نصب صداهای جدید، باید آنکی را دوباره راهاندازی کنید تا صداهای جدید در دسترس شوند.
در ویندوز، بعضی صداها مانند Cortana قابل انتخاب نیستند، چون مایکروسافت آن صداها را در اختیار برنامههای دیگر قرار نمیدهد.
روی نوع یادداشت cloze میتوانید کاری کنید آنکی فقط بخشهای حذفشده را با پالایشگر cloze-only بخواند؛ مانند:
{{tts en_US:cloze-only:Text}}
پالایشگر cloze-only در آنکی 2.1.29+، AnkiMobile 2.0.65+ و AnkiDroid 2.17+ پشتیبانی میشود.
تبدیل متن به گفتار برای چند فیلد و متن ایستا
این قابلیت نیازمند آنکی 2.1.50+، AnkiMobile 2.0.84+ یا AnkiDroid 2.17+ است.
اگر میخواهید TTS چند فیلد یا متن ایستای درون قالب را بخواند، میتوانید از این استفاده کنید:
[anki:tts lang=en_US] This text should be read. Here is {{Field1}} and {{Field2}}[/anki:tts]
This is other text on the template. It is outside of the tags so it should not be read.
فیلدهای ویژه
چند فیلد ویژه هست که میتوانید در قالبهایتان بگنجانید:
The note's tags: {{Tags}}
The type of note: {{Type}}
The card's deck: {{Deck}}
The card's subdeck: {{Subdeck}}
The card's flag: {{CardFlag}}
The type of card ("Forward", etc): {{Card}}
The content of the front template
(only valid in back template): {{FrontSide}}
FrontSide هیچ صدویی را که در روی کارت بوده بهطور خودکار پخش نمیکند. اگر میخواهید همان صدا هم در روی و هم در پشت کارت بهطور خودکار پخش شود، باید فیلدهای صدا را بهطور دستی در پشت هم بیفزایید.
مانند بقیه فیلدها، نامهای فیلد ویژه به بزرگی و کوچکی حروف حساساند — مثلاً باید {{Tags}} را بهکار ببرید نه {{tags}} را.
فیلدهای راهنما
ممکن است فیلدی را به روی یا پشت کارت بیفزایید، اما تا وقتی صریحاً نشانش ندهید پنهان بماند. به این یک فیلد راهنما میگوییم. پیش از افزودن راهنما در نظر داشته باشید که هرچه پاسخدادن به پرسشی را در آنکی آسانتر کنید، احتمال کمتری دارد که آن پرسش را وقتی در زندگی واقعی با آن روبهرو میشوید به یاد بیاورید. پیش از ادامه، درباره «اصل حداقل اطلاعات» در https://super-memory.com/articles/20rules.htm بخوانید.
اگر هنوز فیلدی برای نگهداشتن راهنما نساختهاید، نخست باید آن را بیفزایید. اگر مطمئن نیستید چگونه، بخش فیلدها را ببینید.
فرض کنید فیلدی به نام MyField ساختهاید؛ میتوانید با افزودن این به قالبتان به آنکی بگویید آن را روی کارت بیاورد اما بهطور پیشفرض پنهانش کند:
{{hint:MyField}}
این پیوندی با برچسب «show hint» نشان میدهد؛ وقتی رویش کلیک کنید، محتوای فیلد روی کارت نمایش داده میشود. (اگر MyField خالی باشد، چیزی نشان داده نمیشود.)
اگر راهنما را در پرسش نشان دهید و سپس پاسخ را آشکار کنید، راهنما دوباره پنهان میشود. اگر میخواهید راهنما هنگام نمایش پاسخ همیشه آشکار باشد، باید {{FrontSide}} را از قالب پشت حذف کنید و فیلدهایی را که میخواهید ظاهر شوند بهطور دستی بیفزایید.
در حال حاضر استفاده از فیلد راهنما برای صدا ممکن نیست — صدا فارغ از اینکه روی پیوند راهنما کلیک کردهاید یا نه پخش میشود.
اگر میخواهید ظاهر یا رفتار را سفارشی کنید، باید فیلد راهنما را خودتان پیاده کنید. ما نمیتوانیم پشتیبانیای برای این کار فراهم کنیم، اما کد زیر شما را شروع میکند:
{{#Back}}
<a class=hint href="#"
onclick="this.style.display='none';document.getElementById('hint4753594160').style.display='inline-block';return false;">
Show Back</a><div id="hint4753594160" class=hint style="display: none">{{Back}}</div>
{{/Back}}
پیوندهای واژهنامه
همچنین میتوانید از جایگزینی فیلد برای ساختن پیوندهای واژهنامهای استفاده کنید. تصور کنید زبانی میآموزید و واژهنامه برخط محبوبتان اجازه میدهد متنی را با نشانی وبی مانند این جستوجو کنید:
http://example.com/search?q=myword
میتوانید با انجام این کار در قالبتان، پیوندی خودکار بیفزایید:
{{Expression}}
<a href="http://example.com/search?q={{Expression}}">check in dictionary</a>
قالب بالا به شما اجازه میدهد هنگام مرور، با کلیک روی پیوند، عبارت هر یادداشت را جستوجو کنید. اما نکتهای هست؛ پس لطفاً بخش بعدی را ببینید.
حذف HTML
مانند قالبها، فیلدها هم به HTML ذخیره میشوند. در مثال پیوند واژهنامه در بالا، اگر عبارت شامل واژه "myword" بدون هیچ قالببندی بود، HTML همان "myword" میبود. اما وقتی در فیلدهایتان قالببندی میگنجانید، HTML اضافهای هم وارد میشود. مثلاً اگر "myword" درشت باشد، HTML واقعی "<b>myword</b>" است.
این میتواند برای چیزهایی مانند پیوندهای واژهنامه مشکل ایجاد کند. در مثال بالا، پیوند واژهنامه اینطور میشد:
<a href="http://example.com/search?q=<b>myword</b>">check in dictionary</a>
نویسههای اضافی در پیوند احتمالاً سایت واژهنامه را گیج میکند و محتمل است هیچ نتیجهای نگیرید.
برای حل این، آنکی امکان حذف قالببندی از فیلدها هنگام جایگزینیشان را فراهم کرده است. اگر قبل از نام فیلد text: بگذارید، آنکی هیچ قالببندیای نمیگنجاند. پس پیوند واژهنامهای که حتی با متن قالببندیشده کار کند این است:
<a href="http://example.com/search?q={{text:Expression}}">check in dictionary</a>
متن راستبهچپ
اگر از زبانی استفاده میکنید که از راست به چپ خوانده میشود، باید قالب را اینطور تنظیم کنید:
<div dir=rtl>{{FieldThatHasRTLTextInIt}}</div>
نویسههای روبی
بعضی زبانها معمولاً از حاشیهنویسی بالای متن برای نمایش تلفظ نویسهها استفاده میکنند. این حاشیهنویسیها نویسههای روبی نامیده میشوند. در ژاپنی، اینها با نام فوریگانا شناخته میشوند.
در آنکی میتوانید نویسههای روبی را با این نحو نمایش دهید:
Text[Ruby]
فرض کنید متن بالا در MyField نوشته شده است. بهطور پیشفرض، اگر صرفاً {{Myfield}} را بهکار ببرید، فیلد همانطور که هست نمایش داده میشود. برای جایگذاری درست نویسههای روبی بالای متن، در قالبها از پالایشگر furigana استفاده کنید؛ مانند:
{{furigana:MyField}}
چند مثال:
| متن خام | متن نمایشدادهشده |
|---|---|
Text[Ruby] | |
日本語[にほんご] | |
世[よ]の 中[なか] | |
世[よ]の中[なか] |
دقت کنید چگونه مثال سوم یک فاصله پیش از نویسه 中 دارد. این برای مشخصکردن اینکه متن روبی فقط به همان نویسه مربوط است ضروری است. اگر فاصله نبود، متن روبی همانطور که در مثال چهارم نشان داده شده، بالای نویسه の بهاشتباه قرار میگرفت.
پالایشگرهای اضافی نویسه روبی
علاوه بر پالایشگر furigana، میتوانید فقط بخشهای معینی از متن روبی را هم با پالایشگرهای kana و kanji نشان دهید. پالایشگر kana فقط متن روبی را نشان میدهد، در حالی که پالایشگر kanji متن روبی را بهطور کامل حذف میکند.
| متن خام | پالایشگر فیلد | متن نمایشدادهشده |
|---|---|---|
日本語[にほんご] | {{furigana:MyField}} | |
日本語[にほんご] | {{kana:MyField}} | にほんご |
日本語[にほんご] | {{kanji:MyField}} | 日本語 |
این نامها نیز از ژاپنی وام گرفته شدهاند. اصطلاح کانا نظام آوایی توصیف تلفظ واژهها را نشان میدهد، در حالی که اصطلاح کانجی نویسههای چینی آن را.
رسانه و LaTeX
آنکی قالبها را برای ارجاعهای رسانهای پویش نمیکند، چون این کار کُند است. این برای گنجاندن رسانه در قالب پیامد دارد.
صداها/تصاویر ایستا
اگر میخواهید تصاویر یا صداهایی روی کارتهایتان بگنجانید که برای هر کارت یکساناند (مثلاً نشان شرکت در بالای هر کارت):
-
نام پرونده را طوری تغییر دهید که با خط تیره زیرین (underscore) شروع شود؛ مانند "_logo.jpg". خط تیره زیرین به آنکی میگوید پرونده توسط قالب استفاده میشود و هنگام اشتراکگذاری دسته باید برونبری شود.
-
ارجاعی به رسانه در قالب روی یا پشتتان بیفزایید؛ مانند:
<img src="_logo.jpg">
ارجاعهای فیلد
ارجاعهای رسانهای به فیلدها پشتیبانی نمیشوند. ممکن است هنگام مرور نمایش داده شوند یا نشوند، و هنگام بررسی رسانههای بلااستفاده، درونریزی/برونبری و غیره کار نخواهند کرد. مثالهایی که کار نمیکنند:
<img src="{{Expression}}.jpg">
[sound:{{Word}}]
[latex]{{Field 1}}[/latex]
در عوض، باید ارجاعهای رسانهای را در فیلد بگنجانید. برای اطلاعات بیشتر، بخش درونریزی را ببینید.
بررسی پاسخ شما
میتوانید ویدیویی درباره این قابلیت را در یوتیوب ببینید.
آسانترین راه بررسی پاسختان، کلیک روی "Basic" در بالا-چپ صفحه افزودن کارت و انتخاب "Basic (type in the answer)" است.
اگر دسته اشتراکی دانلود کردهاید و میخواهید با آن پاسخ را تایپ کنید، میتوانید قالب کارتش را تغییر دهید. اگر قالبی مانند این دارد:
{{Native Word}}
{{FrontSide}}
<hr id=answer>
{{Foreign Word}}
برای تایپکردن واژه خارجی و بررسی درستیتان، باید قالبِ رویتان را اینطور ویرایش کنید:
{{Native Word}}
{{type:Foreign Word}}
اینجا type: را پیش از فیلدی که میخواهیم مقایسه شود افزودهایم. چون FrontSide در پشت کارت است، جعبه پاسخ تایپی هم در پشت ظاهر میشود.
هنگام مرور، آنکی جعبه متنی نشان میدهد که میتوانید پاسخ را در آن تایپ کنید و پس از زدن Enter یا نمایش پاسخ، آنکی نشان میدهد کدام بخشها را درست و کدامها را نادرست گفتید. اندازه قلم جعبه متنی همان اندازهای است که برای آن فیلد پیکربندی کردهاید (از طریق دکمه "Fields" هنگام ویرایش).
توجه کنید جعبههای پاسخ تایپی در گفتوگوی پیشنمایش و در AnkiWeb ظاهر نمیشوند.
این قابلیت شیوه پاسخدادن به کارتها را تغییر نمیدهد؛ پس همچنان به شماست که تصمیم بگیرید چقدر بهخاطر سپردهاید یا نه.
روی هر کارت فقط یک مقایسه تایپی میتوان داشت. اگر متن بالا را چند بار بیفزایید، کار نخواهد کرد. همچنین فقط از یک خط پشتیبانی میکند؛ پس برای مقایسه با فیلدی که از چند خط تشکیل شده سودمند نیست.
آنکی برای مقایسه پاسخ از قلم همعرض استفاده میکند تا بخشهای «دادهشده» و «درست» ردیف شوند. اگر میخواهید قلم مقایسه پاسخ را تغییر دهید، میتوانید این را در پایین بخش استایلتان بگذارید:
code#typeans { font-family: "myfontname"; }
که بر HTML زیر در مقایسه پاسخ اثر میگذارد:
<code id=typeans>...</code>
کاربران پیشرفته میتوانند رنگهای پیشفرض پاسخ تایپی را با کلاسهای css با نامهای "typeGood"، "typeBad" و "typeMissed" تغییر دهند. AnkiMobile از "typeGood" و "typeBad" پشتیبانی میکند، اما نه "typeMissed" را.
اگر میخواهید اندازه جعبه تایپ را تغییر دهید و نمیخواهید قلم را در گفتوگوی Fields عوض کنید، میتوانید سبک درونخطی پیشفرض را با !important باطل کنید؛ مانند:
#typeans { font-size: 50px !important; }
همچنین ممکن است پاسخ را در کارتهای حذف اطلاعاتی تایپ کنید. برای این کار، {{type:cloze:Text}} را به قالبِ روی و پشت هر دو بیفزایید تا پشت چیزی شبیه این شود:
{{cloze:Text}}
{{type:cloze:Text}}
{{Extra}}
اگر چند بخش حذف شده، میتوانید پاسخها را در جعبه متنی با کاما جدا کنید.
نادیدهگرفتن اعراب
اگر نمیخواهید آنکی اعراب نویسههای ورودی تایپشدهتان را با پاسخ درست مقایسه کند، میتوانید با استفاده از type:nc در فیلدهایتان این کار را انجام دهید.
{{type:nc:Front}}
این تضمین میکند تفاوت در اعراب توسط آنکی نادرست علامت نخورد.
مثلاً بطيخ مانند بَطِّيخ و elite مانند élite رفتار میشود.