逃生| (Wiki竖条/管道)在Wiki标记模板中的URL中

时间:2012-05-11 16:48:25

标签: url escaping mediawiki url-encoding wiki-markup

是否有可能逃脱并保持非标准|字符在表格中的模板Wiki标记中的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,如上所述,我想阻止它。

2 个答案:

答案 0 :(得分:5)

外部链接不受其他扩展的支持,只能通过[url description]语法或纯URL本身生成。 虽然如skalee所述,您可以使用{{!}}或其他方法来防止管道符号被解释为Wikitext语法的一部分,最终链接将始终被编码。

如果没有扩展程序的帮助,快速解决方案就是JavaScript。 (如果它位于您自己的MediaWiki网站上,那将非常简单。MediaWiki:Common.js包含将为所有用户加载的JavaScript。)

答案 1 :(得分:0)

除了前面提到的语法 {{!}} 之外,还可以使用 {{pipe}} 或使用 <nowiki>text containing the character | (pipe)</nowiki> 来转义竖线/竖线。 也可以使用 HTML 实体 &#124;

来源:

https://en.wikipedia.org/wiki/Template:Cite_web#Title

https://en.wikipedia.org/wiki/Help:Table#Rendering_pipe_itself