Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Модуль:Page

Материал из wiki.iccup.org

API[править код]

Программное имя: Page


exists (link: внутренняя ссылка) → boolean

Проверяет, существует ли страница, на которую указывает внутренняя ссылка.




makeInternalLink (options: таблица, display: строка, customLink: внутренняя ссылка) → string

Создает внутреннюю ссылку с указанными customLink и display. Если в опциях установлено "onlyIfExists" в значение true, ссылка отображается только если страница существует.




makeExternalLink (display: строка, link: внешняя ссылка) → string

Создает внешнюю ссылку с указанным текстом отображения.




Посмотрите всю нашу документацию 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)
Содержание