Extension:CSS/zh

Category:GPL licensed extensions/zh
CSS
Category:Stable extensions/zh
Category:Parser function extensions/zh
描述 提供一个用于在文章添加CSS文件、文章或规则的解析器函数。
作者
最新版本 3.5.0
MediaWiki >= 1.40.0
GNU通用公眾授權條款2.0或更新版本
下載 Category:Extensions in Wikimedia version control/zh
organicdesign.nz
  • $wgCSSPath
  • $wgCSSIdentifier
季度下載量 78 (Ranked 34th)
前往translatewiki.net翻譯CSS
問題 开启的任务 ·
Category:All extensions/zh

CSS擴展允許將CSS樣式表載入到特定文章中。CSS樣式表可以是另一個文檔,也可以是直接在解析器函數中定義的規則。

用法

例如,如果你有一個名為“MyStyles.css”的CSS樣式表,它們是用於页面“MyFancyUserPage”的樣式,你可以為後者添加以下解析器函數語法:

{{#css:MyStyles.css}}

再者,如果“MyStyles.css”是位於/wiki/skins目錄之下的文件,那麼路徑應該也被寫進去,如下所示。請注意,檔案路徑必須是帶有文件根目錄斜杠的絕對路徑,以將其與檔名區分開來。

{{#css:/skins/MyStyles.css}}

或者,CSS規則可以直接包含在解析器函數(inline)中,如下例所示:

{{#css:
  body {
    background: yellow;
    font-size: 20pt;
    color: red;
  }
}}

安裝

  • 下载,并将解压后的CSS移动到extensions/目录中。
    开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CSS
  • 只有從git安裝才Composer来安装PHP依赖,发行composer install --no-dev目录。 (参见T173141了解潜在问题。)Category:Extensions requiring Composer with git/zh
  • 将下列放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'CSS' );
    
  • Yes 完成 – 在您的wiki上Special:Version,以验证已成功安装


你可以为扩展文件设置基本URL,可选。

$wgCSSPath = false;  # 默认,与$wgScriptPath有关
$wgCSSPath = '';  # 与服务器根基(root)有关
$wgCSSPath = 'https://example.org/stylesheets';  # 与不同的站点有关

作为页面CSS替代使用

此前有个Extension:PageCSS(现已存档),其使用<css></css>标签而非#css:解析器函数。 此扩展可以完成PageCSS扩展提供的大部分功能,但语法不兼容。 避免破坏仍然使用旧的<css>标签的现有页面的一种方法是在同一个wiki上同时使用Extension:CSSExtension:NewPageCSS

另一种解决方案(如果您只想使用此扩展,但具有需要Extension:PageCSS的现有内容)是将此简单函数保存为一个PHP文件,并将其包含在LocalSettings.php中以重新映射<css>到#css:

<?php

// 一个重新映射<css></css>标签到{{#css:}}的简易解析器函数扩展

// 用于在现有wiki上安装https://www.mediawiki.org/wiki/Extension:CSS并替换Extension:NewPageCSS

$wgHooks['ParserFirstCallInit'][] = 'wfCSSParserStubInit';
 
// 将我们的回调函数挂接到解析器中
function wfCSSParserStubInit( Parser $parser ) {

        // 当解析器遇到<css>标签时,它将执行这个简易wfCSSTagRender函数(下方)并调用{{#css:}}解析器
        $parser->setHook( 'css', 'wfCSSTagRender' );
        return true;
}
// 输出<css>标签
function wfCSSTagRender( $input, array $args, Parser $parser, PPFrame $frame ) {

        // 一个简易函数,只需将用户提供的输入文本直接重定向到{{#css:}}解析器函数,即可将其重新解析为wikitext
        $output = $parser->recursiveTagParse('{{#css:' . $input . '}}', $frame);
        return $output;
}

此时,先前的PageCSS(或NewPageCSS)扩展可能会从您的配置中删除。现在<css>变成了#css:并且(如果您已经启动并运行了此CSS扩展)将按照任何其它CSS扩展一样的方式运行。

改变特定页面颜色或背景的问题

使用解析器函数使用另一个页面的CSS不能够用于改变页面的颜色或背景,然而,使用解析器函数在页面自身可以允许改变背景。 若要解决这个问题,通过嵌入来加载CSS,就不会导致无法改变页面背景的问题。

漏洞

讨论页

參見

Category:User interface extensions/zh Category:Script embedding extensions/zh Category:CSS/zh
Category:All extensions/zh Category:CSS/zh Category:Extensions in Wikimedia version control/zh Category:Extensions included in Miraheze/zh Category:Extensions included in MyWikis/zh Category:Extensions included in WikiForge/zh Category:Extensions requiring Composer with git/zh Category:GPL licensed extensions/zh Category:ParserFirstCallInit extensions/zh Category:Parser function extensions/zh Category:RawPageViewBeforeOutput extensions/zh Category:Script embedding extensions/zh Category:Stable extensions/zh Category:User interface extensions/zh