Module:URL
- Аԥсшәа
- Afrikaans
- Алтай тил
- አማርኛ
- Aragonés
- Ænglisc
- العربية
- الدارجة
- مصرى
- অসমীয়া
- Asturianu
- Авар
- Azərbaycanca
- تۆرکجه
- Башҡортса
- Basa Bali
- Boarisch
- Bikol Central
- Беларуская
- Беларуская (тарашкевіца)
- Български
- भोजपुरी
- Banjar
- বাংলা
- Brezhoneg
- Bosanski
- Буряад
- 閩東語 / Mìng-dĕ̤ng-ngṳ̄
- Нохчийн
- Cebuano
- Chamoru
- کوردی
- Corsu
- Čeština
- Чӑвашла
- Dansk
- Ελληνικά
- English
- Esperanto
- Español
- Euskara
- فارسی
- Fulfulde
- Suomi
- Føroyskt
- Français
- Arpetan
- Galego
- گیلکی
- Avañe'ẽ
- गोंयची कोंकणी / Gõychi Konknni
- ગુજરાતી
- Hausa
- 客家語 / Hak-kâ-ngî
- עברית
- हिन्दी
- Fiji Hindi
- Hrvatski
- Հայերեն
- Արեւմտահայերէն
- Bahasa Indonesia
- Ilokano
- ГӀалгӀай
- Ido
- Íslenska
- 日本語
- Jawa
- ქართული
- Qaraqalpaqsha
- Kumoring
- Қазақша
- ಕನ್ನಡ
- 한국어
- Kurdî
- Коми
- Кыргызча
- Лакку
- Ladin
- ລາວ
- Lietuvių
- Latgaļu
- Latviešu
- Madhurâ
- Basa Banyumasan
- Мокшень
- Malagasy
- Олык марий
- Minangkabau
- Македонски
- മലയാളം
- Монгол
- ဘာသာမန်
- मराठी
- Кырык мары
- Bahasa Melayu
- Mirandés
- မြန်မာဘာသာ
- Эрзянь
- Nāhuatl
- नेपाली
- नेपाल भाषा
- Nederlands
- Norsk nynorsk
- Norsk
- Livvinkarjala
- ଓଡ଼ିଆ
- Ирон
- ਪੰਜਾਬੀ
- Pangasinan
- پښتو
- Português
- Română
- Русский
- Русиньскый
- संस्कृतम्
- Саха тыла
- ᱥᱟᱱᱛᱟᱲᱤ
- Scots
- سنڌي
- Srpskohrvatski / српскохрватски
- တႆး
- සිංහල
- Simple English
- سرائیکی
- Slovenščina
- Српски / srpski
- Sunda
- Svenska
- ꠍꠤꠟꠐꠤ
- Sakizaya
- தமிழ்
- తెలుగు
- Тоҷикӣ
- ไทย
- ትግርኛ
- Türkmençe
- Tagalog
- Tolışi
- Setswana
- Türkçe
- Татарча / tatarça
- Удмурт
- Українська
- اردو
- Oʻzbekcha / ўзбекча
- Tiếng Việt
- Volapük
- Winaray
- 吴语
- ייִדיש
- 中文
- 閩南語 / Bân-lâm-gú
- 粵語
- IsiZulu
Appearance
From Meta, a Wikimedia project coordination wiki
The above documentation is transcluded from Module:URL/doc. (edit | history)
Editors can experiment in this module’s sandbox (create | mirror) and testcases (create) pages.
Please add categories to the /doc subpage. Subpages of this module.
Editors can experiment in this module’s sandbox (create | mirror) and testcases (create) pages.
Please add categories to the /doc subpage. Subpages of this module.
-- -- This module implements {{URL}} -- -- 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{ title = 'tlx', args = { 'URL', "''example.com''", "''optional display text''" } } 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[S] URL without the double slash, fix it. url = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3') local uri = safeUri(url) -- Handle URL's without a protocol and not protocol-relative, e.g. www.example.com/foo or www.example.com:8080/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 return mw.ustring.format('<span class="url">[%s %s]</span>', url, text) end function p.url(frame) local templateArgs = frame.args local url = templateArgs[1] or '' local text = templateArgs[2] or '' return p._url(url, text) end return p