.mw-parser-output .documentation,.mw-parser-output .documentation-metadata{border:1px solid var(--border-color-base,#a2a9b1);background-color:#ecfcf4;color:inhe
local p = {}
function p.test(frame)
local url = frame.args[1]
local count = 0
local urlEnc = {}
local delim = ""
for part in mw.text.gsplit(url, "[;/?:@&=+$,#]") do
urlEnc[#urlEnc + 1] = delim
urlEnc[#urlEnc + 1] = mw.uri.encode(mw.uri.decode(part, "PATH"), "PATH")
count = count + #part + 1
delim = url:sub(count, count)
end
return table.concat(urlEnc)
end
local function split(str, del, from)
local i, j
from = from or 1
i, j = str:find(del, from)
if i and j then
return str:sub(1, i - 1), str:sub(j + 1), i, j
end
return str
end
function p.test2(frame)
local i, j, urlSplit, urlPath
local url = frame.args[1]
local urlPre = ""
i, j = url:find("//", 1, true)
if i == 1 or (i and i > 1 and url:sub(i - 1, i - 1) == ':') then
urlSplit = {split(url, "[/?#]", j + 1)}
urlPre = urlSplit[1]
if urlSplit[2] then
urlPath = url:sub(urlSplit[3], urlSplit[4]) .. urlSplit[2]
else
urlPath = ""
end
else
urlPath = url
end
local count = 0
local pathEnc = {}
local delim = ""
for part in mw.text.gsplit(urlPath, "[;/?:@&=+$,#]") do
pathEnc[#pathEnc + 1] = delim
pathEnc[#pathEnc + 1] = mw.uri.encode(mw.uri.decode(part, "PATH"), "PATH")
count = count + #part + 1
delim = urlPath:sub(count, count)
end
return urlPre .. table.concat(pathEnc)
end
return p
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.