翻訳と辞書
Words near each other


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

モジュール:URL : ウィキペディア日本語版
モジュール:URL
--
-- This module implements
--
-- See unit tests at Module:URL/tests
local p =

function trim(s)
return (mw.ustring.gsub(s, "^%s
*(.-)%s
*$", "%1"))
end
function safeUri(s)
local success, uri = pcall(function()
return mw.uri.new(s)
end)
if success then
return uri
end
end
function p._url(url, text)
url = trim(url or '')
text = trim(text or '')

if url == '' then
if text == '' then
return mw.getCurrentFrame():expandTemplate
else
return text
end
end

-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.
url = mw.ustring.gsub(url, '%s', function(s) return mw.uri.encode(s, 'PATH') end)

-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error
url = mw.ustring.gsub(url, '#$', '')
url = mw.ustring.gsub(url, '%?$', '')

-- If it's an HTTP URL without the double slash, fix it.
url = mw.ustring.gsub(url, '^(?):(/?)()', 'http%1://%3')
-- Handle URLs from Wikidata of the format http://
url = mw.ustring.gsub(url, '^(?)://', 'http%1://')

local uri = safeUri(url)

-- Handle URL's without a protocol and URL's that are protocol-relative,
-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo
if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= '//' then
url = 'http://' .. url
uri = safeUri(url)
end

if text == '' then
if uri then
if uri.path == '/' then uri.path = '' end

local port = ''
if uri.port then port = ':' .. uri.port end

text = mw.ustring.lower(uri.host or '') .. port .. (uri.relativePath or '')
else -- URL is badly-formed, so just display whatever was passed in
text = url
end
end

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「モジュール:URL」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.