ویکینبشته
fawikisource
https://fa.wikisource.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C
MediaWiki 1.47.0-wmf.24
first-letter
مدیا
ویژه
بحث
کاربر
بحث کاربر
ویکینبشته
بحث ویکینبشته
پرونده
بحث پرونده
مدیاویکی
بحث مدیاویکی
الگو
بحث الگو
راهنما
بحث راهنما
رده
بحث رده
درگاه
بحث درگاه
پدیدآورنده
بحث پدیدآورنده
برگه
گفتگوی برگه
فهرست
گفتگوی فهرست
TimedText
TimedText talk
پودمان
بحث پودمان
Event
Event talk
الگو:بند
10
30256
305284
69228
2026-10-19T22:08:41Z
Hanooz
17889
بهروزرسانی به کمک هوش مصنوعی
305284
wikitext
text/x-wiki
<!-- الگو:بند --><templatestyles src="الگو:بند/styles.css" /><span<!--
کلاسها: wst-verse و بر پایهٔ align یکی از wst-verse-right ، wst-verse-left ، wst-verse-float
--> class="wst-verse wst-verse-{{{align|default}}}"<!--
رنگ دلخواه (الگوی optional style): فقط وقتی مقداری داده شده باشد؛ وگرنه رنگ پیشفرض از شیوهنامه گرفته میشود
--> {{optional style|color={{{رنگ|{{{color|{{{colour|{{{3|}}}}}}}}}}}}}}<!--
شناسهٔ قلاب (الگوی makeid): «فصل:بند» یا فقط «بند»؛ با id میتوان آن را بازنویسی کرد
--> {{makeid|{{{id|{{#if:{{{فصل|{{{chapter|{{{1|}}}}}}}}}|{{{فصل|{{{chapter|{{{1|}}}}}}}}}:}}{{{بند|{{{verse|{{{2}}}}}}}}}}}}}}><!--
محتوای متن؛ فاصلهٔ ابتدای span عمداً مثل نسخهٔ قبلی نگه داشته شده است
--> <sup>{{{بیمتن|{{{notext|{{{بند|{{{verse|{{{2}}}}}}}}}}}}}}}</sup></span><noinclude>
{{توضیحات}}
</noinclude>
c2vrusvbxenjuk4y6hir34qzbjwkico
الگو:ابرو۲
10
31551
305288
277730
2026-10-19T22:19:40Z
Hanooz
17889
Hanooz صفحهٔ [[الگو:Brace2]] را به [[الگو:ابرو۲]] منتقل کرد
277730
wikitext
text/x-wiki
{{#tag:math|\scriptstyle{
<!--horizontal brackets-->
{{#switch:{{{2|}}}|u|up|d|down=
{{#switch:{{{2|}}}|d|down=\underbrace{|u|up=\overbrace{}}
<!--loop of em spaces-->
{{#invoke:String|rep|\quad|{{#expr: {{{1|1}}}-1 }}}}
<!--end horizontal brackets-->
}
<!--vertical brackets-->
|#default=
<!--left side bracket-->
\left{{#switch:{{{2|}}}|left|l=\{|#default=.}}
<!--loop of new lines-->
\begin{matrix}
\ {{#invoke:String|rep|\\ \|{{#expr: {{{1|1}}}-1 }}}}
\end{matrix}
<!--right side bracket-->
\right{{#switch:{{{2|}}}|left|l=.|#default=\}\,}}
<!--end math tag-->
}} } }}<noinclude>
{{documentation}}
</noinclude>
o8267sw3l311n2k54hce53vslaeewgn
ویکینبشته:منابع
4
36243
305266
295969
2026-10-19T19:58:32Z
Hanooz
17889
305266
wikitext
text/x-wiki
{{process header
|title = منابع
|section =
|previous =
|next =
|shortcut =
|notes =
}}
فهرستی از منابع برخط که حاوی متون در مالکیت عمومی به زبان فارسی هستند.
{|class="wikitable sortable"
|-
!عنوان !! پیوند !! توضیحات
|-
|کتابخانه و مرکز اسناد دانشگاه تهران ||{{bulleted list |وبسایت: https://lib.ut.ac.ir/faces/home.jspx |کانال تلگرام: https://telegram.me/UT_Central_Library |رده ویکیانبار: [[Commons:Category:Files from the Central Library and Documentation Center of the University of Tehran]]}} ||
|-
|کتابخانه ایرانشناسی||کانال تلگرام: https://telegram.me/ketabxaneiranshenasi ||
|-
|باشگاه ادبیات ||{{bulleted list |وبسایت: https://www.bashgaheadabiyat.com/ |کانال تلگرام: https://telegram.me/BashgaheAdabiyat |رده ویکیانبار: [[Commons:Category:Bashgah-e Adabiyat]]}} ||
|-
|آرشیو اسناد اپوزیسیون ایران ||{{bulleted list |وبسایت: https://iran-archive.com/fa |کانال تلگرام: https://telegram.me/iranarchive |رده ویکیانبار: [[Commons:Category:Files from Archive of Iranian Opposition Documents]]}} ||
|-
|پرتال جامع علوم انسانی ||وبسایت: https://ensani.ir/fa ||
|-
|آرشیو اسناد و پژوهشهای ایران - برلن ||{{bulleted list |وبسایت: https://iranarchiv.de/
|رده ویکیانبار: [[Commons:Category:Iranian Documents and Researches Archive - Berlin]]}} ||
|-
|برنامه مجموعههای در خطر (Endangered Archives Programme) ||{{bulleted list |وبسایت: https://eap.bl.uk/project/EAP1200 |رده ویکیانبار: [[Commons:Category:Iranian Performance Arts Journals (Endangered Archives Programme)]]}} ||
|-
|بایگانی مطبوعات ایران ||{{bulleted list |وبسایت: https://irpress.org/ |رده ویکیانبار: [[Commons:Category:Files from irpress.org]]}} ||
|-
|آرشیو آنلاین نشریات دانشگاه منچستر ||{{bulleted list |وبسایت: https://www.library.manchester.ac.uk/services/digitisation-services/projects/nashriyah-digital-iranian-history/ |رده ویکیانبار: [[Commons:Category:Files from Nashriyah]]}} ||
|-
|پایگاه مجلات تخصصی نور ||{{bulleted list |وبسایت: https://www.noormags.ir/ |رده ویکیانبار: [[Commons:Category:Files from noormags.ir]]}} ||
|-
|سنا (سامانه نشریات ایران) ||{{bulleted list |وبسایت: https://sana.nlai.ir/ |رده ویکیانبار: [[Commons:Category:Files from sana.nlai.ir]]}} ||
|-
|Persian Online Periodicals ||{{bulleted list |وبسایت: https://www.ioa.uni-bonn.de/translatio/de/online-periodicals/persian-online-periodicals |رده ویکیانبار: [[Commons:Category:Translatio - Persian Online Periodicals]]}} ||
|-
|دنیای زنان در عصر قاجار ||{{bulleted list |وبسایت: http://www.qajarwomen.org/fa/ |رده ویکیانبار: [[Commons:Category:Women's Worlds in Qajar Iran Digital Archive]]}} ||
|-
|سامانه منابع دیجیتال سازمان اسناد و کتابخانه ملی ||{{bulleted list |وبسایت: https://dl.nlai.ir/ui/forms/Index.aspx |رده ویکیانبار: [[Commons:Category:Files from the National Library and Archives of Iran]]}} ||
|-
|کتابخانه، موزه و مرکز اسناد مجلس شورای اسلامی ||{{bulleted list |وبسایت: https://arian.ical.ir/ |رده ویکیانبار: [[Commons:Category:Library, Museum and Document Center of Iran Parliament]]}} ||
|-
|کتابخانه آیتالله العظمی بروجردی ||{{bulleted list |وبسایت: https://blib.ir/ |کانال تلگرام: https://telegram.me/boroujerdilib |رده ویکیانبار: [[Commons:Category:Files from the Grand Ayatollah Boroujerdi Library]]}} ||
|-
|کتابخانه تخصصی تاریخ اسلام و ایران ||{{bulleted list |وبسایت: https://historylib.com/ |کانال تلگرام: https://telegram.me/Historylibrary |رده ویکیانبار: [[Commons:Category:Files from The Specialized Library on Islam and Iran]]}} ||
|-
|کتابخانه و موزه ||کانال تلگرام: https://telegram.me/litera999 ||
|-
|کتابپدیا ||{{bulleted list |وبسایت: https://ketabpedia.com |در بایگانی اینترنت: https://archive.org/details/ketabpedia}} ||
|-
|داکیباکس ||وبسایت: https://docibox.ir/ ||
|-
|کتابخانه دیجیتال هند||{{bulleted list |وبسایت: http://www.new.dli.ernet.in/ |در بایگانی اینترنت: https://archive.org/details/digitallibraryindia |رده ویکیانبار: [[Commons:Category:Digital Library of India]] و [[Commons:Category:Bharat Ek Khoj]]}} ||
|-
|کتابخانه کنگره ||{{bulleted list |وبسایت: https://www.loc.gov/search/?fa=language:persian |رده ویکیانبار: [[Commons:Category:Library of Congress]]}} ||
|-
|دیوار مهربانی نسخ خطی ||کانال تلگرام: https://telegram.me/nosakhekhati ||
|-
| کتابکده علوم سیاسی ||کانال تلگرام: https://telegram.me/PoliticalLibrary ||
|-
| کتابخانهٔ ادب و فرهنگ ||کانال تلگرام: https://telegram.me/divaanha ||
|-
| آرشیو نشریات ایران ||{{bulleted list |وبسایت: https://nashrieh.com/ |کانال تلگرام: https://telegram.me/nashrieh7}}||
|}
==همچنین ببینید==
* [https://digitalorientalist.com/2023/02/10/digital-resources-for-the-study-of-persian-manuscripts/ Digital Resources for the Study of Persian Manuscripts]
ld12m6wfir8p4w6ie89rjmyneq4p9e0
بحث کاربر:Hanooz
3
39182
305257
305252
2026-10-19T14:11:07Z
Hanooz
17889
/* تاریخ در الگوی header */ پاسخ
305257
wikitext
text/x-wiki
== روش استاندارد برای همکاری ==
کاربر گرامی؛ احتراماً به آگاهی میرساند چندی است که در ویکینبشته کار به شیوهٔ سنتی را متوقف کردهایم. با این حال ما از هر گونه مشارکت خوب شما استقبال میکنیم اما اگر تمایل به همکاری مؤثرتر دارید، خواهشمندم روش استاندارد را پی بگیرید. در این روش یک کتاب به عنوان منبع انتخاب شده و برگههای آن پیادهسازی میشوند. سپس دیگر کاربران به نمونهخوانی آن برگهها میپردازند. در پایان با بکارگیری چند دستور کوتاه تمام برگههای یک فصل (یا یک غزل، قصیده یا غیره) را در یک صفحه گردآوردی میکنیم. با تکیه به این شیوه خوانندگان میتوانند با یک کلیک از صحت مطالب و تطابق با متن اصلی آگاهی پیدا کنند. با مراجعه به صفحهٔ [[راهنما:راهنمای کوتاه|راهنما]] میتوانید مطالب مفیدی در این خصوص پیدا کنید. ارادتمند--[[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۰۶:۴۸ (UTC)
: {{پینگ|Yoosef Pooranvary}} ممنون. یک سوال از شما دارم. خیلی وضعیت نامهها و دستنوشته ها چطور است؟ میشود در ویکینبشته گذاشتشان؟ مثلاْ من نامهی فروغ را در [[کاربر:Hanooz/صفحه تمرین]] قرار دادم، خود تصویر نامه را هم میتوانم در انبار بارگذاری کنم اینها را میشود در ویکینبشته منتشر کرد؟ یا نامههای مرتضی کیوان را. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۱۰:۱۳ (UTC)
:مهم است که بدانیم تصویر نامه را از کجا آوردهاید. یعنی منبع آن چیست و اینکه گردآورندهی آن منبع (در صورتی که در یک کتاب چاپ شده باشد) هم پیش از ۱۳۵۸ مرده باشد. --[[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۱۰:۲۲ (UTC)
::نامهها در کتابهای مختلفی چاپ شدهاند. نامههای فروغ که در کتاب فرزانه میلانی است و نامههای کیوان در «کتاب مرتضی کیوان» و طبق قوانین ویکیانبار ([https://commons.wikimedia.org/wiki/Template:PD-scan این الگو را ببینید]) اسکن یا عکسبرداری از متنی که کپیرایت نداشته باشد مجاز است. هر دوی اینها پیش از انقلاب مردهاند و آثارشان در مالکیت عمومی است. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۱۰:۲۷ (UTC)
::یک نمونه از نامهها: [[:File:Nameh keyvan 1.jpg]]. {{رچ}} [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۱۰:۳۰ (UTC)
:::عکسی که به عنوان نمونه گذاشتهاید هیچ نشانی در خود ندارد که بتوان آن را به صاحبش منتسب کرد. اگر اصل کتاب وجود داشت، کار خیلی بهتر میشد. اما اگر در ویکیپدیا قبول کردهاند که این متن مربوط به شخص مورد ادعا است و در مالکیت عمومی قرار دارد، اینجا هم آن را قبول میکنیم. اما به هر حال هیچ پژوهشگری به این نوع آثار اعتماد نمیکند. --[[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۱۱:۱۶ (UTC)
::::متاسفانه خود کتاب را ندارم اما نسخهی پیدیاف کتاب در اینترنت هست. در کتابناک اگر «کتاب مرتضی کیوان» را بجویید قبل از صفحهی آخر کتاب این نامه چاپ شده. نامهی فروغ اینجاست: [http://khabgard.com/1519/%D9%86%D8%A7%D9%85%D9%87-%D9%85%D9%86%D8%AA%D8%B4%D8%B1%D9%86%D8%B4%D8%AF%D9%87-%D9%81%D8%B1%D9%88%D8%BA-%D9%81%D8%B1%D8%AE%D8%B2%D8%A7%D8%AF/ خوابگرد]. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۹ ژوئیهٔ ۲۰۱۸، ساعت ۱۱:۲۱ (UTC)
== ورودی کاربران ==
سلام و عرض تشکر بابت زحمتی که میکشید. ای کاش آثاری را که اضافه میکنید در ورودی کاربران هم بگذارید. اینطوری دستکم ماها که کاربر دائمی هستیم از تازهها باخبر میشویم. [[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۲ ژوئن ۲۰۲۵، ساعت ۱۹:۵۰ (UTC)
: سلام. ممنون از لطف و راهنمایی شما. در نظرم هست یک دستهبندی موضوعی در ورودی انجام بدهم و تا جای ممکن تمام آثار آزاد انبار را هم آنجا فهرست کنم. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۲ ژوئن ۲۰۲۵، ساعت ۱۹:۵۶ (UTC)
== این نشان برای شما! ==
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[پرونده:Tireless Contributor Barnstar Hires.gif|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''نشان مشارکتکننده خستگیناپذیر'''
|-
|style="vertical-align: middle; padding: 3px;" | به پاس فعالیتهای خوبتان در ویکینبشتهٔ فارسی. [[کاربر:Darafsh|<span style="color:Purple; text-shadow:grey 0.1em 0.2em 0.1em;">درفش کاویانی</span>]] ([[بحث کاربر:Darafsh|<span title="پیام بگذارید!" style="cursor: crosshair;">بحث</span>]]) ۲۱ ژوئن ۲۰۲۶، ساعت ۱۰:۱۲ (UTC)
|}
:خیلی ممنونم از لطف شما. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۲۱ ژوئن ۲۰۲۶، ساعت ۱۵:۲۸ (UTC)
== کتاب مقدس ==
سلام. واقعا خسته نباشید. این که برای جداسازی آیات، Asterisks گذاشتید دلیلی دارد؟ چون من فکر میکنم در اصل کتاب از ستاره داوود استفاده شده. [[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۲۴ ژوئن ۲۰۲۶، ساعت ۱۷:۴۲ (UTC)
:سلام. خیلی ممنونم. متاسفانه کیفیت اسکن نسخهها آنچنان بالا نیست. بعد از مقایسه با [[:File:کتاب مقدس یعنی کتب عهد عتیق و عهد جدید - بریتش و فورن بیبل سوسائیتی لندن - 1932.pdf|نسخه دیگر]] به نظرم رسید انحنای کاراکتر بیشتر به چیزی مثل ☼ شبیه باشد. نمیدانم ستاره داوود در این نقش آیا در جای دیگری برای کتاب مقدس استفاده شده یا نه. در نظرم بود برای ادامه کار نظر شما را جویا شوم. الان قاعدتاً همان ستاره داوود را باید در نسخه نهایی به کار ببریم. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۲۴ ژوئن ۲۰۲۶، ساعت ۱۸:۱۳ (UTC)
=== اصلاح ترجمههای ویکیپدیا ===
یکی از فواید نمونهخوانی کتاب مقدس در اینجا، رسیدگی به شاهکارهای ترجمهای است که بعضی کاربران با اعتماد به نفسهای چسبیده به سقف (!) در ویکیپدیا کردهاند. برای من که مفرح است! --[[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۲۵ ژوئن ۲۰۲۶، ساعت ۰۸:۰۴ (UTC)
:اوه :) امیدوارم یک نسخه تمیز در ویکینبشته دست کم به مدلهاش هوش مصنوعی کمک کند در آینده پیشنهادهای دقیقتری بدهند. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۲۵ ژوئن ۲۰۲۶، ساعت ۰۸:۵۰ (UTC)
== الگوها ==
سلام. وقتی الگویی را اینجا آوردهایم و با اسم فارسی دارد کار میکند، چرا دوباره یک نمونه لاتین از آن میسازید؟ [[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۷ ژوئیهٔ ۲۰۲۶، ساعت ۱۷:۱۰ (UTC)
:سلام. کدام الگو؟ [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۷ ژوئیهٔ ۲۰۲۶، ساعت ۱۷:۲۳ (UTC)
::مثلا {{الگو|سرصفحهمستمر}} یا همان {{الگو|سصم}}. یا اخیرا دیدم {{الگو|سرصفحه}} را هم به انگلیسی تغییر داده بودید. [[کاربر:Yoosef Pooranvary|یوسف]] ([[بحث کاربر:Yoosef Pooranvary|بحث]]) ۷ ژوئیهٔ ۲۰۲۶، ساعت ۱۸:۳۶ (UTC)
:::RunningHeader که الگوی تازه نیست. صرفاً تغییرمسیر به الگوی قبلیست. احتمالاً تنها استثنای پیام شما سرصفحه و پدیدآورنده باشد که دلیل تغییر بهروز بودن، امکانات بیشتر و بهتر کار کردن با اسکریپتهای ویکینبشته انگلیسی است. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۸ ژوئیهٔ ۲۰۲۶، ساعت ۱۲:۱۰ (UTC)
== بازسازی اسکن «هشت کتاب» ==
سلام و خسته نباشید. اسکن «هشت کتاب» (چاپ دوم طهوری) را که شما در ویکیانبار بارگذاری کردهاید، از روی تصویرهای اصلی بازسازی کردهام. تصویر هر صفحه به جای ۱۲۰۰×۱۸۰۰ اکنون ۲۰۰۰×۳۰۰۰ است، زمینه سفید و حروف تیره و خواناتر شده، و پسزدگی نوشتهٔ پشت صفحه تا حد زیادی برطرف شده است. حجم پرونده هم از ۹۰۴ مگابایت به ۹۰ مگابایت رسیده.
شمار و ترتیب صفحهها همان ۴۷۲ صفحهٔ پیشین است و هیچ جابهجایی در هیچ صفحهای رخ نداده و این موضوع را چندین بار چک کردهام. هیچکدام از برگههای نمونهخوانیشده آسیبی نمیبیند. صفحهٔ ۶۵ را هم که خودتان جداگانه جایگزین کرده بودید نگه داشتهام، چون تصویر آن صفحه در آرشیو اینترنتی خراب است. جلد رو و پشت رنگی میماند، ولی صفحههای متن سیاهوسفید میشوند و در نتیجه رنگ برچسبهای کتابخانه از بین میرود.
برای بارگذاری روی همان پرونده، پالایهٔ ۲۹۰ ویکیانبار جلوی مرا میگیرد. اگر موافقید، لطفاً <code><nowiki>{{Allow overwriting}}</nowiki></code> را به صفحهٔ پرونده بیفزایید تا بتوانم آن را بارگزاری کنم. نسخهٔ کنونی هم در تاریخچه میماند و اگر نتیجه را نپسندید، میتوانید به سادگی آن را برگردانید. من همین کار را پیش از این هم برای [https://commons.wikimedia.org/wiki/File:حافظ_قزوینی_غنی.pdf دیوان حافظ قزوینی غنی] انجام داده بودم که میتوانید کار من را آنجا ببینید. با احترام و سپاس فراوان [[کاربر:Mamouri|Mamouri]] ([[بحث کاربر:Mamouri|بحث]]) ۴ اکتبر ۲۰۲۶، ساعت ۰۹:۰۳ (UTC)
:سلام. خیلی ممنونم. الگو را اضافه کردم. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۴ اکتبر ۲۰۲۶، ساعت ۱۳:۵۸ (UTC)
:Hanooz گرامی؛ سلام و امیدوارم حالتان خوب باشد. من همین کار را با کتاب [[:پرونده:دیوان خانم پروین اعتصامی.pdf]] انجام دادم. چون در حال حاضر در حال بهروز کردن مقالات پروین اعتصامی هستم و مقالهٔ [https://fa.wikipedia.org/wiki/دیوان_پروین_اعتصامی دیوان پروین اعتصامی] و [https://fa.wikipedia.org/wiki/زن_و_تاریخ زن و تاریخ] را درست کردم و مقالهٔ [https://fa.wikipedia.org/wiki/نهال_آرزو نهال آرزو] را هم ویرایش کردم. لطف میکنید این الگو را برای آن فایل هم بگذارید که بتوانم نسخهٔ بهبودیافته را بفرستم؟ با احترام و سپاس فراوان [[کاربر:Mamouri|Mamouri]] ([[بحث کاربر:Mamouri|بحث]]) ۱۳ اکتبر ۲۰۲۶، ساعت ۱۷:۰۹ (UTC)
::'''پینوشت:''' به لطف پیامی که شما در ویکیانبار نوشتید بالاخره به من دسترسی دادند که بتوانم فایل را بارگزاری کنم. صفحات کاملاً مطابق با نسخهٔ شما مانده است، ولی کیفیت تصویر افزایش یافته و زردی کاغذها زدوده شدهاند. افزون بر این، نسخهٔ جدید داری [https://fa.wikipedia.org/wiki/نویسهخوان_نوری نویسهخوان نوری] و قابل جستجو است. اگر شما این فایل را بارگزاری نکرده بودید برای من راهی وجود نداشت که به آن دسترسی پیدا کنم و بتوانم اصلاحش کنم. از این رو از شما بسیار سپاسگزارم. با احترام [[کاربر:Mamouri|Mamouri]] ([[بحث کاربر:Mamouri|بحث]]) ۱۴ اکتبر ۲۰۲۶، ساعت ۰۷:۲۶ (UTC)
:::خواهش میکنم. ممنون از شما بابت زمانی که صرف پروژههای ویکیمدیا میکنید. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۴ اکتبر ۲۰۲۶، ساعت ۱۷:۲۲ (UTC)
== تاریخ در الگوی header ==
سلام و وقت بخیر. در صفحهی [[رساله موسومه به یک کلمه]] تاریخ اثر را که در الگو وارد شده، ۱۳۲۵ خورشیدی نمایش میدهد که اشتباه است و باید قمری باشد. ردهای که به صفحه اضافه میکند هم درست نیست. قبلاً برای جلوگیری از این مشکل در الگوی {{الگو|سرصفحه}} سالهای خورشیدی، قمری و میلادی را بر حسب نیاز جدا وارد میکردیم. آیا ممکن است در الگوی {{الگو|header}} هم نوع تقویم را مشخص کرد؟
مشابه این موضوع در الگوی {{الگو|پدیدآورنده}} هم هست که فقط تاریخ میلادی را نمایش میدهد. <span style="font-family:times; text-shadow: 0 0 .11em #6af; font-size:12pt">[[User:Arash.z|Arash.z]] <small>([[User talk:Arash.z|بحث]])</small></span> دوشنبه،۲۷ مهر ۱۴۰۵، ساعت ۱۰:۰۹ (ایران) ۱۹ اکتبر ۲۰۲۶، ساعت ۰۶:۳۹ (UTC)
:سلام. اصلاح شد. الگوی header پارامتری با عنوان calendar دارد که سه مقدار میلادی، خورشیدی و قمری را میپذیرد و پیشفرضش خورشیدی است. در author هم به همین شکل تنظیم شده. در الگوهای فارسی کنونی فکر نمیکنم چنین امکانی باشد. این دو نسخه تغییریافته از ویکینبشته انگلیسی هستند. [[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۹ اکتبر ۲۰۲۶، ساعت ۱۴:۱۱ (UTC)
i7dcvou42li6opg566i8tyem8zhkpi1
برگه:The Blind Owl.pdf/۷۳
104
46714
305291
124584
2026-10-20T03:38:04Z
Charan Gill
6444
/* همسنجیشده */
305291
proofread-page
text/x-wiki
<noinclude><pagequality level="4" user="Charan Gill" />{{سصم|۷۳||}}</noinclude>بود و او را در تحت اختیار من گذاشته بود از من بدش میامد، شاید میخواست آزاد باشد.– بالاخره یکشب تصمیم گرفتم که بزور پهلویش بروم– تصمیم خودم را عملی کردم، اما بعد از کشمکش سخت او بلند شد رفت و من فقط خودم را راضی کردم انشب در رختخوابش که حرارت تن او به جسم آن فرو رفته بود و بوی او را میداد بخوابم و غلت بزنم– تنها خواب راحتی که کردم همان شب بود– از آنشب ببعد اطاقش را از اطاق من جدا کرد.
شبها وقتیکه وارد خانه میشدم، او هنوز نیامده بود، نمیدانستم که آمده است یا نه– اصلاً نمیخواستم که بدانم– چون من محکوم به تنهائی، محکوم بمرگ بودهام– خواستم بهر وسیلهای شده با فاسقهای او رابطه پیدا بکنم– این را دیگر کسی باور نخواهد کرد– از هرکسیکه شنیده بودم خوشش میامد، کشیک میکشیدم، میرفتم هزار جور خفت و مذلت بخودم هموار میکردم با آنشخص آشنا میشدم، تملقش را میگفتم و او را برایش قر میزدم میاوردم– آنهم چه فاسقهائی: سیرابی فروش، فقیه، جگرکی، رئیس داروغه، مقنی، سوداگر، فیلسوف که اسمها و القابشان فرق میکرد ولی همه شاگرد کلهپز بودند، همه آنها را بمن ترجیح میداد– با چه خفت و<noinclude></noinclude>
eu5oy96atcysq5p9miuxf4qmlidtqw8
برگه:The Blind Owl.pdf/۷۴
104
46715
305292
166967
2026-10-20T11:14:17Z
Charan Gill
6444
/* همسنجیشده */
305292
proofread-page
text/x-wiki
<noinclude><pagequality level="4" user="Charan Gill" />{{سصم|۷۴||}}</noinclude>خواری خودم را کوچک و ذلیل میکردم کسی باور نخواهد کرد، چون میترسیدم زنم از دستم در برود، میخواستم طرز رفتار، اخلاق و دلربائی را از فاسقهای زنم یاد بگیرم ولی جاکش بدبختی بودم که همه احمقها بریشم میخندیدند– من اصلاً چطور میتوانستم رفتار و اخلاق رجالهها را یاد بگیرم؟ حالا میدانم آنها را دوست داشت چون بی حیا، احمق و متعفن بودند، عشق او اصلاً با کثافت و مرگ توام بود– ایا حقیقتاً من مایل بودم با او بخوابم، ایا صورت ظاهر او مرا شیفته خودش کرده بود یا تنفر او از من یا حرکات و اطوارش بود و یا علاقه و عشقی که از بچگی بمادرش داشتم و یا همه اینها دست بیکی کرده بودند؟ نه، نمیدانم، تنها یک چیز را میدانم: این زن، این لکاته، این جادو نمیدانم چه زهری در روح من، در هستی من ریخته بود که نه تنها او را میخواستم، بلکه تمام ذرات تنم، ذرات تن او را لازم داشت، فریاد میکشید که لازم دارد و آرزوی شدیدی میکردم که با او در جزیره گمشدهای باشم که آدمیزاد در آنجا وجود نداشته باشد، آرزو میکردم که یک زمین لرزه یا طوفان و یا صاعقه آسمانی همه این رجالهها که پشت دیوار اطاقم نفس میکشیدند، دوندگی میکردند، کیف میکردند همه را میترکانید<noinclude></noinclude>
47e9eebdnw8chx3pmv8emqg7r8dvo2r
الگو:اسکنک
10
60384
305260
188487
2026-10-19T14:28:44Z
EmausBot
7866
در حال اصلاح تغییرمسیر دوتایی از [[الگو:اسکن کوچک]] به [[الگو:پیوند اسکن کوچک]]
305260
wikitext
text/x-wiki
#تغییر_مسیر [[الگو:پیوند اسکن کوچک]]
74s7lbsnxbetj8pw0pizh2cuoouqt02
الگو:Small scan link
10
83522
305259
277541
2026-10-19T14:28:33Z
EmausBot
7866
در حال اصلاح تغییرمسیر دوتایی از [[الگو:اسکن کوچک]] به [[الگو:پیوند اسکن کوچک]]
305259
wikitext
text/x-wiki
#تغییر_مسیر [[الگو:پیوند اسکن کوچک]]
74s7lbsnxbetj8pw0pizh2cuoouqt02
رساله موسومه به یک کلمه
0
84002
305256
285190
2026-10-19T14:01:33Z
Hanooz
17889
| calendar = قمری
305256
wikitext
text/x-wiki
{{header
| title = رساله موسومه به یک کلمه
| author = یوسف مستشارالدوله
| translator =
| section =
| previous =
| next =
| year = ۱۳۲۵
| calendar = قمری
| notes =
| cover = رساله موسومه به یک کلمه - میرزا یوسف خان مستشارالدوله - مطبعه مبارکه شاهنشاهی.pdf/۱
}}
<pages index="رساله موسومه به یک کلمه - میرزا یوسف خان مستشارالدوله - مطبعه مبارکه شاهنشاهی.pdf" include=5></pages>
{{page break|label=}}
<pages index="رساله موسومه به یک کلمه - میرزا یوسف خان مستشارالدوله - مطبعه مبارکه شاهنشاهی.pdf" from=6 to=76></pages>
{{مالکیت عمومی در ایران}}
{{authority control}}
[[رده:قوانین فرانسه]]
[[رده:اسلام]]
6ugrjj4zp5k50xgteqyokm4mgmx58nc
الگو:بند/styles.css
10
87446
305285
286021
2026-10-19T22:09:16Z
Hanooz
17889
Hanooz صفحهٔ [[الگو:Verse/styles.css]] را بدون برجایگذاشتن تغییرمسیر به [[الگو:بند/styles.css]] منتقل کرد
286021
sanitized-css
text/css
.wst-verse {
color:#2E8B57;
}
.wst-verse-left {
position:absolute;
left:1em;
}
.wst-verse-float {
float:left;
text-align:right;
margin-left:-4em;
width:4em;
}
@media screen {
html.skin-theme-clientpref-night .wst-verse {
color: #97efbe;
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .wst-verse {
color: #97efbe;
}
}
0ysn3e16ca8tfsxp1n03by2qdvvgkdu
الگو:Verse
10
87447
305286
286022
2026-10-19T22:09:52Z
Hanooz
17889
تغییرمسیر به [[الگو:بند]]
305286
wikitext
text/x-wiki
#تغییر_مسیر [[الگو:بند]]
m16ou5xe24pk72wxoatw20br5s30ztj
پودمان:Makeid
828
87862
305290
286531
2026-10-19T22:21:17Z
Hanooz
17889
305290
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p._makeid(args)
local id_text = args[1]
if not id_text or id_text == '' or id_text=='radical' then
return ''
end
local blank_values = {}
for k, v in pairs(args) do
if string.match(k, '^blank%d*$') then
blank_values[v] = true
end
end
if blank_values[id_text] then
return ''
else
return 'id=\"' .. mw.uri.anchorEncode(id_text) .. '\"'
end
end
function p.makeid(frame)
return p._makeid(getArgs(frame))
end
return p
r6v2s1athobl4qrxknqddwtt11il76b
ویکینبشته:نگهداری/الگو
4
96185
305287
301908
2026-10-19T22:17:21Z
Hanooz
17889
/* عنوان غیرفارسی */
305287
wikitext
text/x-wiki
== استفاده نشده ==
* https://quarry.wmcloud.org/query/109743
{| class="wikitable"
!template
|-
|[[الگو:!-]]
|-
|[[الگو:!]]
|-
|[[الگو:....]]
|-
|[[الگو:=]]
|-
|[[الگو:Aligned couplet]]
|-
|[[الگو:Annotate QID]]
|-
|[[الگو:Anon]]
|-
|[[الگو:Aqua]]
|-
|[[الگو:Author subpage]]
|-
|[[الگو:Authority reference]]
|-
|[[الگو:BLP editintro]]
|-
|[[الگو:Bar]]
|-
|[[الگو:Biblecontents]]
|-
|[[الگو:Bigmath]]
|-
|[[الگو:Black]]
|-
|[[الگو:Blank]]
|-
|[[الگو:Box-header]]
|-
|[[الگو:CTOC-content-nl]]
|-
|[[الگو:CTOC-content]]
|-
|[[الگو:CTOC-title-nl]]
|-
|[[الگو:CTOC-title]]
|-
|[[الگو:CategoryTOC]]
|-
|[[الگو:Center or HI]]
|-
|[[الگو:Cited]]
|-
|[[الگو:Col-begin]]
|-
|[[الگو:Col-break]]
|-
|[[الگو:Col-end]]
|-
|[[الگو:Commons category link]]
|-
|[[الگو:Ct]]
|-
|[[الگو:Custom rule segment]]
|-
|[[الگو:DIRMARK]]
|-
|[[الگو:Darkred]]
|-
|[[الگو:Dashed line]]
|-
|[[الگو:Db-meta]]
|-
|[[الگو:Diff]]
|-
|[[الگو:Ditto bar thin]]
|-
|[[الگو:Ditto bar]]
|-
|[[الگو:Div col end]]
|-
|[[الگو:Dotted TOC page listing]]
|-
|[[الگو:Edit]]
|-
|[[الگو:Editprotected]]
|-
|[[الگو:End]]
|-
|[[الگو:Featured]]
|-
|[[الگو:File other]]
|-
|[[الگو:Fine block]]
|-
|[[الگو:FlowMention]]
|-
|[[الگو:Font-size90%]]
|-
|[[الگو:Fuchsia]]
|-
|[[الگو:Gray]]
|-
|[[الگو:Greyed]]
|-
|[[الگو:Header periodical]]
|-
|[[الگو:Historical]]
|-
|[[الگو:Hlist]]
|-
|[[الگو:IRC]]
|-
|[[الگو:ISO 639 name]]
|-
|[[الگو:IfEmptyDo]]
|-
|[[الگو:Index progress pie chart]]
|-
|[[الگو:Indigo]]
|-
|[[الگو:Inline-block]]
|-
|[[الگو:Internet Archive small link]]
|-
|[[الگو:Invisible reference]]
|-
|[[الگو:Is century]]
|-
|[[الگو:Is decade]]
|-
|[[الگو:Is number]]
|-
|[[الگو:Is year]]
|-
|[[الگو:Issue banner]]
|-
|[[الگو:Italic]]
|-
|[[الگو:Kbd]]
|-
|[[الگو:LQT Moved thread stub converted to Flow]]
|-
|[[الگو:LQT post imported with different signature user]]
|-
|[[الگو:LQT post imported with supressed user]]
|-
|[[الگو:Lang block]]
|-
|[[الگو:Lang]]
|-
|[[الگو:Larger block]]
|-
|[[الگو:Lime]]
|-
|[[الگو:Line break]]
|-
|[[الگو:Locus sigilli]]
|-
|[[الگو:Longdash]]
|-
|[[الگو:Loop]]
|-
|[[الگو:Ltr ends]]
|-
|[[الگو:Ltr]]
|-
|[[الگو:Manuscript Joiner end]]
|-
|[[الگو:Manuscript Joiner start]]
|-
|[[الگو:Manuscript Substitution]]
|-
|[[الگو:Maroon]]
|-
|[[الگو:Media]]
|-
|[[الگو:Migrate to djvu]]
|-
|[[الگو:Monthly Challenge month overview]]
|-
|[[الگو:Na]]
|-
|[[الگو:Namespace link]]
|-
|[[الگو:National]]
|-
|[[الگو:Navy]]
|-
|[[الگو:Notelist]]
|-
|[[الگو:Nr]]
|-
|[[الگو:Numbers]]
|-
|[[الگو:Olive]]
|-
|[[الگو:Orange]]
|-
|[[الگو:Other translations]]
|-
|[[الگو:Otrs]]
|-
|[[الگو:PD-1996]]
|-
|[[الگو:PD-old-30-1923]]
|-
|[[الگو:PD-old-50-1923]]
|-
|[[الگو:PD-old-60-1923]]
|-
|[[الگو:PD-old-70-1923]]
|-
|[[الگو:PD-old-75-1923]]
|-
|[[الگو:PD-old-80-1923]]
|-
|[[الگو:PD-old-99-1923]]
|-
|[[الگو:Page end hyphen]]
|-
|[[الگو:Page]]
|-
|[[الگو:Personendaten]]
|-
|[[الگو:Pmbox]]
|-
|[[الگو:Poem begin]]
|-
|[[الگو:Poem end]]
|-
|[[الگو:Poem-off]]
|-
|[[الگو:Poem-on]]
|-
|[[الگو:Pp-move]]
|-
|[[الگو:Pp-semi-template]]
|-
|[[الگو:Process subpage]]
|-
|[[الگو:Progress pie chart]]
|-
|[[الگو:Progress]]
|-
|[[الگو:Purple]]
|-
|[[الگو:RebeccaPurple]]
|-
|[[الگو:Redact]]
|-
|[[الگو:Reflist-talk]]
|-
|[[الگو:Section end rule]]
|-
|[[الگو:Sibling]]
|-
|[[الگو:Side box]]
|-
|[[الگو:Silver]]
|-
|[[الگو:Subst]]
|-
|[[الگو:Symbol missing]]
|-
|[[الگو:TOC line]]
|-
|[[الگو:TOC link]]
|-
|[[الگو:TOC row 1-dot-1]]
|-
|[[الگو:TOC row 2-1]]
|-
|[[الگو:TOC row c]]
|-
|[[الگو:TOC row l]]
|-
|[[الگو:TOC row r]]
|-
|[[الگو:TOC]]
|-
|[[الگو:Tag link nostyle]]
|-
|[[الگو:Teal]]
|-
|[[الگو:Text-indent]]
|-
|[[الگو:Toolbar]]
|-
|[[الگو:Translation header]]
|-
|[[الگو:Transparent]]
|-
|[[الگو:Txt]]
|-
|[[الگو:Uhtml]]
|-
|[[الگو:Unicode]]
|-
|[[الگو:Unspaced page end]]
|-
|[[الگو:User eo-3]]
|-
|[[الگو:User es-2]]
|-
|[[الگو:User fa-4]]
|-
|[[الگو:User is-1]]
|-
|[[الگو:User ro-2]]
|-
|[[الگو:User ru-1]]
|-
|[[الگو:User yi-1]]
|-
|[[الگو:Userbox-level]]
|-
|[[الگو:What era is]]
|-
|[[الگو:White]]
|-
|[[الگو:Wikidata image]]
|-
|[[الگو:Wikidata]]
|-
|[[الگو:Wikivar]]
|-
|[[الگو:Word-spacing]]
|-
|[[الگو:X-smaller block]]
|-
|[[الگو:Xx-larger block]]
|-
|[[الگو:Xx-smaller block]]
|-
|[[الگو:Xxxx-larger block]]
|-
|[[الگو:Ya]]
|-
|[[الگو:Yellow]]
|-
|[[الگو:آغاز فهرست آثار]]
|-
|[[الگو:اثر]]
|-
|[[الگو:اخطار نگاره]]
|-
|[[الگو:انتقال به ویکینسک]]
|-
|[[الگو:باز شد]]
|-
|[[الگو:باز شدن]]
|-
|[[الگو:باز نشد]]
|-
|[[الگو:بازبحث]]
|-
|[[الگو:بالای بایگانی]]
|-
|[[الگو:بایگانی برای صفحهٔ موضوعات روانی تبدیل شده]]
|-
|[[الگو:بایگانی برای ویکیمتن صفحهٔ بحث تبدیل شده]]
|-
|[[الگو:بر]]
|-
|[[الگو:برش تصویر]]
|-
|[[الگو:برونبری]]
|-
|[[الگو:بسملة]]
|-
|[[الگو:بن]]
|-
|[[الگو:به انگلیسی]]
|-
|[[الگو:به فرانسوی]]
|-
|[[الگو:به گفتاورد منتقل شود]]
|-
|[[الگو:بیت خالی]]
|-
|[[الگو:بیهقی-د]]
|-
|[[الگو:بیهقی-ن]]
|-
|[[الگو:تاریخ الطبری ط بریل]]
|-
|[[الگو:تاریخ تولد]]
|-
|[[الگو:تاریخ طبری]]
|-
|[[الگو:تاریخ مرگ و سن]]
|-
|[[الگو:ترتیبپیشفرض]]
|-
|[[الگو:تست3 تست3]]
|-
|[[الگو:تصویر خام]]
|-
|[[الگو:تمرین]]
|-
|[[الگو:جعبه اطلاعات زندگینامه]]
|-
|[[الگو:جعبه زندگینامه]]
|-
|[[الگو:جعبه]]
|-
|[[الگو:حاشیه چپ]]
|-
|[[الگو:حق تکثیر تصویر نامعلوم]]
|-
|[[الگو:خط نقطهچین فهرست]]
|-
|[[الگو:خطا]]
|-
|[[الگو:درگاه مادر]]
|-
|[[الگو:دست نگهدار]]
|-
|[[الگو:رستههای بنیادی]]
|-
|[[الگو:زرینکوب]]
|-
|[[الگو:سرصفحه داستان]]
|-
|[[الگو:سن]]
|-
|[[الگو:سنگنبشته گنجنامه]]
|-
|[[الگو:سنگنبشتههای هخامنشی]]
|-
|[[الگو:سه دایره بهار]]
|-
|[[الگو:شرح]]
|-
|[[الگو:شک]]
|-
|[[الگو:شکست واژه-آغاز]]
|-
|[[الگو:شکست واژه-پایان]]
|-
|[[الگو:صفحهٔ موضوعات روان به جریان تبدیل شد]]
|-
|[[الگو:صل]]
|-
|[[الگو:صلى الله عليه وآله وسلم]]
|-
|[[الگو:صلى الله عليه وآله]]
|-
|[[الگو:عدد به فارسی]]
|-
|[[الگو:عليه السلام]]
|-
|[[الگو:عليه الصلاة والسلام]]
|-
|[[الگو:عليهم السلام]]
|-
|[[الگو:غ]]
|-
|[[الگو:غلق]]
|-
|[[الگو:فرهنگستان-ب]]
|-
|[[الگو:فرهنگستان-ج]]
|-
|[[الگو:فرهنگستان-ح]]
|-
|[[الگو:فهرست مرکزی]]
|-
|[[الگو:مؤلف۲]]
|-
|[[الگو:مؤلف۳]]
|-
|[[الگو:مجلس شورای اسلامی]]
|-
|[[الگو:مجوز گنو-خود]]
|-
|[[الگو:مجوز گنو]]
|-
|[[الگو:مدیر ویکیپدیا]]
|-
|[[الگو:مرورگر]]
|-
|[[الگو:ممتنع]]
|-
|[[الگو:منصفانه]]
|-
|[[الگو:نشان مدیر]]
|-
|[[الگو:نظر]]
|-
|[[الگو:نمونهخوانی شده]]
|-
|[[الگو:نوشتار برگزیده]]
|-
|[[الگو:نگاره قدیمی]]
|-
|[[الگو:نیازمند انگلیسی]]
|-
|[[الگو:نیازمند ترجمه]]
|-
|[[الگو:نیازمند تصویر]]
|-
|[[الگو:نیازمند جدول اعداد سیاقی]]
|-
|[[الگو:نیازمند فرمول ریاضی]]
|-
|[[الگو:نیازمند نت موسیقی]]
|-
|[[الگو:همسنجی شده]]
|-
|[[الگو:همسنجیشده]]
|-
|[[الگو:وحشی-س]]
|-
|[[الگو:وسط کوچکتر۲]]
|-
|[[الگو:وک۲]]
|-
|[[الگو:ویرایش]]
|-
|[[الگو:ویکی سازی]]
|-
|[[الگو:ویکیمتن صفحهٔ بحث تبدیل شده به جریان]]
|-
|[[الگو:ویکینبشته]]
|-
|[[الگو:ویکینسک]]
|-
|[[الگو:پایان فهرست آثار]]
|-
|[[الگو:پایین بایگانی]]
|-
|[[الگو:پروژه خواهر]]
|-
|[[الگو:پروژههای بزرگ]]
|-
|[[الگو:کاربر ویکینسک]]
|-
|[[الگو:کلیدکلیکشونده ۲]]
|-
|[[الگو:کمکم کن]]
|-
|[[الگو:کپیرایت توسط ویکیمدیا]]
|-
|[[الگو:یادداشت کنار]]
|-
|[[الگو:یادکرد ژورنال]]
|-
|[[الگو:یونیکد]]
|}
== حداقل یک میانویکی، بدون پیوند به نسخه انگلیسی ویکینبشته ==
* https://quarry.wmcloud.org/query/109699
{| class="wikitable"
!template!!qid
|-
|[[الگو:!]]||[[d:Q5400303]]
|-
|[[الگو:-]]||[[d:Q5007897]]
|-
|[[الگو:=]]||[[d:Q5406510]]
|-
|[[الگو:About-distinguish2]]||[[d:Q6667051]]
|-
|[[الگو:Asbox/stubtree/2]]||[[d:Q14406547]]
|-
|[[الگو:Asbox/stubtree/3]]||[[d:Q6688013]]
|-
|[[الگو:Asbox/stubtree]]||[[d:Q14450995]]
|-
|[[الگو:BLP editintro]]||[[d:Q6864743]]
|-
|[[الگو:Babel]]||[[d:Q5461620]]
|-
|[[الگو:Bigmath]]||[[d:Q6718312]]
|-
|[[الگو:Custom rule segment]]||[[d:Q15649071]]
|-
|[[الگو:FlowMention]]||[[d:Q20739451]]
|-
|[[الگو:HideIfEmpty]]||[[d:Q18340418]]
|-
|[[الگو:IfEmptyDo]]||[[d:Q18340419]]
|-
|[[الگو:Interwiki-info]]||[[d:Q15632997]]
|-
|[[الگو:Interwikitmp-grp]]||[[d:Q6027648]]
|-
|[[الگو:Key press/core]]||[[d:Q14334259]]
|-
|[[الگو:Key press]]||[[d:Q5410128]]
|-
|[[الگو:LQT Moved thread stub converted to Flow]]||[[d:Q21042800]]
|-
|[[الگو:LQT post imported with different signature user]]||[[d:Q21042795]]
|-
|[[الگو:LQT post imported with supressed user]]||[[d:Q21042797]]
|-
|[[الگو:Lang2dir]]||[[d:Q141593358]]
|-
|[[الگو:LangSwitch]]||[[d:Q15212145]]
|-
|[[الگو:MONTHNAMEEN]]||[[d:Q23687361]]
|-
|[[الگو:Main list]]||[[d:Q6019536]]
|-
|[[الگو:Na]]||[[d:Q10998989]]
|-
|[[الگو:Nobots]]||[[d:Q13225996]]
|-
|[[الگو:Other people5]]||[[d:Q20750675]]
|-
|[[الگو:Other places3]]||[[d:Q13099250]]
|-
|[[الگو:Other ships]]||[[d:Q13108237]]
|-
|[[الگو:Other uses of]]||[[d:Q5758947]]
|-
|[[الگو:PD-old-50-1923]]||[[d:Q19283050]]
|-
|[[الگو:PD-old-60-1923]]||[[d:Q19283053]]
|-
|[[الگو:PD-old-70-1923]]||[[d:Q19283057]]
|-
|[[الگو:PD-old-75-1923]]||[[d:Q19283061]]
|-
|[[الگو:PD-old-80-1923]]||[[d:Q19283064]]
|-
|[[الگو:PD-old-99-1923]]||[[d:Q19283066]]
|-
|[[الگو:Pp-meta]]||[[d:Q6028610]]
|-
|[[الگو:Redirect-distinguish2]]||[[d:Q19857166]]
|-
|[[الگو:Redirect-synonym]]||[[d:Q13421042]]
|-
|[[الگو:See also2]]||[[d:Q13107775]]
|-
|[[الگو:Side box]]||[[d:Q6906791]]
|-
|[[الگو:Sister]]||[[d:Q8213590]]
|-
|[[الگو:Str endswith]]||[[d:Q10518309]]
|-
|[[الگو:Tcplain]]||[[d:Q18228071]]
|-
|[[الگو:Technical reasons]]||[[d:Q18574997]]
|-
|[[الگو:This user talk]]||[[d:Q21856029]]
|-
|[[الگو:Time ago/core]]||[[d:Q12168883]]
|-
|[[الگو:Time ago]]||[[d:Q5625682]]
|-
|[[الگو:Tlpad]]||[[d:Q18122824]]
|-
|[[الگو:Toolserver/message]]||[[d:Q14936816]]
|-
|[[الگو:Toolserver]]||[[d:Q8114492]]
|-
|[[الگو:User de]]||[[d:Q5541223]]
|-
|[[الگو:User en-2]]||[[d:Q5544939]]
|-
|[[الگو:User en-4]]||[[d:Q5546014]]
|-
|[[الگو:User eo-3]]||[[d:Q5541209]]
|-
|[[الگو:User fa-0]]||[[d:Q6584484]]
|-
|[[الگو:User fa-1]]||[[d:Q5545992]]
|-
|[[الگو:User fr-1]]||[[d:Q5548625]]
|-
|[[الگو:User is-1]]||[[d:Q6081147]]
|-
|[[الگو:User ro-2]]||[[d:Q6967786]]
|-
|[[الگو:User ru-1]]||[[d:Q6967995]]
|-
|[[الگو:User yi-1]]||[[d:Q6156461]]
|-
|[[الگو:Wikivar]]||[[d:Q5614421]]
|-
|[[الگو:Ya]]||[[d:Q13407605]]
|-
|[[الگو:آزمایش]]||[[d:Q10740914]]
|-
|[[الگو:آغاز فهرست آثار]]||[[d:Q123384983]]
|-
|[[الگو:اثر]]||[[d:Q123385239]]
|-
|[[الگو:اخطار نگاره]]||[[d:Q14445900]]
|-
|[[الگو:اخطار]]||[[d:Q10859921]]
|-
|[[الگو:اصلی رده]]||[[d:Q6383110]]
|-
|[[الگو:افزودن بخش جدید]]||[[d:Q6003096]]
|-
|[[الگو:الگوی محافظتشده]]||[[d:Q5646673]]
|-
|[[الگو:امروز]]||[[d:Q6989997]]
|-
|[[الگو:ب]]||[[d:Q11000030]]
|-
|[[الگو:بدون منبع]]||[[d:Q5962027]]
|-
|[[الگو:به انگلیسی]]||[[d:Q14468757]]
|-
|[[الگو:به زبان دیگر]]||[[d:Q5824848]]
|-
|[[الگو:بیشتر۲]]||[[d:Q11442204]]
|-
|[[الگو:تاریخ مشارکت کاربر]]||[[d:Q5626885]]
|-
|[[الگو:ترجمه]]||[[d:Q10565367]]
|-
|[[الگو:تغییرمسیر]]||[[d:Q6042392]]
|-
|[[الگو:تغییرمسیر۳]]||[[d:Q5625924]]
|-
|[[الگو:تغییرمسیر۴]]||[[d:Q14388132]]
|-
|[[الگو:توضیح رده]]||[[d:Q6864866]]
|-
|[[الگو:جعبه رنگیشده]]||[[d:Q60596779]]
|-
|[[الگو:جعبه صفحه اصلی]]||[[d:Q18640277]]
|-
|[[الگو:جعبه]]||[[d:Q14941572]]
|-
|[[الگو:جمعشوندگی]]||[[d:Q5621491]]
|-
|[[الگو:حق تکثیر مشکوک]]||[[d:Q7745436]]
|-
|[[الگو:خوش آمدید]]||[[d:Q26016077]]
|-
|[[الگو:درباره۲]]||[[d:Q20750644]]
|-
|[[الگو:درخواست برای دسترسی]]||[[d:Q17378160]]
|-
|[[الگو:دست نگهدار]]||[[d:Q6242359]]
|-
|[[الگو:دیگر افراد۲]]||[[d:Q13099249]]
|-
|[[الگو:دیگر افراد۳]]||[[d:Q14410545]]
|-
|[[الگو:رده انبار]]||[[d:Q48029]]
|-
|[[الگو:رده زبان کاربران]]||[[d:Q26015330]]
|-
|[[الگو:رده پنهان]]||[[d:Q5879327]]
|-
|[[الگو:رنگ متن]]||[[d:Q14468760]]
|-
|[[الگو:روز دیلمی]]||[[d:Q8085014]]
|-
|[[الگو:سردر تغییرات اخیر]]||[[d:Q106190262]]
|-
|[[الگو:سرصفحه/بلوک اصلی]]||[[d:Q105626953]]
|-
|[[الگو:سنگنبشتههای هخامنشی]]||[[d:Q26021452]]
|-
|[[الگو:شعر]]||[[d:Q11160603]]
|-
|[[الگو:شکستن ورودیها]]||[[d:Q6140715]]
|-
|[[الگو:صلی الله علیه وسلم]]||[[d:Q6873437]]
|-
|[[الگو:عبارت چپ به راست]]||[[d:Q26018687]]
|-
|[[الگو:عدد به انگلیسی]]||[[d:Q13360882]]
|-
|[[الگو:عدد به فارسی]]||[[d:Q15058701]]
|-
|[[الگو:عدد به]]||[[d:Q13360879]]
|-
|[[الگو:عربی]]||[[d:Q13360184]]
|-
|[[الگو:فم]]||[[d:Q14444956]]
|-
|[[الگو:م]]||[[d:Q11036760]]
|-
|[[الگو:مدرک]]||[[d:Q5312535]]
|-
|[[الگو:مرورگر]]||[[d:Q44609475]]
|-
|[[الگو:مقدمه راهنما چارچوب بالا]]||[[d:Q14405709]]
|-
|[[الگو:ن-م]]||[[d:Q6407319]]
|-
|[[الگو:نشان بالا]]||[[d:Q5835563]]
|-
|[[الگو:نشان مدیر]]||[[d:Q5622454]]
|-
|[[الگو:نشان گشت خودکار]]||[[d:Q6705530]]
|-
|[[الگو:نوار درصد]]||[[d:Q10514190]]
|-
|[[الگو:نوار رنگی]]||[[d:Q60950352]]
|-
|[[الگو:نگاره]]||[[d:Q5618653]]
|-
|[[الگو:همترازکردن]]||[[d:Q47461144]]
|-
|[[الگو:وسط درشت]]||[[d:Q125808942]]
|-
|[[الگو:ویکینسک]]||[[d:Q5625111]]
|-
|[[الگو:ویکیواژه]]||[[d:Q5649364]]
|-
|[[الگو:ویکیپدیا]]||[[d:Q6275256]]
|-
|[[الگو:ویکیگفتاورد]]||[[d:Q5614687]]
|-
|[[الگو:پایان شعر]]||[[d:Q11163701]]
|-
|[[الگو:پایان فهرست آثار]]||[[d:Q123384994]]
|-
|[[الگو:چر]]||[[d:Q15633829]]
|-
|[[الگو:چپ به راست]]||[[d:Q15633827]]
|-
|[[الگو:•]]||[[d:Q6867717]]
|}
== در ویکینبشته فارسی، فاقد آیتم ویکیداده ==
* https://quarry.wmcloud.org/query/109696
{| class="wikitable"
!template
|-
|[[الگو:About-distinguish-custom]]
|-
|[[الگو:About-distinguish]]
|-
|[[الگو:Author]]
|-
|[[الگو:Category pair]]
|-
|[[الگو:Ct]]
|-
|[[الگو:DIRMARK]]
|-
|[[الگو:Db-meta]]
|-
|[[الگو:Details3]]
|-
|[[الگو:Distinguish2]]
|-
|[[الگو:For year month day]]
|-
|[[الگو:For2]]
|-
|[[الگو:Formatnumber]]
|-
|[[الگو:Header]]
|-
|[[الگو:Icon]]
|-
|[[الگو:Iso2dir]]
|-
|[[الگو:Languages]]
|-
|[[الگو:License]]
|-
|[[الگو:Ltr ends]]
|-
|[[الگو:Ltr]]
|-
|[[الگو:Nastaliq block]]
|-
|[[الگو:NoCat]]
|-
|[[الگو:Other places]]
|-
|[[الگو:PAGENAMEBASE]]
|-
|[[الگو:PD-old-30-1923]]
|-
|[[الگو:PDFLink]]
|-
|[[الگو:Pagetype]]
|-
|[[الگو:Personendaten]]
|-
|[[الگو:Plain sister]]
|-
|[[الگو:Pluralize from text]]
|-
|[[الگو:Pp-move]]
|-
|[[الگو:Pp-semi-template]]
|-
|[[الگو:Preceding category]]
|-
|[[الگو:Prettytable]]
|-
|[[الگو:Process header]]
|-
|[[الگو:QOK 1883-A]]
|-
|[[الگو:QOK 1883-B]]
|-
|[[الگو:QOK 1883-Bl]]
|-
|[[الگو:QOK 1883-C]]
|-
|[[الگو:QOK 1883-I]]
|-
|[[الگو:QOK 1883-J]]
|-
|[[الگو:QOK 1883-L]]
|-
|[[الگو:QOK 1883-N]]
|-
|[[الگو:Red]]
|-
|[[الگو:Redirect-distinguish]]
|-
|[[الگو:Static row numbers table]]
|-
|[[الگو:Static row numbers]]
|-
|[[الگو:Succeeding category]]
|-
|[[الگو:Tag link nostyle]]
|-
|[[الگو:Three other uses]]
|-
|[[الگو:Two other uses]]
|-
|[[الگو:Txt]]
|-
|[[الگو:Umbox]]
|-
|[[الگو:User de-1]]
|-
|[[الگو:User de-4]]
|-
|[[الگو:User en-3]]
|-
|[[الگو:User es-2]]
|-
|[[الگو:User fa-4]]
|-
|[[الگو:User fa-5]]
|-
|[[الگو:Userbox-level]]
|-
|[[الگو:Userbox]]
|-
|[[الگو:Verse]]
|-
|[[الگو:Wikidata Infobox]]
|-
|[[الگو:Wikidata image]]
|-
|[[الگو:آری-نه]]
|-
|[[الگو:آمار ویکینبشته فارسی]]
|-
|[[الگو:إزالة الخفاء عن خلافة الخلفاء]]
|-
|[[الگو:اطلاعات قطع دسترسی]]
|-
|[[الگو:الگو-غیره]]
|-
|[[الگو:الگوب]]
|-
|[[الگو:الگوهای حفاظت]]
|-
|[[الگو:الگوهای سرنویس]]
|-
|[[الگو:الگوپ]]
|-
|[[الگو:الگوی]]
|-
|[[الگو:امروز دیلمی]]
|-
|[[الگو:انبار]]
|-
|[[الگو:بابل]]
|-
|[[الگو:باز نشد]]
|-
|[[الگو:بازبحث]]
|-
|[[الگو:بالای بایگانی]]
|-
|[[الگو:بایگانی برای صفحهٔ موضوعات روانی تبدیل شده]]
|-
|[[الگو:بایگانی برای ویکیمتن صفحهٔ بحث تبدیل شده]]
|-
|[[الگو:بایگانی واگردان]]
|-
|[[الگو:بایگانی گشت]]
|-
|[[الگو:بخش اولدوز۲]]
|-
|[[الگو:بخش اولدوز۳]]
|-
|[[الگو:بدون خبرسازی]]
|-
|[[الگو:بر]]
|-
|[[الگو:بسته]]
|-
|[[الگو:بسملة]]
|-
|[[الگو:بسمله]]
|-
|[[الگو:بن]]
|-
|[[الگو:بند شعرنو]]
|-
|[[الگو:به فرانسوی]]
|-
|[[الگو:بیت خالی]]
|-
|[[الگو:بیشتر]]
|-
|[[الگو:بیهقی-ح]]
|-
|[[الگو:بیهقی-د]]
|-
|[[الگو:بیهقی-ط]]
|-
|[[الگو:بیهقی-فا]]
|-
|[[الگو:بیهقی-مج]]
|-
|[[الگو:بیهقی-مو]]
|-
|[[الگو:بیهقی-ن]]
|-
|[[الگو:بیهقی-ک]]
|-
|[[الگو:بیهقی-یب]]
|-
|[[الگو:ب۱]]
|-
|[[الگو:ب۲]]
|-
|[[الگو:تار]]
|-
|[[الگو:تاریخ الطبری ط بریل]]
|-
|[[الگو:تاریخ تولد]]
|-
|[[الگو:تاریخ طبری]]
|-
|[[الگو:تاریخ مرگ و سن]]
|-
|[[الگو:تحفه اثنا عشریه]]
|-
|[[الگو:تست3 تست3]]
|-
|[[الگو:تصحیح سلامان]]
|-
|[[الگو:تغییر مسیر۲]]
|-
|[[الگو:تقابل]]
|-
|[[الگو:تمرین]]
|-
|[[الگو:ته]]
|-
|[[الگو:توضیحات الگوهای سرنویس]]
|-
|[[الگو:تیترتوکار]]
|-
|[[الگو:جزئیات]]
|-
|[[الگو:جعبه اطلاعات زندگینامه]]
|-
|[[الگو:جعبه زندگینامه]]
|-
|[[الگو:جعبه پیوند به پروژههای خواهر]]
|-
|[[الگو:جلالی]]
|-
|[[الگو:جلدهای مصوبات مجلس شورای ملی]]
|-
|[[الگو:حافظ-الف]]
|-
|[[الگو:حافظ-ب]]
|-
|[[الگو:حافظ-ت]]
|-
|[[الگو:حافظ-تقوی ۲]]
|-
|[[الگو:حافظ-تقوی]]
|-
|[[الگو:حافظ-حن]]
|-
|[[الگو:حافظ-خ]]
|-
|[[الگو:حافظ-دبیرخاقان]]
|-
|[[الگو:حافظ-ر]]
|-
|[[الگو:حافظ-س]]
|-
|[[الگو:حافظ-سودی]]
|-
|[[الگو:حافظ-سپه]]
|-
|[[الگو:حافظ-ط]]
|-
|[[الگو:حافظ-ق]]
|-
|[[الگو:حافظ-ل]]
|-
|[[الگو:حافظ-م]]
|-
|[[الگو:حافظ-ملک]]
|-
|[[الگو:حافظ-منعم]]
|-
|[[الگو:حافظ-نخ]]
|-
|[[الگو:حافظ-نص]]
|-
|[[الگو:حافظ-نواب]]
|-
|[[الگو:حافظ-هندی]]
|-
|[[الگو:حافظ-ک]]
|-
|[[الگو:حافظ-ی]]
|-
|[[الگو:حق تکثیر تصویر نامعلوم۲]]
|-
|[[الگو:خط نقطهچین فهرست]]
|-
|[[الگو:خطکش-پانویس-کوچک]]
|-
|[[الگو:دارای نستعلیق]]
|-
|[[الگو:درباره]]
|-
|[[الگو:درگاه مادر]]
|-
|[[الگو:دیگر افراد]]
|-
|[[الگو:دیگر کاربردها]]
|-
|[[الگو:رایانامه]]
|-
|[[الگو:رباعی خیام فروغی]]
|-
|[[الگو:رباعی مشکوک ترانههای خیام]]
|-
|[[الگو:رده وابسته]]
|-
|[[الگو:رستههای بنیادی]]
|-
|[[الگو:رضی الله عنه]]
|-
|[[الگو:رضی الله عنها]]
|-
|[[الگو:رضی الله عنهم]]
|-
|[[الگو:رضی الله عنهما]]
|-
|[[الگو:رچ]]
|-
|[[الگو:رک]]
|-
|[[الگو:زرینکوب]]
|-
|[[الگو:سبک جدول اولدوز]]
|-
|[[الگو:سبک سطر اولدوز]]
|-
|[[الگو:ستاره]]
|-
|[[الگو:سرخ]]
|-
|[[الگو:سردر دفترخانه]]
|-
|[[الگو:سرصفحه داستان]]
|-
|[[الگو:سرصفحه درگاهها]]
|-
|[[الگو:سرصفحه راهنما]]
|-
|[[الگو:سرصفحه صفحه اصلی۲]]
|-
|[[الگو:سعدی-ابیات ساقط]]
|-
|[[الگو:سعدی-ب]]
|-
|[[الگو:سعدی-تجدیدنظر]]
|-
|[[الگو:سعدی-خ]]
|-
|[[الگو:سعدی-س]]
|-
|[[الگو:سعدی-ص]]
|-
|[[الگو:سعدی-ط]]
|-
|[[الگو:سعدی-غلطنامه]]
|-
|[[الگو:سعدی-ق]]
|-
|[[الگو:سعدی-لغات]]
|-
|[[الگو:سعدی-م]]
|-
|[[الگو:سعدی-پا]]
|-
|[[الگو:سن]]
|-
|[[الگو:سنگنبشته گنجنامه]]
|-
|[[الگو:سه دایره بهار]]
|-
|[[الگو:سه ستاره بهار]]
|-
|[[الگو:شرح]]
|-
|[[الگو:شعرنو]]
|-
|[[الگو:شماره برگه در فهرست]]
|-
|[[الگو:شماره رباعی ترانههای خیام]]
|-
|[[الگو:شمارههای صور اسرافیل]]
|-
|[[الگو:شک]]
|-
|[[الگو:صادق هدایت]]
|-
|[[الگو:صفحه کاربری استاندارد]]
|-
|[[الگو:صفحهٔ موضوعات روان به جریان تبدیل شد]]
|-
|[[الگو:صفحههای بیسند]]
|-
|[[الگو:صل]]
|-
|[[الگو:صلى الله عليه وآله وسلم]]
|-
|[[الگو:صلى الله عليه وآله]]
|-
|[[الگو:طبرستان-الف]]
|-
|[[الگو:طبرستان-ب]]
|-
|[[الگو:طبرستان-ج]]
|-
|[[الگو:عدد سیاقی]]
|-
|[[الگو:عليه السلام]]
|-
|[[الگو:عليه الصلاة والسلام]]
|-
|[[الگو:عليهم السلام]]
|-
|[[الگو:عنوان]]
|-
|[[الگو:غ]]
|-
|[[الگو:غلق]]
|-
|[[الگو:فراویکی-درخط]]
|-
|[[الگو:فرهنگستان-ب]]
|-
|[[الگو:فرهنگستان-ج]]
|-
|[[الگو:فرهنگستان-ح]]
|-
|[[الگو:فرهنگستان-د]]
|-
|[[الگو:فرهنگستان-ز]]
|-
|[[الگو:فرهنگستان-ش]]
|-
|[[الگو:فرهنگستان-ط]]
|-
|[[الگو:فرهنگستان-ف]]
|-
|[[الگو:فرهنگستان-پ]]
|-
|[[الگو:فرهنگستان-گ]]
|-
|[[الگو:فروغ فرخزاد]]
|-
|[[الگو:فهرست محتویات رده]]
|-
|[[الگو:فهرست یکدست]]
|-
|[[الگو:قا]]
|-
|[[الگو:قابوس-ح]]
|-
|[[الگو:قابوس-خ]]
|-
|[[الگو:قابوس-ظ]]
|-
|[[الگو:قطع۱]]
|-
|[[الگو:قطع۲]]
|-
|[[الگو:قطع۳]]
|-
|[[الگو:لحن نامناسب]]
|-
|[[الگو:لوآ]]
|-
|[[الگو:مؤلف۲]]
|-
|[[الگو:مؤلف۳]]
|-
|[[الگو:مالکیت عمومی توسط پدیدآورنده]]
|-
|[[الگو:مالکیت عمومی]]
|-
|[[الگو:ماهنامه شرف]]
|-
|[[الگو:مجلس شورای اسلامی]]
|-
|[[الگو:مجوز گنو-خود]]
|-
|[[الگو:مجوز گنو]]
|-
|[[الگو:محدوده مجوز]]
|-
|[[الگو:مدیر ویکیپدیا]]
|-
|[[الگو:مشکوک]]
|-
|[[الگو:مصراع خالی]]
|-
|[[الگو:مقدمه راهنما برگ کناری]]
|-
|[[الگو:منصفانه]]
|-
|[[الگو:ناعخ-ئف]]
|-
|[[الگو:ناعخ-بو]]
|-
|[[الگو:ناعخ-جه]]
|-
|[[الگو:ناعخ-حج]]
|-
|[[الگو:ناعخ-رز]]
|-
|[[الگو:ناعخ-سع]]
|-
|[[الگو:ناعخ-صا]]
|-
|[[الگو:ناعخ-غن]]
|-
|[[الگو:ناعخ-مج]]
|-
|[[الگو:ناعخ-مر]]
|-
|[[الگو:ناعخ-مو]]
|-
|[[الگو:ناعخ-نز]]
|-
|[[الگو:ناعخ-کز]]
|-
|[[الگو:ناعخ-کم]]
|-
|[[الگو:نامهها و فرمانهای شاه صفی]]
|-
|[[الگو:نثر]]
|-
|[[الگو:نحش]]
|-
|[[الگو:نسخههای دیگر]]
|-
|[[الگو:نشان واگردان]]
|-
|[[الگو:نشان گشتزن]]
|-
|[[الگو:نشان]]
|-
|[[الگو:نطاق]]
|-
|[[الگو:نظر]]
|-
|[[الگو:نظرخواهیها]]
|-
|[[الگو:نقطه خط]]
|-
|[[الگو:نمونهخوانی شده]]
|-
|[[الگو:نوارابزار]]
|-
|[[الگو:نوشتار برگزیده]]
|-
|[[الگو:نکته ظاهرشونده]]
|-
|[[الگو:نگاره قدیمی]]
|-
|[[الگو:نیازمند انگلیسی]]
|-
|[[الگو:نیازمند ترجمه]]
|-
|[[الگو:نیازمند جدول اعداد سیاقی]]
|-
|[[الگو:همسنجی شده]]
|-
|[[الگو:همسنجیشده]]
|-
|[[الگو:همسنجشده]]
|-
|[[الگو:وحشی-س]]
|-
|[[الگو:وحشی-م]]
|-
|[[الگو:وحشی-چ]]
|-
|[[الگو:وسط بزرگتر]]
|-
|[[الگو:وسط بزرگتر۱]]
|-
|[[الگو:وسط بزرگتر۲]]
|-
|[[الگو:وسط بزرگتر۳]]
|-
|[[الگو:وسط بزرگتر۴]]
|-
|[[الگو:وسط کوچکتر]]
|-
|[[الگو:وسط کوچکتر۱]]
|-
|[[الگو:وسط کوچکتر۲]]
|-
|[[الگو:وسطچین]]
|-
|[[الگو:وک۲]]
|-
|[[الگو:ویرایش زیرصفحه]]
|-
|[[الگو:ویرایش]]
|-
|[[الگو:ویرگول خط]]
|-
|[[الگو:ویکی سازی]]
|-
|[[الگو:ویکیانبار]]
|-
|[[الگو:ویکیمتن صفحهٔ بحث تبدیل شده به جریان]]
|-
|[[الگو:ویکینبشته]]
|-
|[[الگو:پانویسها]]
|-
|[[الگو:پایان بند شعرنو]]
|-
|[[الگو:پایان شعرنو]]
|-
|[[الگو:پایان عنوان]]
|-
|[[الگو:پایان وسطچین]]
|-
|[[الگو:پایان پانویسها]]
|-
|[[الگو:پایان چپچین]]
|-
|[[الگو:پایان کوچک]]
|-
|[[الگو:پایان گفتاورد بزرگ]]
|-
|[[الگو:پایان]]
|-
|[[الگو:پایین بایگانی]]
|-
|[[الگو:پدیدآورنده۲]]
|-
|[[الگو:پروژه خواهر]]
|-
|[[الگو:پروژههای بزرگ]]
|-
|[[الگو:پروژههای ویکی]]
|-
|[[الگو:پیشخان جلد]]
|-
|[[الگو:پیوند الگو]]
|-
|[[الگو:پیوند بارگذاری]]
|-
|[[الگو:پیوند رباعی ترانههای خیام]]
|-
|[[الگو:پیوند رباعی خیام رمضانی]]
|-
|[[الگو:پیوند]]
|-
|[[الگو:چپچین]]
|-
|[[الگو:کاربر بسته شده]]
|-
|[[الگو:کاربر فراویکی]]
|-
|[[الگو:کاربر ویرایش سراسری]]
|-
|[[الگو:کاربر ویکینسک]]
|-
|[[الگو:کاربر ویکیواژه]]
|-
|[[الگو:کاربر ویکیپدیا]]
|-
|[[الگو:کاربر ویکیگفتاورد]]
|-
|[[الگو:کاربر پروژههای خواهر]]
|-
|[[الگو:کوچک]]
|-
|[[الگو:گرداننده رده]]
|-
|[[الگو:گفتاورد بزرگ]]
|-
|[[الگو:گفتاورد]]
|-
|[[الگو:یادکرد]]
|-
|[[الگو:یونیکد]]
|}
== دارای آیتم ویکیداده، تنها شامل ویکینبشته فارسی ==
* https://quarry.wmcloud.org/query/109697
{| class="wikitable"
!template!!qid
|-
|[[الگو:CTOC-content-nl]]||[[d:Q27910151]]
|-
|[[الگو:CTOC-content]]||[[d:Q27910138]]
|-
|[[الگو:CTOC-title-nl]]||[[d:Q27910149]]
|-
|[[الگو:CTOC-title]]||[[d:Q27910143]]
|}
== عنوان غیرفارسی ==
https://quarry.wmcloud.org/query/109968
{| class="wikitable"
!template
|-
|[[الگو:About-distinguish-custom]]
|-
|[[الگو:About-distinguish2]]
|-
|[[الگو:About-distinguish]]
|-
|[[الگو:Aligned couplet]]
|-
|[[الگو:Aligned table]]
|-
|[[الگو:Ambox]]
|-
|[[الگو:Annotate QID]]
|-
|[[الگو:Anon]]
|-
|[[الگو:Asbox]]
|-
|[[الگو:Asterism]]
|-
|[[الگو:Author]]
|-
|[[الگو:Authority control]]
|-
|[[الگو:Authority reference]]
|-
|[[الگو:BLP editintro]]
|-
|[[الگو:Babel]]
|-
|[[الگو:Bar]]
|-
|[[الگو:Biblecontents]]
|-
|[[الگو:Bigmath]]
|-
|[[الگو:Blackletter]]
|-
|[[الگو:Blank]]
|-
|[[الگو:Block center]]
|-
|[[الگو:Block left]]
|-
|[[الگو:Block right]]
|-
|[[الگو:Bold block]]
|-
|[[الگو:Border-radius]]
|-
|[[الگو:Border]]
|-
|[[الگو:Bot]]
|-
|[[الگو:Box-footer]]
|-
|[[الگو:Box-header]]
|-
|[[الگو:Box-shadow]]
|-
|[[الگو:Brace table parameters]]
|-
|[[الگو:Brace2]]
|-
|[[الگو:CTOC-content-nl]]
|-
|[[الگو:CTOC-content]]
|-
|[[الگو:CTOC-title-nl]]
|-
|[[الگو:CTOC-title]]
|-
|[[الگو:Categories by date]]
|-
|[[الگو:Category handler]]
|-
|[[الگو:Category pair]]
|-
|[[الگو:CategoryTOC]]
|-
|[[الگو:Cc-by-4.0]]
|-
|[[الگو:Center or HI]]
|-
|[[الگو:Centered Box]]
|-
|[[الگو:Circled text]]
|-
|[[الگو:Cited]]
|-
|[[الگو:Cmbox]]
|-
|[[الگو:CodeFedReg]]
|-
|[[الگو:Code]]
|-
|[[الگو:Col-begin]]
|-
|[[الگو:Col-break]]
|-
|[[الگو:Col-end]]
|-
|[[الگو:Colbegin]]
|-
|[[الگو:Colend]]
|-
|[[الگو:Column-count]]
|-
|[[الگو:Column-gap]]
|-
|[[الگو:Column-rule]]
|-
|[[الگو:Commons category link]]
|-
|[[الگو:Continues]]
|-
|[[الگو:Copyright-until]]
|-
|[[الگو:Crlf2]]
|-
|[[الگو:Ct]]
|-
|[[الگو:Custom rule segment]]
|-
|[[الگو:DIRMARK]]
|-
|[[الگو:Dashed line]]
|-
|[[الگو:Db-meta]]
|-
|[[الگو:Default layout]]
|-
|[[الگو:Details3]]
|-
|[[الگو:Diagonal split header]]
|-
|[[الگو:Diff]]
|-
|[[الگو:Dir]]
|-
|[[الگو:Disambiguation]]
|-
|[[الگو:Distinguish2]]
|-
|[[الگو:Ditto bar thin]]
|-
|[[الگو:Ditto bar]]
|-
|[[الگو:Div col end]]
|-
|[[الگو:Div col]]
|-
|[[الگو:Div end]]
|-
|[[الگو:Doc example]]
|-
|[[الگو:Dotted TOC page listing]]
|-
|[[الگو:Double rule]]
|-
|[[الگو:Dropinitial]]
|-
|[[الگو:Editnotice load]]
|-
|[[الگو:Editnotice]]
|-
|[[الگو:Editprotected]]
|-
|[[الگو:Em]]
|-
|[[الگو:Empty TOC]]
|-
|[[الگو:End]]
|-
|[[الگو:Ensure AAA contrast ratio]]
|-
|[[الگو:FULLROOTPAGENAME]]
|-
|[[الگو:File other]]
|-
|[[الگو:Fine block]]
|-
|[[الگو:Fine]]
|-
|[[الگو:Flatlist]]
|-
|[[الگو:Flex wrap centre]]
|-
|[[الگو:Floating quotation mark]]
|-
|[[الگو:FlowMention]]
|-
|[[الگو:Fmbox]]
|-
|[[الگو:Font size block]]
|-
|[[الگو:Font-size-base]]
|-
|[[الگو:Font-size-x]]
|-
|[[الگو:Font-size70%]]
|-
|[[الگو:Font-size90%]]
|-
|[[الگو:Font-weight-normal]]
|-
|[[الگو:For year month day]]
|-
|[[الگو:For2]]
|-
|[[الگو:Formatnumber]]
|-
|[[الگو:Frac]]
|-
|[[الگو:Framed page]]
|-
|[[الگو:FreedImg]]
|-
|[[الگو:Gutenberg]]
|-
|[[الگو:HTML attribute]]
|-
|[[الگو:Header]]
|-
|[[الگو:HideIfEmpty]]
|-
|[[الگو:High-risk]]
|-
|[[الگو:Hlist]]
|-
|[[الگو:IRC]]
|-
|[[الگو:ISO 639 name]]
|-
|[[الگو:Icon]]
|-
|[[الگو:IfEmptyDo]]
|-
|[[الگو:Ifsubst]]
|-
|[[الگو:Image removed]]
|-
|[[الگو:ImageNoteControl]]
|-
|[[الگو:Imbox]]
|-
|[[الگو:Img float]]
|-
|[[الگو:Index progress pie chart]]
|-
|[[الگو:Index talk remarks]]
|-
|[[الگو:Indigo]]
|-
|[[الگو:Infobox]]
|-
|[[الگو:Infosection]]
|-
|[[الگو:Inline-block]]
|-
|[[الگو:Internet Archive small link]]
|-
|[[الگو:Internet Archive small links]]
|-
|[[الگو:Interwiki-info]]
|-
|[[الگو:Interwikitmp-grp]]
|-
|[[الگو:Inverted asterism]]
|-
|[[الگو:Invisible reference]]
|-
|[[الگو:Is century]]
|-
|[[الگو:Is decade]]
|-
|[[الگو:Is number]]
|-
|[[الگو:Is year]]
|-
|[[الگو:Iso2dir]]
|-
|[[الگو:Issue banner]]
|-
|[[الگو:Italic block]]
|-
|[[الگو:Iwtrans]]
|-
|[[الگو:Kbd]]
|-
|[[الگو:Key press]]
|-
|[[الگو:Klick]]
|-
|[[الگو:LQT Moved thread stub converted to Flow]]
|-
|[[الگو:LQT post imported with different signature user]]
|-
|[[الگو:LQT post imported with supressed user]]
|-
|[[الگو:Lang block]]
|-
|[[الگو:Lang2dir]]
|-
|[[الگو:LangSwitch]]
|-
|[[الگو:Lang]]
|-
|[[الگو:Language characters]]
|-
|[[الگو:Languages]]
|-
|[[الگو:Largeinitial]]
|-
|[[الگو:Larger block]]
|-
|[[الگو:Last month]]
|-
|[[الگو:Letter-spacing]]
|-
|[[الگو:License]]
|-
|[[الگو:Line break]]
|-
|[[الگو:Linkable phrase end]]
|-
|[[الگو:Linkable phrase start]]
|-
|[[الگو:Locus sigilli]]
|-
|[[الگو:Longdash]]
|-
|[[الگو:Loop]]
|-
|[[الگو:Lua]]
|-
|[[الگو:M-larger]]
|-
|[[الگو:MC-Cover]]
|-
|[[الگو:MONTHNAMEEN]]
|-
|[[الگو:MONTHNUMBER]]
|-
|[[الگو:Main Page SEO description]]
|-
|[[الگو:Main list]]
|-
|[[الگو:Main other]]
|-
|[[الگو:Makeid]]
|-
|[[الگو:Manuscript Deletion]]
|-
|[[الگو:Manuscript Erasure]]
|-
|[[الگو:Manuscript Insertion]]
|-
|[[الگو:Manuscript Joiner end]]
|-
|[[الگو:Manuscript Joiner start]]
|-
|[[الگو:Manuscript Replacement]]
|-
|[[الگو:Manuscript Substitution]]
|-
|[[الگو:Mbox]]
|-
|[[الگو:Mfrac]]
|-
|[[الگو:Migrate to djvu]]
|-
|[[الگو:Mod]]
|-
|[[الگو:Monthly Challenge month overview]]
|-
|[[الگو:Monthly Challenge sprint]]
|-
|[[الگو:Monthly Challenge statistics]]
|-
|[[الگو:Multicol-break]]
|-
|[[الگو:Multicol-end]]
|-
|[[الگو:Multicol-section]]
|-
|[[الگو:Multiple image]]
|-
|[[الگو:Na]]
|-
|[[الگو:Namespace detect]]
|-
|[[الگو:Namespace link]]
|-
|[[الگو:Nastaliq block]]
|-
|[[الگو:National]]
|-
|[[الگو:Navbar]]
|-
|[[الگو:Navbox with collapsible groups]]
|-
|[[الگو:Navbox]]
|-
|[[الگو:Navimg]]
|-
|[[الگو:New texts navigation]]
|-
|[[الگو:NoCat]]
|-
|[[الگو:Nobots]]
|-
|[[الگو:Noinclude]]
|-
|[[الگو:Nop]]
|-
|[[الگو:Nopt]]
|-
|[[الگو:Nospam]]
|-
|[[الگو:Nosubst]]
|-
|[[الگو:Notelist]]
|-
|[[الگو:Nowrap]]
|-
|[[الگو:Nr]]
|-
|[[الگو:Ns has subpages]]
|-
|[[الگو:Numbers]]
|-
|[[الگو:Ombox]]
|-
|[[الگو:Only in print]]
|-
|[[الگو:Optional style]]
|-
|[[الگو:Other people5]]
|-
|[[الگو:Other places3]]
|-
|[[الگو:Other places]]
|-
|[[الگو:Other ships]]
|-
|[[الگو:Otrs]]
|-
|[[الگو:Overfloat image]]
|-
|[[الگو:PAGENAMEBASE]]
|-
|[[الگو:PD-1996]]
|-
|[[الگو:PD-UN]]
|-
|[[الگو:PD-US-no-renewal]]
|-
|[[الگو:PD-US]]
|-
|[[الگو:PD-old-30-1923]]
|-
|[[الگو:PD-old-50-1923]]
|-
|[[الگو:PD-old-60-1923]]
|-
|[[الگو:PD-old-70-1923]]
|-
|[[الگو:PD-old-75-1923]]
|-
|[[الگو:PD-old-80-1923]]
|-
|[[الگو:PD-old-99-1923]]
|-
|[[الگو:PDFLink]]
|-
|[[الگو:Page break]]
|-
|[[الگو:Page end hyphen]]
|-
|[[الگو:Page status text]]
|-
|[[الگو:Pagenum]]
|-
|[[الگو:Pagetype]]
|-
|[[الگو:Personendaten]]
|-
|[[الگو:Plain sister]]
|-
|[[الگو:Plain text]]
|-
|[[الگو:Plainlinks]]
|-
|[[الگو:Plainlist]]
|-
|[[الگو:Pline]]
|-
|[[الگو:Pluralize from text]]
|-
|[[الگو:Pmbox]]
|-
|[[الگو:Poem begin]]
|-
|[[الگو:Poem end]]
|-
|[[الگو:Poem-off]]
|-
|[[الگو:Poem-on]]
|-
|[[الگو:Pp-meta]]
|-
|[[الگو:Pp-move]]
|-
|[[الگو:Pp-semi-template]]
|-
|[[الگو:Ppoem]]
|-
|[[الگو:Preceding category]]
|-
|[[الگو:Prettytable]]
|-
|[[الگو:Process header]]
|-
|[[الگو:Process subpage]]
|-
|[[الگو:Progress bar]]
|-
|[[الگو:Progress pie chart]]
|-
|[[الگو:Progress]]
|-
|[[الگو:QOK 1883 note]]
|-
|[[الگو:QOK 1883 verse link]]
|-
|[[الگو:QOK 1883 verse]]
|-
|[[الگو:QOK 1883-A]]
|-
|[[الگو:QOK 1883-B]]
|-
|[[الگو:QOK 1883-Bl]]
|-
|[[الگو:QOK 1883-C]]
|-
|[[الگو:QOK 1883-I]]
|-
|[[الگو:QOK 1883-J]]
|-
|[[الگو:QOK 1883-L]]
|-
|[[الگو:QOK 1883-N]]
|-
|[[الگو:RebeccaPurple]]
|-
|[[الگو:Reconstruct]]
|-
|[[الگو:Recto-verso]]
|-
|[[الگو:Red]]
|-
|[[الگو:Redact]]
|-
|[[الگو:Redirect-distinguish2]]
|-
|[[الگو:Redirect-distinguish]]
|-
|[[الگو:Redirect-synonym]]
|-
|[[الگو:Ref]]
|-
|[[الگو:Reflist-talk]]
|-
|[[الگو:Refn]]
|-
|[[الگو:Refsfr]]
|-
|[[الگو:Rellink]]
|-
|[[الگو:Sans-serif]]
|-
|[[الگو:Scan page link]]
|-
|[[الگو:Section end rule]]
|-
|[[الگو:See also2]]
|-
|[[الگو:Separator]]
|-
|[[الگو:Sfrac]]
|-
|[[الگو:Sibling]]
|-
|[[الگو:Side box]]
|-
|[[الگو:Small-caps]]
|-
|[[الگو:Smaller block]]
|-
|[[الگو:Softredirect]]
|-
|[[الگو:Sp]]
|-
|[[الگو:Span end]]
|-
|[[الگو:Static row numbers table]]
|-
|[[الگو:Static row numbers]]
|-
|[[الگو:Str endswith]]
|-
|[[الگو:Str left]]
|-
|[[الگو:Subst]]
|-
|[[الگو:Succeeding category]]
|-
|[[الگو:Sup]]
|-
|[[الگو:Symbol missing]]
|-
|[[الگو:TOC begin]]
|-
|[[الگو:TOC end]]
|-
|[[الگو:TOC limit]]
|-
|[[الگو:TOC line]]
|-
|[[الگو:TOC link]]
|-
|[[الگو:TOC page listing]]
|-
|[[الگو:TOC row 1-1-1]]
|-
|[[الگو:TOC row 1-dot-1]]
|-
|[[الگو:TOC row 2-1]]
|-
|[[الگو:TOC row 2dot-1]]
|-
|[[الگو:TOC row c]]
|-
|[[الگو:TOC row l]]
|-
|[[الگو:TOC row r]]
|-
|[[الگو:TOC]]
|-
|[[الگو:TOCstyle]]
|-
|[[الگو:Table style]]
|-
|[[الگو:Tag link nostyle]]
|-
|[[الگو:Tag]]
|-
|[[الگو:Talk other]]
|-
|[[الگو:Tcplain]]
|-
|[[الگو:Teal]]
|-
|[[الگو:Technical reasons]]
|-
|[[الگو:Template other]]
|-
|[[الگو:TemplateDataHeader]]
|-
|[[الگو:Text removed]]
|-
|[[الگو:Text-indent]]
|-
|[[الگو:TextQuality]]
|-
|[[الگو:This user talk]]
|-
|[[الگو:Three other uses]]
|-
|[[الگو:Time ago]]
|-
|[[الگو:Tl-nav]]
|-
|[[الگو:Tlc]]
|-
|[[الگو:Tld]]
|-
|[[الگو:Tlf]]
|-
|[[الگو:Tlg]]
|-
|[[الگو:Tlp]]
|-
|[[الگو:Tlpad]]
|-
|[[الگو:Tlx]]
|-
|[[الگو:Tlxb]]
|-
|[[الگو:Tmbox]]
|-
|[[الگو:Toolbar]]
|-
|[[الگو:Toolserver]]
|-
|[[الگو:Transclude]]
|-
|[[الگو:Transparent]]
|-
|[[الگو:Two other uses]]
|-
|[[الگو:Txt]]
|-
|[[الگو:URL]]
|-
|[[الگو:Uhtml]]
|-
|[[الگو:Umbox]]
|-
|[[الگو:Unbulleted list]]
|-
|[[الگو:Unspaced page end]]
|-
|[[الگو:User de-1]]
|-
|[[الگو:User de-4]]
|-
|[[الگو:User de]]
|-
|[[الگو:User en-2]]
|-
|[[الگو:User en-3]]
|-
|[[الگو:User en-4]]
|-
|[[الگو:User eo-3]]
|-
|[[الگو:User es-2]]
|-
|[[الگو:User fa-0]]
|-
|[[الگو:User fa-1]]
|-
|[[الگو:User fa-4]]
|-
|[[الگو:User fa-5]]
|-
|[[الگو:User fr-1]]
|-
|[[الگو:User is-1]]
|-
|[[الگو:User ro-2]]
|-
|[[الگو:User ru-1]]
|-
|[[الگو:User yi-1]]
|-
|[[الگو:Userbox-level]]
|-
|[[الگو:Userbox]]
|-
|[[الگو:Uw-vandalism1]]
|-
|[[الگو:Uw-vandalism2]]
|-
|[[الگو:Var]]
|-
|[[الگو:Violet]]
|-
|[[الگو:WP link]]
|-
|[[الگو:W]]
|-
|[[الگو:What era is]]
|-
|[[الگو:Wide space]]
|-
|[[الگو:Wikidata Infobox]]
|-
|[[الگو:Wikidata entity link]]
|-
|[[الگو:Wikidata image]]
|-
|[[الگو:Wikivar]]
|-
|[[الگو:Word-spacing]]
|-
|[[الگو:Works by license subcat]]
|-
|[[الگو:X-larger block]]
|-
|[[الگو:X-smaller block]]
|-
|[[الگو:Xx-larger block]]
|-
|[[الگو:Xx-smaller block]]
|-
|[[الگو:Xxx-larger block]]
|-
|[[الگو:Xxx-smaller]]
|-
|[[الگو:Xxxx-larger block]]
|-
|[[الگو:Xxxx-smaller]]
|-
|[[الگو:Ya]]
|-
|[[الگو:Years ago]]
|-
|[[الگو:Yesno]]
|}
miqkql6ug5b93i6etawll83108puvzs
الگو:شعر۲/styles.css
10
97053
305265
305109
2026-10-19T18:24:30Z
Hanooz
17889
305265
sanitized-css
text/css
/*
* الگو:شعر/styles.css — شیوهنامهٔ TemplateStyles برای «پودمان:شعر»
* محتوای این صفحه باید از نوع «Sanitized CSS» باشد؛ پیشوند .mw-parser-output
* را خود افزونه اضافه میکند.
*/
/* ─── فاصلهها (همه یکجا) ──────────────────────────────────────────────────
* فاصلهٔ دو مصراع = ستون میانی (.poem-num-c ≈ ۴em) + حاشیهٔ درونی دو مصراع (۲×۰٫۴em).
* شمارهٔ ابیات به لبهٔ بیرونی میچسبد و فاصلهاش تا مصراع = پهنای ستونِ کناری منهای خودِ شماره.
* در جدولِ هماندازهٔ محتوا (شعر دوطرفه) ستونهای میانی و کناری «انعطافپذیر»اند: وقتی فضا کم
* میشود، پیش از هر چیز همینها کوچک میشوند (بدونِ هیچ media query) و متن مصراعها دستنخورده
* میماند؛ سپس فاصلهٔ واژهها (پایینتر)، و در نهایت چیدمان ستونی.
* (.poem-num کوچکتر (۸۵٪) نوشته میشود، پس emهای آن ×۰٫۸۵ است.)
*/
.poem-m {
padding-left: 0.6em;
padding-right: 0.6em;
}
.poem-num-c {
width: 5.5em;
}
.poem-g {
width: 4.7em;
}
.poem-s {
width: 3.4em;
}
.poem-num-c {
padding-left: 0.5em;
padding-right: 0.5em;
}
.poem-num-r {
width: 4em;
padding-left: 0.5em;
padding-right: 0.5em;
}
.poem-num-l {
width: 4em;
padding-left: 1.4em;
padding-right: 0.5em;
}
/* ─── نستعلیق ───────────────────────────────────────────────────────────────
* قلم و اندازه از خودِ الگوی «نستعلیق» میآید: پودمان {{نستعلیق|…}} را صدا میزند و
* کلاس/قلمی را که آن الگو (و «الگو:نستعلیق/styles.css») میگذارد روی شعر مینشاند؛ پس هر
* تغییر در آن صفحهها خودکار به شعرها میرسد. اینجا فقط میگوییم سلولها و مصراعها از
* شعر ارث ببرند تا قاعدههای سایت برای td/.b قلم را عوض نکنند.
*/
.poem-table.nastaliq td,
.poem-table.nastaliq .beyt {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
/* مصراعها وسطچین (پایه) */
.poem-row {
text-align: center;
}
/* ─── ترازبندی مصراعها (کلاسهایی که پودمان میگذارد) ─────────────────────────
* start/end بسته به جهت متناند (در فارسی: start = راست، end = چپ).
* «میانه» (پیشفرض بیت): مصراع ۱ end، مصراع ۲ start ← هر دو به محور میانی میچسبند.
* «لبه» (پیشفرض بیت۱ و نردبانی): مصراع ۱ start (راست)، مصراع ۲ end (چپ).
*/
.poem-a-start {
text-align: start;
}
.poem-a-end {
text-align: end;
}
.poem-a-right {
text-align: right;
}
.poem-a-left {
text-align: left;
}
.poem-a-justify {
text-align: justify;
text-align-last: justify;
}
/* ─── شعر دوطرفه ─────────────────────────────────────────────────────────────
* مصراع نمیشکند تا کشش (و عرض همهٔ مصراعها) ثابت بماند؛ ستونهای حاشیه و میان کوچک میشوند.
*/
.poem-just .poem-m {
white-space: nowrap;
}
/* با عرضِ صریح (جدول ثابت) ستونها از پیش تعیین شدهاند: مصراعِ بلندتر بشکند، نه سرریز کند */
.poem-fixed.poem-just .poem-m {
white-space: normal;
}
/* ─── ارجاع (<ref>) در پایان مصراع ───────────────────────────────────────────
* پودمان نشانه را از متن مصراع جدا و در پایانِ آن میگذارد؛ عرضِ صفر یعنی در عرض و کشش مصراع
* نمیشمارد و بیرون از لبهٔ پایانی آویزان میشود. همهٔ مصراعها هماندازه میمانند.
*/
.poem-ref {
display: inline-block;
width: 0;
white-space: nowrap;
}
/* ─── نسخهٔ نامرئیِ اندازهگیر ─────────────────────────────────────────────────────
* در شعر دوطرفه هر سلولِ مصراع یک نسخهٔ نامرئی از مصراعِ همبیت هم دارد (بدون ارجاع)؛ در نتیجه
* هر دو ستون به اندازهٔ بلندترین مصراعِ کل شعر میشوند و همهٔ مصراعها هماندازهاند.
* ارتفاع صفر و نامرئی است، پس چیزی دیده یا انتخاب نمیشود.
*/
.poem-sz {
display: block;
height: 0;
overflow: hidden;
visibility: hidden;
white-space: nowrap;
}
/* نمادِ میان دو مصراع (جداکننده=…) */
.poem-sep {
color: #b3362b;
font-size: 90%;
}
/* شمارهٔ ابیات: کوچکتر، بدون شکستن خط، چسبیده به لبهٔ بیرونی */
.poem-num {
font-size: 85%;
white-space: nowrap;
}
.poem-num-r {
text-align: right;
}
.poem-num-l {
text-align: left;
}
/* مصراع تنها با تراز راست یا چپ (شعر نو) */
.poem-m-right {
text-align: right;
}
.poem-m-left {
text-align: left;
}
/* سلولهای فاصلهگذار در بیتهای پلکانی و ردیف فاصله */
.poem-indent,
.poem-gapcell {
padding: 0;
}
/* ─── چیدمان ثابت (پیشفرض) ──────────────────────────────────────────────────
* ستونها را ردیف نامرئی .poem-sizer تعیین میکند (.poem-s کنار، .poem-g میان)؛
* عرض و حداکثر عرض روی جعبهٔ .poem-fixed مینشیند، پس همهٔ جدولهای یک شعر
* هماندازهاند. (اینجا font-size صفر نمیشود: عرضها با em نوشته شدهاند.)
*/
.poem-fixed .poem-sizer td {
padding: 0;
border: 0;
height: 0;
line-height: 0;
}
.poem-fixed .b {
overflow-wrap: break-word;
}
/* شعر چندصفحهای: ردیف نامرئی که جای «ادامه» مینشیند (خط خالی پدید نیاید) */
.poem-skip {
display: none;
}
/* پیشنمایش در فضای نام «صفحه»: ردیفی که از صفحهٔ قبل میآید یا به صفحهٔ بعد میرود */
.poem-partial-end td.b {
border-bottom: 1px dashed;
}
.poem-partial-start td.b {
border-top: 1px dashed;
}
/* ─── فاصلهٔ واژهها در شعر دوطرفه، پیش از ستونیشدن ───────────────────────────────
* گام ۱ و ۲: فاصلهٔ واژهها اندکی کم میشود تا مصراعها هنوز در یک خط جا شوند.
* فضای نام «صفحه»: تصویر نیمی از پنجره را میگیرد و قلمِ متن درشتتر است، پس همهٔ آستانهها
* بسیار بالاترند. (محدودیت: TemplateStyles از container query پشتیبانی نمیکند، پس آستانهها بر پایهٔ
* پهنای پنجرهاند، نه پهنای واقعیِ ستونِ متن. برای یک شعر: تلفن=همیشه یا تلفن=دوستونه.)
*/
@media (max-width: 70em) {
.poem-just .poem-m {
word-spacing: -0.06em;
}
}
@media (max-width: 60em) {
.poem-just .poem-m {
word-spacing: -0.12em;
}
}
@media (max-width: 140em) {
.poem-page.poem-just .poem-m {
word-spacing: -0.06em;
}
}
@media (max-width: 130em) {
.poem-page.poem-just .poem-m {
word-spacing: -0.12em;
}
}
/* ─── صفحهٔ باریک: هر بیت زیر هم، مانند گنجور ────────────────────────────────────
* شماره بالا، دو مصراع وسطچین زیر هم، و خطچینِ جداکننده بعد از هر بیت (در بیتهای پلکانی
* بعد از خط دوم). نماد و نسخهٔ نامرئیِ اندازهگیر حذف میشوند. با تلفن=دوستونه کلاس
* .poem-stack نیست و جدول دوستونه میماند؛ با تلفن=همیشه همیشه ستونی است.
* نکته: سلولِ مصراع flex میشود تا ترازِ دوطرفهٔ درونخطی کل عرض را نکشد؛ انتخابگرهای td.poem-m1/m2
* عمداً از «.poem-row td» ویژهترند وگرنه display:block آنها را بیاثر میکرد.
*/
@media (max-width: 52em) {
.poem-stack .poem-table,
.poem-stack .poem-table tbody,
.poem-stack .poem-row,
.poem-stack .poem-row td {
display: block;
}
.poem-stack .poem-sizer {
display: none;
}
.poem-stack .poem-row td {
width: auto;
text-align: center;
}
.poem-stack .poem-bayt {
display: flex;
flex-direction: column;
align-items: center;
padding: 0.4em 0;
border-bottom: 1px dashed rgba(128, 128, 128, 0.55);
}
.poem-stack .poem-bayt .poem-num-r,
.poem-stack .poem-bayt .poem-num-l {
order: -1;
}
.poem-stack .poem-stagger-1 {
padding-top: 0.4em;
}
.poem-stack .poem-stagger-2 {
padding-bottom: 0.4em;
border-bottom: 1px dashed rgba(128, 128, 128, 0.55);
}
.poem-stack .poem-row td.poem-m1,
.poem-stack .poem-row td.poem-m2 {
display: flex;
justify-content: center;
white-space: normal;
word-spacing: normal;
}
.poem-stack .poem-row td.poem-m1 .beyt,
.poem-stack .poem-row td.poem-m2 .beyt {
margin-left: auto;
margin-right: auto;
text-align: center;
text-align-last: center;
}
.poem-stack .poem-sz,
.poem-stack .poem-sep {
display: none;
}
}
/* فضای نام «صفحه»: همان ستونیشدن، بسیار زودتر (متن حدود نیمی از پنجره است) */
@media (max-width: 120em) {
.poem-page.poem-stack .poem-table,
.poem-page.poem-stack .poem-table tbody,
.poem-page.poem-stack .poem-row,
.poem-page.poem-stack .poem-row td {
display: block;
}
.poem-page.poem-stack .poem-sizer {
display: none;
}
.poem-page.poem-stack .poem-row td {
width: auto;
text-align: center;
}
.poem-page.poem-stack .poem-bayt {
display: flex;
flex-direction: column;
align-items: center;
padding: 0.4em 0;
border-bottom: 1px dashed rgba(128, 128, 128, 0.55);
}
.poem-page.poem-stack .poem-bayt .poem-num-r,
.poem-page.poem-stack .poem-bayt .poem-num-l {
order: -1;
}
.poem-page.poem-stack .poem-stagger-1 {
padding-top: 0.4em;
}
.poem-page.poem-stack .poem-stagger-2 {
padding-bottom: 0.4em;
border-bottom: 1px dashed rgba(128, 128, 128, 0.55);
}
.poem-page.poem-stack .poem-row td.poem-m1,
.poem-page.poem-stack .poem-row td.poem-m2 {
display: flex;
justify-content: center;
white-space: normal;
word-spacing: normal;
}
.poem-page.poem-stack .poem-row td.poem-m1 .beyt,
.poem-page.poem-stack .poem-row td.poem-m2 .beyt {
margin-left: auto;
margin-right: auto;
text-align: center;
text-align-last: center;
}
.poem-page.poem-stack .poem-sz,
.poem-page.poem-stack .poem-sep {
display: none;
}
}
/* همیشه ستونی (تلفن=همیشه) */
.poem-stack-always .poem-table,
.poem-stack-always .poem-table tbody,
.poem-stack-always .poem-row,
.poem-stack-always .poem-row td {
display: block;
}
.poem-stack-always .poem-sizer {
display: none;
}
.poem-stack-always .poem-row td {
width: auto;
text-align: center;
}
.poem-stack-always .poem-bayt {
display: flex;
flex-direction: column;
align-items: center;
padding: 0.4em 0;
border-bottom: 1px dashed rgba(128, 128, 128, 0.55);
}
.poem-stack-always .poem-bayt .poem-num-r,
.poem-stack-always .poem-bayt .poem-num-l {
order: -1;
}
.poem-stack-always .poem-stagger-1 {
padding-top: 0.4em;
}
.poem-stack-always .poem-stagger-2 {
padding-bottom: 0.4em;
border-bottom: 1px dashed rgba(128, 128, 128, 0.55);
}
.poem-stack-always .poem-row td.poem-m1,
.poem-stack-always .poem-row td.poem-m2 {
display: flex;
justify-content: center;
white-space: normal;
word-spacing: normal;
}
.poem-stack-always .poem-row td.poem-m1 .beyt,
.poem-stack-always .poem-row td.poem-m2 .beyt {
margin-left: auto;
margin-right: auto;
text-align: center;
text-align-last: center;
}
.poem-stack-always .poem-sz,
.poem-stack-always .poem-sep {
display: none;
}
/* صفحهٔ باریک با جدولِ دوستونه (تلفن=دوستونه): فاصلهها کمتر تا جا برای متن بماند */
@media (max-width: 30em) {
.poem-m {
padding-left: 0.25em;
padding-right: 0.25em;
}
.poem-num-c {
width: 2.4em;
}
.poem-g {
width: 2em;
}
.poem-s {
width: 2em;
}
.poem-num-r,
.poem-num-l {
width: 2.4em;
}
}
k9gh4sgds4gyx2gjoj0amt5ma7g02ls
پودمان:شعر
828
97054
305264
305110
2026-10-19T18:23:42Z
Hanooz
17889
305264
Scribunto
text/plain
--[==[
پودمان:شعر — نمایش شعر در ویکینبشتهٔ فارسی
الگو نقطهٔ ورود در {{#invoke:شعر|…}}
{{شعر}} open آغاز شعر؛ با پارامتر «متن» کل شعر را میسازد
{{پایان شعر}} close
{{بیت}} bayt بیت دومصراعی
{{بیت۱}} stagger بیت پلکانی (ضربدری)
{{بیت نردبانی}} ladder بیت نردبانی (تورفتگی پیشفرض بیشتر)
{{مصراع}} mesra یک مصراع
{{بیت خالی}} emptyBayt
{{مصراع خالی}} emptyMesra
ساختار خروجی همان جدول ۷ستونی پیشین است (ظاهر شعرهای موجود و خروجی
کتاب الکترونیکی تغییری نمیکند). شیوهنامه: «الگو:شعر۲/styles.css».
چیدمان (تازه): جدول پیشفرض عرض ثابت و مستقل از محتوا دارد (عرض=، حداکثر عرض=)،
تا همهٔ ابیات شعر — حتی در جدولهای جدا (صفحههای جدا) — از یک نقطه آغاز شوند.
ترازبندی=وسط|راست|چپ|پهن|لبه برای هر نوع بیت؛ قلم=، نستعلیق خودبسنده (بدون Common.css).
در حالت «متن»، خطی که با @ آغاز شود نوع ردیفهای بعدی را عوض میکند: «@بیت نردبانی».
شعر چندصفحهای (ایدهٔ start/end در ppoem):
• در فضای نام «صفحه» هر صفحه همیشه خودبسنده و بسته نمایش داده میشود.
• در صفحهٔ اصلی (درج با <pages/>) پارامتر «ادامه» صفحهها را به هم میدوزد:
{{شعر|ادامه}} جدول تازه باز نمیکند و {{پایان شعر|ادامه}} نمیبندد.
• ردیفِ ناتمام (مصراعی که در صفحهٔ بعد ادامه دارد) نگه داشته میشود
(ناتمام=بله) و با نخستین ردیفِ صفحهٔ بعد (دنباله=بله) یکی میشود.
]==]
local p = {}
---------------------------------------------------------------------------
-- تنظیمات
---------------------------------------------------------------------------
local ZWNJ = '\226\128\140' -- نیمفاصله
local cfg = {
styles = 'Template:شعر۲/styles.css', -- صفحهٔ TemplateStyles
pageNs = 104, -- شمارهٔ فضای نام «صفحه» (ProofreadPage)
mesraUnit = '1.5em', -- تورفتگی هر «:» در حالت متن با نوع=مصراع
nbsp = ' ',
-- چیدمان: 'auto' = جدولِ هماندازهٔ محتوا (رفتار قدیمی)؛ طول/درصد = عرض ثابت
defaultWidth = '100%',
maxWidth = '50em', -- سقف عرض (وقتی عرض داده نشده)
-- فاصلهٔ دو مصراع، ستون شمارهٔ کناری و فاصلهٔ شماره تا مصراع در الگو:شعر۲/styles.css است
-- ترازبندی پیشفرض هر نوع: inner | center | right | left | justify | edge
-- inner (میانه): مصراعها به محور میانی میچسبند — شیوهٔ گنجور و کتابهای کلاسیک
-- edge (لبه) : مصراع ۱ به راست، مصراع ۲ به چپ
justDefault = { bayt = 'inner', stagger = 'edge' },
-- نستعلیق: خودِ الگوی ویکی ({{نستعلیق|…}}) صدا زده میشود و کلاس/قلمی که میگذارد روی شعر
-- مینشیند؛ پس هر تغییر در «الگو:نستعلیق» یا «الگو:نستعلیق/styles.css» خودکار به شعرها میرسد.
nastaliqTemplate = 'نستعلیق',
-- آخرین چاره، فقط اگر آن الگو در دسترس نبود
nastaliqFonts = "'IranNastaliq', 'Nastaliq Navees', 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', 'Nafees Nastaleeq', 'Pak Nastaleeq', serif",
-- نمادِ میان دو مصراع: separator برای همهٔ شعرها ('' = بدون نماد، یا مثلاً '❖')؛
-- ornament نمادِ «جداکننده=بله» است
separator = '',
ornament = '❖',
-- ترازبندی «پهن»: اگر کوتاهترین مصراعِ بیت کمتر از این نسبتِ طولِ بلندترین باشد، آن بیت
-- کشیده نمیشود (وسطچین میماند) تا فاصلهٔ واژهها بیجهت باز نشود
justifyMinRatio = 0.7,
-- true: ردیف ناتمامِ آخر صفحه نگه داشته و با دنبالهاش ادغام میشود (نیازمند اجرای ترتیبی
-- الگوها در یک رندر). اگر متنی در مرز صفحه گم شد، false کنید: هر تکه فوراً و جدا نمایش داده میشود.
mergeRows = true,
cats = {
unknown = 'صفحه' .. ZWNJ .. 'های دارای پارامتر ناشناخته در الگوهای شعر',
incomplete = 'صفحه' .. ZWNJ .. 'های دارای بیت ناقص',
error = 'صفحه' .. ZWNJ .. 'های دارای خطا در پودمان شعر',
},
}
-- نام پارامترها (فارسی + معادل انگلیسی)
local N = {
right = { 'ش', 'r', 'right' },
center = { 'شو', 'c', 'center' },
left = { 'شچ', 'l', 'left' },
style = { 'سبک', 'style' },
class = { 'کلاس', 'class' },
id = { 'شناسه', 'id' },
indent = { 'تورفتگی', 'indent' },
align = { 'تراز', 'align' },
height = { 'ارتفاع', 'height' },
lang = { 'زبان', 'lang' },
dir = { 'جهت', 'dir' },
text = { 'متن', 'text' },
kind = { 'نوع', 'type' },
numbering = { 'شماره' .. ZWNJ .. 'گذاری', 'شمارهگذاری', 'شماره', 'numbering' },
start = { 'شروع', 'start' },
side = { 'سمت', 'side' },
digits = { 'ارقام', 'digits' },
gap = { 'فاصله', 'gap' },
unit = { 'واحد تورفتگی', 'واحد' .. ZWNJ .. 'تورفتگی', 'واحدتورفتگی', 'indent-unit' },
nastaliq = { 'نستعلیق', 'nastaliq' },
cont = { 'ادامه', 'continue' }, -- شعر از/به صفحهٔ دیگر ادامه دارد
unfinished = { 'ناتمام', 'unfinished' }, -- این ردیف در صفحهٔ بعد ادامه دارد
continued = { 'دنباله', 'continued' }, -- این ردیف ادامهٔ ردیف ناتمامِ صفحهٔ قبل است
joiner = { 'اتصال', 'join' }, -- چسباندن دو تکه: فاصله | چسبیده | نیمفاصله
stanza = { 'بند', 'stanza' }, -- بند=جدید
width = { 'عرض', 'width' },
maxwidth = { 'حداکثر عرض', 'حداکثر' .. ZWNJ .. 'عرض', 'حداکثرعرض', 'max-width' },
sep = { 'جداکننده', 'separator' },
phone = { 'تلفن', 'phone' },
just = { 'ترازبندی', 'تراز' .. ZWNJ .. 'بندی', 'justify' },
}
local KNOWN = {}
for _, list in pairs(N) do
for _, name in ipairs(list) do
KNOWN[name] = true
end
end
local ALIGN = {
['راست'] = 'right', right = 'right', r = 'right',
['چپ'] = 'left', left = 'left', l = 'left',
['وسط'] = 'center', ['مرکز'] = 'center', center = 'center', c = 'center',
}
local SIDE = { right = 'r', left = 'l', center = 'c' }
local KIND = {
['بیت'] = 'bayt', ['ابیات'] = 'bayt', bayt = 'bayt',
['بیت۱'] = 'stagger', ['بیت1'] = 'stagger', ['پلکانی'] = 'stagger', ['ضربدری'] = 'stagger', stagger = 'stagger',
['بیت نردبانی'] = 'ladder', ['نردبانی'] = 'ladder', ladder = 'ladder',
['مصراع'] = 'mesra', ['نو'] = 'mesra', ['نیمایی'] = 'mesra', ['آزاد'] = 'mesra',
mesra = 'mesra', line = 'mesra',
}
local DIGITS = {
['فارسی'] = 'fa', fa = 'fa', persian = 'fa',
['لاتین'] = 'latin', ['انگلیسی'] = 'latin', latin = 'latin', en = 'latin',
['بدون' .. ZWNJ .. 'تغییر'] = 'keep', ['بدون تغییر'] = 'keep', keep = 'keep',
}
local YES = {
['بله'] = true, ['بلی'] = true, ['آری'] = true, ['خودکار'] = true,
yes = true, y = true, auto = true, ['true'] = true, ['1'] = true,
}
local NO = {
['نه'] = true, ['خیر'] = true, no = true, n = true, ['false'] = true, ['0'] = true,
}
local UNITS = {
[''] = 'px', ['%'] = '%', px = 'px', em = 'em', ex = 'ex', ch = 'ch', rem = 'rem',
vw = 'vw', vh = 'vh', pt = 'pt', cm = 'cm', mm = 'mm', ['in'] = 'in',
}
local CONT = {
['قبل'] = 'prev', ['پیشین'] = 'prev', prev = 'prev',
['بعد'] = 'next', ['پسین'] = 'next', next = 'next',
['هر دو'] = 'both', ['هردو'] = 'both', both = 'both',
}
local JOIN = {
['فاصله'] = ' ', space = ' ',
['چسبیده'] = '', ['بدون فاصله'] = '', tight = '',
['نیم' .. ZWNJ .. 'فاصله'] = ZWNJ, ['نیمفاصله'] = ZWNJ, ['نیم فاصله'] = ZWNJ, zwnj = ZWNJ,
}
local WHICH = {
['هر دو'] = 'both', ['هردو'] = 'both', both = 'both',
['اول'] = 'first', first = 'first', ['دوم'] = 'second', second = 'second',
}
local STANZA = { ['جدید'] = true, new = true }
local JUST = {
['وسط'] = 'center', ['مرکز'] = 'center', center = 'center',
['راست'] = 'right', right = 'right',
['چپ'] = 'left', left = 'left',
['پهن'] = 'justify', ['دوطرفه'] = 'justify', ['دو' .. ZWNJ .. 'طرفه'] = 'justify', justify = 'justify',
['لبه'] = 'edge', edge = 'edge',
['میانه'] = 'inner', ['درون'] = 'inner', inner = 'inner',
}
local ALIGN_CLASS = { right = 'poem-a-right', left = 'poem-a-left' }
local JUSTIFY_STYLE = 'text-align:justify;text-align-last:justify'
local PHONE = {
['ستونی'] = 'stack', stack = 'stack',
['دوستونه'] = 'two', ['دو ستونه'] = 'two', ['دو' .. ZWNJ .. 'ستونه'] = 'two', two = 'two',
['همیشه'] = 'always', ['همیشه ستونی'] = 'always', always = 'always',
}
local KIND_KEYS = {}
for k in pairs(KIND) do KIND_KEYS[#KIND_KEYS + 1] = k end
table.sort(KIND_KEYS, function(a, b) return #a > #b end)
local RTL_LANGS = {
ar = true, arz = true, azb = true, bgn = true, ckb = true, dv = true, fa = true, glk = true,
he = true, ks = true, lrc = true, mzn = true, pnb = true, prs = true, ps = true, sd = true,
ug = true, ur = true, yi = true,
}
-- وضعیتِ میان فراخوانیهای یک صفحه (هر تجزیه موتور Lua تازه دارد)
local state = {
ctx = nil, -- شمارهگذاری و ارقام شعرِ باز
open = false, -- آیا شعری باز است؟ (برای دوختن صفحهها در صفحهٔ اصلی)
carry = nil, -- ردیف ناتمام در انتظار دنباله: { kind = , d = }
}
local function defaultCtx()
return { digits = 'fa', fixed = (cfg.defaultWidth ~= 'auto'), sep = cfg.separator }
end
-- ردیف نامرئی: جای خروجی «تهی» تا خط خالی (و در نتیجه <p><br>) پدید نیاید
local SKIP = '<tr class="poem-skip"></tr>'
local CLOSE_HTML = '</table></div>'
---------------------------------------------------------------------------
-- ابزارهای عمومی
---------------------------------------------------------------------------
local function esc(s)
s = s:gsub('"', '"'):gsub('<', '<'):gsub('>', '>')
return s
end
local function pick(args, names)
for _, name in ipairs(names) do
local v = args[name]
if v and v ~= '' then return v end
end
return nil
end
-- آیا یکی از نامها داده شده است (حتی با مقدار تهی)؟
local function present(args, names)
for _, name in ipairs(names) do
if args[name] ~= nil then return true end
end
return false
end
local function bool(v, default)
if v == nil then return default end
v = v:lower()
if YES[v] then return true end
if NO[v] then return false end
return default
end
local function addClass(a, b)
if not a or a == '' then return b end
return a .. ' ' .. b
end
-- مصراع: یکخطیکردن و حذف فاصلهٔ اضافه
local function clean(s)
if not s then return '' end
s = mw.text.trim(s)
s = s:gsub('%s*\n%s*', ' ')
return s
end
-- آرگومانهای الگوی فراخوانکننده (در صورت نبود، آرگومانهای #invoke)
local function getArgs(frame)
local args = {}
local function merge(src)
if not src then return end
for k, v in pairs(src) do
if type(v) == 'string' then args[k] = mw.text.trim(v) end
end
end
merge(frame.args)
local parent = frame:getParent()
if parent then merge(parent.args) end
return args
end
-- آیا پارامتر ناشناخته (یا مصراعِ اضافه) وجود دارد؟
-- اشتباه رایج: وجود «=» در مصراع که آن را به پارامتر نامدار تبدیل میکند.
local function hasUnknown(args, positional)
for k, v in pairs(args) do
if v ~= '' then
if type(k) == 'number' then
if k < 1 or k > positional or k % 1 ~= 0 then return true end
elseif not KNOWN[k] then
return true
end
end
end
return false
end
local function nsId()
return mw.title.getCurrentTitle().namespace
end
-- فضای نام «صفحه»: همیشه خودبسنده نمایش میدهیم
local function inPageNs()
return nsId() == cfg.pageNs
end
-- ردیابی فقط در اسمفضای اصلی و اسمفضاهای محتوایی سفارشی (مثل صفحه)
local function tracked()
local ns = nsId()
return ns == 0 or (ns >= 100 and ns % 2 == 0 and ns ~= 828)
end
local function categories(flags)
if not flags or next(flags) == nil or not tracked() then return '' end
local out = {}
for _, key in ipairs({ 'unknown', 'incomplete', 'error' }) do
if flags[key] then out[#out + 1] = '[[رده:' .. cfg.cats[key] .. ']]' end
end
return table.concat(out)
end
local function langDir(lang)
local base, rest = lang:lower():match('^(%a+)(.*)$')
if not base then return nil end
if rest:find('latn', 1, true) or rest:find('cyrl', 1, true) then return 'ltr' end
if RTL_LANGS[base] or rest:find('arab', 1, true) or rest:find('hebr', 1, true) then return 'rtl' end
return 'ltr'
end
---------------------------------------------------------------------------
-- ارقام
---------------------------------------------------------------------------
local FA = { [0] = '۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹' }
-- mode: 'fa' (پیشفرض) | 'latin' | 'keep'
-- اگر مقدار شبیه نشانهگذاری (HTML/ویکی) باشد دست نمیزنیم.
local function convertDigits(s, mode)
if s == '' or mode == 'keep' then return s end
-- \127 = نشانگر strip (مثل <ref>) که خودش رقم دارد و نباید خراب شود
if s:find('[<>{}&=|\127]') or s:find('%[%[') then return s end
if mode == 'latin' then
s = s:gsub('\217([\160-\169])', function(b) return tostring(b:byte() - 160) end)
s = s:gsub('\219([\176-\185])', function(b) return tostring(b:byte() - 176) end)
return s
end
s = s:gsub('%d', function(d) return FA[tonumber(d)] end)
s = s:gsub('\217([\160-\169])', function(b) return FA[b:byte() - 160] end)
return s
end
local function numberArg(args, names, digits)
local v = pick(args, names)
if not v then return '' end
return convertDigits(v, digits)
end
-- عدد صحیح در بازهٔ [lo, hi] یا nil (از inf و nan و اعداد غولآسا جلوگیری میکند)
local function intArg(v, lo, hi)
local n = tonumber((convertDigits(v, 'latin')))
if not n or n ~= n or n < lo or n > hi then return nil end
return math.floor(n)
end
---------------------------------------------------------------------------
-- اندازههای CSS
---------------------------------------------------------------------------
local function splitLength(v)
if not v or v == '' then return nil end
v = convertDigits(v, 'latin')
v = v:gsub('٪', '%%'):gsub('٫', '.')
local num, unit = v:match('^(%d*%.?%d+)%s*([%a%%]*)$')
if not num then return nil end
num = tonumber(num)
if not num or num > 10000 then return nil end
unit = UNITS[unit:lower()]
if not unit then return nil end
return num, unit
end
local function parseLength(v)
local num, unit = splitLength(v)
if not num then return nil end
return string.format('%g', num) .. unit
end
---------------------------------------------------------------------------
-- شمارهگذاری خودکار
---------------------------------------------------------------------------
local function newCtx(args, kind, flags)
local ctx = { digits = 'fa', count = 0, start = 1, side = 'l', mesra = (kind == 'mesra') }
local d = pick(args, N.digits)
if d then
ctx.digits = DIGITS[d:lower()]
if not ctx.digits then ctx.digits = 'fa'; flags.unknown = true end
end
local s = pick(args, N.start)
if s then
local n = intArg(s, -1e9, 1e9)
if n then ctx.start = n else flags.unknown = true end
end
local sd = pick(args, N.side)
if sd then
local a = ALIGN[sd:lower()]
if a then ctx.side = SIDE[a] else flags.unknown = true end
end
local m = pick(args, N.numbering)
if m then
local n = intArg(m, 0, 1e6)
if n then
if n >= 1 then ctx.every = n end -- ۰ یعنی خاموش
else
local b = bool(m, nil)
if b == true then ctx.every = 1
elseif b == nil then flags.unknown = true end
end
end
return ctx
end
-- شمارهٔ بعدی (یا nil اگر شمارهگذاری خاموش است یا نوبت نمایش نیست)
local function nextNumber(ctx)
if not ctx.every then return nil end
local n = ctx.start + ctx.count
ctx.count = ctx.count + 1
if n % ctx.every ~= 0 then return nil end
return convertDigits(string.format('%d', n), ctx.digits)
end
-- counted: آیا این ردیف در شمارهگذاری شمرده شود؟ noCenter: ردیف «وسط» ندارد
local function applyAuto(d, ctx, counted, noCenter)
if not counted then return end
local n = nextNumber(ctx)
if not n then return end
if d.r ~= '' or d.c ~= '' or d.l ~= '' then return end -- شمارهٔ دستی مقدم است
local side = ctx.side
if noCenter and side == 'c' then side = 'l' end
d[side] = n
end
---------------------------------------------------------------------------
-- ساخت HTML
---------------------------------------------------------------------------
-- چند تکه استایل را با «;» به هم میچسباند
local function joinStyle(...)
local parts = {}
for i = 1, select('#', ...) do
local v = select(i, ...)
if v and v ~= '' then parts[#parts + 1] = (v:gsub(';%s*$', '')) end
end
return table.concat(parts, ';')
end
-- کلاس ترازِ مصراعِ which (۱ یا ۲) برای ترازبندی j. وسط = پیشفرض شیوهنامه؛ پهن = استایل
-- درونخطی (JUSTIFY_STYLE). ترازها کلاساند تا در صفحهٔ باریک (تلفن) بتوان آنها را وسطچین کرد.
local function alignClass(j, which)
if j == 'justify' then return 'poem-a-justify' end
if not j or j == 'center' then return nil end
if j == 'edge' then return (which == 1) and 'poem-a-start' or 'poem-a-end' end
if j == 'inner' then return (which == 1) and 'poem-a-end' or 'poem-a-start' end
return ALIGN_CLASS[j]
end
local function withClass(base, extra)
if extra then return base .. ' ' .. extra end
return base
end
-- شمار تقریبی نویسههای دیدنیِ یک مصراع (بدون نشانهگذاری و نشانگرهای strip)
local function charLen(s)
s = s:gsub('\127[^\127]*\127', ''):gsub('<[^>]*>', ''):gsub('%[%[[^%]|]*|', ''):gsub('[%[%]]', '')
return #(s:gsub('[\128-\191]', ''))
end
-- «پهن» فقط وقتی که دو مصراع هماندازهاند؛ وگرنه کشش زیاد میشود ← وسطچین
local function effectiveJust(j, a, b)
if j == 'justify' then
local la, lb = charLen(a), charLen(b)
local hi = math.max(la, lb)
if hi > 0 and math.min(la, lb) / hi < cfg.justifyMinRatio then return 'center' end
end
return j
end
local function td(class, colspan, style, content)
local s = '<td class="' .. class .. '"'
if colspan and colspan > 1 then s = s .. ' colspan="' .. colspan .. '"' end
if style and style ~= '' then s = s .. ' style="' .. esc(style) .. '"' end
return s .. '>' .. (content or '') .. '</td>'
end
-- <ref> در پایان مصراع: نشانگر strip (\127'"`UNIQ--ref-…-QINU`"'\127) را جدا میکنیم تا در عرض و
-- کشش مصراع نشمارد؛ نشانه بعد از پایان مصراع میآید (در .poem-ref با عرض صفر آویزان میشود)
local REF_END = '(\127\'"`UNIQ%-%-ref%-%x+%-QINU`"\'\127)%s*$'
local function splitRefs(text)
local refs = ''
while true do
local main, mark = text:match('^(.-)' .. REF_END)
if not mark then break end
refs = mark .. refs
text = main
end
if refs == '' then return text, '' end
return (text:gsub('%s+$', '')), refs
end
-- متنِ ساده (برای نسخهٔ نامرئیِ اندازهگیر): بدون نشانهگذاری، پیوند و نشانگرهای strip
local function plainText(s)
s = s:gsub('\127[^\127]*\127', ''):gsub('<[^>]*>', ''):gsub('%[%[[^%]|]*|', ''):gsub('[%[%]]', ''):gsub("''+", '')
return (s:gsub('%s+', ' '))
end
-- other: مصراعِ همبیت (فقط در شعر دوطرفه). نسخهٔ نامرئیِ آن در همین سلول مینشیند تا عرضِ هر دو ستون
-- برابرِ بلندترین مصراعِ کل شعر شود (همهٔ مصراعها هماندازه؛ هر کدام تا بلندترین کشیده میشود).
local function hemi(text, other)
local main, refs = splitRefs(text)
local h = '<span class="beyt">' .. main
if refs ~= '' then h = h .. '<span class="poem-ref">' .. refs .. '</span>' end
h = h .. '</span>'
if other and other ~= '' then
local t = plainText((splitRefs(other)))
if t ~= '' and t ~= ' ' then h = h .. '<span class="poem-sz">' .. esc(t) .. '</span>' end
end
return h
end
local function rowOpen(d, kind, noId)
local cls = 'poem-row ' .. kind
if d.class then cls = cls .. ' ' .. d.class end
local id = ''
if d.id and not noId then id = ' id="' .. esc(d.id) .. '"' end
return '<tr class="' .. esc(cls) .. '"' .. id .. '>'
end
-- {{بیت}}
local function rowBayt(d)
local m1 = d.m1
if m1 == '' and d.m2 == '' then m1 = cfg.nbsp end -- ردیف خالی ارتفاع خط را حفظ کند
local j = effectiveJust(d.just or cfg.justDefault.bayt, d.m1, d.m2)
local js = (j == 'justify') and JUSTIFY_STYLE or nil
local sz = (j == 'justify')
local mid = d.c
if mid == '' and d.sep and d.sep ~= '' then
mid = '<span class="poem-sep">' .. d.sep .. '</span>' -- نمادِ میان دو مصراع (اگر شمارهٔ میانی نیست)
end
return rowOpen(d, 'poem-bayt')
.. td('poem-num poem-num-r', 1, nil, d.r)
.. td(withClass('b poem-m poem-m1', alignClass(j, 1)), 2, joinStyle(js, d.style), hemi(m1, sz and d.m2 or nil))
.. td('poem-num poem-num-c', 1, d.style, mid)
.. td(withClass('b poem-m poem-m2', alignClass(j, 2)), 2, joinStyle(js, d.style), hemi(d.m2, sz and d.m1 or nil))
.. td('poem-num poem-num-l', 1, nil, d.l)
.. '</tr>'
end
-- پهنای جعبهٔ هر خط در بیت پلکانی با چیدمان ثابت: ۱۰۰٪ منهای تورفتگی
local function boxWidth(indent)
local num, unit = indent:match('^([%d%.]+)(.*)$')
if unit == '%' then
return string.format('%g%%', math.max(100 - tonumber(num), 10))
end
return 'calc(100% - ' .. indent .. ')'
end
-- {{بیت۱}} و {{بیت نردبانی}}
local function rowStagger(d)
local m1 = d.m1
if m1 == '' and d.m2 == '' then m1 = cfg.nbsp end
local j = d.just or cfg.justDefault.stagger -- پلکانی: «پهن» یعنی همهٔ خطها تا بلندترین مصراع (بدون استثنای نسبت)
local js = (j == 'justify') and JUSTIFY_STYLE or nil
local sz = (j == 'justify')
local h1 = sz and d.m2 or nil
local h2 = sz and d.m1 or nil
local s1, s2 = joinStyle(js, d.style), joinStyle(js, d.style)
local c1, c2 = withClass('b poem-m poem-m1', alignClass(j, 1)), withClass('b poem-m poem-m2', alignClass(j, 2))
if not d.indent then
-- پیشفرض: مصراع ۱ در ستونِ راست (ستونهای ۲–۳) و مصراع ۲ در ستونِ چپ (۵–۶) — دقیقاً هماندازهٔ
-- مصراعهای بیت؛ مصراع ۱ راستچین، مصراع ۲ چپچین (ترازبندی=لبه). «تورفتگی» صریح → چیدمان قدیمی.
return rowOpen(d, 'poem-stagger poem-stagger-1')
.. td('poem-num poem-num-r', 1, nil, d.r)
.. td(c1, 2, s1, hemi(m1, h1))
.. td('poem-indent', 3, nil, '')
.. td('poem-num poem-num-l', 1, nil, '')
.. '</tr>\n'
.. rowOpen(d, 'poem-stagger poem-stagger-2', true)
.. td('poem-num poem-num-r', 1, nil, '')
.. td('poem-indent', 3, nil, '')
.. td(c2, 2, s2, hemi(d.m2, h2))
.. td('poem-num poem-num-l', 1, nil, d.l)
.. '</tr>'
end
if d.fixed then
-- چیدمان ثابت: هر خط جعبهای با پهنای درصدی در سلولِ ۵ستونه؛ جعبهٔ اول به آغاز، دوم به پایان میچسبد
local bw = boxWidth(d.indent)
return rowOpen(d, 'poem-stagger poem-stagger-1')
.. td('poem-num poem-num-r', 1, nil, d.r)
.. td(c1, 5, s1,
'<div class="poem-st" style="width:' .. bw .. ';margin-inline-end:auto">' .. hemi(m1, h1) .. '</div>')
.. td('poem-num', 1, nil, '')
.. '</tr>\n'
.. rowOpen(d, 'poem-stagger poem-stagger-2', true)
.. td('poem-num', 1, nil, '')
.. td(c2, 5, s2,
'<div class="poem-st" style="width:' .. bw .. ';margin-inline-start:auto">' .. hemi(d.m2, h2) .. '</div>')
.. td('poem-num poem-num-l', 1, nil, d.l)
.. '</tr>'
end
local sp = 'width:' .. d.indent
return rowOpen(d, 'poem-stagger poem-stagger-1')
.. td('poem-num poem-num-r', 1, nil, d.r)
.. td(c1, 3, s1, hemi(m1, h1))
.. td('poem-indent', 2, sp, '')
.. td('poem-num', 1, nil, '')
.. '</tr>\n'
.. rowOpen(d, 'poem-stagger poem-stagger-2', true)
.. td('poem-num', 1, nil, '')
.. td('poem-indent', 2, sp, '')
.. td(c2, 3, s2, hemi(d.m2, h2))
.. td('poem-num poem-num-l', 1, nil, d.l)
.. '</tr>'
end
-- {{مصراع}}
local function rowMesra(d)
local align = d.align or 'center'
local content = d.text
if d.blank and content == '' then content = cfg.nbsp end
local mainText, refs = splitRefs(content)
if refs ~= '' then content = mainText .. '<span class="poem-ref">' .. refs .. '</span>' end
local style = d.style or ''
local cellClass = 'b poem-m'
local cs = { 2, 3, 2 }
if align ~= 'center' then
cs = { 1, 5, 1 }
cellClass = cellClass .. ' poem-m-' .. align
if d.indent then
style = 'padding-' .. align .. ':' .. d.indent .. ';' .. style
end
end
return rowOpen(d, 'poem-mesra')
.. td('poem-num poem-num-r', cs[1], nil, d.r)
.. td(cellClass, cs[2], style, content)
.. td('poem-num poem-num-l', cs[3], nil, d.l)
.. '</tr>'
end
-- ردیف فاصله با ارتفاع دلخواه (یا یک خط خالی)
local function rowGap(d)
local style = d.height and ('height:' .. d.height) or nil
local content = d.height and '' or cfg.nbsp
return '<tr class="poem-row poem-gap' .. (d.class and (' ' .. esc(d.class)) or '') .. '">'
.. td('poem-gapcell', 7, style, content) .. '</tr>'
end
local RENDER = { bayt = rowBayt, stagger = rowStagger, mesra = rowMesra }
-- ردیف نامرئی نخست در چیدمان ثابت: پهنای ستونها را مستقل از محتوا تعیین میکند
local function sizerRow()
return '<tr class="poem-sizer">'
.. '<td class="poem-s"></td><td></td><td></td>'
.. '<td class="poem-g"></td><td></td><td></td>'
.. '<td class="poem-s"></td></tr>'
end
local function openHtml(o)
local look = o.look -- نمای نستعلیق (کلاس و قلمِ الگوی ویکی)
local cls = 'poem' .. (o.fixed and ' poem-fixed' or '') .. (o.stack and ' poem-stack' or '')
.. (o.just == 'justify' and ' poem-just' or '') .. (o.page and ' poem-page' or '')
.. (o.always and ' poem-stack-always' or '')
if look and look.class then cls = cls .. ' ' .. look.class end
if o.class then cls = cls .. ' ' .. o.class end
local div = '<div class="' .. esc(cls) .. '"'
if o.lang then div = div .. ' lang="' .. o.lang .. '"' end
if o.dir then div = div .. ' dir="' .. o.dir .. '"' end
local font = look and look.style or nil
local tcls = 'poem-table' .. (o.nastaliq and ' nastaliq' or '')
if o.fixed then
-- عرض و قلم و سبک کاربر روی جعبهٔ بیرونی؛ جدول همیشه ۱۰۰٪ آن و با ستونهای ثابت
local wrap = joinStyle('width:' .. o.width, 'max-width:' .. o.maxWidth, 'margin:0 auto', font, o.style)
return div .. ' style="' .. esc(wrap) .. '"><table class="' .. tcls
.. '" role="presentation" style="width:100%;table-layout:fixed">' .. sizerRow()
end
-- چیدمان خودکار (قدیمی): همان بایتبهبایتِ پیشین وقتی قلم/سبک نیست
local style = 'margin: 0 auto;'
if font then style = style .. font .. ';' end
if o.style then style = style .. ' ' .. o.style end
return div .. '><table class="' .. tcls .. '" role="presentation" style="' .. esc(style) .. '">'
end
---------------------------------------------------------------------------
-- شعر چندصفحهای: نگهداشتن ردیف ناتمام و یکیکردن آن با دنبالهاش
---------------------------------------------------------------------------
local function joinText(a, b, sep)
if a == '' then return b end
if b == '' then return a end
return a .. sep .. b
end
-- tail را در head (ردیف ناتمام) ادغام میکند: متن مصراعها پشت هم، شمارهها از tail
local function mergeRow(head, tail, sep)
for _, f in ipairs({ 'm1', 'm2', 'text' }) do
if head[f] ~= nil or tail[f] ~= nil then
head[f] = joinText(head[f] or '', tail[f] or '', sep)
end
end
for _, f in ipairs({ 'r', 'c', 'l' }) do
if tail[f] and tail[f] ~= '' then head[f] = tail[f] end
end
head.style = head.style or tail.style
head.class = head.class or tail.class
head.id = head.id or tail.id
return head
end
-- ردیفِ نگهداشتهشده را (اگر باشد) بهصورت HTML بیرون میدهد
local function flushHtml()
local c = state.carry
if not c then return '' end
state.carry = nil
return RENDER[c.kind](c.d)
end
-- ردیفهای بدون منطق ادامه (فاصله، خالی): ردیف ناتمامِ جاافتاده را هم بیرون میریزد
local function plain(html)
if not inPageNs() then
local pre = flushHtml()
if pre ~= '' then return pre .. '\n' .. html end
end
return html
end
--[[
یک ردیف را خروجی میدهد.
فضای نام «صفحه»: همانجا و کامل (فقط کلاسهای ناتمام/دنباله برای نشاندادن).
جاهای دیگر (صفحهٔ اصلی، درج صفحهها): ردیف ناتمام نگه داشته میشود و با
نخستین ردیفِ دارای «دنباله» یکی میشود.
opt: unfinished, continued, joiner
]]
local function emit(kind, d, opt, flags)
opt = opt or {}
if inPageNs() then
if opt.unfinished then d.class = addClass(d.class, 'poem-partial-end') end
if opt.continued then d.class = addClass(d.class, 'poem-partial-start') end
return RENDER[kind](d)
end
if not cfg.mergeRows then return RENDER[kind](d) end -- بدون ادغام: هر تکه فوراً و جدا
local out = ''
local carry = state.carry
state.carry = nil
if carry then
if opt.continued and carry.kind == kind then
d = mergeRow(carry.d, d, opt.joiner or ' ')
else
out = RENDER[carry.kind](carry.d) -- دنبالهای نیامد: همانطور که هست
if opt.continued then flags.unknown = true end -- نوع ردیفها نمیخواند
end
end
if opt.unfinished then
state.carry = { kind = kind, d = d }
return out ~= '' and out or SKIP
end
local html = RENDER[kind](d)
if out ~= '' then return out .. '\n' .. html end
return html
end
---------------------------------------------------------------------------
-- خواندن پارامترها
---------------------------------------------------------------------------
-- ناتمام / دنباله / اتصال
local function rowOpts(args, flags)
local opt = {}
local u = pick(args, N.unfinished)
if u then
local b = bool(u, nil)
if b == nil then flags.unknown = true else opt.unfinished = b end
end
local c = pick(args, N.continued)
if c then
local w = WHICH[c:lower()]
if w then
opt.continued, opt.which = true, w
else
local b = bool(c, nil)
if b == nil then flags.unknown = true else opt.continued = b end
end
end
local j = pick(args, N.joiner)
if j then
opt.joiner = JOIN[j:lower()]
if opt.joiner == nil then flags.unknown = true end
end
return opt
end
-- جداکننده: نه | بله (نماد پیشفرض) | یک نماد کوتاه (مثل ✤)
local function parseSep(v, flags)
local lv = v:lower()
if lv == 'نه' or lv == 'خیر' or lv == 'بدون' or lv == 'ندارد' or lv == 'no' then return '' end
if lv == 'بله' or lv == 'خودکار' or lv == 'yes' or lv == 'auto' then return cfg.ornament end
if #v <= 24 and not v:find('[<>{}|%[%]"\n]') then return v end
flags.unknown = true
return cfg.separator
end
local function parseOpen(args, flags)
local o = {}
local isText = present(args, N.text)
-- پارامترهای بدون نام: نستعلیق، ادامه
for i = 1, 2 do
local v = args[i]
if v and v ~= '' then
local lv = v:lower()
if v == 'نستعلیق' or lv == 'nastaliq' then
o.nastaliq = true
elseif v == 'ادامه' or lv == 'continue' then
if isText then flags.unknown = true else o.cont = 'prev' end
else
flags.unknown = true
end
end
end
if not o.nastaliq then o.nastaliq = bool(pick(args, N.nastaliq), false) end
-- ادامه از/به صفحهٔ دیگر
local c = pick(args, N.cont)
if c then
local k = CONT[c:lower()]
if k then
if not isText and k == 'next' then flags.unknown = true; k = nil end -- «به بعد» را در {{پایان شعر}} بنویسید
else
local b = bool(c, nil)
if b == nil then flags.unknown = true
elseif b then
if isText then flags.unknown = true else k = 'prev' end
end
end
if k then o.cont = k end
end
o.style = pick(args, N.style)
o.class = pick(args, N.class)
local lang = pick(args, N.lang)
if lang then
if lang:match('^%a[%w%-]*$') then o.lang = lang else flags.unknown = true end
end
local dir = pick(args, N.dir)
if dir then
dir = dir:lower()
if dir == 'rtl' or dir == 'ltr' then o.dir = dir else flags.unknown = true end
end
if o.lang and not o.dir then o.dir = langDir(o.lang) end
o.kind = 'bayt'
local k = pick(args, N.kind)
if k then
o.kind = KIND[k:lower()]
if not o.kind then o.kind = 'bayt'; flags.unknown = true end
end
local a = pick(args, N.align)
if a then
o.align = ALIGN[a:lower()]
if not o.align then flags.unknown = true end
end
local g = pick(args, N.gap)
if g then
o.gap = parseLength(g)
if not o.gap then flags.unknown = true end
end
local ind = pick(args, N.indent)
if ind then
o.indent = parseLength(ind)
if not o.indent then flags.unknown = true end
end
o.unitNum, o.unitUnit = splitLength(pick(args, N.unit))
if not o.unitNum then
o.unitNum, o.unitUnit = splitLength(cfg.mesraUnit)
if pick(args, N.unit) then flags.unknown = true end
end
local st = pick(args, N.stanza)
if st then
if STANZA[st:lower()] then o.newStanza = true else flags.unknown = true end
end
-- ترازبندی (همهٔ ابیات)
local jv = pick(args, N.just)
if jv then
o.just = JUST[jv:lower()]
if not o.just then flags.unknown = true end
end
-- جداکننده (نماد میان دو مصراع)
local sv = pick(args, N.sep)
if sv then o.sep = parseSep(sv, flags) else o.sep = cfg.separator end
-- تلفن (صفحهٔ باریک): ستونی (پیشفرض: عدد، دو مصراع زیر هم) یا دوستونه
local stack = true
local ph = pick(args, N.phone)
if ph then
local m = PHONE[ph:lower()]
if m == 'two' then stack = false
elseif m == 'always' then o.always = true
elseif not m then flags.unknown = true end
end
o.stack = stack -- شعر دوطرفه هم در صفحهٔ بسیار باریک ستونی میشود
-- چیدمان: عرض ثابت (پیشفرض) یا «خودکار» = هماندازهٔ محتوا
local w = pick(args, N.width)
if w then
local lw = w:lower()
if lw == 'خودکار' or lw == 'auto' then
o.fixed = false
else
o.width = parseLength(w)
if o.width then o.fixed = true else flags.unknown = true end
end
end
local mx = pick(args, N.maxwidth)
if mx then
local lm = mx:lower()
if lm == 'none' or lm == 'بدون' or lm == 'نامحدود' then
o.maxWidth = 'none'
else
o.maxWidth = parseLength(mx)
if not o.maxWidth then flags.unknown = true end
end
end
if o.fixed == nil then
-- «پهن» (دوطرفه): ستونها به اندازهٔ بلندترین مصراع میشوند تا کمترین کشش لازم باشد؛
-- با دادن «عرض» همان عرضِ ثابت اعمال میشود
o.fixed = (cfg.defaultWidth ~= 'auto') and (o.just ~= 'justify')
end
if o.fixed then
local explicit = (o.width ~= nil)
o.width = o.width or cfg.defaultWidth
o.maxWidth = o.maxWidth or (explicit and '100%' or cfg.maxWidth)
end
return o
end
-- ادامهٔ شعر در صفحهٔ بعد؟ {{پایان شعر|ادامه}} یا ادامه=بعد
local function parseClose(args, flags)
local cont = false
local v = args[1]
if v and v ~= '' then
if v == 'ادامه' or v:lower() == 'continue' then cont = true else flags.unknown = true end
end
local c = pick(args, N.cont)
if c then
local k = CONT[c:lower()]
if k == 'next' or k == 'both' then
cont = true
elseif k == 'prev' then
flags.unknown = true -- «از قبل» را در {{شعر}} بنویسید
else
local b = bool(c, nil)
if b == nil then flags.unknown = true elseif b then cont = true end
end
end
return cont
end
---------------------------------------------------------------------------
-- حالت «متن»: ساخت کل شعر از خطهای ساده
---------------------------------------------------------------------------
--[[
نشانههای درونخطی (به الگوی ppoem):
>> متن مصراع راستچین <> متن مصراع وسطچین
۱۲ <<< متن شمارهٔ سمت راست (ش) متن >>> ۱۲ شمارهٔ سمت چپ (شچ)
:: متن (نوع=مصراع) تورفتگی
]]
local function parseLine(raw, freeVerse)
local t = {}
local s = raw
if freeVerse then
t.level = #s:match('^:*')
s = s:sub(t.level + 1)
end
if s:sub(1, 2) == '<>' then
t.align = 'center'
s = s:sub(3)
elseif s:sub(1, 2) == '>>' and s:sub(3, 3) ~= '>' then
t.align = 'right'
s = s:sub(3)
end
s = mw.text.trim(s)
local pre, rest = s:match('^(.-)%s*<<<%s*(.*)$')
if pre then
t.pre = pre
s = rest
end
local body, post = s:match('^(.-)%s*>>>%s*(.+)$')
if body then
t.post = post
s = body
end
t.text = s
return t
end
-- «@بیت نردبانی تورفتگی=30%» ← { kind = 'ladder', indent = '30%' }؛ پارامتر دوم: گزینهٔ نامعتبر داشت
local function parseDirective(line)
local rest = mw.text.trim(line:sub(2))
local lrest = rest:lower()
for _, key in ipairs(KIND_KEYS) do
if lrest:sub(1, #key) == key then
local after = rest:sub(#key + 1)
if after == '' or after:match('^%s') then
local dd, bad = { kind = KIND[key] }, false
for k, v in after:gmatch('(%S+)=(%S+)') do
local kk, lv = k:lower(), v:lower()
if kk == 'تورفتگی' or kk == 'indent' then
dd.indent = parseLength(v)
if not dd.indent then bad = true end
elseif kk == 'تراز' or kk == 'align' then
dd.align = ALIGN[lv]
if not dd.align then bad = true end
elseif kk == 'ترازبندی' or kk == 'justify' then
dd.just = JUST[lv]
if not dd.just then bad = true end
else
bad = true
end
end
return dd, bad
end
end
end
return nil, true
end
local function renderLines(text, o, ctx, ropt, flags)
-- وضعیت جاری: نوع ردیف و گزینههایش؛ خط «@…» آن را عوض میکند
local cur = { kind = o.kind, indent = o.indent, align = o.align, just = o.just }
local items, pending, pendingCur, needGap = {}, nil, nil, false
local function info(c)
local twoH = (c.kind ~= 'mesra')
local rowKind = (c.kind == 'mesra') and 'mesra' or ((c.kind == 'bayt') and 'bayt' or 'stagger')
local indent
if c.kind == 'stagger' or c.kind == 'ladder' then indent = c.indent end -- فقط وقتی صریحاً داده شده
return twoH, rowKind, indent
end
local function numbers(d, t)
if not t then return end
if t.pre and t.pre ~= '' and d.r == '' then d.r = convertDigits(t.pre, ctx.digits) end
if t.post and t.post ~= '' and d.l == '' then d.l = convertDigits(t.post, ctx.digits) end
end
local function makeBayt(t1, t2, c)
local _, _, indent = info(c)
local d = { m1 = t1 and clean(t1.text) or '', m2 = t2 and clean(t2.text) or '',
r = '', c = '', l = '', indent = indent, fixed = ctx.fixed, just = c.just, sep = ctx.sep }
numbers(d, t1)
numbers(d, t2)
return d
end
local function makeMesra(t, c, free)
local d = { text = clean(t.text), r = '', c = '', l = '', fixed = ctx.fixed }
d.align = t.align or c.align or (free and 'right' or 'center')
if free and (t.level or 0) > 0 and d.align ~= 'center' then
d.indent = string.format('%g', o.unitNum * t.level) .. o.unitUnit
end
numbers(d, t)
return d
end
local function push(kind, d, counted)
items[#items + 1] = { kind = kind, d = d, counted = counted, gap = needGap and #items > 0 }
needGap = false
end
local function flushPending()
if pending then
push('mesra', makeMesra(pending, pendingCur, false), false) -- مصراع تنها: وسطچین، بیشمارش
pending = nil
end
end
-- ۱) خط به خط
local src = text:gsub('\r\n?', '\n')
for raw in (src .. '\n'):gmatch('([^\n]*)\n') do
local line = mw.text.trim(raw)
if line == '' then
flushPending()
if #items > 0 then needGap = true end
elseif line:sub(1, 1) == '@' then
local dd, bad = parseDirective(line)
flushPending()
if dd then
cur = { kind = dd.kind, indent = dd.indent or o.indent, align = dd.align or o.align, just = dd.just or o.just }
end
if bad then flags.unknown = true end
else
local twoH, rowKind = info(cur)
local isFirst = (#items == 0 and not pending)
local t = parseLine(line, not twoH)
if not twoH then
push('mesra', makeMesra(t, cur, true), ctx.mesra) -- مصراعهای نوع «مصراع» فقط در شعرِ نوع=مصراع شمرده میشوند
else
local handled = false
if ropt.continued and isFirst then
-- ادامهٔ ردیفِ ناتمام: کدام مصراع(ها) در این صفحه ادامه دارند؟
local mode = ropt.which or 'auto'
if mode == 'auto' then
local c = state.carry
mode = (c and c.kind ~= 'mesra' and (c.d.m2 or '') == '') and 'second' or 'both'
end
if mode == 'first' then
push(rowKind, makeBayt(t, nil, cur), true); handled = true
elseif mode == 'second' then
push(rowKind, makeBayt(nil, t, cur), true); handled = true
end
end
if not handled then
if pending then
push(rowKind, makeBayt(pending, t, pendingCur), true)
pending = nil
else
pending, pendingCur = t, cur
end
end
end
end
end
if pending then
local _, rowKind = info(pendingCur)
if ropt.unfinished then
push(rowKind, makeBayt(pending, nil, pendingCur), true) -- بیتِ ناتمام: مصراع دوم در صفحهٔ بعد
else
push('mesra', makeMesra(pending, pendingCur, false), false)
end
pending = nil
end
-- ۲) شمارهگذاری (ردیفِ ادامه را دوباره نمیشماریم)
for i, it in ipairs(items) do
if it.counted and not (i == 1 and ropt.continued) then
applyAuto(it.d, ctx, true, it.kind ~= 'bayt')
end
end
-- ۳) خروجی
local out = {}
for i, it in ipairs(items) do
if it.gap then out[#out + 1] = plain(rowGap({ height = o.gap })) end
local ro = {}
if i == 1 and ropt.continued then ro.continued, ro.joiner = true, ropt.joiner end
if i == #items and ropt.unfinished then ro.unfinished = true end
local h = emit(it.kind, it.d, ro, flags)
if h ~= SKIP and h ~= '' then out[#out + 1] = h end
end
return table.concat(out, '\n')
end
---------------------------------------------------------------------------
-- نقطههای ورود
---------------------------------------------------------------------------
-- نمای نستعلیق از روی خودِ الگوی ویکی: {{نستعلیق|x}} را بسط میدهد و از خروجیاش نشانگر
-- شیوهنامه، کلاس و (فقط) استایلهای قلم را برمیدارد. اگر الگو نبود، فهرست قلمِ cfg.
local FONT_PROPS = {
['font-family'] = true, ['font-size'] = true, ['font-style'] = true, ['font-weight'] = true,
['font-variant'] = true, ['font'] = true, ['line-height'] = true, ['letter-spacing'] = true,
['word-spacing'] = true, ['text-rendering'] = true, ['font-feature-settings'] = true,
}
local function nastaliqLook(frame)
local ok, res = pcall(function()
return frame:expandTemplate{ title = cfg.nastaliqTemplate, args = { 'x' } }
end)
if ok and type(res) == 'string' then
local prefix = mw.text.trim(res:match('^(.-)<%a') or '')
local attrs = res:match('<%a+([^>]*)>')
if attrs then
local cls = attrs:match('class%s*=%s*"([^"]*)"') or attrs:match("class%s*=%s*'([^']*)'")
local sty = attrs:match('style%s*=%s*"([^"]*)"') or attrs:match("style%s*=%s*'([^']*)'")
if cls then cls = mw.text.trim((cls:gsub('[^%w%s_%-\128-\255]', ''))) end
local keep = {}
for decl in (sty or ''):gmatch('[^;]+') do
local prop = mw.text.trim(decl:match('^([^:]+):') or ''):lower()
if FONT_PROPS[prop] then keep[#keep + 1] = mw.text.trim(decl) end
end
if (cls and cls ~= '') or #keep > 0 or prefix ~= '' then
return {
prefix = prefix,
class = (cls and cls ~= '') and cls or 'nastaliq',
style = (#keep > 0) and table.concat(keep, ';') or nil,
}
end
end
end
return { prefix = '', class = 'nastaliq', style = 'font-family:' .. cfg.nastaliqFonts }
end
local function open(frame)
local args, flags = getArgs(frame), {}
local o = parseOpen(args, flags)
local isText = present(args, N.text)
local page = inPageNs()
if hasUnknown(args, 2) then flags.unknown = true end
-- صفحهٔ اصلی: اگر شعری باز است و این صفحه ادامهٔ آن است، جدول تازه باز نمیکنیم
o.page = page -- در فضای نام «صفحه» تصویر کنار متن است: فشردهتر و زودتر ستونی
local joins = (not page) and state.open and (o.cont == 'prev' or o.cont == 'both')
local ctx
if joins and state.ctx then
ctx = state.ctx
else
ctx = newCtx(args, o.kind, flags)
ctx.fixed, ctx.just, ctx.sep = o.fixed, o.just, o.sep
end
local parts = {}
if not joins then
if o.nastaliq then o.look = nastaliqLook(frame) end
parts[#parts + 1] = frame:extensionTag{ name = 'templatestyles', args = { src = cfg.styles } }
.. ((o.look and o.look.prefix) or '') .. openHtml(o)
state.carry = nil
end
state.open, state.ctx = true, ctx
if isText then
-- کل شعر در یک فراخوانی؛ نیازی به {{پایان شعر}} نیست
local ropt = rowOpts(args, flags)
if o.newStanza and joins and not ropt.continued then
parts[#parts + 1] = plain(rowGap({ height = o.gap }))
end
local rows = renderLines(pick(args, N.text) or '', o, ctx, ropt, flags)
if rows ~= '' then parts[#parts + 1] = rows end
local stay = (not page) and (o.cont == 'next' or o.cont == 'both')
if not stay then
local tail = flushHtml()
if tail ~= '' then parts[#parts + 1] = tail end
parts[#parts + 1] = CLOSE_HTML
state.open, state.ctx = false, nil
end
end
if #parts == 0 then parts[1] = SKIP end
return table.concat(parts, '\n') .. categories(flags)
end
local function close(frame)
local args, flags = getArgs(frame), {}
local cont = parseClose(args, flags)
if hasUnknown(args, 1) then flags.unknown = true end
if cont and not inPageNs() then
-- شعر در صفحهٔ بعد ادامه دارد: نبندیم (ردیف ناتمام هم نگه داشته میماند)
return SKIP .. categories(flags)
end
local html = flushHtml()
state.open, state.ctx = false, nil
if html ~= '' then html = html .. '\n' end
return html .. CLOSE_HTML .. categories(flags)
end
local function commonRow(args, ctx, flags)
local d = {
r = numberArg(args, N.right, ctx.digits),
c = numberArg(args, N.center, ctx.digits),
l = numberArg(args, N.left, ctx.digits),
style = pick(args, N.style),
class = pick(args, N.class),
id = pick(args, N.id),
fixed = ctx.fixed,
just = ctx.just,
sep = ctx.sep,
}
local sv = pick(args, N.sep)
if sv then d.sep = parseSep(sv, flags) end
local jv = pick(args, N.just)
if jv then
d.just = JUST[jv:lower()]
if not d.just then flags.unknown = true; d.just = ctx.just end
end
return d
end
local function bayt(frame)
local args = getArgs(frame)
local ctx = state.ctx or defaultCtx()
local flags = {}
local opt = rowOpts(args, flags)
local d = commonRow(args, ctx, flags)
d.m1, d.m2 = clean(args[1]), clean(args[2])
if (d.m1 == '') ~= (d.m2 == '') and not opt.unfinished and not opt.continued then
flags.incomplete = true
end
if hasUnknown(args, 2) then flags.unknown = true end
applyAuto(d, ctx, not opt.continued, false)
local html = emit('bayt', d, opt, flags)
return html .. categories(flags)
end
local function staggerFn()
return function(frame)
local args = getArgs(frame)
local ctx = state.ctx or defaultCtx()
local flags = {}
local opt = rowOpts(args, flags)
local d = commonRow(args, ctx, flags)
d.m1, d.m2 = clean(args[1]), clean(args[2])
if (d.m1 == '') ~= (d.m2 == '') and not opt.unfinished and not opt.continued then
flags.incomplete = true
end
local raw = pick(args, N.indent)
d.indent = parseLength(raw)
if raw and not d.indent then flags.unknown = true end
if hasUnknown(args, 2) then flags.unknown = true end
applyAuto(d, ctx, not opt.continued, true)
local html = emit('stagger', d, opt, flags)
return html .. categories(flags)
end
end
local function mesra(frame)
local args = getArgs(frame)
local ctx = state.ctx or defaultCtx()
local flags = {}
local opt = rowOpts(args, flags)
local d = commonRow(args, ctx, flags)
d.text = clean(args[1])
local a = pick(args, N.align)
if a then
d.align = ALIGN[a:lower()]
if not d.align then flags.unknown = true end
end
local raw = pick(args, N.indent)
d.indent = parseLength(raw)
if raw and not d.indent then flags.unknown = true end
if hasUnknown(args, 1) then flags.unknown = true end
applyAuto(d, ctx, ctx.mesra and not opt.continued, true)
local html = emit('mesra', d, opt, flags)
return html .. categories(flags)
end
local function emptyFn(kind)
return function(frame)
local args = getArgs(frame)
local ctx = state.ctx or defaultCtx()
local flags = {}
local d = commonRow(args, ctx, flags)
local raw = pick(args, N.height)
d.height = parseLength(raw)
if raw and not d.height then flags.unknown = true end
if hasUnknown(args, 0) then flags.unknown = true end
local html
if d.height then
html = rowGap(d)
elseif kind == 'bayt' then
d.m1, d.m2 = '', ''
html = rowBayt(d)
else
d.text, d.blank = '', true
html = rowMesra(d)
end
return plain(html) .. categories(flags)
end
end
-- هر خطای پیشبینینشده بهجای شکستن صفحه، پیامی قرمز + رده میدهد
local function safe(fn)
return function(frame)
local ok, res = pcall(fn, frame)
if ok then return res end
return '<span class="error">خطا در پودمان شعر: ' .. esc(tostring(res)) .. '</span>'
.. categories({ error = true })
end
end
p.open = safe(open)
p.close = safe(close)
p.bayt = safe(bayt)
p.stagger = safe(staggerFn())
p.ladder = safe(staggerFn())
p.mesra = safe(mesra)
p.emptyBayt = safe(emptyFn('bayt'))
p.emptyMesra = safe(emptyFn('mesra'))
p.config = cfg -- (برای آزمون و سفارشیسازی)
return p
4j7j3zf8ke6crbqps359fwodnpazhpf
بحث کاربر:Charan Gill
3
98207
305258
2026-10-19T14:19:50Z
Hanooz
17889
/* به ویکینبشته خوشآمدید */ بخش جدید
305258
wikitext
text/x-wiki
==به ویکینبشته خوشآمدید==
درود Charan Gill، و به ویکینبشته [[راهنما:آشنایی|خوشآمدید]]! از شما بابت پیوستن به این پروژه<!-- پایان پارامتر page --><!-- پایان پارامتر newpage --><!-- پایان پارامتر pagefix --> سپاسگزاریم. امیدوارم اینجا را دوست داشته باشید و تصمیم بگیرید بمانید. در ادامه چند پیوند مفید برای تازهواردان آمدهاست:
[[پرونده:Carl Spitzweg 021-detail.jpg|frameless|left|]]
* [[راهنما:درونمایه|صفحههای راهنما]]، بهویژه برای [[راهنما:نمونهخوانی|نمونهخوانی]]
* [[راهنما:راهنمای کتابداران تازهوارد]]
* [[ویکینبشته:شیوهنامه|شیوهنامه]]
* [[ویکینبشته:آنچه ویکینبشته دربرمیگیرد|سیاست شمول]]
* [[ویکینبشته:برای اهالی ویکیپدیا|ویکینبشته:برای ویکیپدیاییها]]
میتوانید توضیح کوتاهی دربارهٔ علایق خود و مشارکتهایتان در دیگر پروژههای ویکیمدیا، مانند ویکیپدیا و ویکیانبار، در [[کاربر:Charan Gill|صفحهٔ کاربری]] خود بنویسید.
اگر سؤالی دارید میتوانید در [[ویکینبشته:دفترخانه]] بپرسید.
امیدوارم از مشارکت در ویکینبشته، کتابخانهای که استفاده از آن برای همه آزاد است، لذت ببرید! در بحثها، لطفاً نظرات خود را با درج چهار مدک (<nowiki>~~~~</nowiki>) «امضا» کنید؛ این کار بهطور خودکار نام کاربری شما و تاریخ را درج میکند. اگر به کمک نیاز دارید، در صفحهٔ بحث من از من بپرسید، یا پرسش خود را همینجا مطرح کنید (روی '''<span class="plainlinks">[//fa.wikisource.org/w/index.php?title=%D8%A8%D8%AD%D8%AB_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Charan_Gill&action=edit§ion=new ویرایش]</span>''' کلیک کنید) و پیش از پرسش خود عبارت <code><nowiki>{{</nowiki>[[:رده:کاربران بهدنبال کمک|کمکم کن]]<nowiki>}}</nowiki></code> را قرار دهید.
باز هم خوشآمدید!
[[کاربر:Hanooz|Hanooz]] ([[بحث کاربر:Hanooz|بحث]]) ۱۹ اکتبر ۲۰۲۶، ساعت ۱۴:۱۹ (UTC)
413ri9lepwq7om37wd73fvktafbykh8
پدیدآورنده:احمدعلی رجایی بخارایی
102
98208
305261
2026-10-19T14:47:07Z
Hanooz
17889
صفحهای تازه حاوی «{{author | firstname = احمدعلی | lastname = رجایی بخارایی | last_initial = ب | birthyear = ۱۲۹۵ | deathyear = ۱۳۵۷ | description = }} * ''شاهنامه برای دریافت صله سروده نشده است'' {{پیوند ویکیانبار|شاهنامه برای دریافت صله سروده نشده است - از مجله دانشکده ادبیات مشهد، شماره ۴،...» ایجاد کرد
305261
wikitext
text/x-wiki
{{author
| firstname = احمدعلی
| lastname = رجایی بخارایی
| last_initial = ب
| birthyear = ۱۲۹۵
| deathyear = ۱۳۵۷
| description =
}}
* ''شاهنامه برای دریافت صله سروده نشده است'' {{پیوند ویکیانبار|شاهنامه برای دریافت صله سروده نشده است - از مجله دانشکده ادبیات مشهد، شماره ۴، سال سوم، زمستان ۱۳۴۶ - احمدعلی رجائی.pdf}}
{{مالکیت عمومی در ایران}}
{{Authority control}}
[[رده:پدیدآورندگان ایرانی]]
b496jk99s7357upto2hoddhykc6bltl
305262
305261
2026-10-19T14:52:47Z
Hanooz
17889
305262
wikitext
text/x-wiki
{{author
| firstname = احمدعلی
| lastname = رجایی بخارایی
| last_initial = ر
| birthyear = ۱۲۹۵
| deathyear = ۱۳۵۷
| description =
}}
* ''شاهنامه برای دریافت صله سروده نشده است'' {{پیوند ویکیانبار|شاهنامه برای دریافت صله سروده نشده است - از مجله دانشکده ادبیات مشهد، شماره ۴، سال سوم، زمستان ۱۳۴۶ - احمدعلی رجائی.pdf}}
{{مالکیت عمومی در ایران}}
{{Authority control}}
[[رده:پدیدآورندگان ایرانی]]
hwphm871d1k4m4ldhjfy7dub2co8do7
پدیدآورنده:احمدعلی رجایی
102
98209
305263
2026-10-19T14:53:09Z
Hanooz
17889
تغییرمسیر به [[پدیدآورنده:احمدعلی رجایی بخارایی]]
305263
wikitext
text/x-wiki
#تغییر_مسیر [[پدیدآورنده:احمدعلی رجایی بخارایی]]
nw0olp76gsoybq6mw1gcw52tzy0c83f
برگه:Jondi Shapour Magazine, no. 5.pdf/۱۰۶
104
98210
305267
2026-10-19T21:04:45Z
Darafsh
3597
Pywikibot 11.8.0
305267
proofread-page
text/x-wiki
<noinclude><pagequality level="1" user="" /></noinclude>{{فمخ|22}}
{| width=100%|
|-
| width=25%| || width=50% align=left| [[پرونده:Logo of Jondi Shapour Journal.png|200px]]{{سخ}} [[پرونده:Jondi Shapour Magazine, no. 1 (page 139 crop).jpg|50px]] {{سخ}} JSMagazine.ir🌐 {{سخ}} ✉ info@JSMagazine.ir {{سخ}} عناوین و مقالات مجله را به صورت آنلاین ببینید || width=25%|{{عرچ|title=1|شاپا۲۴۷۶-۵۲۰۱ :}}
|}<noinclude></noinclude>
5e5xx87c22bqcvym2e52afqbpevyuca
305268
305267
2026-10-19T21:05:06Z
Darafsh
3597
/* نمونهخوانیشده */
305268
proofread-page
text/x-wiki
<noinclude><pagequality level="3" user="Darafsh" /></noinclude>{{فمخ|22}}
{| width=100%|
|-
| width=25%| || width=50% align=left| [[پرونده:Logo of Jondi Shapour Journal.png|200px]]{{سخ}} [[پرونده:Jondi Shapour Magazine, no. 1 (page 139 crop).jpg|50px]] {{سخ}} JSMagazine.ir🌐 {{سخ}} ✉ info@JSMagazine.ir {{سخ}} عناوین و مقالات مجله را به صورت آنلاین ببینید || width=25%|{{عرچ|title=1|شاپا۲۴۷۶-۵۲۰۱ :}}
|}<noinclude></noinclude>
7ww8bmhxg4vjedf3gx94ch7bsdd1tx5
الگو:Brace2
10
98226
305289
2026-10-19T22:19:40Z
Hanooz
17889
Hanooz صفحهٔ [[الگو:Brace2]] را به [[الگو:ابرو۲]] منتقل کرد
305289
wikitext
text/x-wiki
#تغییر_مسیر [[الگو:ابرو۲]]
jke9t2fg7kra0t4ru6fpifgtisl712d