settlement Short Description

Эта страница недоступна на других языках.


--generates auto short description for use in infobox settlement local p = {} p.categories = "" local plain = require('Module:Plain text')._main local getArgs = require('Module:Arguments').getArgs local tableTools = require ('Module:TableTools')  function p.reverseTable (init) init[1], init[3] = init[3], init[1] return init end  --Display short description using {{short description}} function p.shortdesc(text, frame) return frame:expandTemplate{title = 'Short description', args = {text, 'noreplace'}} end  function p.category (cattype) local category = string.format('[[Category:Infobox settlement pages with bad %s]]', cattype) if category then p.categories = p.categories..category end --categorize end  --sanity and other checks function p.validate (parameter, cat) if not parameter then return nil end parameter = parameter:gsub('%b()', '') --remove things in brackets as etxtraneous information    :gsub('%s+', ' ') --fix possible extra spaces from previous cleanup    :gsub('^%s+', '') --trim spaces from beginning    :gsub('%s+$', '') --trim spaces from end if parameter:match("[,;]") or not parameter:match("%a") then --must have some letters, ignore if multiple types/subdivions if cat then p.category (cat) end return nil end if (parameter == "") then return nil end return parameter end  --removes redundancy like "England, United Kingdom" and fixes issues like "Foo in United States" (to "Foo in the United States") --also used in Module:Type in location function p.cleanupLoc (location) if location == "" then return nil end local replacements = { ["England, United Kingdom"] =  "England", ["Scotland, United Kingdom"] =  "Scotland", ["Wales, United Kingdom"] =  "Wales", ["New York City, New York, United States"] =  "New York City", ["^United States$"] = "the United States", ["London, United Kingdom"] = "London", ["London, England"] = "London" } for i, v in pairs(replacements) do  location = location:gsub(i, v) --series of replacements end return location end  function p.main(frame) local categories = "" local subdivisions = {} local args = getArgs (frame, {frameOnly = true}) local settlement_type = p.validate(plain(args[1]), "settlement type") or "Place" local short_description = plain(args[2]) subdivisions[1] = p.validate(plain(args[3])) subdivisions[2] = p.validate(plain(args[4])) subdivisions[3] = p.validate(plain(args[5]))  if short_description then if (short_description == 'no') then return else return p.shortdesc(short_description, frame) end end  if not(subdivisions[3] and (string.find(settlement_type, '[nN]eighbo[u]?rhood') or string.find(settlement_type, '[sS]uburb'))) then subdivisions[3] = nil --only display the third subdivision_type if suburb or neighborhood end  for x, y in ipairs (subdivisions) do if y then if string.find(settlement_type, y, 1, true) then --if the subdivision is found within the settlement type subdivisions[x] = nil --don't display redundancy p.category ("settlement type") end if y == mw.title.getCurrentTitle().text then --if the title is the same as one of the subdivisions subdivisions[x] = nil --don't display redundancy end end end  local location = table.concat(tableTools.compressSparseArray(p.reverseTable(subdivisions)), ', ')  location = p.cleanupLoc (location)  if location then location =  " in " .. location else location = "" end  return p.shortdesc(settlement_type..location, frame)..p.categories end  return p 

Tags:

🔥 Trending searches on Wiki Аԥсуа:

793КурувДе Голль, ШарльТунисАџьар ҞаԥшьЕвропа1870Обама, БаракАкириллица18401595Смыр, Витали Қьазым-иԥа20002020197019821960Жәабранмза 121519ГәылрыԥшьФранциаВан Гог, ВинсентМшаԥымзаАекологиаАрдешенЖәабранмза 9Мшаԥымза 28Аԥсуа алфавитЖәабранмза 15Аҳәынҭқаррақәа рсиаЕрмантәылаИрландиа19371953Афон ҾыцАӷарраАладатәи КореиаАмҽышаЕреван42719921917Еизенхауер, Дуаиҭ ДевидБырзентәыла1499АлымЛос-Анџьелес2013693Аҟабарда бызшәаЦәыббрамза 20Алтаи бызшәақәаԤхынгәымза 161955Багаԥшь, Сергеи Уасил-иԥаАфранцыз бызшәа17041898Инсбрук 1976660Ауриа бызшәа🡆 More