Изменения
Перейти к навигации
Перейти к поиску
Строка 3:
Строка 3:
+
+
Строка 10:
Строка 12:
+
+
+
+
+
+
+
+
Строка 30:
Строка 40:
− +
− style = style or 'background:#ffeaea; color:#444444;'
−
− +
Строка 71:
Строка 79:
+
− +
− +
− +
− +
− return string.format( '<i>[[%s|%s]]</i>', link, text ) +
+
Строка 108:
Строка 118:
− +
− +
+
+
+
+
Строка 132:
Строка 146:
− +
Строка 165:
Строка 179:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Строка 175:
Строка 205:
− +
Строка 191:
Строка 221:
− +
− +
−
Строка 207:
Строка 236:
− +
− if isEmpty( date ) then +
− result = getError( 'некорректно задана дата установки', 'Дата установки' )+
− +
− if isMainNamespace then+
− result = result .. errorcat
− end
Строка 225:
Строка 252:
− if not isEmpty( args.cat ) then +
− +
+
+
+
+
− result = result .. getCategory( args[ 'cat1' ], args[ 'cat1-date' ], date )
− result = result .. getCategory( args[ 'cat2' ], args[ 'cat2-date' ], date )
− result = result .. getCategory( args[ 'cat3' ], args[ 'cat3-date' ], date )
Модуль:Надстрочное предупреждение (посмотреть исходный код)
Версия от 23:27, 16 мая 2023
, 2 года назадпереход на TemplateStyles, уточнение функций
local docPage = 'Шаблон:Надстрочное предупреждение'
local docPage = 'Шаблон:Надстрочное предупреждение'
local templateStylesPage = 'Module:Надстрочное предупреждение/styles.css'
local defaultClass = 'ts-fix'
local defaultErrorCat = '[[Категория:Википедия:Надстрочные предупреждения с некорректно заданной датой]]'
local defaultErrorCat = '[[Категория:Википедия:Надстрочные предупреждения с некорректно заданной датой]]'
local function isEmpty( val )
local function isEmpty( val )
return val == nil or val == ''
return val == nil or val == ''
end
-- Комбинация стандартного класса и кастомного
local function getHtmlClass( class, val )
if isEmpty( class ) then
return string.format( '%s-%s', defaultClass, val )
end
return string.format( '%s-%s %s-%s', defaultClass, val, class, val )
end
end
-- Форматирование выделяемого шаблоном текста
-- Форматирование выделяемого шаблоном текста
local function getSpanText( text, style )
local function getSpanText( text, class )
local tag = mw.html.create( 'span' )
local tag = mw.html.create( 'span' )
:attr( 'style', style )
:addClass( getHtmlClass( class, 'text' ) )
:wikitext( text )
:wikitext( text )
end
end
local html = mw.html.create( 'i' )
if not isEmpty( comment ) then
if not isEmpty( comment ) then
local html = mw.html.create( 'span' )
local span = mw.html.create( 'span' )
:attr( 'title', comment )
:attr( 'title', comment )
:wikitext( text )
:wikitext( text )
if hasCustomComment then
if hasCustomComment then
html:attr( 'style', 'border-bottom:1px dotted;' )
html:addClass( defaultClass .. '-commented' )
end
end
text = tostring( html )
text = tostring( span )
end
end
html:wikitext( string.format( '[[%s|%s]]', link, text ) )
return tostring( html )
end
end
-- Простановка категорий
-- Простановка категорий
local function getCategory( category, config, date )
local function getCategory( category, config, date )
if isEmpty( date ) then
if isEmpty( category ) then
return ''
return ''
end
end
if isEmpty( category ) then
if isEmpty( config ) and isEmpty( date ) then
return category
end
if isEmpty( date ) then
return ''
return ''
end
end
local function getError( comment, anchor )
local function getError( comment, anchor )
local html = mw.html.create( 'strong' )
local html = mw.html.create( 'strong' )
:addClass( 'error noprint' )
:addClass( defaultClass .. '-error error noprint' )
:wikitext( string.format( '[[%s#%s|Ошибка:]] %s', docPage, anchor, comment ) )
:wikitext( string.format( '[[%s#%s|Ошибка:]] %s', docPage, anchor, comment ) )
local args = getArgs( frame )
local args = getArgs( frame )
local date = getValidDate( args.year, args.month, args.day )
local date = getValidDate( args.year, args.month, args.day )
local hasDate = not isEmpty( args.day ) or not isEmpty( args.month ) or not isEmpty( args.year )
local isMainNamespace = mw.title.getCurrentTitle().namespace == 0
local isMainNamespace = mw.title.getCurrentTitle().namespace == 0
local result = ''
local result = ''
-- Поддержка TemplateStyles
local class = nil
if not isEmpty( args.name ) then
class = 'ts-' .. args.name
end
result = result .. frame:extensionTag{
name = 'templatestyles', args = { src = templateStylesPage }
}
if not isEmpty( args.name ) and not isEmpty( args.templatestyles ) then
result = result .. frame:extensionTag{
name = 'templatestyles', args = { src = args.templatestyles }
}
end
-- Поддержка подстановки
-- Поддержка подстановки
-- Вывод надстрочного предупреждения
-- Вывод надстрочного предупреждения
local tag = mw.html.create( 'sup' )
local tag = mw.html.create( 'sup' )
:attr( 'style', 'white-space:nowrap' )
:addClass( getHtmlClass( class, 'template' ) )
if not isEmpty( args.noprint ) then
if not isEmpty( args.noprint ) then
-- Поддержка параметра {{{span-text|}}}
-- Поддержка параметра {{{span-text|}}}
if not isEmpty( args[ 'span-text' ] ) then
if not isEmpty( args[ 'span-text' ] ) then
result = result .. getSpanText( args[ 'span-text' ], args[ 'span-style' ] )
result = result .. getSpanText( args[ 'span-text' ], class )
end
end
-- Поддержка параметра {{{comment|}}}
-- Вывод надстрочного предупреждения
local comment = getComment( args.comment or args[ 'comment-default' ], args.link, date )
local comment = getComment( args.comment or args[ 'comment-default' ], args.link, date )
tag
tag
:wikitext( '[' ) -- [
:wikitext( '[' ) -- [
-- Проверка для категории страниц с некорректным указанием даты
-- Проверка для категории страниц с некорректным указанием даты
local errorcat = args.errorcat or defaultErrorCat
local errorcat = args.errorcat or defaultErrorCat
if not isEmpty( args.day ) or not isEmpty( args.month ) or not isEmpty( args.year ) then
if hasDate and isEmpty( date ) then
result = getError( 'некорректно задана дата установки', 'Дата установки' )
if isMainNamespace then
result = result .. errorcat
end
end
end
end
-- Установка категорий
-- Установка категорий
if isEmpty( args.nocat ) and isMainNamespace then
if isEmpty( args.nocat ) and isMainNamespace then
result = result .. getCategory( args.cat )
result = result .. args.cat
if hasDate then
result = result .. getCategory( args[ 'cat1' ], args[ 'cat1-date' ], date )
result = result .. getCategory( args[ 'cat2' ], args[ 'cat2-date' ], date )
result = result .. getCategory( args[ 'cat3' ], args[ 'cat3-date' ], date )
end
end
end
end