Вікікнігі bewikibooks https://be.wikibooks.org/wiki/%D0%93%D0%B0%D0%BB%D0%BE%D1%9E%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%BD%D0%BA%D0%B0 MediaWiki 1.47.0-wmf.1 first-letter Мультымедыя Адмысловае Размовы Удзельнік Размовы з удзельнікам Вікікнігі Размовы пра Вікікнігі Файл Размовы пра файл MediaWiki Размовы пра MediaWiki Шаблон Размовы пра шаблон Даведка Размовы пра даведку Катэгорыя Размовы пра катэгорыю TimedText TimedText talk Модуль Размовы пра модуль Event Event talk Брытанская кухня 0 3401 8048 2026-05-06T21:04:17Z Jarash 1066 Новая старонка: «'''Кухня Злучанага Каралеўства''' знаходзіцца пад моцным уплывам месца знаходжаньня Брытаніі як астаўной нацыі непадалёк ад берагу мацерыковай Еўропы, блізка ад палярнага струменю, які прыводзіць да знакамітага непрадказальнага надвор’я і істотнай р...» 8048 wikitext text/x-wiki '''Кухня Злучанага Каралеўства''' знаходзіцца пад моцным уплывам месца знаходжаньня Брытаніі як астаўной нацыі непадалёк ад берагу мацерыковай Еўропы, блізка ад палярнага струменю, які прыводзіць да знакамітага непрадказальнага надвор’я і істотнай розніцы паміж порамі году, што прыводзіць да сувязі страў з пэўнай парой году, калі расліны з’яўляюцца і знікаюць з доступу. == Вядомыя стравы == * [[Рэцэпт:Пудынг|Пудынг]] * [[Рэцэпт:Рыба і чыпсы|Рыба і чыпсы]] {{Stub-meta |article = пра кухню | category = |image = P Food.png}} [[Катэгорыя:Нацыянальныя кухні]] 7g3idyf6e8x8ke642c2jrye4t9omrkr Модуль:Message box/configuration 828 3402 8049 2026-05-06T21:12:25Z Jarash 1066 Новая старонка: «-------------------------------------------------------------------------------- -- Канфігурацыя Message box -- -- -- -- Гэты модуль утрымлівае канфігурацыйныя звесткі для [[Module:Message box]]. -- ---------------------------------------------------------------------------...» 8049 Scribunto text/plain -------------------------------------------------------------------------------- -- Канфігурацыя Message box -- -- -- -- Гэты модуль утрымлівае канфігурацыйныя звесткі для [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Шаблоны:Шаблоны-паведамленні для артыкулаў', templateCategoryRequireName = true, templateErrorCategory = 'Шаблоны:Шаблоны-паведамленні для артыкулаў з прапушчанымі параметрамі', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '<small>[[en:w:Help:Maintenance template removal|Даведайцеся, як і калі прыбраць гэтае паведамленне]]</small>', templatestyles = 'Module:Message box/ambox.css' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true, templatestyles = 'Module:Message box/cmbox.css' }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false, templatestyles = 'Module:Message box/fmbox.css' }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox-license.svg' }, ["license-related"] = { class = 'imbox-license', image = 'Imbox-license.svg' }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg', imageNeedsLink = true }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes', templatestyles = 'Module:Message box/imbox.css' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true, templatestyles = 'Module:Message box/ombox.css' }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, templateCategory = 'Talk message boxes', templatestyles = 'Module:Message box/tmbox.css' } } o9msadej0zkewbxgmkv0ubdk91634qq Модуль:Category handler 828 3403 8050 2026-05-06T21:32:00Z Jarash 1066 Новая старонка: «-------------------------------------------------------------------------------- -- -- -- АПРАЦОЎШЧЫК КАТЭГОРЫЙ -- -- -- -- Гэты модуль рэалізуе шаблон {{category handler}} на мове Lua, -- --...» 8050 Scribunto text/plain -------------------------------------------------------------------------------- -- -- -- АПРАЦОЎШЧЫК КАТЭГОРЫЙ -- -- -- -- Гэты модуль рэалізуе шаблон {{category handler}} на мове Lua, -- -- з некалькімі паляпшэннямі: падтрымліваюцца ўсе прасторы назваў і ўсе -- -- псеўданімы прастораў назваў, імёны прастораў назваў чытаюцца -- -- аўтаматычна для лакальнай вікі. Гэты модуль патрабуе -- -- [[Модуль:Namespace detect]] і [[Модуль:Yesno]], якія павінны існаваць -- -- у лакальнай вікі. Ён можа быць сканфігураваны для розных вікі шляхам -- -- змянення знаэнняў у [[Модуль:Category handler/config]], і старонкі -- -- могуць быць занесеныя ў чорны спіс каб яны не траплялі ў катэгорыі -- -- выкарыстоўваючы [[Модуль:Category handler/blacklist]]. -- -- -- -------------------------------------------------------------------------------- -- Загрузка неабходных модуляў local yesno = require('Module:Yesno') -- Павольна загружаюцца рэчы, якія нам не заўсёды патрэбныя local mShared, mappings local p = {} -------------------------------------------------------------------------------- -- Дапоможныя функцыі -------------------------------------------------------------------------------- local function trimWhitespace(s, removeBlanks) if type(s) ~= 'string' then return s end s = s:match('^%s*(.-)%s*$') if removeBlanks then if s ~= '' then return s else return nil end else return s end end -------------------------------------------------------------------------------- -- Клас CategoryHandler -------------------------------------------------------------------------------- local CategoryHandler = {} CategoryHandler.__index = CategoryHandler function CategoryHandler.new(data, args) local obj = setmetatable({ _data = data, _args = args }, CategoryHandler) -- Задаць загаловак аб’екта do local pagename = obj:parameter('demopage') local success, titleObj if pagename then success, titleObj = pcall(mw.title.new, pagename) end if success and titleObj then obj.title = titleObj if titleObj == mw.title.getCurrentTitle() then obj._usesCurrentTitle = true end else obj.title = mw.title.getCurrentTitle() obj._usesCurrentTitle = true end end -- Задаць значэнни параметраў для падаўлення for _, key in ipairs{'nocat', 'categories'} do local value = obj:parameter(key) value = trimWhitespace(value, true) obj['_' .. key] = yesno(value) end do local subpage = obj:parameter('subpage') local category2 = obj:parameter('category2') if type(subpage) == 'string' then subpage = mw.ustring.lower(subpage) end if type(category2) == 'string' then subpage = mw.ustring.lower(category2) end obj._subpage = trimWhitespace(subpage, true) obj._category2 = trimWhitespace(category2) -- не выдаляць пустыя значэнні end return obj end function CategoryHandler:parameter(key) local parameterNames = self._data.parameters[key] local pntype = type(parameterNames) if pntype == 'string' or pntype == 'number' then return self._args[parameterNames] elseif pntype == 'table' then for _, name in ipairs(parameterNames) do local value = self._args[name] if value ~= nil then return value end end return nil else error(string.format( 'няправільны ключ канфігурацыі "%s"', tostring(key) ), 2) end end function CategoryHandler:isSuppressedByArguments() return -- Паглядзець, ці зададзены аргумент падаўлення катэгорыі. self._nocat == true or self._categories == false or ( self._category2 and self._category2 ~= self._data.category2Yes and self._category2 ~= self._data.category2Negative ) -- Праверыць, ці мы на падстаронцы, і паглядзець, ці падаўдяюцца катэгорыі -- на аснове нашага статусу падстаронкі. or self._subpage == self._data.subpageNo and self.title.isSubpage or self._subpage == self._data.subpageOnly and not self.title.isSubpage end function CategoryHandler:shouldSkipBlacklistCheck() -- Праверыць, ці аргументы падаўлення катэгорыі паказваюць, што нам -- трэба прапусціць праверку чорнага спісу. return self._nocat == false or self._categories == true or self._category2 == self._data.category2Yes end function CategoryHandler:matchesBlacklist() if self._usesCurrentTitle then return self._data.currentTitleMatchesBlacklist else mShared = mShared or require('Module:Category handler/shared') return mShared.matchesBlacklist( self.title.prefixedText, mw.loadData('Module:Category handler/blacklist') ) end end function CategoryHandler:isSuppressed() -- Даведацца, ці катэгорыі палаўляюцца аргументамі ці -- супадзеннем у чорным спісе. return self:isSuppressedByArguments() or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist() end function CategoryHandler:getNamespaceParameters() if self._usesCurrentTitle then return self._data.currentTitleNamespaceParameters else if not mappings then mShared = mShared or require('Module:Category handler/shared') mappings = mShared.getParamMappings(true) -- забірае карты з mw.loadData end return mShared.getNamespaceParameters( self.title, mappings ) end end function CategoryHandler:namespaceParametersExist() -- Даведацца, ці пазначаныя якія-небудзь параметры прасторы назваў. -- Мы выкарыстоўваем парадак "усё" --> параметры прасторы назваў --> "іншае" так, як -- гэта рабіў стары шаблон. if self:parameter('all') then return true end if not mappings then mShared = mShared or require('Module:Category handler/shared') mappings = mShared.getParamMappings(true) -- забірае карты з mw.loadData end for ns, params in pairs(mappings) do for i, param in ipairs(params) do if self._args[param] then return true end end end if self:parameter('other') then return true end return false end function CategoryHandler:getCategories() local params = self:getNamespaceParameters() local nsCategory for i, param in ipairs(params) do local value = self._args[param] if value ~= nil then nsCategory = value break end end if nsCategory ~= nil or self:namespaceParametersExist() then -- Існуюць параметры прасторны назваў - прасунутае выкарыстанне. if nsCategory == nil then nsCategory = self:parameter('other') end local ret = {self:parameter('all')} local numParam = tonumber(nsCategory) if numParam and numParam >= 1 and math.floor(numParam) == numParam then -- nsCategory цэлы ret[#ret + 1] = self._args[numParam] else ret[#ret + 1] = nsCategory end if #ret < 1 then return nil else return table.concat(ret) end elseif self._data.defaultNamespaces[self.title.namespace] then -- Параметры прасторы назваў не існуюць, простае выкарыстанне. return self._args[1] end return nil end -------------------------------------------------------------------------------- -- Экспарт -------------------------------------------------------------------------------- local p = {} function p._exportClasses() -- Выкарыстоўваецца для мэтаў тэставання. return { CategoryHandler = CategoryHandler } end function p._main(args, data) data = data or mw.loadData('Module:Category handler/data') local handler = CategoryHandler.new(data, args) if handler:isSuppressed() then return nil end return handler:getCategories() end function p.main(frame, data) data = data or mw.loadData('Module:Category handler/data') local args = require('Module:Arguments').getArgs(frame, { wrappers = data.wrappers, valueFunc = function (k, v) v = trimWhitespace(v) if type(k) == 'number' then if v ~= '' then return v else return nil end else return v end end }) return p._main(args, data) end return p n6cdtpludrtrnrsxubyco4xe4hhszxa Модуль:Category handler/data 828 3404 8051 2026-05-06T21:34:31Z Jarash 1066 Новая старонка: «-- Гэты модуль сабірае звесткі, якія неабходна перадаць у [[Модуль:Category handler]] з выкарыстаннем -- mw.loadData. Гэта ўключае канфігурацыныя звесткі і ці бягучая -- старонка супадае з назвай у чорным спісе. local data = require('Module:Category handler/config') local mShared = require('Module:Category handler/sh...» 8051 Scribunto text/plain -- Гэты модуль сабірае звесткі, якія неабходна перадаць у [[Модуль:Category handler]] з выкарыстаннем -- mw.loadData. Гэта ўключае канфігурацыныя звесткі і ці бягучая -- старонка супадае з назвай у чорным спісе. local data = require('Module:Category handler/config') local mShared = require('Module:Category handler/shared') local blacklist = require('Module:Category handler/blacklist') local title = mw.title.getCurrentTitle() data.currentTitleMatchesBlacklist = mShared.matchesBlacklist( title.prefixedText, blacklist ) data.currentTitleNamespaceParameters = mShared.getNamespaceParameters( title, mShared.getParamMappings() ) return data px0w60tjnnc8yfyhsloggd5ejtdzjh5 Модуль:Category handler/config 828 3405 8052 2026-05-06T21:56:37Z Jarash 1066 Новая старонка: «-------------------------------------------------------------------------------- -- Канфігурацыйныя звесткі для [[Модуль:Category handler]] -- -- Назвы параметраў у залежнасці ад мовы і значэнні могуць задавацца тут.-- -- Для карфігурацыі чорнага спісу, глядзіце [[Модуль:Category handler/blacklist]]...» 8052 Scribunto text/plain -------------------------------------------------------------------------------- -- Канфігурацыйныя звесткі для [[Модуль:Category handler]] -- -- Назвы параметраў у залежнасці ад мовы і значэнні могуць задавацца тут.-- -- Для карфігурацыі чорнага спісу, глядзіце [[Модуль:Category handler/blacklist]]. -- -------------------------------------------------------------------------------- local cfg = {} -- Не змяняйце гэты радок. -------------------------------------------------------------------------------- -- Пачатак канфігурацыйных звестак -- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Імёны параметраў -- -- Гэтыя канфігурацыйныя элементы вазначаюць асаблівыя імёны параметраў. -- -- Каб дадаць адно дадатковае імя, вы можаце выкарыстаць гэты фармат: -- -- -- -- foo = 'імя параметра', -- -- -- -- Каб дадаць некалькі імёнаў, вы можаце выкарыстаць гэты фармат: -- -- -- -- foo = {'імя параметра 1', 'імя параметра 2', 'імя параметра 3'}, -- -------------------------------------------------------------------------------- cfg.parameters = { -- nocat і падаўленне параметраў катэгорый -- катэгорызацыі. Яны выкарыстоўваюцца з модулем Yesno, і працуюць наступным чынам: -- -- cfg.nocat: -- Вынік yesno() Эфект -- true Катэгарызацыя падаўляецца -- false Катэгарызацыя дазваляецца, і -- прапускаецца праверка чорнага спісу -- nil Катэгарызацыя дазваляецца -- -- cfg.categories: -- Вынік yesno() Эфект -- true Катэгарызацыя дазваляецца, і -- прапускаецца праверка чорнага спісу -- false Катэгарызацыя падаўляецца -- nil Катэгарызацыя дазваляецца nocat = 'nocat', categories = 'categories', -- Імя параметра для састарэлага параметра "category2". Гэта абыходзіць -- чорны спіс, калі ўсталявана cfg.category2Yes, і падаўляе -- катэгарызацыю, калі прысутнічае, але роўна любому значэнню, акрамя -- cfg.category2Yes або cfg.category2Negative. category2 = 'category2', -- cfg.subpage — гэта імя параметра, каб указаць, як паводзіць сябе на -- падстаронках. subpage = 'subpage', -- Параметр для даных, якія вяртаюцца ва ўсіх прасторах імёнаў. all = 'all', -- Імя параметра для даных, якія вяртаюцца, калі для выяўленай -- прасторы імёнаў не ўказаны даныя. other = 'other', -- Імя параметра, якое выкарыстоўваецца для ўказання старонкі, адрознай ад -- бягучай; выкарыстоўваецца для тэставання і дэманстрацыі. demopage = 'page', } -------------------------------------------------------------------------------- -- Значэнні параметраў -- -- Гэта зададзеныя значэнні, якія можна выкарыстоўваць з пэўнымі параметрамі. -- -- Можа быць указана толькі адно значэнне, напрыклад: -- -- -- cfg.foo = 'назва значэння' -- -------------------------------------------------------------------------------- -- Наступныя налады выкарысз параметрам cfg.category2. Усталяванне -- cfg.category2 у cfg.category2Yes абыходзіць чорны спіс, і калі cfg.category2 -- прысутнічае, але роўнае чаму-небудзь іншаму, акрамя cfg.category2Yes або -- cfg.category2Negative, гэта падаўляе катэгарызацыю. cfg.category2Yes = 'yes' cfg.category2Negative = '¬' -- Наступныя налады выкарыстоўваюцца з параметрам cfg.subpage. -- cfg.subpageNo — значэнне, каб не катэгарызаваць на падстаронках; -- cfg.subpageOnly — значэнне, каб катэгарызаваць толькі на падстаронках. cfg.subpageNo = 'no' cfg.subpageOnly = 'only' -------------------------------------------------------------------------------- -- Прасторы імёнаў па змаўчанні -- -- Гэта табліца прастор імёнаў, па якіх па змаўчанні выконваецца катэгарызацыя. -- -- Ключы — нумары прастор імёнаў. -- -------------------------------------------------------------------------------- cfg.defaultNamespaces = { [ 0] = true, -- галоўная [ 6] = true, -- файл [ 12] = true, -- дапамога [ 14] = true, -- катэгорыя [100] = true, -- партал [108] = true, -- кніга } -------------------------------------------------------------------------------- -- Абгорткі -- -- Гэта шаблон абгорткі або спіс шаблонаў абгортак, якія будуць перадавацца ў -- -- [[Module:Arguments]]. -- -------------------------------------------------------------------------------- cfg.wrappers = 'Template:Category handler' -------------------------------------------------------------------------------- -- Канец канфігурацыйных даных -- -------------------------------------------------------------------------------- return cfg -- Не рэдагуйце гэты радок. o4xeffp2j45c13y9taybs2x2diikllh