如果想要删除MediaWiki网站的一个或多个页面的标题,可以使用不同的方法——仅隐藏某个页面或多个页面的标题,或者是对选定命名空间的所有页面执行此操作,甚至是隐藏站点上所有页面的标题。
有两种简单的方法可以实现上述效果:
- 依靠魔术字DISPLAYTITLE的帮助
- 通过CSS进行修改
在接下来的文章中,我们将介绍这两种方法。
一、依靠魔术字DISPLAYTITLE的帮助
在MediaWiki中,你可以使用所谓的魔术字(Magic Words)来执行各种操作。而想要隐藏标题的话,你需要用到魔术字DISPLAYTITLE。通过本方法,你可以隐藏每一页标题。任何页面使用的代码都是相同的,并且无论使用何种主题(Skin),代码都是相同的。这意味着,一旦你对页面进行了更改,它将适用于任何主题。
但是,如果你必须删除所有页面或大量页面的标题,则此方法可能不太适合,因为你必须编辑每个页面。
要隐藏页面标题,请编辑该页面,然后在其内容中添加以下内容:
{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}
保存更改后,标题将被删除。
PS:当然,你可以将上述代码做成模板然后加入到你想要隐藏的页面中,而一旦哪一天你需要批量修改的时候,至少可以直接修改模板(比如清空所有代码,但不是删除模板)而不必去检索有哪些页面中被加入了上述代码。
二、通过CSS进行修改
通过简单的CSS(层叠样式表)修改,你可以隐藏特定页面,命名空间中的所有页面或站点上所有页面的标题。无论哪种情况,你都必须使用以下形式的代码:
element { display: none; }
其中element必须替换为在主题中标识标题的标签和/或ID。这意味着,如果在特定外观中使用了不同的ID,则适用于一种主题的修改可能不适用于另一种主题。
你可以通过将CSS修改添加到网站上的MediaWiki:Common.css页面的内容中(例如,yourdomain.com/MediaWiki:Common.css)来进行修改。这将影响所有使用相同ID的主题。如果只希望特定主题受到影响,则可以仅将修改添加到该主题的CSS页面(例如,Vector主题为MediaWiki:Vector.css)。有关进行CSS更改的更多信息,请查看有关如何在MediaWiki中进行CSS修改的文章。你还可以在其中找到有关如何在使用的主题中定义标题的标记(以及ID或类)的提示。
现在,我们将讨论如何删除每个命名空间或每个页面的所有页面的标题。
1. 隐藏所有页面的标题
以下CSS修改适用于大多数主题:
h1 {display:none; }
它将与内置的Vector,MonoBook,Modern和Cologne Blue主题或与其他许多主题配合使用。通常,标签h1用于定义页面标题。但是,在某些主题中,可能还有用h1定义的其他文本元素(例如,网站标题)。在这种情况下,修改会影响正常的显示。
如果上述修改影响你使用的主题中的其他元素,则可以在代码中添加例如页面内容的ID或类。这将进一步限制代码的范围。这些ID是针对特定主题的。一些主题使用相同的主题,但在另一些主题中则可能不同。我们将以内置的主题Vector,MonoBook,Modern,Cologne Blue为示例(尽管代码h1 {display:none;}
就可以很好的实现要求)。
- Vector和MonoBook:
#content h1 {display:none; }
- Modern:
#mw_header h1 {display:none; }
- Cologne Blue:
#article h1 {display:none; }
2. 隐藏每个命名空间的标题
要隐藏特定命名空间的所有页面的标题,只需要在代码前面添加用于删除所有页面的标题名称。可以通过以下方式完成:
.ns-1 h1 {display:none; }
上述示例中,命名空间ID为1(这是包含条目讨论页面的Talk命名空间)的页面标题将不再显示。你只需要输入要应用更改的命名空间的ID号。有关默认命名空间及其ID号的列表,请查看MediaWiki命名空间的参考列表。
3. 每页隐藏标题
如果决定使用CSS隐藏特定页面的标题,请在删除所有页面标题的通用代码之前,添加如下代码:
body.page-Main_Page h1 {display:none; }
将删除标题为页面的标题主页(这是默认主页)。只需将Main_Page替换为特定页面的名称即可。在单词之间加下划线_。如果页面属于除Main命名空间之外的其他命名空间,那么你还必须在页面标题中添加命名空间前缀(例如body.page-Talk_Main_Page h1 {display:none;}
将删除讨论页面的标题与主页相关联)。