Модуль:URL
![]() |
Бу модуль күп битләрдә кулланыла, шуңа күрә аны үзгәртүләр күп җирдә күренәчәк. Зинһар, барлык үзгәртүләрегезне баштан өйрәнү урынында татып карагыз. Үзгәртүләрне керткәнче, алар турында махсус биттә яки форумда бәхәс кузгату мөмкинлеге турында онытмагыз. |
![]() |
Бу модуль аеруча әһәмиятлеләргә керә. Ул бик күп җирдә кулланыла. Вандализм куркынычы аркасында ул аңа төзәтүләр кертү тыелды. |
Модуль {{URL}} калыпында кулланыла.
![]() |
Бу мәкалә төпчеге. Сез мәкаләне үзгәртеп һәм мәгълүмат өстәп, ![]() Мөмкинлек булса, бу искәрмәне төгәлрәккә алыштырырга кирәк. |
function startsWith( source, substring )
if mw.ustring.len( substring ) > mw.ustring.len( source ) then
return false
end
return mw.ustring.sub( source, 1, mw.ustring.len( substring ) ) == substring
end
p = {}
function formatUrlImpl( source, title )
local scheme, host, path;
source = mw.text.trim( source, "%[%] " )
local titleDelimeterPosition = mw.ustring.find( source, " ", 1 )
if titleDelimeterPosition then
if not title or title == "" then
title = mw.ustring.sub( source, titleDelimeterPosition + 1 )
end
source = mw.ustring.sub( source, 1, titleDelimeterPosition - 1 )
end
local hostStartPosition
local schemeDelimeterPosition = mw.ustring.find( source, "://", 1, true )
if schemeDelimeterPosition then
scheme = mw.ustring.sub( source, 1, schemeDelimeterPosition + 2)
hostStartPosition = schemeDelimeterPosition + 3
elseif mw.ustring.find( source, "^//", 1 ) then
scheme = "//"
hostStartPosition = 3
else
scheme = "http://"
source = scheme .. source
hostStartPosition = 8
end
if title then
return '[' .. source .. ' ' .. title .. ']';
end
local hostDelimeterPosition = mw.ustring.find( source, "/", hostStartPosition, true )
if hostDelimeterPosition then
host = mw.ustring.sub( source, hostStartPosition, hostDelimeterPosition - 1 )
if hostDelimeterPosition == mw.ustring.len( source ) then
path = nil
else
path = mw.ustring.sub( source, hostDelimeterPosition + 1 )
end
else
host = mw.ustring.sub( source, hostStartPosition )
end
-- post-split format options
if startsWith( host, 'www.' ) then
host = mw.ustring.sub( host, 5 )
end
host = mw.language.new( 'en' ):lc( host )
if path and path ~= '' and path ~= '/' then
return '[' .. source .. ' ' .. host .. '/' .. path .. ']';
else
return '[' .. source .. ' ' .. host .. ']';
end
end
function p.formatUrl( frame )
local url = frame.args[1] or '';
local title = frame.args[2] or '';
url = mw.text.trim( url )
title = mw.text.trim( title )
if url == '' then
return nil
end
if title == '' then
title = nil
end
return formatUrlImpl( url, title )
end
function p.formatUrlSingle( context, options, url )
url = mw.text.trim( url )
if url == '' then
return nil
end
local title = nil
if ( options['text'] and options['text'] ~= '' ) then
title = options['text']
end
return formatUrlImpl( url, title )
end
return p