Модуль:Tools/doc: различия между версиями
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
Строка 9: | Строка 9: | ||
== errorMsg == | == errorMsg == | ||
Форматирование сообщения об ошибке вызова шаблона. | Форматирование сообщения об ошибке вызова шаблона. | ||
<code>text = errorMsg( tpt, errorTxt, errorAdvice )</code> | :<code>text = errorMsg( tpt, errorTxt, errorAdvice )</code> | ||
* <code>tpt</code> — имя шаблона (без префикса «Шаблон:») | * <code>tpt</code> — имя шаблона (без префикса «Шаблон:») | ||
* <code>errorTxt</code> — диагностика | * <code>errorTxt</code> — диагностика | ||
Строка 17: | Строка 17: | ||
== checkargs == | == checkargs == | ||
Проверка и | Проверка и нормализация аргументов | ||
<code>modArgs, hasArg = tools.checkargs( args, names )</code> | :<code>modArgs, hasArg = tools.checkargs( args, names )</code> | ||
* <code>args</code> — таблица аргументов | * <code>args</code> — таблица аргументов | ||
* <code>names</code> — описание допустимых аргументов в формате: <code>ключ_допустимого аргумента = значение_по_умолчанию</code> | * <code>names</code> — описание допустимых аргументов в формате: <code>ключ_допустимого аргумента = значение_по_умолчанию</code> | ||
Строка 29: | Строка 29: | ||
При возвращении значений (кроме значений по умолчанию) осуществляется нормализация: пробельные символы в начале и конце значения убираются, пустые значения превращаются в <code>nil</code>. | При возвращении значений (кроме значений по умолчанию) осуществляется нормализация: пробельные символы в начале и конце значения убираются, пустые значения превращаются в <code>nil</code>. | ||
== parseDate == | |||
Преобразование текстовой даты в стандартный внутренний формат | |||
:<code>fdate, year, month, day = tools.parseDate( indate, border )</code> | |||
* <code>indate</code> — дата в произвольном пользовательском формате | |||
* <code>border</code> — минимальный год (XIX века!) для дат, в которых год задан двумя цифрами | |||
Возвращает <code>fdate</code> в формате <code>гггг-мм-чч</code> и числовые значения года, месяца и дня. Для неполных дат (год или месяц+год) текстовая строка укорочена, а вместо соответствующих числовых значений возвращается <code>nil</code>. При пустой дате на входе возвращает пустую строку. При ошибке возвращает <code>nil</code>. | |||
== reparseDate == | |||
Преобразование даты в стандартном внутреннем формате <code>гггг-мм-чч</code> в стандартный печатный формат (<code>чч.мм.гггг</code>) | |||
:<code>text = tools.reparseDate( value )</code> | |||
* <code>value</code> — дата в стандартном внутреннем формате | |||
Обрабатывает в том числе и неполные даты (укороченные строки). При пустой дате отдает прочерк («—»). | |||
== textDate == | |||
Преобразование даты в стандартном внутреннем формате <code>гггг-мм-чч</code> в текстовый формат (с месяцем прописью). | |||
:<code>text = tools.textDate( value, p )</code> | |||
* <code>value</code> — дата в стандартном внутреннем формате | |||
* <code>p</code> — падеж ('i' — именительный (по умолчанию), 'g' — родительный) | |||
Возвращает текст с месяцем прописью и словом «год» в конце. Падеж значим для неполных дат. При пустой дате отдает прочерк («—»). | |||
== phrase == | |||
Преобразование текста в предложение | |||
:<code>mText = tools.phrase( text )</code> | |||
Преобразование текста в предложение (первая буква делается прописной, в конце добавляется точка. | |||
== noPhrase == | |||
Преобразование текста для использования внутри предложения | |||
:<code>mText = tools.noPhrase( text )</code> | |||
Преобразование текста в не-предложение (первая буква делается строчной, завершающая точка, если она есть, упраздняется). | |||
== db == | |||
Криворуко сделанный (не через метатаблицу) доступ к данным | |||
:<code>result = tools.db( base, elem, field )</code> | |||
Функция возвращает элемент (запись) таблицы <code>db</code> с ключом <code>elem</code>, а если задано имя поля <code>field</code> — соответствующее поле этой записи. Если запись содержит поле <code>redirect</code>, то происходит переадресация на элемент с указанным в поле <code>redirect</code> ключом. | |||
== commonParams == | |||
Обработка универсальных параметров шаблонов страниц персоналий | |||
:<code>text = tools.commonParams( addendum, reference, source )</code> | |||
* <code>addendum</code> — дополнение | |||
* <code>reference</code> — сноска | |||
* <code>source</code> — ссылка на первоисточник | |||
Формирует текст для выходного потока. | |||
При наличии сносок или источников обращается к модулю {{tl|Module:RefTools}}. | |||
== fotmatIfUrl == | |||
Преобразование параметра в красивую ссылку, если он представляет собой URL | |||
: <code>text, noURL = tools.formatIfUrl( whatwherefrom, txt )</code> | |||
* <code>whatwherefrom</code> — формат ссылки (<code>'what'</code> — сайт, <code>'where'</code> — на сайте, <code>'from'</code> — ???) | |||
* <code>txt</code> — обрабатываемый параметр | |||
Возвращает параметр (если это был URL, то преобразованный) и true в качестве второго результата, если преобразования не было. |
Версия от 12:54, 27 января 2018
Набор вспомогательных функций для других модулей.
errorMsg
Форматирование сообщения об ошибке вызова шаблона.
text = errorMsg( tpt, errorTxt, errorAdvice )
tpt
— имя шаблона (без префикса «Шаблон:»)errorTxt
— диагностикаerrorAdvice
— дополнительные сведения об ошибке («Используйте формат обращения ...»)
Функция возвращает строку, содержащее отформатированное сообщение и задание категории «Страницы с ошибкой вызова шаблона ...».
checkargs
Проверка и нормализация аргументов
modArgs, hasArg = tools.checkargs( args, names )
args
— таблица аргументовnames
— описание допустимых аргументов в формате:ключ_допустимого аргумента = значение_по_умолчанию
Если значение_по_умолчанию
равно true
, то это означает, что соответствующий аргумент не имеет значения по умолчанию. В противном случае аргументы, ключи которых отсутствуют в исходной таблице args
или имеют значение пустой строки, получают указанное значение_по_умолчанию
.
При успешной проверке (в исходной таблице args
нет элементов с ключами, отсутствующими в names
) функция возвращает таблицу modArgs
со всеми элементами (включая добавленные значения по умолчанию) и признак наличия элементов в исходной таблице аргументов. Последнее полезно, чтобы предупреждать ошибки, связанные с тем, что движок MediaWiki в ходе обработки страницы не интерпретирует повторно шаблоны без параметров; для повторного парсинга необходимо наличие у шаблона хотя бы пустого параметра.
При обнаружении в исходной таблице args
первого же ключа отсутствующего в names
, функция возвращает пару значений nil, лишний_ключ
.
При возвращении значений (кроме значений по умолчанию) осуществляется нормализация: пробельные символы в начале и конце значения убираются, пустые значения превращаются в nil
.
parseDate
Преобразование текстовой даты в стандартный внутренний формат
fdate, year, month, day = tools.parseDate( indate, border )
indate
— дата в произвольном пользовательском форматеborder
— минимальный год (XIX века!) для дат, в которых год задан двумя цифрами
Возвращает fdate
в формате гггг-мм-чч
и числовые значения года, месяца и дня. Для неполных дат (год или месяц+год) текстовая строка укорочена, а вместо соответствующих числовых значений возвращается nil
. При пустой дате на входе возвращает пустую строку. При ошибке возвращает nil
.
reparseDate
Преобразование даты в стандартном внутреннем формате гггг-мм-чч
в стандартный печатный формат (чч.мм.гггг
)
text = tools.reparseDate( value )
value
— дата в стандартном внутреннем формате
Обрабатывает в том числе и неполные даты (укороченные строки). При пустой дате отдает прочерк («—»).
textDate
Преобразование даты в стандартном внутреннем формате гггг-мм-чч
в текстовый формат (с месяцем прописью).
text = tools.textDate( value, p )
value
— дата в стандартном внутреннем форматеp
— падеж ('i' — именительный (по умолчанию), 'g' — родительный)
Возвращает текст с месяцем прописью и словом «год» в конце. Падеж значим для неполных дат. При пустой дате отдает прочерк («—»).
phrase
Преобразование текста в предложение
mText = tools.phrase( text )
Преобразование текста в предложение (первая буква делается прописной, в конце добавляется точка.
noPhrase
Преобразование текста для использования внутри предложения
mText = tools.noPhrase( text )
Преобразование текста в не-предложение (первая буква делается строчной, завершающая точка, если она есть, упраздняется).
db
Криворуко сделанный (не через метатаблицу) доступ к данным
result = tools.db( base, elem, field )
Функция возвращает элемент (запись) таблицы db
с ключом elem
, а если задано имя поля field
— соответствующее поле этой записи. Если запись содержит поле redirect
, то происходит переадресация на элемент с указанным в поле redirect
ключом.
commonParams
Обработка универсальных параметров шаблонов страниц персоналий
text = tools.commonParams( addendum, reference, source )
addendum
— дополнениеreference
— сноскаsource
— ссылка на первоисточник
Формирует текст для выходного потока.
При наличии сносок или источников обращается к модулю {{ RefTools}} .
fotmatIfUrl
Преобразование параметра в красивую ссылку, если он представляет собой URL
text, noURL = tools.formatIfUrl( whatwherefrom, txt )
whatwherefrom
— формат ссылки ('what'
— сайт,'where'
— на сайте,'from'
— ???)txt
— обрабатываемый параметр
Возвращает параметр (если это был URL, то преобразованный) и true в качестве второго результата, если преобразования не было.