ویکیپدیا:الگوداده/خودآموز

- صفحهٔ اصلی
- بازخورد در مدیاویکی یا بازخورد محلی
- صفحهٔ تمرین (بدون نیاز به حساب کاربری)
- چرا توسعهدهندگان درحال ساخت این ابزار هستند؟
- مستندات:
- توسعه:
- سفارشسازی
- مشکلات شناختهشده
- Requests for Comments (RfCs): Jul 2013 a, Jul 2013 b, Jul 2015, Sep 2015
الگوداده روشی برای ذخیرهسازی اطلاعات پیرامون یک الگو است—اطلاعاتی نظیر نام پارامترها، یا توضیحی دربارهٔ عملکرد یا کاربرد الگو—تا ویرایشگر دیداری بتواند آن را واکشی کند و ویرایشگر الگو را با استفاده از دادهها آن فعال کند. الگوداده هیچ بخشی از خود الگوی مرتبط را تغییر نمیدهد، و هرآنچه که میتوانید روی دادههای الگو اعمال کنید، روی عملکرد الگو اثر نمیگذارد و باعث "خراب شدن" الگوهای ویکیپدیا نمیشود (هرچند که اشتباهاتی که در تنظیم دادههای الگو رخ میدهند میتوانند باعث شوند که ویرایشگران الگوی مورد نظر یا پارامترهای آن را بهشکل اشتباه به کار ببرند، بنابراین همچنان باید در ویرایش الگوداده احتیاط کرد). دادههای الگوها توسط افزونهٔ الگودادهٔ مدیاویکی کنترل میشوند، که امکان نوشتن مقدار کمی از دادههای ساختارمند در یک صفحهٔ الگو، یا نوشتن آن در جایی دیگر و تراگنجانیدن آن در صفحهٔ الگو (مانند شیوهٔ استاندارد نوشتن توضیحات الگو) را به کاربران میدهد. هرگاه الگویی دارای این دادههای ساختارمند باشد، بهشکلی مناسب در ویرایشگر دیداری نمایش داده خواهد شد. هرچند که ممکن است الگوداده پیچیده بهنظر برسد و تصور شود که کار با آن سخت است، اما در واقع استفاده از این افزونه بسیار ساده و آسان است.
نحوه استفاده از الگوداده
[ویرایش]ساختار الگوداده
[ویرایش]ساختار مرکزی الگوداده در قالب جیسان نوشته میشود و شکل و شمایل آن نسبتاً ساده است. اولین کاری که باید انجام شود، قرار دادن یک جفت برچسب <templatedata> مستقیماً در صفحهٔ خود الگو و درون برچسبهای <noinclude>...</noinclude>، یا در هر بخشی از زیرصفحهٔ توضیحات الگو است. نحو برچسبهای الگوداده در زیر آمده است:
<templatedata>
دادههای الگو در اینجا
</templatedata>
دقت کنید که دستور فوق، اگر به همین شکل که در این صفحه آمده بهکار رود، نادرست تلقی میشود و بنابراین در صورت استفاده منجر به تولید خطای جیسان خواهد شد؛ برای اطلاعات بیشتر بخش #کامل کردن اطلاعات الگوداده در پایین همین صفحه را ببینید.
این متن، به نرمافزار میگوید که هرآنچه در بین دو برچسب آمده است، شامل دادههای الگو است و هنگام استفاده از الگو باید به آن رجوع شود. الگوداده خود از یک طرحبندی استاندارد استفاده میکند که پارامترهایی که میتوان درون الگو از آنها استفاده کرد را شناسایی میکند.
در ویکیپدیای فارسی، برای نمایش الگوداده با ظاهری «متعارفتر»، که برای استفاده در توضیحات الگو مناسبتر است، میتوانید از {{قالببندی الگوداده}} استفاده کنید. برای استفاده از این الگو، این متن را در بالای زیرصفحهٔ توضیحات الگو قرار دهید:
{{قالببندی الگوداده
|1=<templatedata>
دادههای الگو در اینجا
</templatedata>
|TOC=1
}}
دادههای الگو
[ویرایش]الگوداده بهواسطهٔ قرار دادن یک جفت برچسب <templatedata> مستقیماً در صفحهٔ خود الگو و درون برچسبهای <noinclude>...</noinclude>، یا در هر بخشی از زیرصفحهٔ توضیحات به الگوها افزوده میشود. در برخی موارد، صفحهٔ اصلی الگو برای جلوگیری از ویرایش آن توسط کاربران تأییدنشده، قفل میشود. در چنین مواردی، الگوداده را تنها میتوان به زیرصفحهٔ /توضیحات الگو اضافه کرد؛ پیوند به زیرصفحهٔ مذکور در پایین صفحهٔ اصلی الگو در دسترس است.
بخش مربوط به الگوداده عموماً پس از اطلاعات و توضیحات الگو، و پیش از بخش «الگوهای وابسته» درج میشود.
نکته: لازم است که {{سرآیند الگوداده}} را مستقیماً پیش از برچسب آغازین <templatedata> قرار دهید. این کار باعث میشود که صفحه در بهعنوان توضیحات دادههای الگو ردهبندی شود و امکان سازماندهی الگوها و مستندات آنها در آینده فراهم شود.
شناسایی پارامترها
[ویرایش]اگر الگوی مورد نظر فاقد هرگونه پارامتری بود، میتوانید بلوک کدهای الگوداده را با استفاده از دستور سادهٔ "params": {} کامل کنید. اگر این سطر در کدهای الگوداده وارد نشود، قادر به ذخیرهسازی صفحه نخواهید بود. این سطر دادههای الگوی مورد نظر را کامل میکند.
با این حال، بیشتر الگوهای ویکیپدیا دارای پارامترهایی نظیر تاریخ، نشانی اینترنتی، نام مقاله، تصویر، عدد یا رشته هستند. پارامترهایی که باید/میتوانند در زمان استفاده از الگو وارد شوند را مد نظر داشته باشید. پارامترها را میشود با استفاده از علامت مساوی به الگو اضافه کرد. برای مثال، الگوی {{یادکرد وب}} برای تکمیل یادکرد نیاز به پارامترهایی نظیر نشانی=، عنوان=، تاریخ بازبینی= و غیره دارد. سایر پارامترها را میتوان با در نظر داشتن مکان آنها بهکار برد. در این مثال، میتوانید از اعداد «1»، «2» و غیره بهجای نام پارامترها استفاده کنید.
خلاصهای از پارامترهایی که میتوانند در الگو بهکار روند، و همچنین این که هر پارامتر باید حاوی چه چیزی باشد، باید در توضیحات الگو که در صفحهٔ اصلی یا زیرصفحهٔ الگو موجود است، بیان شود. علاوه بر این، دادههای الگو نیز باید در صفحهٔ توضیحات الگو گنجانده شوند.
کامل کردن اطلاعات الگوداده
[ویرایش]به یاد داشته باشید که اطلاعات الگوداده هم حاوی اطلاعاتی پیرامون چگونگی استفاده از الگو توسط ویرایشگران، و هم دستورات برنامهنویسی است که به ویرایشگر دیداری میگوید که چطور به ویرایشگران برای افزودن الگو به یک صفحه کمک کند. هرآنچه در الگوداده انجام میدهید، بر الگوی متناظر اثر نخواهد گذاشت، اما ایجاد مدخلی در الگوداده که حاوی خطا باشد، میتواند منجر به بروز مشکل برای ویرایشگرانی شود که قصد استفاده از آن الگو در یک مقاله را دارند.
نخستین بخش از اطلاعاتی که باید در الگوداده وارد شود، یک "description" یا توضیحی پیرامون کلیت عملکرد یا کاربرد الگو است که باید به نسبت ساده و گویا باشد؛ این بخش برای توصیف عملکرد الگو و نیز توصیف چگونگی و جای مناسب استفاده از الگو کاربرد دارد. اگر الگوی مورد نظر پیش از شما توسط کاربر دیگری ایجاد شده و توضیحاتی در مورد آن نوشته شده است، میتوانید از خلاصهای از اطلاعاتی که در توضیحات موجود در صفحهٔ اصلی یا زیرصفحهٔ توضیحات الگو آمده، استفاده کنید یا این که در صورت کوتاه بودن این توضیحات، آن را بهطور کامل در این بخش کپی کنید. متن را درون گیومه قرار دهید و در انتهای آن نیز یک کاما درج کنید: "description": "این الگو یک جعبهٔ اطلاعات برای بازیکنان فوتبال اهل کرواسی تولید میکند",). دقت کنید که هرگونه ویکیمتن واردشده در جدول دادههای الگو نظیر [[فوتبال کرواسی]] بهشکل مورد انتظار عمل نخواهد کرد و به شکل متن ساده و بدون پیوند ظاهر خواهد شد و تمام نویسههایی که وارد کردهاید، به همان شکل نمایش داده میشوند.
پس از آن، باید یک قطعه کد "params" را بههمراه براکتهای جلوی آن ({ و }) بسازید. درون این قطعه، باید برای هر پارامتر مورد استفادهٔ الگو یک زیرقطعه بسازید و برخی مدخلهای زیر را در آن بگنجانید. بیشتر مدخلهای زیر اختیاری هستند، اما هرچه اطلاعات بیشتری ارائه دهید، استفادهٔ مجدد از الگو برای دیگران آسانتر خواهد بود.
- برای پارامتر مورد نظر یک
"name"(نام) کوتاه به دلخواه خود انتخاب کنید و بنویسید؛ این نام توسط نرمافزار الگوی ویکیپدیا خوانده خواهد شد. اگر الگو دارای پارامتری باشد که حاوی بیش از یک کلمه است، این کلمهها باید با استفاده از یک زیرخط_ماننداندازه_اقیانوساز یکدیگر جدا شوند (به عبارت دیگر، نام پارامترها نباید حاوی نویسهٔ فاصله باشند). این نام را در میان گیومه قرار دهید و پس از آن نیز یک کاما درج کنید. سپس قطعهٔ مربوط به پارامتر را با یک جفت براکت دیگر{و}مانند این مثال ایجاد کنید:"اندازه_اقیانوس": { }یا"نقشه_محدوده": { }. دقت کنید که بسیاری از الگوها ممکن است خود دارای متغیری با نام "name" باشند، و از همین روی کد جیسان برای این پارامتر باید بهشکل"name": { }نوشته شود. کد زیر اکنون میتواند درون این براکتها قرار گیرد و پس از هر پارامتر نیز یک کاما درج شود، اما پس از آخرین پارامتر نباید از کاما استفاده شود و براکت اضافهای نباید افزوده شود (دقت کنید که ترتیب این مدخلها مهم نیست: هنگام خوانده شدن نحو جیسان دادههای الگو، این اطلاعات در قالبی یکدست مرتب میشوند):- مدخل
"label"برای عنوان پارامتر است که قابل خواندن برای انسان است و در ویرایشگر الگو نمایش داده خواهد شد. این عنوان را مانند مثال روبرو درون گیومه قرار دهید:"اندازهٔ اقیانوس":. - بخش
"description"پارامتر (توضیحی پیرامون پارامتر مورد بحث و نه دربارهٔ الگوی اصلی) را اضافه کنید. این توضیحات ممکن است از پیش در صفحهٔ اصلی الگو یا زیرصفحهٔ توضیحات آن موجود باشد و بتوان آن را در این بخش کپی کرد. این اطلاعات را نیز درون گیومه قرار دهید. اگر میخواهید کلمه یا عبارتی در توضیحات شما نیز در درون گیومه قرار گیرد، باید نویسههای گیومه را با قرار دادن یک بکاسلش\دقیقاً پیش از گیومهها و مانند مثال روبرو، رها کنید :"این پارامتر برای وارد کردن \"اندازهٔ\" اقیانوس کاربرد دارد". اگر بکاسلش را مستقیماً پیش از نویسههای گیومه قرار ندهید، نرمافزار جیسان آن نویسهها را بهعنوان پایانی برای قطعهٔ توضیحات پارامتر در نظر میگیرد— نویسهٔ بکاسلش به جیسان میگوید که «نویسههای گیومه که مستقیماً پس از من آمده را نادیده بگیر— نویسهٔ گیومه را بهشکل متن ساده نمایش بده و برای گیومههایی که پایان پارامتر را مشخص کردهاند، در جایی جلوتر از من جستجو کن». دقت کنید که برای گیومههای فارسی (« و ») نیازی به رهاسازی با بکاسلش نیست. اگر کلمهای که قصد نمایش دادن آن درون گیومه را دارید، در آخرین بخش از توضیحات پارامتر قرار دارد، فقط کافی است\""را به این شکل وارد کنید:"برای نمایش \"اندازهٔ اقیانوس\"". میتوانید هرگونه نشانهگذاری دیگر (کاما، نقطهویرگول، دونقطه، براکت، کروشه و غیره) را نیز به دلخواه خود در میان گیومهها وارد کنید. با این حال دقت کنید که در صورت نیاز به درج بکاسلش\در متن خود، آن را نیز باید با استفاده از یک بکاسلش دیگر همانند متن روبرو رها کنید:\\. - بهصورت اختیاری میتوانید وضعیت پارامتر را نیز با استفاده از یک پرچم تنظیم کنید:
"required"نشانگر این است که وارد کردن و مقداردهی پارامتر مورد نظر برای الگو الزامی است. این گزینه را تنها در صورتی رویtrueتنظیم کنید که مقداردهی آن برای الگو الزامی باشد، و وارد نکردن آن باعث اختلال در عملکرد الگو شود (برای مثال، پارامتر|نشانی=برای یادکرد وب). مقدارهایtrueیاfalseتنها مقدارهای معتبری هستند که میتوانید در این مدخل وارد کنید و در اطراف آنها نباید از گیومه استفاده کنید:"required": true,یا"required": false,."suggested"نشانگر این است که بیشتر کاربران الگو احتمالاً پارامتر مورد نظر را مقداردهی خواهند کرد (مانند تاریخ منبع در الگوی یادکرد وب). تقریباً همیشه باید دست کم یک پارامتر پیشنهادشده را برای هر الگو مشخص کنید. درست همانند مدخلrequired، از یکی از مقدارهای معتبرtrueیاfalseو بدون علامت گفتاورد (گیومه) استفاده کنید."deprecated"را میتوان زمانی بهکار برد که یک پارامتر منسوخ شده و دیگر استفاده نمیشود – علاوه بر تنظیم این مدخل رویtrue، میتوانید توضیحی کوتاه پیرامون آنچه کاربران باید بهجای استفاده از این پارامتر انجام دهند را نیز درج کنید. این مدخل به ندرت کاربر دارد.
- گروه
"aliases"به شما این امکان را میدهد که فهرستی از نامهای دیگر پارامتر مورد نظر را که برای عملکرد یکسان با نام اصلی پارامتر تنظیم شدهاند، وارد کنید و مقدار آن نیز باید با استفاده از براکت تعریف شود. برای مثال:"aliases": [ "2", "توضیح", "توضیح_تصویر" ]. نام مستعار یعنی نامی جایگزین برای پارامتر که الگو آن را نیز بهعنوان جایگزین نام اصلی (و نه در کنار نام اصلی) میپذیرد. نامهای مستعار نباید بهعنوان پارامتری جداگانه مستندسازی شوند.
- مدخل
- مدخل
"autovalue"به شما این امکان را میدهد تا به ویرایشگر دیداری و سایر ابزارها بگویید که این پارامتر را بهطور خودکار با یک مقدار استاندارد (در قالب ویکیمتن) پر کنند؛ این متن هنگام ویرایش الگو با استفاده از ابزار ویرایشگر الگو، در جعبهٔ پارامتر ظاهر میشود و پس از ذخیرهسازی، در دستور فراخوانی الگو درج خواهد شد. این کار میتواند برای الگوهای تمیزکاری و بهمنظور تنظیم خودکار تاریخ روی تاریخ افزوده شدن الگو توسط کاربر مفید باشد. برای مثال، بهمنظور وارد شدن خودکار تاریخ روز، عبارت"autovalue": "{{جا:نامماهکنونی}} {{جا:سالکنونی}}"را به الگوداده اضافه کنید. عبارت «دسامبر ۲۰۲۵» پس از ذخیرهسازی صفحه بهطور خودکار اضافه خواهد شد (برای مثال، الگو:مدرک#الگوداده را ببینید). مقدارهای خودکار به سادگی و با حذف مقدار خودکار واردشده در جعبهٔ الگو توسط کاربر قابل حذف هستند. دقت کنید که این روش مبتنی با جانشانی برای الگوهایی که درون برچسبهای <ref>، برچسبهای نگارخانه، یا سایر برچسبهای اختصاصی افزونهها قرار میگیرند، کار نخواهد کرد. صرف نظر از این که این مدخل توسط فردی که کدهای الگوداده را ایجاد کرده است تنظیم شده باشد یا خیر، و صرف نظر از محتوای آن، در قالب یک مدخل در جدول الگودادهای که تولید میشود نمایش داده خواهد شد؛ در صورتی که بهصورت دستی ایجاد نشود، کلمهٔ «خالی» در جلوی آن نمایش داده خواهد شد. - تنظیم
"default"امکان نمایش آنچه الگو در صورت تنظیم نشدن این پارامتر (یا تنظیم شدن، اما خالی ماندن پارامتر) را فراهم میکند؛ این متن بهشکل متنی به رنگ خاکستری روشن هنگام ویرایش الگو در جعبهٔ پارامتر نمایش داده میشود، اما پس از ذخیرهسازی در دستور فراخوانی الگو درج نخواهد شد، مگر آن که کاربر خود بهصورت دسترسی مقداری را جایگزین آن کند. این پارامتر بهندرت کاربرد دارد. این مدخل همیشه در جدول الگودادهٔ تولیدشده نمایش داده خواهد شد و اگر بهصورت دستی توسط شخصی که کدهای الگوداده را مینویسد، ایجاد نشده باشد، کلمهٔ «خالی» در جلوی آن درج خواهد شد. - مدخل
"example"را میتوان برای نمایش یک نمونه از آنچه کاربران میتوانند در پارامتر مورد نظر وارد کنند، به همان شکلی که کاربر باید آن را بنویسد، و نویسهبهنویسه، بهکار برد؛ اگر نوع مدخل از پیش و با استفاده از پارامتر"type"تعریف و تنظیم شده باشد (پایین را ببینید)، متن نمونه نیز باید این موضوع را بازتاب دهد (به عبارت دیگر، اگر نوع روی «wiki-page-name» تنظیم شده باشد، نمونه نباید حاوی پیشوندی نظیر «پرونده:» یا «File:» باشد). حتماً کل متن نمونه را درون گیومه قرار دهید. بدیهی است که این به این معناست که خود نمونه نباید حاوی گیومه باشد. اگر توسط شخصی که الگوداده را مینویسد بهصورت دستی ایجاد نشود، کلمهٔ «خالی» در جلوی آن درج خواهد شد. - مدخل
"type"نحوهٔ تفسیر پارامتر مورد نظر توسط ویرایشگر الگو را تعیین میکند. مقدار این مدخل میتواند یکی از چند مقدار مجاز زیر باشد که هر یک از آنها نیز باید در میان گیومه قرار داده شوند:
- برای پارامتر مورد نظر یک
|
مقدار رشتهای |
نوع پارامتر |
|---|---|
"unknown"
|
نوعی که در صورت تنظیم نشدن در نظر گرفته میشود |
"number"
|
هرگونه مقدار عددی (بدون ممیز یا جداکنندهٔ هزارگان) |
"string"
|
هرگونه مقدار متنی، که میتواند حاوی سطر جدید باشد. |
"line"
|
جعبهٔ متنی کوتاه – استفاده برای نامها، برچسبها، و سایر جعبههایی که حاوی مقدارهای کوتاه هستند. این نوع برای پارامترهای متنی است که انتظار نمیرود حاوی سطر جدید باشند. |
"wiki-page-name"
|
نام معتبر یک صفحهٔ مدیاویکی برای ویکی کنونی. لازم نیست که صفحه حتماً موجود باشد، اما در صورت ناموجود بودن، باید عنوان صفحهای باشد که معتبر است و ایجاد آن امکانپذیر است. |
"wiki-file-name"
|
نام معتبر یک پروندهٔ مدیاویکی برای ویکی کنونی. لازم نیست که پیونده حتماً موجود باشد، اما در صورت ناموجود بودن، باید عنوان پروندهای باشد که معتبر است و بارگذاری آن امکانپذیر است. نباید حاوی پیشوند فضای نام باشد (یعنی «فلان.svg» درست است و «پرونده:فلان.svg» یا «File:Foo.svg» نادرست). |
"wiki-user-name"
|
یک نام معتبر کاربری مدیاویکی برای ویکی کنونی. لازم نیست که صفحه حتماً موجود باشد، اما در صورت ناموجود بودن، باید عنوان صفحهای باشد که معتبر است و ایجاد آن امکانپذیر است. نباید حاوی پیشوند فضای نام باشد (یعنی «فلانی» درست است و «کاربر:فلانی» یا «User:Foo» نادرست). |
"content"
|
محتوای صفحه در قالب ویکیمتن، مانند سبکبندی متن، پیوند، تصویر، و غیره |
"unbalanced-wikitext"
|
ویکیمتن خام که نباید بهعنوان محتوای =مستقل در نظر گرفته شود، زیرا نامتوازن است – برای مثال، الگوهایی که ویکیمتن ناکامل را در مقیاسی بزرگتر به هم الحاق میکنند، مانند {{پب|قبل=<u>|بعد=</u>}}
|
"date"
|
تاریخ در قالب ایزو ۸۶۰۱. برای مثال: «2014-05-09» یا «2014-05-09T16:01:12Z» |
- پارامتر
"suggestedvalues"به تناسب به شما اجازه میدهد تا فهرستی از مقدارهای پارامتر را برای نمایش به کاربران ویرایشگر دیداری به منظور انتخاب آسان مقدار، تعریف کنید. هرگاه این مقدارها به الگوداده افزوده شوند، ویرایشگر دیداری آنها را در یک جعبهٔ ترکیبی (یک منوی پایینرونده که میتوانند مقدار سفارشی مورد نظر خود را نیز در آن وارد کنند) نمایش میدهد. کاربر هنگام ویرایش مقدار مورد نظرش را با کلیک بر روی آن انتخاب خواهد کرد. برای نمایش یافتن مقدارهای پیشنهادی در ویرایشگر دیداری، نوع پارامتر باید روی یکی از این موارد تنظیم شده باشد: «content»، «line»، «string»، «number»، «unknown» یا «unbalanced wikitext». این پارامتر را میتواند بهشکل درست با استفاده از نحو جیسان یا بدون نیاز به کدنویسی با کمک ویرایشگر الگوداده افزود. هر دو روش در این صفحه توضیح داده شدهاند. "inherits". این کلیدی است به یک پارامتر دیگر. پارامتر کنونی وارث پارامتر دیگر خواهد بود و ویژگیهای محلی روی ویژگیهای موروثی را خواهند پوشاند. کاربرد این پارامتر بسیار نادر است. در حال حاضر، افزودن این پارامتر به زیرقطعهای از<templatedata>باعث خواهد شد که خطای Required property "params." not found. تولید شود و جدول مورد انتظار نیز تولید نخواهد شد.
- پارامتر
اگر بیش از یک زیرقطعهٔ پارامتر به الگو وارد شود، باید پس از براکت پایانی و در میان دو زیرقطعه، یک کاما نیز درج کنید: },. پس از آخرین زیرقطعه نباید از کاما استفاده کنید، اما مطمئن شوید که در پایان زیرقطعهٔ آخر حتماً یک براکت قرار دهید: }.
گزینهٔ "format" برای تعیین چگونگی قالببندی کد ویکیمتنی الگو هنگام ذخیرهسازی آن توسط ویرایشگر دیداری کاربرد دارد. گزینههای اصلی شامل "format": "inline" (پیشفرض) و "format": "block" هستند. در صورت انتخاب گزینهٔ inline، ویکیمتن الگو در یک سطر واحد قالببندی میشود: {{پروژههای خواهد|پروژه = ویکیانبار | متن = صفحه در ویکیانبار}} و در صورت انتخاب گزینهٔ block، هر پارامتر در یک سطر جداگانه درج خواهد شد:
{{جعبه اطلاعات تلویزیون
| نام = پدر تد
| سبک = کمدی
}}
برای الگوهای بسیار پیچیده نظیر جعبههای اطلاعاتی که چندین و چند پارامتر دارند، استفاده از گزینهٔ دوم (block) ارجح است. عبارت «استفاده از قالببندی درونخطی برای پارامترهای این الگو ارجح است.» یا «استفاده از قالببندی قطعهای برای پارامترهای این الگو ارجح است.» که در توضیحات الگو و در بالای جدول الگوداده ظاهر میشود، قالب مورد ترجیح الگو را نشان میدهد.
برای گزینههای پیچیدهتر قالببندی پارامترها، mw:Help:TemplateData#Custom_formats را ببینید.
ذخیرهسازی
[ویرایش]هرگاه کارتان تمام شد، روی «ذخیره» کلیک کنید. اگر مرتکب خطایی شده باشید، اجازهٔ ذخیرهسازی به شما داده نخواهد شد – این امر میتواند کمی خستهکننده باشد، چرا که پیام خطای نمایشیافته به شما نخواهد گفت که جیسان در کجا با نخستین خطای دستوری مواجه شده است، اما به این معنا نیز هست که قادر به «خراب کردن» چیزی یا قرار دادن جدولی که بهطور اتفاقی بدشکل است، نخواهید بود. اگر به دلیل خطای نحوی با خطا مواجه شدید و نتوانستید صفحه را ذخیره کنید، برخی از مشکلات معمول که میتوانند به بروز خطا منجر شوند در زیر آمدهاند:
- تمام نشانههای گفتاورد آغازین (
") با یک نشانهٔ گفتاورد پایانی در جای مناسب کدها جفت شدهاند؟ - آیا رشتهای، مانند توضیحات یک پارامتر، دیده میشود که حاوی یک
"باشد که در واقع برای نشانهگذاری پایان رشته به کار نرفته باشد؟ اگر چنین است، باید آن را با'جایگزین کنید. - آیا تمام براکتهای آغازین (
{) با یک براکت پایانی (}) در جای مناسب جفت شدهاند؟ - آیا در میان قطعههای params از کاما استفاده کردهاید؟ (باید استفاده کنید).
جستجوی دستی در میان برنامه و یافتن این خطاها میتواند زمانبر و سخت باشد. خوشبختانه وبگاههای متعددی برای بررسی کد جیسان وجود دارند که دست کم سطری که برنامه در آن برای نخستین بار با خطا مواجه شده است را شناسایی میکنند. jsonlint.com یکی از این وبگاهها است که ظاهراً عملکرد خوبی دارد. تنها کافی است که کدهای جیسان مشکلدار را در جعبهٔ موجود در این وبگاه کپی کنید و درخواست بررسی کد را بدهید— این وبگاه تمام خطاهای موجود در کد را یک به یک نمایش نمیدهد، اما اولین خطای موجود را در صورت وجود نمایش خواهد داد که برای تصحیح کدها به شدت مفید خواهد بود.
پس از آن که صفحه را با موفقیت ذخیره کردید، ممکن است یکپارچهسازی الگوداده در ویرایشگر دیداری تا چند دقیقه زمان ببرد. اگر دادهها پس از چند دقیقه یکپارچه نشدند، میتوانید یک ویرایش خالی در صفحهٔ اصلی الگو انجام دهید تا مشکل برطرف شود. از آنجا که برخی از الگوها در برابر ویرایش محافظت شدهاند، میتوانید با استفاده از {{درخواست ویرایش}} از دیگران درخواست کنید که ویرایش خالی را در الگو انجام دهند.
نمونه کارشده
[ویرایش]الگوی {{Str left}} یک الگوی ساده است که به شکل {{Str left|<رشته>|<تعداد>}} برای نمایش چند نویسهٔ نخست از ورودی کاربرد دارد. این الگو دارای دو پارامتر است که هر دو فاقد نام هستند (فقط بهواسطهٔ مکان قرارگیری خود در الگو شناسایی میشوند)، و وارد کردن هر دو نیز الزامی است. بنابراین، الگودادهٔ این الگو باید به شکل زیر باشد:
<templatedata>
{
"description": "چند نویسهٔ نخست از ابتدای ورودی را برمیگرداند",
"params": {
"1": {
"label": "ورودی",
"description": "رشتهای که باید برش بخورد و شمارش شود",
"required": true,
"type": "string"
},
"2": {
"label": "طول",
"description": "تعداد نویسههایی از ابتدای ورودی که باید برگردانده شوند",
"required": true,
"type": "number"
}
}
}
</templatedata>
... که در صفحهٔ الگو به این شکل نمایش داده میشود:
چند نویسهٔ نخست از ابتدای ورودی را برمیگرداند
| پارامتر | توضیحات | نوع | وضعیت | |
|---|---|---|---|---|
| ورودی | 1 | رشتهای که باید برش بخورد و شمارش شود | رشته | ضروری |
| طول | 2 | تعداد نویسههایی از ابتدای ورودی که باید برگردانده شوند | شماره | ضروری |
نکته: همانطور که بالاتر توضیح داده شد، قطعهٔ الگوداده بر عملکرد الگو اثر نمیگذارد، اما بر استفادهٔ ویرایشگران از الگو در ویرایشگر دیداری اثر خواهد گذاشت. در نمونهٔ {{Str left}} در بالا، پارامتر |2= بهعنوان یک پارامتر الزامی ("required") علامتگذاری شده است که به این معناست که ویرایشگر دیداری کاربر را ملزم به وارد کردن مقدار در آن پارامتر خواهد کرد، هرچند که در کدهای الگو الزامی بر وارد کردن پارامتر |2= هنگام تراگنجانش الگو نیست. این تفاوت میتواند برخی ویرایشگران را سردرگم کند.
قطعه خالی و کامل الگوداده
[ویرایش]هنگام ایجاد الگوداده میتوانید کدهای زیر را کپی کنید و به تناسب مقدارهای آن را تغییر دهید.
<templatedata>
{
"description": "توضیح",
"params": {
"پارامتر_اول": {
"label": "فلان",
"description": "بهمان",
"required": false,
"suggested": false,
"example":"x",
"deprecated": false,
"aliases": [],
"autovalue": "مقدار خودکار",
"default": "مقدار پیشفرض",
"type": "string"
},
"پارامتر_دوم": {
"label": "بهمان",
"description": "فلان",
"required": false,
"suggested": false,
"example": "x",
"deprecated": false,
"aliases": [],
"autovalue": "مقدار خودکار",
"default": "مقدار پیشفرض",
"type": "number"
}
},
"sets": { }
}
</templatedata>