Extension:TemplateStyles

This page is a translated version of the page Extension:TemplateStyles and the translation is 100% complete.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Türkçe • ‎français • ‎polski • ‎中文 • ‎日本語
MediaWiki manüel uzantıları
OOjs UI icon advanced-invert.svg
TemplateStyles
Sürüm durumu: kararlı
Uygulama Etiket , ContentHandler , Kanca
Açıklama Dezenfekte edilmiş CSS stil sayfalarını bir şablondan yüklemeye izin verir.
Yazar(lar)
En son sürüm Continuous updates
Uyumluluk politikası MediaWiki ile birlikte anlık görüntüler yayımlanır. Master geriye dönük olarak uyumlu değil.
MediaWiki 1.31+
PHP 5.5+
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
  • $wgTemplateStylesNamespaces
  • $wgTemplateStylesDisallowedProperties
  • $wgTemplateStylesDisallowedAtRules
  • $wgTemplateStylesUseCodeEditor
  • $wgTemplateStylesDisable
  • $wgTemplateStylesAutoParseContent
  • $wgTemplateStylesMaxStylesheetSize
  • $wgTemplateStylesAllowedUrls
<templatestyles src=... />
Translatewiki.net adresinde mevcutsa, TemplateStyles uzantısını çevirin

Kullanım ve sürüm matrisini kontrol edin.

Sorunlar Açık görevler · Hata bildir

TemplateStyles uzantısı, bir viki sayfasından bir stil sayfasının yüklenmesi gerektiğini belirtmek için ‎<templatestyles> etiketi sunar. Bunu bir şablona yerleştirmek, şablonun MediaWiki:Common.css ile yerleştirmek zorunda kalmadan özel stillere sahip olmasını sağlar.

Uzantıyı bir vikide düzenleyici olarak kullanma talimatları için Help:TemplateStyles sayfasına bakın.

Kullanım

İlk olarak, CSS sayfası oluşturulmalıdır. Varsayılan olarak, Şablon ad alanındaki başlığı ".css" ile biten herhangi bir alt sayfa, sözdizimi hatası içermiyorsa, "Temizlenmiş CSS" content model ile oluşturulur.

Ad alanları seti $wgTemplateStylesNamespaces ile ayarlanabilir veya Special:ChangeContentModel herhangi bir sayfada kullanılabilir. Ardından, şablonun vikimetinde stilleri yüklemek için <templatestyles src="..." /> etiketini ekleyin.

"Sterilize edilmiş CSS" içerik modeli kullanılarak kaydedilen CSS, kesin geçerlilik gereksinimlerini karşılamalıdır: geçersiz CSS, tanınmayan kurallar ve tanınmayan veya desteklenmeyen özellikler veya özellik değerleri kaydedilemez. Geçersiz CSS yine de bir şekilde kaydedilirse, CSS tarayıcıya çıktılandığında rahatsız edici yapılar kaldırılır.

Etiketteki src özelliğinin değeri, varsayılan olarak Şablon ad alanı olan sayfanın başlığıdır. Örneğin, <templatestyles src="Example/styles.css" />, "Template:Example/styles.css" sayfasını yükler. Bu sayfa yoksa veya "Sterilize edilmiş CSS" dışında bir içerik modeli varsa bu başarısız olur.

Stiller, etikete isteğe bağlı wrapper parametresi kullanılarak sayfa içinde, ör. <templatestyles src="Example/styles.css" wrapper="div.example" />, ana ayrıştırılmış içeriğin içindeki herhangi bir <div class="example"> ile yüklenen stilleri kapsar. wrapper parametresi için herhangi bir CSS basit seçici dizisi kullanılabilir. Bunun amacı, bir şablonun canlı ve korumalı alan sürümlerinin yan yana karşılaştırılmasına olanak sağlamaktır.

Dezenfekte edilmiş CSS kullanımı, şablonların kopyalanması gibi izlenir ve Special:WhatLinksHere bir dönüşüm olarak görünecektir.

Caveatlar

  • TemplateStyles tarafından eklenen stillerin kapsamı, ayrıştırılmış ana içeriğin dışında kullanıcı arayüzünde değişiklik yapılmasını önlemek için .mw-parser-output kapsamındadır.
    • TemplateStyles'ı tr:MediaWiki:Protectedpagetext gibi bir şeye stil vermek için kullanmak için, mesajın içeriğini <div class="mw-parser-output">...</div> içine almanız gerekir.
  • Stiller, belirli CSS sınıflarını hedefleyecek şekilde yazılmalıdır ve bu sınıflarla öğeler oluşturan her şey, bunu yapmak için başka bir şablona güvenmek yerine, stillerin kendisini de içerdiğinden emin olmalıdır.
    • Bir şablon tarafından dahil edilen stiller, o şablon tarafından oluşturulan içeriğin dışındaki sayfadaki içeriği şu anda etkileyebilir, ancak bu özellik gelecekte kaldırılabilir ve bunlara güvenilmemelidir.
    • Bir şablona, ​​o şablonun dışındaki içerikleri etkileyen stiller eklemek, bu şablonu içermeyen bir bölümü düzenlerken bu stillerin uygulanmamasına neden olur. Örnek: sayfanın tüm tablolarını etkileyen bir bilgi kutusuna stiller dahil olmak üzere, bilgi kutusunu içermeyen bir bölümü düzenlerken, o bölümün önizlemesi yapılırken bu tablolara stil uygulanmayacaktır.
  • TemplateStyles birkaç standart olmayan CSS özelliğine izin verir. Ek özellikleri destekleme istekleri css-dezenfektan ve TemplateStyles projelerinde Phabricator'da dosyalanmalıdır.
    • İstekler, istenen özelliklerin sözdizimini açıklayan standartlar içeren dokümanlara (ör. w3.org) bağlantılar ve özellikler için mevcut tarayıcı desteğinin bir analizini içermelidir (örneğin özellikler hakkında bir caniuse.com sayfasına bağlantı).
    • Satıcı tarafından önceden eklenmiş özelliklerin (ör. -webkit-, -moz- veya -ms- ile başlayan herhangi bir şey), modern tarayıcılar için gerekli olmadıkları takdirde reddedilir.
  • @font-face kuralları, "TemplateStyles" önekine sahip bir font-family kullanmalıdır. Bu, belgenin başka bir yerinde kullanılan yazı tiplerinin yeniden tanımlanmasını büyük ölçüde engellemelidir.
  • Stilleri görünümlere göre hedeflemek için body.skin-vector .myClass gibi bir seçici kullanın; body öğesinin belirtilmesi zorunludur ve bunu bir torun birleştiricisi (yani boşluk) takip etmelidir. body veya html öğeleri üzerindeki diğer sınıflar da aynı şekilde hedeflenebilir. 1.32+

Kurulum

  • Vagrant kullanıyorsanız, vagrant roles enable templatestyles --provision ile yükleyin
Manüel kurulum
  • Dosyaları indirin ve extensions/ klasörünüzdeki TemplateStyles adlı dizine yerleştirin.
  • Yalnızca git dizininden yüklerken, PHP bağımlılıklarını uzantı dizinine composer install --no-dev vererek yüklemek için Composer komutunu çalıştırın. (Potansiyel komplikasyonlar için görev T173141 sayfasına bakınız.)
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'TemplateStyles' );
    
  • Gerektiği gibi yapılandırın.
  •   Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Sözdizimi vurgulamalı ve autoindent özellikli bir kod düzenleyicili daha hoş bir kullanıcı arabirimi için aşağıdaki uzantıları yükleyin:

Yapılandırma

Yapılandırma seçenekleri
parametre varsayılan yorum
$wgTemplateStylesAllowedUrls
[
    "audio" => [
        "<^https://upload\\.wikimedia\\.org/wikipedia/commons/>"
    ],
    "image" => [
        "<^https://upload\\.wikimedia\\.org/wikipedia/commons/>"
    ],
    "svg" => [
        "<^https://upload\\.wikimedia\\.org/wikipedia/commons/[^?#]*\\.svg(?:[?#]|$)>"
    ],
    "font" => [],
    "namespace" => [
        "<.>"
    ],
    "css" => []
]
PCRE düzenli ifadeleri, çeşitli harici kaynak türleri için izin verilen URL'lerle eşleşir.

Anahtarlar harici kaynak türleridir, değerler izin verilen URL'lerle eşleşecek şekilde normal ifadelerin (sınırlayıcılar dahil) dizileridir. Mevcut harici kaynak türleri:

audio
CSS Konuşma Modülünün cue özellikleri için ses dosyası.
image
background gibi özellikler için resim dosyası.
svg
Kamufle ve Filtreler için SVG dosyası.
font
@font-face için src.
namespace
@namespace. için
css
@import için
$wgTemplateStylesNamespaces
[ NS_TEMPLATE => true ]
".css" ile biten başlıklar için "Sterilize edilmiş CSS" içerik modelinin ayarlanacağı ad alanları.

Bunu 2 (Kullanıcı) veya 8 (MediaWiki) için etkinleştirmek kötü bir fikirdir, çünkü bu ad alanlarındaki normal CSS dosyalarıyla çakışacaktır.

$wgTemplateStylesPropertyBlacklist
[]
CSS stil kurallarında kara listeye alınacak özellikler.

TemplateStylesPropertySanitizer kanca daha hassas kontrol sağlar.

$wgTemplateStylesAtRuleBlacklist
[]
Stil sayfalarında kara listeye almak için kurallar.

TemplateStylesStylesheetSanitizer kanca daha hassas kontrol sağlar.

$wgTemplateStylesUseCodeEditor
true
"Sterilize edilmiş CSS" içerik türü için Extension:CodeEditor etkinleştirilip etkinleştirilmeyeceği.
$wgTemplateStylesAutoParseContent
true
True olursa, "Sterilize edilmiş CSS" içerik modeli, CSS içerik modeli zaten bu dizide mevcutsa $wgTextModelsToParse ile eklenir.

False ise, kategorileri ve bu tür öğelerin CSS sayfasından ayrıştırılmasını istiyorsanız, bu diziye manüel olarak 'sanitized-css' ekleyin.

$wgTemplateStylesMaxStylesheetSize
102400
Stil sayfasının maksimum boyutu (bayt cinsinden). Sınırsız null.

Diğer bağımlılıklar

$wgTidyConfig toplama veya RemexHtml kullanacak şekilde yapılandırılmalıdır. Raggett sürücülerinden herhangi biriyle kullanılırsa, paragrafın ortasındaki ‎<templatestyles /> satırlık etiket (satır içi şablon dahil), bu noktada paragrafın kırılmasına neden olur. Diğer sürücüler bu sorun için test edilmemiştir.

Olası hatalar

Örneğin, başka bir vikiden sayfa alırken bir hatayla karşılaşırsanız, aşağıdaki hatalardan herhangi biriyle karşılaşıp karşılaşmadığınızı belirlemek için LocalSettings.php ile $wgShowExceptionDetails etkinleştirmenize yardımcı olabilir.

  • Class 'Wikimedia\CSS\Parser\Parser' not found
    Bu hata, bir viki CSS sayfası içe aktarılmaya çalışıldığında veya bir sayfanın içerik modelini değiştirme "santized-css" olarak belirlendiğinde ortaya çıkabilir. 16 Nisan 2020 itibariyle, uzantı depolayıcısında, uzantı Git'ten yüklü olmasa bile uzantı alt dizininde composer install --no-dev çalıştırılmasını gerektiren bir açık hata vardır. Ayrıntılar için Topic:Ukv6pdo96a8qfur2 sayfasına bakın.
  • Import failed: The content model 'sanitized-css' is not registered on this wiki.
    Bazı kullanıcılar sayfaları içe aktarırken vikide bu hatayı alır. Bu uzantı söz konusu içerik modelini sağlar. İçe aktarma işleminizi düzeltmek için TemplateStyles'ı yükleyin.

Ayrıca bakınız