Модуль:ТранспортнаяСхема: различия между версиями
Tringoli (обсуждение | вклад) мНет описания правки |
Tringoli (обсуждение | вклад) мНет описания правки |
||
| Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
local function getArgs(frame) | local function getArgs(frame) | ||
local args = {} | local args = {} | ||
| Строка 16: | Строка 15: | ||
end | end | ||
local function loadData(args) | local function loadData(args) | ||
local dataParam = args['данные'] or args[1] | local dataParam = args['данные'] or args[1] | ||
| Строка 53: | Строка 51: | ||
end | end | ||
local function buildImageMap(jsonData, imageFile, width, defaultRadius) | local function buildImageMap(jsonData, imageFile, width, defaultRadius) | ||
local radius = defaultRadius or '16' | local radius = defaultRadius or '16' | ||
| Строка 89: | Строка 86: | ||
local isInfobox = (args['карточка'] == 'да' or args['тип'] == 'карточка') | local isInfobox = (args['карточка'] == 'да' or args['тип'] == 'карточка') | ||
local width = args['ширина'] or (isInfobox and '280px') or jsonData.width or '850px' | local width = args['ширина'] or (isInfobox and '280px') or jsonData.width or '850px' | ||
local imageFile = args['файл'] or jsonData.image or 'Схема_Муроморского_метрополитена.png' | local imageFile = args['файл'] or jsonData.image or 'Схема_Муроморского_метрополитена.png' | ||
| Строка 105: | Строка 99: | ||
['text-align'] = 'center' | ['text-align'] = 'center' | ||
}) | }) | ||
-- Принудительное ограничение стилей для картинок внутри схемы (чтобы не ломали инфобокс) | |||
root:wikitext('<style>.ts-transport-map-card img { max-width: 100% !important; width: 100% !important; height: auto !important; box-sizing: border-box; }</style>') | |||
-- Контейнер карты | -- Контейнер карты | ||
| Строка 111: | Строка 108: | ||
:css({ | :css({ | ||
['display'] = isInfobox and 'block' or 'inline-block', | ['display'] = isInfobox and 'block' or 'inline-block', | ||
['width'] = isInfobox and '100%' or 'auto', | |||
['max-width'] = '100%', | ['max-width'] = '100%', | ||
['background'] = isInfobox and 'transparent' or 'var(--background-color-base, #ffffff)', | ['background'] = isInfobox and 'transparent' or 'var(--background-color-base, #ffffff)', | ||
| Строка 123: | Строка 121: | ||
['overflow-x'] = 'auto', | ['overflow-x'] = 'auto', | ||
['max-width'] = '100%', | ['max-width'] = '100%', | ||
['text-align'] = 'center' | ['text-align'] = 'center', | ||
['width'] = isInfobox and '100%' or 'auto' | |||
}) | }) | ||
| Строка 141: | Строка 140: | ||
end | end | ||
-- Легенда и список выводятся только вне карточки | -- Легенда и список (выводятся только вне карточки) | ||
if not isInfobox then | if not isInfobox then | ||
if jsonData.lines and #jsonData.lines > 0 then | if jsonData.lines and #jsonData.lines > 0 then | ||