summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-07-15 14:58:21 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-07-15 14:58:21 -0300
commit3b3143d38611fc04a4ff7cba9a27a14f7ef1d8f9 (patch)
treed1dea5276cc6dd368838b5e4cda2bb35ec7da02d
parent74f7c8a0bea120fb56c3faa813add46b63108d5c (diff)
Revert some changes for compatibilitycoadde/master
l---------skins/ArchLinux1
-rw-r--r--skins/ArchLinux/ArchLinux.php14
-rw-r--r--skins/ArchLinux/ArchLinuxTemplate.php408
-rw-r--r--skins/ArchLinux/COPYING339
-rw-r--r--skins/ArchLinux/Gruntfile.js20
-rw-r--r--skins/ArchLinux/IE60Fixes.css125
-rw-r--r--skins/ArchLinux/IE70Fixes.css96
-rw-r--r--skins/ArchLinux/SkinArchLinux.php53
-rw-r--r--skins/ArchLinux/arch.css178
-rw-r--r--skins/ArchLinux/archlogo.pngbin0 -> 5282 bytes
-rw-r--r--skins/ArchLinux/archnavbar.css24
-rw-r--r--skins/ArchLinux/bullet.gifbin0 -> 50 bytes
-rw-r--r--skins/ArchLinux/composer.json10
-rw-r--r--skins/ArchLinux/favicon.icobin0 -> 1150 bytes
-rw-r--r--skins/ArchLinux/headbg.jpgbin0 -> 7881 bytes
-rw-r--r--skins/ArchLinux/hooks.txt8
-rw-r--r--skins/ArchLinux/link_icon.gifbin0 -> 342 bytes
-rw-r--r--skins/ArchLinux/magnify-clip.pngbin0 -> 170 bytes
-rw-r--r--skins/ArchLinux/main.css827
-rw-r--r--skins/ArchLinux/print.css3
-rw-r--r--skins/ArchLinux/required.gifbin0 -> 47 bytes
-rw-r--r--skins/ArchLinux/skin.json42
-rw-r--r--skins/ArchLinux/user.gifbin0 -> 325 bytes
-rw-r--r--skins/ArchLinux/wiki-indexed.pngbin0 -> 8007 bytes
-rw-r--r--skins/ArchLinux/wiki.pngbin0 -> 22589 bytes
25 files changed, 2147 insertions, 1 deletions
diff --git a/skins/ArchLinux b/skins/ArchLinux
deleted file mode 120000
index d450cbb4..00000000
--- a/skins/ArchLinux
+++ /dev/null
@@ -1 +0,0 @@
-Parabola \ No newline at end of file
diff --git a/skins/ArchLinux/ArchLinux.php b/skins/ArchLinux/ArchLinux.php
new file mode 100644
index 00000000..fce0e822
--- /dev/null
+++ b/skins/ArchLinux/ArchLinux.php
@@ -0,0 +1,14 @@
+<?php
+
+if ( function_exists( 'wfLoadSkin' ) ) {
+ wfLoadSkin( 'ArchLinux' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['MonoBook'] = __DIR__ . '/i18n';
+ /* wfWarn(
+ 'Deprecated PHP entry point used for MonoBook skin. Please use wfLoadSkin instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+ ); */
+ return true;
+} else {
+ die( 'This version of the ArchLinux skin requires MediaWiki 1.25+' );
+}
diff --git a/skins/ArchLinux/ArchLinuxTemplate.php b/skins/ArchLinux/ArchLinuxTemplate.php
new file mode 100644
index 00000000..3e10befc
--- /dev/null
+++ b/skins/ArchLinux/ArchLinuxTemplate.php
@@ -0,0 +1,408 @@
+<?php
+/**
+ * ArchLinux skin (based on MonoBook)
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Skins
+ */
+
+/**
+ * @ingroup Skins
+ */
+class ArchLinuxTemplate extends BaseTemplate {
+
+ /**
+ * Template filter callback for ArchLinux skin.
+ * Takes an associative array of data set from a SkinTemplate-based
+ * class, and a wrapper for MediaWiki's localization database, and
+ * outputs a formatted page.
+ *
+ * @access private
+ */
+ function execute() {
+ global $wgArchNavBar, $wgArchHome, $wgArchNavBarSelected, $wgArchNavBarSelectedDefault;
+ // Suppress warnings to prevent notices about missing indexes in $this->data
+ wfSuppressWarnings();
+
+ $this->html( 'headelement' );
+ ?>
+
+ <div id="archnavbar"><!-- Arch Linux global navigation bar -->
+ <div id="archnavbarlogo"><h1><a href="https://www.parabola.nu/">Parabola GNU/Linux-libre</a></h1></div>
+ <div id="archnavbarmenu">
+ <ul id="archnavbarlist">
+ <li id="anb-home"><a href="https://www.parabola.nu/" title="Parabola news, packages, projects and more">Home</a></li>
+ <li id="anb-packages"><a href="https://www.parabola.nu/packages/" title="Package Database">Packages</a></li>
+ <li id="anb-wiki" class="anb-selected"><a href="https://wiki.parabola.nu/" title="Community documentation">Wiki</a></li>
+ <li id="anb-bugs"><a href="https://labs.parabola.nu" title="Issue Tracker">Bugs</a></li>
+ <li id="anb-projects"><a href="https://projects.parabola.nu/" title="Our Code">Projects</a></li>
+ <li id="anb-download"><a href="https://wiki.parabola.nu/Get_Parabola" title="Get Parabola">Download</a></li>
+ </ul>
+ </div>
+ </div><!-- #archnavbar -->
+
+ <div id="globalWrapper">
+ <div id="column-content">
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+ <?php
+ if ( $this->data['sitenotice'] ) {
+ ?>
+ <div id="siteNotice"><?php
+ $this->html( 'sitenotice' )
+ ?></div><?php
+ }
+ ?>
+
+ <?php
+ echo $this->getIndicators();
+ // Loose comparison with '!=' is intentional, to catch null and false too, but not '0'
+ if ( $this->data['title'] != '' ) {
+ ?>
+ <h1 id="firstHeading" class="firstHeading" lang="<?php
+ $this->data['pageLanguage'] =
+ $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
+ $this->text( 'pageLanguage' );
+ ?>"><?php $this->html( 'title' ) ?></h1>
+ <?php } ?>
+
+ <div id="bodyContent" class="mw-body-content">
+ <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
+ <div id="contentSub"<?php
+ $this->html( 'userlangattributes' ) ?>><?php $this->html( 'subtitle' )
+ ?></div>
+ <?php if ( $this->data['undelete'] ) { ?>
+ <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
+ <?php
+}
+ ?><?php
+ if ( $this->data['newtalk'] ) {
+ ?>
+ <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
+ <?php
+ }
+ ?>
+ <div id="jump-to-nav" class="mw-jump"><?php
+ $this->msg( 'jumpto' )
+ ?> <a href="#column-one"><?php
+ $this->msg( 'jumptonavigation' )
+ ?></a><?php
+ $this->msg( 'comma-separator' )
+ ?><a href="#searchInput"><?php
+ $this->msg( 'jumptosearch' )
+ ?></a></div>
+
+ <!-- start content -->
+ <?php $this->html( 'bodytext' ) ?>
+ <?php
+ if ( $this->data['catlinks'] ) {
+ $this->html( 'catlinks' );
+ }
+ ?>
+ <!-- end content -->
+ <?php
+ if ( $this->data['dataAfterContent'] ) {
+ $this->html( 'dataAfterContent'
+ );
+ }
+ ?>
+ <div class="visualClear"></div>
+ </div>
+ </div>
+ </div>
+ <div id="column-one"<?php $this->html( 'userlangattributes' ) ?>>
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+ <?php $this->cactions(); ?>
+ <div class="portlet" id="p-personal" role="navigation">
+ <h3><?php $this->msg( 'personaltools' ) ?></h3>
+
+ <div class="pBody">
+ <ul<?php $this->html( 'userlangattributes' ) ?>>
+ <?php foreach ( $this->getPersonalTools() as $key => $item ) { ?>
+ <?php echo $this->makeListItem( $key, $item ); ?>
+
+ <?php
+}
+ ?>
+ </ul>
+ </div>
+ </div>
+ <div class="portlet" id="p-logo" role="banner">
+ <?php
+ echo Html::element( 'a', array(
+ 'href' => $this->data['nav_urls']['mainpage']['href'],
+ 'class' => 'mw-wiki-logo',
+ )
+ + Linker::tooltipAndAccesskeyAttribs( 'p-logo' )
+ ); ?>
+
+ </div>
+ <?php
+ $this->renderPortals( $this->data['sidebar'] );
+ ?>
+ </div><!-- end of the left (by default at least) column -->
+ <div class="visualClear"></div>
+ <?php
+ $validFooterIcons = $this->getFooterIcons( "icononly" );
+ $validFooterLinks = $this->getFooterLinks( "flat" ); // Additional footer links
+
+ if ( count( $validFooterIcons ) + count( $validFooterLinks ) > 0 ) {
+ ?>
+ <div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
+ <?php
+ $footerEnd = '</div>';
+ } else {
+ $footerEnd = '';
+ }
+
+ foreach ( $validFooterIcons as $blockName => $footerIcons ) {
+ ?>
+ <div id="f-<?php echo htmlspecialchars( $blockName ); ?>ico">
+ <?php foreach ( $footerIcons as $icon ) { ?>
+ <?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
+
+ <?php
+}
+ ?>
+ </div>
+ <?php
+ }
+
+ if ( count( $validFooterLinks ) > 0 ) {
+ ?>
+ <ul id="f-list">
+ <?php
+ foreach ( $validFooterLinks as $aLink ) {
+ ?>
+ <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?></li>
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ }
+
+ echo $footerEnd;
+ ?>
+
+ </div>
+ <?php
+ $this->printTrail();
+ echo Html::closeElement( 'body' );
+ echo Html::closeElement( 'html' );
+ echo "\n";
+ wfRestoreWarnings();
+ } // end of execute() method
+
+ /*************************************************************************************************/
+
+ /**
+ * @param array $sidebar
+ */
+ protected function renderPortals( $sidebar ) {
+ if ( !isset( $sidebar['SEARCH'] ) ) {
+ $sidebar['SEARCH'] = true;
+ }
+ if ( !isset( $sidebar['TOOLBOX'] ) ) {
+ $sidebar['TOOLBOX'] = true;
+ }
+ if ( !isset( $sidebar['LANGUAGES'] ) ) {
+ $sidebar['LANGUAGES'] = true;
+ }
+
+ foreach ( $sidebar as $boxName => $content ) {
+ if ( $content === false ) {
+ continue;
+ }
+
+ // Numeric strings gets an integer when set as key, cast back - T73639
+ $boxName = (string)$boxName;
+
+ if ( $boxName == 'SEARCH' ) {
+ $this->searchBox();
+ } elseif ( $boxName == 'TOOLBOX' ) {
+ $this->toolbox();
+ } elseif ( $boxName == 'LANGUAGES' ) {
+ $this->languageBox();
+ } else {
+ $this->customBox( $boxName, $content );
+ }
+ }
+ }
+
+ function searchBox() {
+ ?>
+ <div id="p-search" class="portlet" role="search">
+ <h3><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
+
+ <div id="searchBody" class="pBody">
+ <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
+ <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
+ <?php echo $this->makeSearchInput( array( "id" => "searchInput" ) ); ?>
+
+ <?php
+ echo $this->makeSearchButton(
+ "go",
+ array( "id" => "searchGoButton", "class" => "searchButton" )
+ );
+
+ if ( $this->config->get( 'UseTwoButtonsSearchForm' ) ) {
+ ?>&#160;
+ <?php echo $this->makeSearchButton(
+ "fulltext",
+ array( "id" => "mw-searchButton", "class" => "searchButton" )
+ );
+ } else {
+ ?>
+
+ <div><a href="<?php
+ $this->text( 'searchaction' )
+ ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div><?php
+ } ?>
+
+ </form>
+
+ <?php $this->renderAfterPortlet( 'search' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Prints the cactions bar.
+ * Shared between MonoBook and Modern
+ */
+ function cactions() {
+ ?>
+ <div id="p-cactions" class="portlet" role="navigation">
+ <h3><?php $this->msg( 'views' ) ?></h3>
+
+ <div class="pBody">
+ <ul><?php
+ foreach ( $this->data['content_actions'] as $key => $tab ) {
+ echo '
+ ' . $this->makeListItem( $key, $tab );
+ } ?>
+
+ </ul>
+ <?php $this->renderAfterPortlet( 'cactions' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /*************************************************************************************************/
+ function toolbox() {
+ ?>
+ <div class="portlet" id="p-tb" role="navigation">
+ <h3><?php $this->msg( 'toolbox' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php
+ foreach ( $this->getToolbox() as $key => $tbitem ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $tbitem ); ?>
+
+ <?php
+ }
+ Hooks::run( 'ArchLinuxTemplateToolboxEnd', array( &$this ) );
+ Hooks::run( 'SkinTemplateToolboxEnd', array( &$this, true ) );
+ ?>
+ </ul>
+ <?php $this->renderAfterPortlet( 'tb' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+
+ /*************************************************************************************************/
+ function languageBox() {
+ if ( $this->data['language_urls'] !== false ) {
+ ?>
+ <div id="p-lang" class="portlet" role="navigation">
+ <h3<?php $this->html( 'userlangattributes' ) ?>><?php $this->msg( 'otherlanguages' ) ?></h3>
+
+ <div class="pBody">
+ <ul>
+ <?php foreach ( $this->data['language_urls'] as $key => $langlink ) { ?>
+ <?php echo $this->makeListItem( $key, $langlink ); ?>
+
+ <?php
+}
+ ?>
+ </ul>
+
+ <?php $this->renderAfterPortlet( 'lang' ); ?>
+ </div>
+ </div>
+ <?php
+ }
+ }
+
+ /*************************************************************************************************/
+ /**
+ * @param string $bar
+ * @param array|string $cont
+ */
+ function customBox( $bar, $cont ) {
+ $portletAttribs = array(
+ 'class' => 'generated-sidebar portlet',
+ 'id' => Sanitizer::escapeId( "p-$bar" ),
+ 'role' => 'navigation'
+ );
+
+ $tooltip = Linker::titleAttrib( "p-$bar" );
+ if ( $tooltip !== false ) {
+ $portletAttribs['title'] = $tooltip;
+ }
+ echo ' ' . Html::openElement( 'div', $portletAttribs );
+ $msgObj = wfMessage( $bar );
+ ?>
+
+ <h3><?php echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $bar ); ?></h3>
+ <div class='pBody'>
+ <?php
+ if ( is_array( $cont ) ) {
+ ?>
+ <ul>
+ <?php
+ foreach ( $cont as $key => $val ) {
+ ?>
+ <?php echo $this->makeListItem( $key, $val ); ?>
+
+ <?php
+ }
+ ?>
+ </ul>
+ <?php
+ } else {
+ # allow raw HTML block to be defined by extensions
+ print $cont;
+ }
+
+ $this->renderAfterPortlet( $bar );
+ ?>
+ </div>
+ </div>
+ <?php
+ }
+} // end of class
diff --git a/skins/ArchLinux/COPYING b/skins/ArchLinux/COPYING
new file mode 100644
index 00000000..d159169d
--- /dev/null
+++ b/skins/ArchLinux/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/skins/ArchLinux/Gruntfile.js b/skins/ArchLinux/Gruntfile.js
new file mode 100644
index 00000000..9c56558a
--- /dev/null
+++ b/skins/ArchLinux/Gruntfile.js
@@ -0,0 +1,20 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+ grunt.loadNpmTasks( 'grunt-banana-checker' );
+ grunt.loadNpmTasks( 'grunt-jsonlint' );
+
+ grunt.initConfig( {
+ banana: {
+ all: 'i18n/'
+ },
+ jsonlint: {
+ all: [
+ '**/*.json',
+ '!node_modules/**'
+ ]
+ }
+ } );
+
+ grunt.registerTask( 'test', [ 'jsonlint', 'banana' ] );
+ grunt.registerTask( 'default', 'test' );
+};
diff --git a/skins/ArchLinux/IE60Fixes.css b/skins/ArchLinux/IE60Fixes.css
new file mode 100644
index 00000000..a5beed5d
--- /dev/null
+++ b/skins/ArchLinux/IE60Fixes.css
@@ -0,0 +1,125 @@
+/* 6.0 - only fixes */
+/* content area */
+/* workaround for various ie float bugs */
+div#column-content {
+ float: none;
+ margin-left: 0;
+ height: 1%;
+}
+
+div#column-content .mw-body {
+ margin-left: 12.2em;
+ margin-top: 3em;
+ height: 1%;
+}
+
+.rtl div#column-content .mw-body {
+ margin-right: 12.2em;
+ margin-left: 0;
+}
+
+div#column-one {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 4;
+}
+
+.rtl div#column-one {
+ left: auto;
+ right: 0;
+}
+
+div#footer {
+ margin-left: 13.6em;
+ border-left: 1px solid #fabd23;
+}
+
+.rtl div#footer {
+ margin-left: 0;
+ margin-right: 13.6em;
+ border-left: none;
+ border-right: 1px solid #fabd23;
+}
+
+/* float/negative margin brokenness */
+* html div#footer {
+ margin-top: 0;
+}
+
+* html div#column-content {
+ display: inline;
+ margin-bottom: 0;
+}
+
+/* the tabs */
+
+#p-cactions {
+ z-index: 3;
+}
+
+#p-cactions li {
+ padding-bottom: 0 !important;
+ border: none;
+ background-color: transparent;
+ cursor: default;
+ float: none !important;
+}
+
+#p-cactions li a {
+ display: inline-block !important;
+ vertical-align: top;
+ padding-bottom: 0;
+ border: solid #aaa;
+ border-width: 1px 1px 0;
+}
+
+#p-cactions li.selected a {
+ border-color: #fabd23;
+ padding-bottom: 0.17em;
+}
+
+#p-cactions li a:hover {
+ padding-bottom: 0.17em;
+}
+
+#p-navigation a {
+ display: inline-block;
+ width: 100%;
+}
+
+#portal-personaltools {
+ padding-bottom: 0.1em;
+}
+
+.rtl a.feedlink {
+ background-position: right;
+ padding-right: 0;
+ padding-left: 16px;
+}
+
+/* show the hand */
+#p-logo a,
+#p-logo a:hover {
+ cursor: pointer;
+}
+
+div.visualClear {
+ width: 100%;
+ line-height: 0;
+}
+
+textarea {
+ width: 96%;
+}
+
+#catlinks,
+div.tright,
+div.tleft {
+ position: relative;
+}
+
+/* bug 12846 */
+body.rtl #preftoc a, body.rtl #preftoc a:active {
+ float: left;
+}
diff --git a/skins/ArchLinux/IE70Fixes.css b/skins/ArchLinux/IE70Fixes.css
new file mode 100644
index 00000000..e82d57a3
--- /dev/null
+++ b/skins/ArchLinux/IE70Fixes.css
@@ -0,0 +1,96 @@
+/* 7.0 - only fixes */
+/* content area */
+/* workaround for various ie float bugs */
+
+/* This bit is needed to make links clickable... WTF */
+div#column-content .mw-body {
+ margin-left: 12.2em;
+ margin-top: 3em;
+ height: 1%;
+}
+
+.rtl div#column-content .mw-body {
+ margin-right: 12.2em;
+ margin-left: 0;
+}
+
+.rtl div#column-one {
+ /* For some reason it tries to inherit the padding-top into every div,
+ * and I can't figure out how to get it back off.
+ * Margin works correctly for this use, though.
+ */
+ padding-top: 0;
+ margin-top: 160px;
+}
+
+/* These elements also have padding-left: 20px; in main.css, but in RTL mode this is flipped.
+ * That's good in normal browsers, but in IE7 it needs to not be flipped for some daft reason.
+ * Also clear the right margin (originally margin-left: 1em)
+ */
+li#pt-userpage, li#pt-anonuserpage, li#pt-login {
+ padding-left: 20px;
+ margin-right: 0;
+}
+
+.rtl a.feedlink {
+ background-position: right;
+ padding-right: 0;
+ padding-left: 16px;
+}
+
+/* the tabs */
+
+#p-cactions {
+ z-index: 3;
+}
+
+#p-cactions li {
+ padding-bottom: 0 !important;
+ border: none;
+ background-color: transparent;
+ cursor: default;
+ float: none !important;
+}
+
+#p-cactions li a {
+ display: inline-block !important;
+ vertical-align: top;
+ padding-bottom: 0;
+ border: solid #aaa;
+ border-width: 1px 1px 0;
+}
+
+#p-cactions li.selected a {
+ border-color: #fabd23;
+ padding-bottom: 0.17em;
+}
+
+#p-cactions li a:hover {
+ padding-bottom: 0.17em;
+}
+
+#p-navigation a {
+ display: inline-block;
+ width: 100%;
+}
+
+#portal-personaltools {
+ padding-bottom: 0.1em;
+}
+
+textarea {
+ width: 96%;
+}
+
+/*
+#catlinks,
+div.tright,
+div.tleft {
+ position: relative;
+}
+*/
+
+div#footer li {
+ /* Work around bug with inline <li> tags with right margins and nowrap */
+ margin-right: 0;
+}
diff --git a/skins/ArchLinux/SkinArchLinux.php b/skins/ArchLinux/SkinArchLinux.php
new file mode 100644
index 00000000..4be24176
--- /dev/null
+++ b/skins/ArchLinux/SkinArchLinux.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * ArchLinux skin (based on MonoBook)
+ *
+ * Translated from gwicke's previous TAL template version to remove
+ * dependency on PHPTAL.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Skins
+ */
+
+/**
+ * Inherit main code from SkinTemplate, set the CSS and template filter.
+ * @ingroup Skins
+ */
+class SkinArchLinux extends SkinTemplate {
+ /** Using ArchLinux. */
+ public $skinname = 'archlinux';
+ public $stylename = 'ArchLinux';
+ public $template = 'ArchLinuxTemplate';
+
+ /**
+ * @param OutputPage $out
+ */
+ function setupSkinUserCss( OutputPage $out ) {
+ parent::setupSkinUserCss( $out );
+
+ $out->addModuleStyles( array(
+ 'mediawiki.skinning.interface',
+ 'mediawiki.skinning.content.externallinks',
+ 'skins.archlinux.styles'
+ ) );
+
+ // TODO: Migrate all of these
+ $out->addStyle( $this->stylename . '/IE60Fixes.css', 'screen', 'IE 6' );
+ $out->addStyle( $this->stylename . '/IE70Fixes.css', 'screen', 'IE 7' );
+ }
+}
diff --git a/skins/ArchLinux/arch.css b/skins/ArchLinux/arch.css
new file mode 100644
index 00000000..c8abb749
--- /dev/null
+++ b/skins/ArchLinux/arch.css
@@ -0,0 +1,178 @@
+/* general styling */
+body {
+ background: #f6f9fc;
+}
+body,
+#content,
+table,
+h1,
+h2,
+h3,
+h4,
+h5,
+pre,
+code,
+tt {
+ color: #222;
+}
+h1 {
+ font-weight: bold;
+}
+pre,
+code,
+tt {
+ background-color: #ebf1f5;
+ font-family: monospace;
+}
+pre {
+ border: 1px solid #bcd;
+ overflow: auto;
+}
+code,
+tt {
+ /* Inline-block prevents code from wrapping when starting too close to the
+ end of a line; it also lets select the entire code line with a triple
+ click */
+ display: inline-block;
+ padding: 0 0.3em;
+ /* A border would be inherited by the default style sheets, but we don't
+ want it */
+ border-width: 0;
+ border-radius: 0;
+}
+ul,
+.portlet ul {
+ list-style-image: none;
+}
+#bodyContent table {
+ border-collapse: collapse;
+ padding: 2px;
+}
+#bodyContent td {
+ padding: 2px;
+}
+
+/* links (including page tabs and personal toolbar) */
+#bodyContent > div.mw-content-ltr a,
+#bodyContent > div.mw-content-rtl a,
+#wikiPreview > div.mw-content-ltr a,
+#wikiPreview > div.mw-content-rtl a {
+ font-weight: bold;
+}
+#bodyContent #toc a,
+#bodyContent .special li > a,
+#bodyContent .special li span a,
+#bodyContent #pagehistory a {
+ font-weight: normal;
+}
+a:link,
+#toc a,
+#p-cactions li a,
+#p-personal li a,
+#p-cactions li a:visited,
+#p-personal li a:visited,
+#bodyContent a.external,
+#bodyContent a.extiw {
+ text-decoration: none;
+ outline: none;
+ color: #07b;
+}
+a:visited,
+#bodyContent a:visited.external {
+ color: #666;
+}
+a:hover,
+#p-personal li a:hover,
+#bodyContent #toc a:hover,
+#bodyContent a:hover.external {
+ text-decoration: underline;
+ background-color: transparent;
+ color: #999;
+}
+a:focus,
+a:active,
+#toc a:focus,
+#toc a:active,
+#p-cactions li a:focus,
+#p-cactions li a:active,
+#p-personal li a:focus,
+#p-personal li a:active,
+#bodyContent a:focus.external,
+#bodyContent a:active.external,
+#bodyContent a:focus.extiw,
+#bodyContent a:active.extiw {
+ color: #e90 !important;
+}
+a.new,
+#p-cactions .new a,
+#p-personal a.new {
+ color: #b00 !important;
+}
+
+/* bump down the personal toolbar (top menu) */
+#p-personal {
+ top: 5px;
+}
+
+/* bump down the action tabs (page, discuss, edit, etc.) */
+#p-cactions {
+ top: 27px;
+}
+
+/* bump down the main content to make room for navbar */
+#content {
+ top: 10px;
+}
+
+/* shrink the content just enough to show off the borders */
+div#globalWrapper {
+ width: 99%;
+}
+
+/* article Table of Contents */
+#toc,
+.toc,
+.mw-warning {
+ background-color: #f9faff;
+ border: 1px solid #d7dfe3;
+}
+
+/* sidebar menus and content borders */
+.pBody {
+ border: 1px solid #ddd;
+}
+div#content {
+ border: 1px solid #ccc;
+}
+
+/* disable default mediawiki logo and close the gap it leaves behind */
+#p-logo {
+ display: none !important;
+}
+div#column-one {
+ padding-top: 36px;
+}
+
+/* disable footer logos TODO: see if this can be done in LocalSettings.php */
+#f-poweredbyico,
+#f-copyrightico {
+ display: none;
+}
+
+/* clean up the footer */
+div#footer {
+ color: #888;
+ background-color: transparent;
+ border-top: none;
+ border-bottom: none;
+}
+
+/* bring footer text inline with content */
+#footer ul {
+ margin-left: 170px;
+}
+
+/* highlight current website in the navbar */
+#archnavbar ul li.anb-selected a {
+ color: white !important;
+}
diff --git a/skins/ArchLinux/archlogo.png b/skins/ArchLinux/archlogo.png
new file mode 100644
index 00000000..8726397a
--- /dev/null
+++ b/skins/ArchLinux/archlogo.png
Binary files differ
diff --git a/skins/ArchLinux/archnavbar.css b/skins/ArchLinux/archnavbar.css
new file mode 100644
index 00000000..574d8b2b
--- /dev/null
+++ b/skins/ArchLinux/archnavbar.css
@@ -0,0 +1,24 @@
+/*
+ * ARCH GLOBAL NAVBAR
+ * We're forcing all generic selectors with !important
+ * to help prevent other stylesheets from interfering.
+ */
+
+/* container for the entire bar */
+#archnavbar { height: 40px !important; padding: 10px 15px !important; background: #000 !important; border-bottom: 5px #787DAB solid !important; }
+#archnavbarlogo { float: left !important; margin: -5px 0 0 0 !important; padding: 0 !important; height: 50px !important; width: 324px !important; background: url('archlogo.png') no-repeat !important; }
+
+/* move the heading/paragraph text offscreen */
+#archnavbarlogo p { margin: 0 !important; padding: 0 !important; text-indent: -9999px !important; }
+#archnavbarlogo h1 { margin: 0 !important; padding: 0 !important; text-indent: -9999px !important; border-bottom: 0px !important; }
+
+/* make the link the same size as the logo */
+#archnavbarlogo a { display: block !important; height: 50px !important; width: 324px !important; }
+
+/* display the list inline, float it to the right and style it */
+#archnavbar ul { display: inline !important; float: right !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }
+#archnavbar ul li { float: left !important; font-size: 14px !important; font-family: sans-serif !important; line-height: 45px !important; padding-right: 15px !important; padding-left: 15px !important; }
+
+/* style the links */
+#archnavbar ul#archnavbarlist li a { color: #999; font-weight: bold !important; text-decoration: none !important; }
+#archnavbar ul li a:hover { color: white !important; text-decoration: underline !important; }
diff --git a/skins/ArchLinux/bullet.gif b/skins/ArchLinux/bullet.gif
new file mode 100644
index 00000000..b43de48a
--- /dev/null
+++ b/skins/ArchLinux/bullet.gif
Binary files differ
diff --git a/skins/ArchLinux/composer.json b/skins/ArchLinux/composer.json
new file mode 100644
index 00000000..fd380fb7
--- /dev/null
+++ b/skins/ArchLinux/composer.json
@@ -0,0 +1,10 @@
+{
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "0.9"
+ },
+ "scripts": {
+ "test": [
+ "parallel-lint . --exclude node_modules --exclude vendor"
+ ]
+ }
+}
diff --git a/skins/ArchLinux/favicon.ico b/skins/ArchLinux/favicon.ico
new file mode 100644
index 00000000..c67bbd61
--- /dev/null
+++ b/skins/ArchLinux/favicon.ico
Binary files differ
diff --git a/skins/ArchLinux/headbg.jpg b/skins/ArchLinux/headbg.jpg
new file mode 100644
index 00000000..5491c6e4
--- /dev/null
+++ b/skins/ArchLinux/headbg.jpg
Binary files differ
diff --git a/skins/ArchLinux/hooks.txt b/skins/ArchLinux/hooks.txt
new file mode 100644
index 00000000..b456a669
--- /dev/null
+++ b/skins/ArchLinux/hooks.txt
@@ -0,0 +1,8 @@
+Hooks provided by the MonoBook skin.
+
+'MonoBookTemplateToolboxEnd': DEPRECATED. Called by Monobook skin after toolbox
+links have been rendered (useful for adding more). Note: this is only run for
+the Monobook skin. To add items to the toolbox you should use the
+SkinTemplateToolboxEnd hook instead, which works for all "SkinTemplate"-type
+skins.
+$tools: array of tools
diff --git a/skins/ArchLinux/link_icon.gif b/skins/ArchLinux/link_icon.gif
new file mode 100644
index 00000000..168c1a2f
--- /dev/null
+++ b/skins/ArchLinux/link_icon.gif
Binary files differ
diff --git a/skins/ArchLinux/magnify-clip.png b/skins/ArchLinux/magnify-clip.png
new file mode 100644
index 00000000..ffd7637f
--- /dev/null
+++ b/skins/ArchLinux/magnify-clip.png
Binary files differ
diff --git a/skins/ArchLinux/main.css b/skins/ArchLinux/main.css
new file mode 100644
index 00000000..0abc7b31
--- /dev/null
+++ b/skins/ArchLinux/main.css
@@ -0,0 +1,827 @@
+/*
+** MediaWiki 'monobook' style sheet for CSS2-capable browsers.
+** Copyright Gabriel Wicke - http://wikidev.net/
+** License: GPL (http://www.gnu.org/copyleft/gpl.html)
+**
+** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John
+** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher,
+** Michael Zeltner and Geir Bækholt)
+** All you guys rock :)
+*/
+
+div#column-content {
+ width: 100%;
+ float: right;
+ margin: 0 0 .6em -12.2em;
+ padding: 0;
+}
+
+.mw-body {
+ margin: 2.8em 0 0 12.2em;
+ padding: 1em;
+ position: relative;
+ z-index: 2;
+ background: white;
+ color: black;
+ border: 1px solid #aaa;
+ border-right: none;
+ line-height: 1.5em;
+}
+
+div#column-one {
+ padding-top: 160px;
+}
+
+/* Hide, but keep accessible for screen-readers */
+#column-one h2 {
+ position: absolute;
+ top: -9999px;
+}
+
+/* the left column width is specified in class .portlet */
+
+/* Font size:
+** We take advantage of keyword scaling- browsers won't go below 9px
+** More at http://www.w3.org/2003/07/30-font-size
+** http://style.cleverchimp.com/font_size_intervals/altintervals.html
+*/
+
+body {
+ font: x-small sans-serif;
+ /* @embed */
+ background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat;
+ color: black;
+ margin: 0;
+ padding: 0;
+ direction: ltr; /* Needed for RTL flipping */
+ unicode-bidi: embed;
+}
+
+/* scale back up to a sane default */
+div#globalWrapper {
+ font-size: 127%;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ position: relative;
+ z-index: 0;
+}
+
+/* general styles */
+a {
+ color: #002bb8;
+}
+
+a:visited {
+ color: #5a3696;
+}
+
+a.new,
+#p-personal a.new {
+ color: #cc2200;
+}
+
+ul {
+ list-style-type: square;
+ /* @embed */
+ list-style-image: url(bullet.gif);
+}
+
+pre, .mw-code {
+ line-height: 1.1em;
+}
+
+#firstHeading {
+ padding-top: 0;
+ overflow: visible;
+}
+
+.mw-indicators {
+ float: right;
+ line-height: 1.5em;
+ font-size: 95%;
+}
+
+.mw-indicator {
+ display: -moz-inline-block;
+ display: inline-block;
+ zoom: 1;
+ *display: inline;
+}
+
+/*
+** the main content area
+*/
+
+#siteNotice {
+ font-size: 95%;
+ padding: 0 0.9em;
+}
+
+#localNotice {
+ margin: 0;
+}
+
+#siteNotice p {
+ margin: 0;
+ padding: 0;
+}
+
+/*
+** classes for special content elements like town boxes
+** intended to be referenced directly from the wiki src
+*/
+
+/*
+** User styles
+*/
+/* table standards */
+table.rimage {
+ float: right;
+ position: relative;
+ margin-left: 1em;
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+** edit views etc
+*/
+.special li {
+ line-height: 1.4em;
+ margin: 0;
+ padding: 0;
+}
+
+/*
+** Structural Elements
+*/
+
+/*
+** general portlet styles (elements in the quickbar)
+*/
+.portlet {
+ border: none;
+ margin: 0 0 .5em;
+ padding: 0;
+ float: none;
+ width: 11.6em;
+ overflow: hidden;
+}
+
+.portlet h3 {
+ background: transparent;
+ padding: 0 1em 0 .5em;
+ display: inline;
+ height: 1em;
+ text-transform: lowercase;
+ font-size: 91%;
+ font-weight: normal;
+ white-space: nowrap;
+}
+
+.pBody {
+ font-size: 95%;
+ background-color: white;
+ color: black;
+ border-collapse: collapse;
+ border: 1px solid #aaa;
+ padding: 0 .8em .3em .5em;
+}
+
+/* allows .pBody styles to wrap around content added via BaseTemplateAfterPortlet hook */
+.pBody:after {
+ content: '';
+ clear: both;
+ display: block;
+}
+
+.portlet ul {
+ line-height: 1.5em;
+ font-size: 95%;
+}
+
+.portlet li {
+ padding: 0;
+ margin: 0;
+}
+
+/*
+** Logo properties
+*/
+
+#p-logo {
+ top: 0;
+ left: 0;
+ position: absolute; /*needed to use z-index */
+ z-index: 3;
+ height: 155px;
+ width: 12em;
+ overflow: visible;
+}
+
+#p-logo h3 {
+ display: none;
+}
+
+#p-logo a,
+#p-logo a:hover {
+ display: block;
+ height: 155px;
+ width: 12.2em;
+ background-repeat: no-repeat;
+ background-position: 35% 50% !important;
+ text-decoration: none;
+}
+
+/*
+** Search portlet
+*/
+#p-search {
+ position: relative;
+ z-index: 3;
+}
+
+input.searchButton {
+ margin-top: 1px;
+ font-size: 95%;
+}
+
+#searchGoButton {
+ padding-left: .5em;
+ padding-right: .5em;
+ font-weight: bold;
+}
+
+#searchInput {
+ width: 10.9em;
+ margin: 0;
+ font-size: 95%;
+}
+
+#p-search .pBody {
+ padding: .5em .4em .4em .4em;
+ text-align: center;
+}
+
+#p-search #searchform div div {
+ margin-top: .4em;
+ font-size: 95%;
+}
+
+/*
+** the personal toolbar
+*/
+#p-personal {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 3;
+}
+
+#p-personal {
+ width: 100%;
+ white-space: nowrap;
+ padding: 0;
+ margin: 0;
+ border: none;
+ background: none;
+ overflow: visible;
+ line-height: 1.2em;
+}
+
+#p-personal h3 {
+ display: none;
+}
+
+#p-personal .portlet,
+#p-personal .pBody {
+ z-index: 0;
+ padding: 0;
+ margin: 0;
+ border: none;
+ overflow: visible;
+ background: none;
+}
+
+/* this is the ul contained in the portlet */
+#p-personal ul {
+ border: none;
+ line-height: 1.4em;
+ color: #2f6fab;
+ padding: 0;
+ padding-right: 2em;
+ /* Avoid overlap with the logo. */
+ padding-left: 14em;
+ margin: 0;
+ text-align: right;
+ list-style-type: none;
+ list-style-image: none;
+ z-index: 0;
+ background: none;
+ cursor: default;
+}
+
+#p-personal li {
+ z-index: 0;
+ border: none;
+ padding: 0;
+ display: inline;
+ color: #2f6fab;
+ margin-left: 1em;
+ line-height: 1.2em;
+ background: none;
+}
+
+#p-personal li a {
+ text-decoration: none;
+ color: #005896;
+ padding-bottom: .2em;
+}
+
+#p-personal li a:hover {
+ background-color: white;
+ text-decoration: none;
+}
+
+#p-personal li.active a:hover {
+ background-color: transparent;
+}
+
+/* The icon in front of the username / login link */
+li#pt-userpage,
+li#pt-anonuserpage,
+li#pt-login {
+ /* @embed */
+ background: url(user.gif) top left no-repeat;
+ padding-left: 20px;
+}
+
+#p-personal ul {
+ text-transform: lowercase;
+}
+
+/* Don't lowercase username or IP addresses (IPv6) */
+li#pt-userpage,
+li#pt-anonuserpage {
+ text-transform: none;
+}
+
+#p-personal li.active {
+ font-weight: bold;
+}
+
+/*
+** the page-related actions- page/talk, edit etc
+*/
+#p-cactions {
+ position: absolute;
+ top: 1.3em;
+ left: 11.5em;
+ margin: 0;
+ white-space: nowrap;
+ width: 76%;
+ line-height: 1.1em;
+ overflow: visible;
+ background: none;
+ border-collapse: collapse;
+ padding-left: 1em;
+ font-size: 95%;
+}
+
+#p-cactions ul {
+ list-style-type: none;
+ list-style-image: none;
+}
+
+#p-cactions li {
+ display: inline;
+ border: 1px solid #aaa;
+ border-bottom: none;
+ padding: 0 0 1em 0;
+ margin: 0 .3em 0 0;
+ overflow: visible;
+ background: white;
+}
+
+#p-cactions li.selected {
+ border-color: #fabd23;
+ font-weight: bold;
+}
+
+#p-cactions li a {
+ background-color: #fbfbfb;
+ color: #002bb8;
+ border: none;
+ padding: 0 .8em .3em;
+ position: relative;
+ z-index: 0;
+ margin: 0;
+ text-decoration: none;
+}
+
+#p-cactions li.selected a {
+ z-index: 3;
+ background-color: white;
+}
+
+#p-cactions .new a {
+ color: #ba0000;
+}
+
+#p-cactions li a:hover {
+ z-index: 3;
+ text-decoration: none;
+ background-color: white;
+}
+
+#p-cactions h3 {
+ display: none;
+}
+
+#p-cactions li.istalk {
+ margin-right: 0;
+}
+
+#p-cactions li.istalk a {
+ padding-right: .5em;
+}
+
+#p-cactions #ca-addsection a {
+ padding-left: .4em;
+ padding-right: .4em;
+}
+
+/* offsets to distinguish the tab groups */
+li#ca-talk {
+ margin-right: 1.6em;
+}
+
+li#ca-watch,
+li#ca-unwatch,
+li#ca-varlang-0,
+li#ca-print {
+ margin-left: 1.6em;
+}
+
+#p-cactions .pBody {
+ font-size: 1em;
+ background-color: transparent;
+ color: inherit;
+ border-collapse: inherit;
+ border: 0;
+ padding: 0;
+}
+
+#p-cactions li a {
+ text-transform: lowercase;
+}
+
+#p-lang {
+ position: relative;
+ z-index: 3;
+}
+
+/* Override text-transform on languages where capitalization is significant */
+.capitalize-all-nouns .portlet h3,
+.capitalize-all-nouns #p-personal ul,
+.capitalize-all-nouns #p-cactions ul li a {
+ text-transform: none;
+}
+
+/* TODO: #t-iscite is only used by the Cite extension, come up with some
+ * system which allows extensions to add to this file on the fly
+ */
+#t-ispermalink, #t-iscite {
+ color: #999;
+}
+
+/*
+** footer
+*/
+div#footer {
+ background-color: white;
+ border-top: 1px solid #fabd23;
+ border-bottom: 1px solid #fabd23;
+ margin: .6em 0 1em 0;
+ overflow: hidden;
+ padding: .4em 0 .3em 0;
+ text-align: center;
+ font-size: 90%;
+}
+
+div#footer li {
+ display: inline;
+ margin: 0 1.3em;
+}
+
+#f-poweredbyico, #f-copyrightico {
+ margin: 0 8px;
+ position: relative;
+ top: -2px; /* Bump it up just a tad */
+}
+
+#f-poweredbyico {
+ float: right;
+ height: 1%;
+}
+
+#f-copyrightico {
+ float: left;
+ height: 1%;
+}
+
+.mw-htmlform-submit {
+ font-weight: bold;
+ padding-left: .3em;
+ padding-right: .3em;
+ margin-right: 2em;
+}
+
+/* js pref toc */
+#preftoc {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ clear: both;
+}
+
+#preftoc li {
+ background-color: #f0f0f0;
+ color: #000;
+}
+
+#preftoc li {
+ margin: 1px -2px 1px 2px;
+ float: left;
+ padding: 2px 0 3px 0;
+ border: 1px solid #fff;
+ border-right-color: #716f64;
+ border-bottom: 0;
+ position: relative;
+ white-space: nowrap;
+ list-style-type: none;
+ list-style-image: none;
+ z-index: 3;
+}
+
+#preftoc li.selected {
+ font-weight: bold;
+ background-color: #f9f9f9;
+ border: 1px solid #aaa;
+ border-bottom: none;
+ cursor: default;
+ top: 1px;
+ padding-top: 2px;
+ margin-right: -3px;
+}
+
+#preftoc > li.selected {
+ top: 2px;
+}
+
+#preftoc a,
+#preftoc a:active {
+ display: block;
+ color: #000;
+ padding: 0 .7em;
+ position: relative;
+ text-decoration: none;
+}
+
+#preftoc li.selected a {
+ cursor: default;
+ text-decoration: none;
+}
+
+#preferences {
+ margin: 0;
+ border: 1px solid #aaa;
+ clear: both;
+ padding: 1.5em;
+ background-color: #F9F9F9;
+}
+
+.prefsection {
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+
+.prefsection legend {
+ font-weight: bold;
+}
+
+.prefsection table, .prefsection legend {
+ background-color: #F9F9F9;
+}
+
+.mainLegend {
+ display: none;
+}
+
+td.htmlform-tip {
+ font-size: x-small;
+ padding: .2em 2em;
+ color: #666;
+}
+
+.preferences-login {
+ clear: both;
+ margin-bottom: 1.5em;
+}
+
+.prefcache {
+ font-size: 90%;
+ margin-top: 2em;
+}
+
+#userloginprompt, #languagelinks {
+ font-size: 85%;
+}
+
+#login-sectiontip {
+ font-size: 85%;
+ line-height: 1.2;
+ padding-top: 2em;
+}
+
+#userloginlink a, #wpLoginattempt, #wpCreateaccount {
+ font-weight: bold;
+}
+
+/**
+ * This was originally added by Gabriel Wicke in r3681 (committed on 25 May 2004)
+ * with the commit message "tweaks to page history".
+ * Unlike the other IE/Mac fixes that used to be present here, this seems to get
+ * applied on more modern browsers, so let's keep it here until someone has the
+ * time to properly test it out.
+ */
+#pagehistory li.selected {
+ position: relative;
+}
+
+.redirectText {
+ font-size: 150%;
+ margin: 5px;
+}
+
+div.patrollink {
+ clear: both;
+}
+
+.sharedUploadNotice {
+ font-style: italic;
+}
+
+span.updatedmarker {
+ color: black;
+ background-color: #0f0;
+}
+
+.editExternally {
+ border: 1px solid gray;
+ background-color: #ffffff;
+ padding: 3px;
+ margin-top: 0.5em;
+ float: left;
+ font-size: small;
+ text-align: center;
+}
+
+.editExternallyHelp {
+ font-style: italic;
+ color: gray;
+}
+
+.toggle {
+ margin-left: 2em;
+ text-indent: -2em;
+}
+
+/* @bug 1714 */
+input#wpSave,
+input#wpDiff {
+ margin-right: 0.33em;
+}
+
+#wpSave {
+ font-weight: bold;
+}
+
+/* noarticletext */
+div.noarticletext {
+ border: 1px solid #ccc;
+ background: #fff;
+ padding: .2em 1em;
+ color: #000;
+}
+
+div#searchTargetContainer {
+ left: 10px;
+ top: 10px;
+ width: 90%;
+ background: white;
+}
+
+div#searchTarget {
+ padding: 3px;
+ margin: 5px;
+ background: #F0F0F0;
+ border: solid 1px blue;
+}
+
+div#searchTarget ul li {
+ list-style-type: none;
+ list-style-image: none;
+}
+
+div#searchTarget ul li:before {
+ color: orange;
+ content: "\00BB \0020";
+}
+
+div#searchTargetHide {
+ float: right;
+ border: solid 1px black;
+ background: #DCDCDC;
+ padding: 2px;
+}
+
+#powersearch p {
+ margin-top: 0;
+}
+
+div.multipageimagenavbox {
+ border: solid 1px silver;
+ padding: 4px;
+ margin: 1em;
+ background: #f0f0f0;
+}
+
+div.multipageimagenavbox div.thumb {
+ border: none;
+ margin-left: 2em;
+ margin-right: 2em;
+}
+
+div.multipageimagenavbox hr {
+ margin: 6px;
+}
+
+table.multipageimage td {
+ text-align: center;
+}
+
+.templatesUsed {
+ margin-top: 1.5em;
+}
+
+.mw-summary-preview {
+ margin: 0.1em 0;
+}
+
+/* Friendlier slave lag warnings */
+div.mw-lag-warn-normal,
+div.mw-lag-warn-high {
+ padding: 3px;
+ text-align: center;
+ margin: 3px auto;
+}
+
+div.mw-lag-warn-normal {
+ border: 1px solid #FFCC66;
+ background-color: #FFFFCC;
+}
+
+div.mw-lag-warn-high {
+ font-weight: bold;
+ border: 2px solid #FF0033;
+ background-color: #FFCCCC;
+}
+
+.MediaTransformError {
+ background-color: #ccc;
+ padding: 0.1em;
+}
+
+.MediaTransformError td {
+ text-align: center;
+ vertical-align: middle;
+ font-size: 90%;
+}
+
+/* Sometimes people don't want personal tools to be lowercase! */
+.no-text-transform {
+ text-transform: none;
+}
+
+/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
+.tipsy {
+ font-size: 127%;
+}
+
+/* mediawiki.notification */
+.skin-monobook .mw-notification {
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
+}
diff --git a/skins/ArchLinux/print.css b/skins/ArchLinux/print.css
new file mode 100644
index 00000000..a2780f7a
--- /dev/null
+++ b/skins/ArchLinux/print.css
@@ -0,0 +1,3 @@
+#archnavbar {
+ display: none;
+}
diff --git a/skins/ArchLinux/required.gif b/skins/ArchLinux/required.gif
new file mode 100644
index 00000000..bd719769
--- /dev/null
+++ b/skins/ArchLinux/required.gif
Binary files differ
diff --git a/skins/ArchLinux/skin.json b/skins/ArchLinux/skin.json
new file mode 100644
index 00000000..e45a8341
--- /dev/null
+++ b/skins/ArchLinux/skin.json
@@ -0,0 +1,42 @@
+{
+ "name": "ArchLinux",
+ "author": [ "Pierre Schmitz" ],
+ "url": "https://www.parabola.nu",
+ "description": "MediaWiki skin based on MonoBook, customized for Parabola",
+ "license-name": "GPL-2.0+",
+ "type": "skin",
+ "ValidSkinNames": {
+ "archlinux": "ArchLinux"
+ },
+ "SkinOOUIThemes": {
+ "archlinux": "Apex"
+ },
+ "ResourceModules": {
+ "skins.archlinux.styles": {
+ "position": "top",
+ "styles": {
+ "main.css": {
+ "media": "screen"
+ },
+ "archnavbar.css": {
+ "media": "screen"
+ },
+ "arch.css": {
+ "media": "screen"
+ },
+ "print.css": {
+ "media": "print"
+ }
+ }
+ }
+ },
+ "ResourceFileModulePaths": {
+ "localBasePath": "",
+ "remoteSkinPath": "ArchLinux"
+ },
+ "AutoloadClasses": {
+ "SkinArchLinux": "SkinArchLinux.php",
+ "ArchLinuxTemplate": "ArchLinuxTemplate.php"
+ },
+ "manifest_version": 1
+}
diff --git a/skins/ArchLinux/user.gif b/skins/ArchLinux/user.gif
new file mode 100644
index 00000000..34b4839d
--- /dev/null
+++ b/skins/ArchLinux/user.gif
Binary files differ
diff --git a/skins/ArchLinux/wiki-indexed.png b/skins/ArchLinux/wiki-indexed.png
new file mode 100644
index 00000000..799ebac8
--- /dev/null
+++ b/skins/ArchLinux/wiki-indexed.png
Binary files differ
diff --git a/skins/ArchLinux/wiki.png b/skins/ArchLinux/wiki.png
new file mode 100644
index 00000000..8c421183
--- /dev/null
+++ b/skins/ArchLinux/wiki.png
Binary files differ