Изменения

переход на TemplateStyles, уточнение функций
Строка 3: Строка 3:     
local docPage = 'Шаблон:Надстрочное предупреждение'
 
local docPage = 'Шаблон:Надстрочное предупреждение'
 +
local templateStylesPage = 'Module:Надстрочное предупреждение/styles.css'
 +
local defaultClass = 'ts-fix'
 
local defaultErrorCat = '[[Категория:Википедия:Надстрочные предупреждения с некорректно заданной датой]]'
 
local defaultErrorCat = '[[Категория:Википедия:Надстрочные предупреждения с некорректно заданной датой]]'
   Строка 10: Строка 12:  
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
   Строка 30: Строка 40:     
-- Форматирование выделяемого шаблоном текста
 
-- Форматирование выделяемого шаблоном текста
local function getSpanText( text, style )
+
local function getSpanText( text, class )
style = style or 'background:#ffeaea; color:#444444;'
  −
   
local tag = mw.html.create( 'span' )
 
local tag = mw.html.create( 'span' )
:attr( 'style', style )
+
:addClass( getHtmlClass( class, 'text' ) )
 
:wikitext( text )
 
:wikitext( text )
 
 
Строка 71: Строка 79:  
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
 
 
return string.format( '<i>[[%s|%s]]</i>', link, text )
+
html:wikitext( string.format( '[[%s|%s]]', link, text ) )
 +
return tostring( html )
 
end
 
end
   Строка 108: Строка 118:  
-- Простановка категорий
 
-- Простановка категорий
 
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
Строка 132: Строка 146:  
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 ) )
 
 
Строка 165: Строка 179:  
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
 
 
 
-- Поддержка подстановки
 
-- Поддержка подстановки
Строка 175: Строка 205:  
-- Вывод надстрочного предупреждения
 
-- Вывод надстрочного предупреждения
 
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
Строка 191: Строка 221:  
-- Поддержка параметра {{{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( '&#91;' ) -- [
 
:wikitext( '&#91;' ) -- [
Строка 207: Строка 236:  
-- Проверка для категории страниц с некорректным указанием даты
 
-- Проверка для категории страниц с некорректным указанием даты
 
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
if isEmpty( date ) then
+
result = getError( 'некорректно задана дата установки', 'Дата установки' )
result = getError( 'некорректно задана дата установки', 'Дата установки' )
+
+
if isMainNamespace then
if isMainNamespace then
+
result = result .. errorcat
result = result .. errorcat
  −
end
   
end
 
end
 
end
 
end
Строка 225: Строка 252:  
-- Установка категорий
 
-- Установка категорий
 
if isEmpty( args.nocat ) and isMainNamespace then
 
if isEmpty( args.nocat ) and isMainNamespace then
if not isEmpty( args.cat ) 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
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
 
 
Анонимный участник