帮助:链接的图像
图像在 MediaWiki wiki 中被设计为链接到描述页面,因此当用户点击图像时,许可信息、上传历史、贡献者和全分辨率版本都可立即提供给用户。实际上,MediaWiki 旨在防止手动操作 Wiki 代码中的图像,因为这可能会避免此操作:<img> 标记在 Sanitizer 中明确未列入白名单,background-image CSS 属性亦是如此。
但是,对于需要此类内容的用户,有多种解决方法。
正常安装
如果仅获得对 Wiki 的 sysop 访问权限,这是最佳选择。
站点 CSS
最简单的方法(如果对外部图像的要求是专门的,即限制在一页或一张图像),是将 CSS 规则添加到 MediaWiki:Common.css(或其他 CSS 文件,例如 MediaWiki:Skinname.css 或 /skins/skinname/main.css 等),为特定 class 对象的子链接提供背景图像。此方法也具有一定的安全性,因为它需要编辑全站 CSS 文件,这意味着只有系统管理员有权修改显示的图像。
例如(红色部分是需要根据每张图像进行配置的部分)
在 MediaWiki:Common.css 中
.imagelink_somename a { width:100px; height:100px; display:block; text-decoration:none; background-image: url("http://fullurltoimage") }
在你的 Wiki 代码中
<div class="imagelink_somename">[[Some link| ]]</div>
这会给链接提供指定的背景图像,以及图像的宽度和高度(你需要手动设置)。要查找已上传文件的存储位置,请转到图像描述页面,然后点击图像本身,并在地址栏中复制图像存储位置。
例如,图像:Wiki.png 的图像存储位置是 http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png(存储位置格式根据本地设置而异),宽度和高度应分别设置为 135px 和 135px。因此,要使用该徽标链接到此处的首页,可以在 MediaWiki:Common.css 中添加
.imagelink_wikilogo a { width:135px; height:135px; display:block; text-decoration:none; background-image: url("http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png") }
然后使用 Wiki 代码
<div class="imagelink_wikilogo">[[MediaWiki| ]]</div>
将给你
您还可以使用图片的缩略图,但请确保该缩略图已在其他地方使用,因为大多数安装都未配置为按需生成缩略图。
内联 CSS
您还可以尝试通过 CSS 在图片上覆盖一个不可见的链接,例如在 Template:Click 中所做的那样。典型的点击模板示例为
<div style="position: relative; width: {{{width}}}; height: {{{height}}}; overflow: hidden;"> <div style="position: absolute; top: 0px; left: 0px; font-size: 100px; overflow: hidden; line-height: 100px; z-index: 3;">[[{{{link}}}| ]]</div> <div style="position: absolute; top: 0px; left: 0px; z-index: 2;">[[Image:{{{image}}}|{{{width}}}|{{{link}}}]]</div> </div>
已知问题:它在仅文本浏览器、残障人士屏幕阅读器中不起作用,可能还有其他情况。使用 CSS 更改页面内容的技术还完全破坏了文章的 网络无障碍性,违反了 WAI 一级检查点。[1]
重定向
一个不够优雅的技巧是将图片说明页面重定向到目标。例如,Image:Wiki.png 将更改为内容
#REDIRECT [[MediaWiki]]
这样做有一些缺点
- 它并不总是起作用,有些安装/版本禁用了跨命名空间重定向。
- 图片出现在文章顶部。这是因为 MediaWiki 重定向并非真正的重定向,它们只是将目标页面的数据带到当前 URL,但在图片说明页面上,这在图片本身显示之后才进行。
- 它只能对每张图片执行一次。
本机与配置更改
如果您具有服务器访问权限,但不想安装任何扩展,这些解决方案可能适合您。
外部图片语法
如果您启用 $wgAllowExternalImages(它允许来自任何域的外部图片)或 $wgAllowExternalImagesFrom(它限制了域列表),那么任何人都可以轻松创建到“外部”图片的“外部”链接。外部仅仅意味着:使用完整 URL 而非本地链接,因此您可以本地链接,但您需要使用完整 URL。plainlinks 类用于移除“外部链接”图标
<span class="plainlinks">http://linktopage http://linktoimage</span>
例如,如果此处允许外部图片,您可以使用类似以下维基代码将 http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png 链接到 主页:
<span class="plainlinks">[{{fullurl:MediaWiki}} http://upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png]</span>
这样做不利于注册链接或图片使用,也不易于移植到分叉和镜像中。
原始 HTML
如果您启用 $wgRawHtml,您可以自由使用 <img> 标记,但此方法极不安全。
不过,也有一些扩展可以使其更安全,有关详细信息,请查看[2]。
其他选项
如果您愿意,可以执行一些更彻底的操作,如修改 /includes/Sanitizer.php(HTML 标签白名单所在位置),并将 <img /> 添加到允许的标签列表。