Дополнительные действия
API[править код]
-
Программное имя: Page
Проверяет, существует ли страница, на которую указывает внутренняя ссылка.
Создает внутреннюю ссылку с указанными customLink и display. Если в опциях установлено "onlyIfExists" в значение true, ссылка отображается только если страница существует.
Создает внешнюю ссылку с указанным текстом отображения.
Посмотрите всю нашу документацию iCCup здесь.
---
-- @iCCup
-- wiki=iCCup
-- page=Module:Page
--
-- Please visit https://iccup.com/wiki/ to learn how to contribute
--
local Class = require('Module:Class')
local String = require('Module:StringUtils')
local Page = {}
---Проверяет существует ли страница по данной (внутренней) ссылке
---@param link string
---@return boolean
function Page.exists(link)
local existingPage = mw.title.new(link)
-- В некоторых случаях мы можем получить внешнюю ссылку,
-- в таком случае `existingPage` будет равен nil
if existingPage == nil then
return false
end
return existingPage.exists
end
---@param options {onlyIfExists: boolean?}
---@param display string?
---@param customLink string?
---@return string?
---@overload fun(display: string?, customLink: string?): string?
function Page.makeInternalLink(options, display, customLink)
-- если параметры не переданы (например, если модуль вызывается из кода вики),
-- необходимо скорректировать переменные
if type(options) == 'string' then
customLink = display
display = options
end
if String.isEmpty(display) then
return nil
elseif String.isEmpty(customLink) then
customLink = display
end
---@cast customLink -nil
if (options or {}).onlyIfExists == true and (not Page.exists(customLink)) then
return nil
end
return '[[' .. customLink .. '|' .. display .. ']]'
end
---@param display string?
---@param link string?
---@return string?
function Page.makeExternalLink(display, link)
if String.isEmpty(display) or String.isEmpty(link) then
return nil
end
return '[' .. link .. ' ' .. display .. ']'
end
--- Преобразует ссылку в правильный формат имени страницы
---@param link string?
---@return string?
function Page.pageifyLink(link)
if String.isEmpty(link) then
return nil
end
---@cast link -nil
return link:gsub(' ', '_') -- обновлено для iCCup, убрал интеграцию TeamLiquid
end
return Class.export(Page)