Parsoid/Parser Unification/Media structure/FAQ/fa
مرور کلی
منظور از ساختار رسانه چیست؟
وقتی پروندهها در یک صفحه درج میشوند (نمونه: [[File:Foobar.jpg|thumb|caption|alt=alt]]
)، تجزیهگر مدیاویکی مقداری کد HTML را ارائه میدهد که آنچه مرورگر شما برای نمایش آن نیاز دارد را در اختیارش قرار میدهد – راهنمایی برای مرورگر تا بتواند آن را به شکلی درست در نمایشگر شما نمایش دهد. برچسبهای HTML منتخب و ویژگیهای آنها، و چگونگی چیدمان آنها برای شکل دادن یک درخت دام، ساختاری است که مد نظر ماست.
The choice of HTML tags and attributes, and how they are arranged to form a DOM tree, are the structure we're considering.
چهچیزی را میتوان در ساختار کنونی بهبود بخشید؟
ساختار کنونی متشکل از برچسبهای div تودرتو و ویژگیهای class است که معنای زیادی را منتقل نمیکنند. این نشانهگذاری غیرعادی است و اخذ پرسمان و سبکبندی را سخت میکند. همچنین خروجی کنونی با سایر محصولات مانند ترکیب ویرایشگر دیداری/پارسوئید تفاوت دارد. برای جزئیات بیشتر این نظرخواهی را ببینید. خروجی نمونهٔ فوق در حال حاضر مشابه کد زیر است: The markup is irregular, making it harder to query and style. And the current output differs from that of other products, like the VisualEditor / Parsoid combo. See the RFC for the finer details. The output for the example above looks like this currently:
<div class="thumb tright">
<div class="thumbinner" style="width:242px;">
<a href="/wiki/File:Foobar.jpg" class="image"><img alt="alt" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="thumbimage" /></a>
<div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div>
</div>
</div>
آن را با چهچیزی جایگزین میکنید؟
ساختاری که ما در حال جایگزینی آن هستیم متشکل از نشانهگذاری معنایی است که مزایایی برای دسترسیپذیری نظیر ارائهٔ اطلاعات بیشتر پیرامون چگونگی استفاده از تصاویر، ویدئوها و سایر سانهها در محتوا به کسانی که از صفحهخوان برای خواندن ویکیها استفاده میکنند، دارد. این نشانهگذاری منظمتر و معینتر خواهد بود و اخذ پرسمان و سبکبندی را آسانتر و بهصرفهتر میکند؛ به این معنی که این ساختار جدید باعث سهولت نوشتن سیاساس مرتبط با رسانهها در ویکیهای ویکیمدیا برای همگان خواهد شد. علاوه بر این، استفاده از همان ساختاری که در پارسوئید به صورت آزمایشی اجرا شده است، سازگاری بین محصولات را فراهم میکند و مقداری افزونگی سیاساس را کاهش میدهد. خروجی نمونهٔ فوق به شکل زیر خواهد بود: The markup will be more regular and specified, making it easier and more efficient to query and style, meaning that the new structure will make it easier for anyone writing CSS related to media on the Wikimedia wikis. Moreover, using the same structure that has been piloted in Parsoid will provide consistency between products and reduce some CSS redundancy. The output for the example above will look like this:
<figure class="mw-default-size" typeof="mw:File/Thumb">
<a href="/wiki/File:Foobar.jpg" class="mw-file-description">
<img alt="alt" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="mw-file-element" />
</a>
<figcaption>caption</figcaption>
</figure>
چرا حالا این کار را انجام میدهید؟
هدف میانمدت تیم تبدیل محتوا در بنیاد ویکیمدیا، جایگزینی تجزیهگر قدیمی مدیاویکی با پارسوئید است. پارسوئید یک تجزیهگر ویکیمتن دوجهته به اچتیامال۵ است. بهمنظور دستیابی به این هدف، لازم است که تجزیهگر قدیمی و پارسوئید محتوای اچتیامال سازگاری را تولید کنند. پارسوید مدتی است که این ساختار رسانهای جدید را ایجاد کرده است تا تاثیر خوبی داشته باشد. برای کاهش اختلال ایجادشده بهواسطهٔ تغییر تجزیهگرها بهطور یکجا، ما قصد داریم یک بخش جدا را برای آمادهسازی جهت ارائهٔ تغییرات آینده پیادهسازی کنیم. Parsoid has been generating this new media structure for quite some time, to good effect. In order to lessen the disruption of changing parsers all at once, we're rolling out an isolated piece in preparation for further changes to come.
آن را چگونه آزمایش کردهاید؟
- این ساختار جدید در پارسوئید، که در چندین محصول فعال نظیر ویرایشگر دیداری و نرمافزارهای تلفن همراه استفاده شده، اجرا شدهاست. ویرایشگران و مخاطبان، همزمان که از این محصولات استفاده کردهاند، تفاوتهای آن با ساختار قدیمی در رندر شدن محتوا و مشکلات ساختار جدید را گزارش کردهاند و ما آنها را طی سالهای گذشته برطرف کردهایم. As editors and readers used these products, they flagged rendering differences with the old structure and problems with the new structure, which we've fixed over the years.
- علاوه بر این، چندین مرحله از آزمایش تفاوتهای بصری را پشت سر گذاشتهایم که در آنها هزاران صفحه با ساختارهای قدیمی و جدید رندر شده و ماحصل آنها در سطح پیکسل با یکدیگر مقایسه شدهاست.
- همچنین این تغییر را در چندین ویکی، از جمله mediawiki.org، ویکیفناوری و تمام ویکیهای گروه ۰ پیادهسازی کردهایم.
چه کارهای دیگری باقی مانده است؟
- کُدی که با صفحه در تعامل است، مانند کدهای جاوااسکریپت برای افزونهها، اسکریپتهای کاربری و ابزارها نیازمند تنظیم بر مبنای ساختار جدید خواهند بود و امیدواریم که این تنظیمات بهشکل سازگار عقبرو یا سازگاری جلورو باشند.
- پوستهها، برای ارائهٔ سبکبندی خود، نیازمند درخواست برای ویژگی «محتوا-رسانه» خواهند بود؛ چرا که کلاسهایی که ساختار قدیمی را هدف قرار میدهند، اعمال نخواهند شد.
- برخی ویکیها دارای شیوهنامهای در MediaWiki:Commons.css هستند که نیازمند انتقال به ساختار جدید هستند.
چه زمانی این را پیاده خواهید کرد؟
همانطور که پیشتر گفته شد، این ویژگی اکنون در چندین ویکی فعال است. با این حال، تا پیش از شناسایی مشکلات شناختهشده به پیشروی در این زمینه ادامه نخواهیم داد و برای حصول اطمینان از ایجاد کمترین اختلال برای ویرایشگران و مخاطبان، در چند مرحله به بررسی واکنش اسکریپتهای کاربری و ابزارها پرداختهایم.
What about imagemaps and galleries?
The output for these extension tags builds on the media structure outlined above. They are specified at, respectively, ImageMap and Gallery. Note that further refining of the gallery output may happen in T268250.
What about templates that mimic the parser output?
For now, the stylesheets shipped by MediaWiki will continue to contain the rules that target the old parser output. Therefore templates that mimic it should continue to work unchanged. As mentioned above, we've done extensive visual difference testing to ensure that pages continue to render the same before and after these changes. In the longer term, we are discussing introducing new classes for these templates to migrate towards. See T318433 for details.
What about site owners operating their own instances of MediaWiki?
A MediaWiki config exists, $wgParserEnableLegacyMediaDOM , which currently defaults to true
.
Site operators are encouraged to disable it and test for possible breakage.
Skins that use ResourceLoaderSkinModule configured with "features": { "content-media": true }
will receive styles targeting the new structure.
In future versions of MediaWiki, $wgParserEnableLegacyMediaDOM will default to false
and, eventually, be removed entirely.
من چطور میتوانم کمک کنم؟
کدهای خود را در ویکیهایی که این ویژگی در آنها پیادهسازی شده، بیازمایید. اگر مشکلی پیدا کردید که در زیر نیامده، لطفاً با برچسب Parsoid-Read-Views (Phase 0 - Parsoid-Media-Structure)
یک وظیفه بگشایید یا فهرست وظیفههای باز را ببینید.
اصلاحات شناختهشده را به ابزارهای فعال در ویکیهای خود کپی کنید
تعدادی از ابزارهای که بهمنظور پشتیبانی از ساختار جدید رسانهها نیازمند بهروزرسانی هستند، شناسایی شدهاند. اصلاحاتی در کد مبدأ این ابزارها اعمال شده، اما این تغییرات همچنان باید به ویکیهایی که آن ابزارها را بهصورت محلی برای خود ایجاد کردهاند نیز تکثیر شوند. See the task description of T297447 for the list of gadgets and wikis where the gadgets are enabled. اگر ابزار شما بهروز نشده است، لطفاً این کار را انجام دهید.
اصلاحات شناختهشده را به MediaWiki:Common.(css|js) در ویکیهای خود کپی کنید
تعدادی از مشکلات در فایلهای css و js اختصاصی وبگاهها بهعنوان مشکلات نیازمند بهروزرسانی برای پشتیبانی از ساختار جدید رسانهها شناسایی شدهاند. See the task description of T271114 for the list of known issues common to multiple wikis and the wikis that may need to be updated. اگر این فایلها در ویکی شما بهروز نشدهاند، لطفاً این کار را انجام دهید.
ویرایشگران باید بهدنبال چهچیزی باشند؟
کلاس «image» دیگر در پیوندهای توصیف پروندهها موجود نخواهد بود
بهطور پیشفرض، یک پرونده (یعنی [[File:Foobar.jpg]]
) به صفحهٔ توصیف خود پیوند داده میشود و پیش از این کلاسی با نام image
را دارا میبود.
<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" /></a>
در مقابل، یک پیوند صریح (یعنی [[File:Foobar.jpg|link=Hello]]
) باعث اعمالنشدن آن کلاس میشد.
<a href="/wiki/Hello" title="Hello"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" /></a>
در ساختار جدید، نام کلاسی که از همان کارایی بهرهمند است به mw-file-description
تغییر یافته است.
<span class="mw-default-size" typeof="mw:File"><a href="/wiki/File:Foobar.jpg" class="mw-file-description"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="mw-file-element" /></a></span>
هدف انتخابگرها در صورت نیاز باید به کلاس جدید تغییر یابد. برای مثال، https://www.mediawiki.org/w/index.php?title=Snippets%2FDirect_imagelinks_to_Commons&type=revision&diff=5451422&oldid=3976429 را ببینید
گزینهٔ رسانهای |class=
اکنون به لفاف اعمال میشود
پیش از این، گزینهٔ رسانهای class (یعنی [[File:Foobar.jpg|class=my_special_class]]
) به عنصر رسانه اعمال میشد.
<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="my_special_class" /></a>
این کلاس اکنو به لفاف خارجی منتقل شده تا امکان دستیابی به بیشترین انعطافپذیری هنگام انتخاب از درون ساختار را فراهم کند.
<span class="mw-default-size my_special_class" typeof="mw:File"><a href="/wiki/File:Foobar.jpg" class="mw-file-description"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="mw-file-element" /></a></span>
گزینهٔ رسانهای |border
اکنون به لفاف اعمال میشود و نام کلاسِ حذفشده تغییر کرده است
تا پیش از این، گزینهٔ رسانهای border (یعنی [[File:Foobar.jpg|border]]
) منجر به اعمال کلاس thumbborder
به عنصر رسانه میشد.
<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="thumbborder" /></a>
بهمنظور سازگاری بیشتر، این کلاس به لفاف خارجی منتقل شده و برای جلوگیری از تعارض، نام آن به mw-image-border
تغییر کرده است.
<span class="mw-default-size mw-image-border" typeof="mw:File"><a href="/wiki/File:Foobar.jpg" class="mw-file-description"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="mw-file-element" /></a></span>
گزینههای تراز افقی و عمودی اکنون کلاسهایی را در لفاف قرار میدهند
گزینههای تراز افقی شامل left
، right
، center
و none
میشوند. گزینههای تراز عمودی شامل baseline
، sub
، super
، top
، text-top
، middle
، bottom
و text-bottom
میشوند.
برای مثال، تا پیش از این، گزینهٔ رسانهای center (یعنی [[File:Foobar.jpg|center]]
) منجر به اعمال کلاس center
به عنصر div لفاف میشد.
<div class="center"><div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" /></a></div></div>
اما اکنون باعث تولید یک عنصر figure بههمراه کلاس mw-halign-center
میشود.
<figure class="mw-default-size mw-halign-center" typeof="mw:File"><a href="/wiki/File:Foobar.jpg" class="mw-file-description"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="mw-file-element" /></a><figcaption></figcaption></figure>
بهطور مشابه، گزینهٔ رسانهای top (یعنی [[File:Foobar.jpg|top]]
) تا پیش از این باعث اعمال یک صفت style به عنصر رسانه میشد.
<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" style="vertical-align: top" /></a>
اما اکنون منجر به اعمال کلاس mw-valign-top
به لفاف میشود.
<span class="mw-default-size mw-valign-top" typeof="mw:File"><a href="/wiki/File:Foobar.jpg" class="mw-file-description"><img alt="Foobar.jpg" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" decoding="async" width="240" height="28" class="mw-file-element" /></a></span>