模組:Fullurl

本页使用了标题或全文手工转换
被永久保护的模块
维基百科,自由的百科全书
文档图示 模块文档[查看] [编辑] [历史] [清除缓存]

概要

由於技術限制,使用{{fullurl}}時皆須要把等號用{{=}}替換,或是寫成{{fullurl|title|2=a=b&c=d|3=文字}},因此寫了這個模板。

參數及使用方法

有幾個特殊參數:

參數 別名 意義
title 1 標題,未填寫時自動讀取當前頁面名。
text 2 連結文字,未填寫時自動讀取title的值。
onlyurl 不適用 只生成連結,不過如果是這這樣最好直接使用魔術字{{fullurl:params}}

其餘的參數皆會在生成的連結中生成形如參數名=值

範例

原始碼:
{{fullurl2|User:Example}}
結果:
User:Example

原始碼:
{{fullurl2|User:Example|示範用戶}}
結果:
示範用戶

原始碼:
{{fullurl2|Wikipedia:互助客栈/求助|action=edit&section=new&preload=Template:Sign}}

{{fullurl2|Wikipedia:互助客栈/求助|action=edit|section=new|preload=Template:Sign}}
結果:
Wikipedia:互助客栈/求助

原始碼:
{{fullurl2|Wikipedia:互助客栈/求助|action=edit&section=new&preload=Template:Sign|解決在維基百科中所遇疑難}}

{{fullurl2|Wikipedia:互助客栈/求助|action=edit|section=new|preload=Template:Sign|解決在維基百科中所遇疑難}}
結果:
解決在維基百科中所遇疑難

重定向

注意事项

模板编辑说明

參見

local p = {}
local yesno = require('Module:Yesno')
local mError = require('Module:Error').error

function p._fullurl(args)
	local paid = ''
	local title = args['title'] or args[1] or args['1'] or tostring(mw.title.getCurrentTitle())
	if title == '' then
		--不能讓title變空值,否則url會返回nil
		title = tostring(mw.title.getCurrentTitle())
	end
	local text = args['text'] or args[2] or args['1'] or title
	for k, v in pairs( args ) do
		if ((k == 'title') or (k == 1) or (k == '1') or (k == 'text') or (k == 2) or (k == '2') or (k == 'onlyurl') or (k == 'paid')) then
			if (k == 'paid') then
				if paid == '' then
					paid = mw.text.trim(v)
				else
					paid = paid .. '&' .. mw.text.trim(v)
				end
			end
		else
			if paid == '' then
				paid = k .. '=' .. mw.text.trim(v)
			else
				paid = paid .. '&' .. k .. '=' .. mw.text.trim(v)
			end
		end
	end
    local url = tostring(mw.uri.fullUrl(title,paid))
    local plainlink = '<span class="plainlinks">[' .. url .. ' ' .. text .. ']</span>'
    if (args['action'] == 'submit') then
    	return plainlink .. mError{'[[Module:Fullur]]錯誤:<code>|action=submin</code>不是有效的值,請使用<code>|action=edit</code>。'}
    else
    	if yesno(args['onlyurl']) then
    		return url
    	else
    		return plainlink
    	end
    end
end

function p.fullurl(frame)
	local args = {}
	for k, v in pairs( frame.args ) do
		args[k] = v
	end
	for k, v in pairs( frame:getParent().args ) do
		args[k] = v
	end
    return p._fullurl(args)
end

function p._fullurl2(title ,paid, text)
    return '<span class="plainlinks">[' .. tostring(mw.uri.fullUrl(title,paid)) .. ' ' .. text .. ']</span>'
end
--[=[
function p.hosturl ()
    return "//zh.wikipedia.org"
end

function p.scripturl ()
    return p.hosturl () .. "/w"
end

function p.index ()
    return p.scripturl () .. "/index.php"
end


function p.articlepath ()
    return p () .. "/wiki"
end


p["index.php"] = function ()
    return p.index ()
end

p["api.php"] = function ()
    return p.scripturl () .. "/api.php"
end

p["rest.php"] = function (frame)
    return p.scripturl () .. "/rest.php"
end
]=]--
return p