From: Jack Phoenix Date: Mon, 30 Jun 2014 21:56:02 +0000 (+0300) Subject: Introduce mediawiki.skinning module for external link icons X-Git-Tag: 1.31.0-rc.0~14165^2~1 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/cotisations/rappels.php?a=commitdiff_plain;h=2241e7d26c6555f2d85d0a24e5e160c6946e9e85;p=lhc%2Fweb%2Fwiklou.git Introduce mediawiki.skinning module for external link icons This should facilitate the creation of third-party skins. Previously third-party skin creators have had to either copy the relevant lines from Monobook's main.css, which has led to unnecessary code duplication and bitrot (to a degree), or no support for external link icons at all. This change set will hopefully make the main.css file of your average custom skin about 86 lines shorter, as well as keep the external link code and icons centralized for proper RTL support and whatnot (which is *not* a given when it comes to custom, non-core skins!). HTTPS' custom icon was dropped and HTTPS URLs are now given the standard external link arrow icon. This is an intentional design decision. New icons are Isarra's handiwork, kudos! Bug: 63521 Change-Id: I8ecbc827f2b05aec79401ac4962fcc15387c8ad8 --- diff --git a/resources/Resources.php b/resources/Resources.php index 99e1e4fd39..51fc178b98 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -117,6 +117,12 @@ return array( 'targets' => array( 'desktop', 'mobile' ), ), + 'mediawiki.skinning.content.externallinks' => array( + 'styles' => array( + 'resources/src/mediawiki.skinning/content.externallinks.css' => array( 'media' => 'screen' ), + ), + ), + /* jQuery */ 'jquery' => array( diff --git a/resources/src/mediawiki.skinning/content.externallinks.css b/resources/src/mediawiki.skinning/content.externallinks.css new file mode 100755 index 0000000000..b03ef3505d --- /dev/null +++ b/resources/src/mediawiki.skinning/content.externallinks.css @@ -0,0 +1,92 @@ +/* +** keep the whitespace in front of the ^=, hides rule from Konqueror +** this is CSS3, the validator doesn't like it when validating as CSS2 +*/ +.mw-body a.external, +.link-https { + /* @embed */ + background: url(images/external-ltr.png) center right no-repeat; + /** + * Sucks to be using Android 2.3 or older. + * See http://css-tricks.com/svg-fallbacks/ for details. + */ + /* @embed */ + background-image: url(images/external-ltr.svg), none; + padding-right: 15px; +} + +.mw-body a.external[href ^="mailto:"], +.link-mailto { + /* @embed */ + background: url(images/mail.png) center right no-repeat; + /* @embed */ + background-image: url(images/mail.svg), none; + padding-right: 15px; +} + +.mw-body a.external[href ^="ftp://"], +.link-ftp { + /* @embed */ + background: url(images/ftp-ltr.png) center right no-repeat; + /* @embed */ + background-image: url(images/ftp-ltr.svg), none; + padding-right: 15px; +} + +.mw-body a.external[href ^="irc://"], +.mw-body a.external[href ^="ircs://"], +.link-irc { + /* @embed */ + background: url(images/chat-ltr.png) center right no-repeat; + /* @embed */ + background-image: url(images/chat-ltr.svg), none; + padding-right: 15px; +} + +.mw-body a.external[href $=".ogg"], .mw-body a.external[href $=".OGG"], +.mw-body a.external[href $=".mid"], .mw-body a.external[href $=".MID"], +.mw-body a.external[href $=".midi"], .mw-body a.external[href $=".MIDI"], +.mw-body a.external[href $=".mp3"], .mw-body a.external[href $=".MP3"], +.mw-body a.external[href $=".wav"], .mw-body a.external[href $=".WAV"], +.mw-body a.external[href $=".wma"], .mw-body a.external[href $=".WMA"], +.link-audio { + /* @embed */ + background: url(images/audio-ltr.png) center right no-repeat; + /* @embed */ + background-image: url(images/audio-ltr.svg), none; + padding-right: 15px; +} + +.mw-body a.external[href $=".ogm"], .mw-body a.external[href $=".OGM"], +.mw-body a.external[href $=".avi"], .mw-body a.external[href $=".AVI"], +.mw-body a.external[href $=".mpeg"], .mw-body a.external[href $=".MPEG"], +.mw-body a.external[href $=".mpg"], .mw-body a.external[href $=".MPG"], +.link-video { + /* @embed */ + background: url(images/video.png) center right no-repeat; + /* @embed */ + background-image: url(images/video.svg), none; + padding-right: 15px; +} + +.mw-body a.external[href $=".pdf"], .mw-body a.external[href $=".PDF"], +.mw-body a.external[href *=".pdf#"], .mw-body a.external[href *=".PDF#"], +.mw-body a.external[href *=".pdf?"], .mw-body a.external[href *=".PDF?"], +.link-document { + /* @embed */ + background: url(images/document-ltr.png) center right no-repeat; + /* @embed */ + background-image: url(images/document-ltr.svg), none; + padding-right: 15px; +} + +/* Interwiki styling */ +.mw-body a.extiw, +.mw-body a.extiw:active { + color: #36b; +} + +/* External link color */ +.mw-body a.external { + color: #36b; +} \ No newline at end of file diff --git a/resources/src/mediawiki.skinning/images/audio-ltr.png b/resources/src/mediawiki.skinning/images/audio-ltr.png new file mode 100644 index 0000000000..8efc4f2d58 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/audio-ltr.png differ diff --git a/resources/src/mediawiki.skinning/images/audio-ltr.svg b/resources/src/mediawiki.skinning/images/audio-ltr.svg new file mode 100644 index 0000000000..e27a5f537c --- /dev/null +++ b/resources/src/mediawiki.skinning/images/audio-ltr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/audio-rtl.png b/resources/src/mediawiki.skinning/images/audio-rtl.png new file mode 100644 index 0000000000..1afdf40438 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/audio-rtl.png differ diff --git a/resources/src/mediawiki.skinning/images/audio-rtl.svg b/resources/src/mediawiki.skinning/images/audio-rtl.svg new file mode 100644 index 0000000000..683bbcd7ec --- /dev/null +++ b/resources/src/mediawiki.skinning/images/audio-rtl.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/chat-ltr.png b/resources/src/mediawiki.skinning/images/chat-ltr.png new file mode 100644 index 0000000000..624ecec306 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/chat-ltr.png differ diff --git a/resources/src/mediawiki.skinning/images/chat-ltr.svg b/resources/src/mediawiki.skinning/images/chat-ltr.svg new file mode 100644 index 0000000000..bd5329e024 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/chat-ltr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/src/mediawiki.skinning/images/chat-rtl.png b/resources/src/mediawiki.skinning/images/chat-rtl.png new file mode 100644 index 0000000000..f90fa33a98 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/chat-rtl.png differ diff --git a/resources/src/mediawiki.skinning/images/chat-rtl.svg b/resources/src/mediawiki.skinning/images/chat-rtl.svg new file mode 100644 index 0000000000..b86218f394 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/chat-rtl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/src/mediawiki.skinning/images/document-ltr.png b/resources/src/mediawiki.skinning/images/document-ltr.png new file mode 100644 index 0000000000..4ea9373f3f Binary files /dev/null and b/resources/src/mediawiki.skinning/images/document-ltr.png differ diff --git a/resources/src/mediawiki.skinning/images/document-ltr.svg b/resources/src/mediawiki.skinning/images/document-ltr.svg new file mode 100644 index 0000000000..43960980f3 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/document-ltr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/src/mediawiki.skinning/images/document-rtl.png b/resources/src/mediawiki.skinning/images/document-rtl.png new file mode 100644 index 0000000000..c281677a57 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/document-rtl.png differ diff --git a/resources/src/mediawiki.skinning/images/document-rtl.svg b/resources/src/mediawiki.skinning/images/document-rtl.svg new file mode 100644 index 0000000000..c37dadca13 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/document-rtl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/src/mediawiki.skinning/images/external link icons.svg b/resources/src/mediawiki.skinning/images/external link icons.svg new file mode 100644 index 0000000000..6a67993dc9 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/external link icons.svg @@ -0,0 +1,697 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/external-ltr.png b/resources/src/mediawiki.skinning/images/external-ltr.png new file mode 100644 index 0000000000..75750ef9c9 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/external-ltr.png differ diff --git a/resources/src/mediawiki.skinning/images/external-ltr.svg b/resources/src/mediawiki.skinning/images/external-ltr.svg new file mode 100644 index 0000000000..e914b7daec --- /dev/null +++ b/resources/src/mediawiki.skinning/images/external-ltr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/external-rtl.png b/resources/src/mediawiki.skinning/images/external-rtl.png new file mode 100644 index 0000000000..7b56aaa701 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/external-rtl.png differ diff --git a/resources/src/mediawiki.skinning/images/external-rtl.svg b/resources/src/mediawiki.skinning/images/external-rtl.svg new file mode 100644 index 0000000000..698c61634d --- /dev/null +++ b/resources/src/mediawiki.skinning/images/external-rtl.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/ftp-ltr.png b/resources/src/mediawiki.skinning/images/ftp-ltr.png new file mode 100644 index 0000000000..f940b067ae Binary files /dev/null and b/resources/src/mediawiki.skinning/images/ftp-ltr.png differ diff --git a/resources/src/mediawiki.skinning/images/ftp-ltr.svg b/resources/src/mediawiki.skinning/images/ftp-ltr.svg new file mode 100644 index 0000000000..3a90c31195 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/ftp-ltr.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/ftp-rtl.png b/resources/src/mediawiki.skinning/images/ftp-rtl.png new file mode 100644 index 0000000000..ff763048f9 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/ftp-rtl.png differ diff --git a/resources/src/mediawiki.skinning/images/ftp-rtl.svg b/resources/src/mediawiki.skinning/images/ftp-rtl.svg new file mode 100644 index 0000000000..29e4b44560 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/ftp-rtl.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/mail.png b/resources/src/mediawiki.skinning/images/mail.png new file mode 100644 index 0000000000..5085611c94 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/mail.png differ diff --git a/resources/src/mediawiki.skinning/images/mail.svg b/resources/src/mediawiki.skinning/images/mail.svg new file mode 100644 index 0000000000..5e534fed49 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/mail.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/resources/src/mediawiki.skinning/images/video.png b/resources/src/mediawiki.skinning/images/video.png new file mode 100644 index 0000000000..12f654539b Binary files /dev/null and b/resources/src/mediawiki.skinning/images/video.png differ diff --git a/resources/src/mediawiki.skinning/images/video.svg b/resources/src/mediawiki.skinning/images/video.svg new file mode 100644 index 0000000000..d52d0db1b3 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/video.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + +