Модуль:Данные страницы

Материал из Народные Сказки
Версия от 21:44, 22 октября 2023; ru>Andras (Новая страница: «local p = {} p.page = { categories = {}, -- викифицированные категории categories_raw = {}, -- категории без викификации -- эти данные собираются Модуль:Источники по теме projects = {}, -- интервики и другие википроекты sitelinks = {}, -- интервики из Викиданных как есть, напр.: { ["ruwiki"] = "Гар...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Объект, содержащий данные о странице, нормализованные и викифицированые значения, некоторые основные методы.

Используется в Модуль:Обавторе, Модуль:Отексте и их подмодулях.

Модули могут дополнять этот объект своими методами и значениями.


local p = {}
p.page = {
	categories = {}, -- викифицированные категории
	categories_raw = {}, -- категории без викификации
	
	-- эти данные собираются [[Модуль:Источники по теме]]
	projects = {}, -- интервики и другие википроекты
	sitelinks = {}, -- интервики из Викиданных как есть, напр.:  { ["ruwiki"] = "Гартман фон Ауэ", ["ruwikisource"] = "Гартман фон Ауе",  ["wikidata"] = "Q75852", ["commons"] = "Category:Hartmann von Aue", ["commonswiki"] = "Hartmann von Aue", }
	enc_wikilinks = {}, -- викифицированные ссылки на энциклопедии Викитеки
	encyclopedias_ids = {}, -- IDs элементов энциклопедических статей в Викиданных
	external_sites = {}, -- данные энциклопедических статей на внешних сайтах
	enc_links_rendered = '', projects_links_rendered = '', -- текстовые строки со ссылками на проекты и энциклопедии для отображения в шаблонах-шапках (Модуль:Обавторе, Модуль:Отексте), обычно включают html-тэги
}
function p.page:init(frame)
	self.frame1 = frame
	self.is_author_page = frame.is_author_page  -- флаг страницы автора, ставится в Модуль:Обавторе
	local frame = frame:getParent()
	self.frame = frame
	self.isPRS = frame.isPRS  -- страница в дореформенной орфографии, устанавливается в Модуль:Отексте
	-- page.isPRS = require("Module:Header").parse_title(mw.title.getCurrentTitle().text, "isPRS") -- isDO = isCurrentPageDO()
	-- self.args = frame:getParent().args
	self.args = frame.args
	self.title = mw.title.getCurrentTitle().text  -- полное название страницы без ПИ
	self.entity = mw.wikibase.getEntity()
	self.entity_topic = nil  -- Элемент темы, указанный в шаблоне-шапке в параметре ВИКИДАННЫЕ или ВИКИПЕДИЯ; или в элементе в свойствах P921, P629. Из него берутся ссылки вместо оригинального элемента
end
function p.page:add_category(s)
	-- метод добавления категории
	table.insert(self.categories, '[[Категория:' .. s .. ']]')
	table.insert(self.categories_raw, s)
end

return p