在维基标记模板中URL中的Escape | (竖线/管道符号)

16

在模板维基标记中的表格中,是否有可能保留非标准字符“|”,并将其作为URL的一部分而不进行转义?

{| class="wikitable"
|-
! Test in Table
|-
| [http://example.org/{var1}|{var2}|{var3} Example]
|}

在表格单元格中应该呈现出类似这样的东西。
[http://example.org/1|2|3 Example]

并链接到

http://example.org/1|2|3

保留垂直条并不像这样编码

http://example.org/1%7C2%7C3

第三方网站要求在URL中包含«|»,我希望在服务器端修复URL处理,但目前这不在我的掌控范围内。有没有任何解决方法?

我尝试了以下方法:

[http://example.org/1|2|3 Example] doesn't work within a table   
[http://example.org/{var1}|{var2}|{var3} Example] works in tables

但是,这两种方式都创建了有效的标准URL,其中垂直条被正确地编码为%7C,就像上面一样,我希望避免这种情况。

3
你是指在模板的代码中还是在模板调用中?对我来说,| 在模板代码中运行正常,%7C 在模板参数中也运行正常。 - svick
我在模板代码中使用它,这种情况下,我猜它是否是模板都无所谓。最终的输出URL必须包含纯 | 字符。目前,| 打破了链接的解析。 - mxfh
错过了,你是对的,这个可以在表格外工作,但仍然会给出URL编码的字符串。 - mxfh
2
看一下这个英文维基模板。它通常用于将"|"字符放入表格中。你的链接将会像[http://example.org/1{{!}}2{{!}}3 Example]这样,而不是[http://example.org/1|2|3 Example],并且仍然可以在表格内正常工作。 - skalee
2个回答

6

在没有额外扩展支持的情况下,外部链接只能通过 [url description] 语法或纯 URL 生成。虽然如 skalee 所述,你可以使用 {{!}} 或其他方法来防止管道符号被解释为 Wikitext 语法的一部分,但最终链接始终会被编码。

没有扩展帮助的话,快速解决方案是使用 JavaScript。(如果在自己的 MediaWiki 站点上,那将非常简单。 MediaWiki:Common.js 包含会为所有用户加载的 JavaScript)。


谢谢,显然目前在维基百科上没有办法做到这一点。无论如何,通过切换到更常见的字符,问题已得到解决。 - mxfh

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接