帮助:链接的图像

来自 PostgreSQL wiki
跳转到导航跳转到搜索

图像在 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|&nbsp;]]</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|&nbsp;]]</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}}}|&nbsp;&nbsp;&nbsp;]]</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 /> 添加到允许的标签列表。

另请参见