Меню
Главная
Случайная статья
Настройки
|
Модуль предназначен для форматирования набора данных, полученных из Викиданных посредством модуля WDBackend или заданных вручную. Форматирование может осуществляться в произвольной форме, как в строчку, так и в табличном виде.
Конечное представление информации задаётся профилем, который описывает, какими тегами оформлять данные, группы полей и отдельные поля, а также какие преобразования над данными необходимо сделать.
Содержание
Использование
Модуль является библиотечным и предназначен для использования в других модулях. Данный модуль не предназначен для использования в статьях или других шаблонах напрямую через вызов #invoke .
Требуемое форматирование описывается профилем, представляющим собой таблицу Lua. Профиль описывает представление отдельных полей, то есть то, как они должны отображаться. Недостающий функционал реализуется указанием в профиле собственных функций, принимающих определённый набор аргументов и возвращающих определённый результат.
Для форматирования профиля в совокупности с передаваемым набором данных необходимо использовать функцию format() . В качестве результата возвращается отформатированный викитекст.
Для примера использования см. модуль Модуль:CiteGost.
Формат профиля в общем виде{
-- Корневой тег:
tag = {
name = 'Имя тега',
classes = { 'class1', 'class2', ... },
attr = { атрибут1='значение1', атрибут2='значение2', ... },
tag = Вложенный тег,
},
-- Группы:
-- Начало 1-й группы:
{
-- Тег группы:
tag = {
name = 'Имя тега',
classes = { 'class1', 'class2', ... },
attr = { атрибут1='значение1', атрибут2='значение2', ... },
css = { свойство1='значение1', свойство2='значение2', ... },
tag = Вложенный тег
},
ensureEnds = 'Символ/текст, которым должно заканчиваться предыдущее поле',
delimiter = 'Разделитель, добавляемый по отношению к предыдущему полю',
childEnsureEnds = 'Символ/текст, которым должны заканчиваться поля группы',
childDelimiter = 'Разделитель полей в группе',
-- Дочерние элементы текущей группы по факту продолжают предыдущие элементы (влияет на повышение первой буквы до заглавной):
passthrough = true,
prefix = 'Текст до начала группы',
-- Поля группы (подгруппы):
-- 1-е поле группы:
{
-- Тег поля:
tag = {
name = 'Имя тега',
classes = { 'class1', 'class2', ... },
attr = { атрибут1='значение1', атрибут2='значение2', ... },
tag = Вложенный тег
css = { свойство1='значение1', свойство2='значение2', ... },
},
ensureEnds = 'Символ/текст, которым должен заканчиваться предшествующий текст',
delimiter = 'Разделитель, отделяющий текущий элемент от предыдущего',
-- Функция, разрешающая отображение поля:
cond = функция,
prefix = 'Текст до поля',
field = 'Название поля',
-- Менять ли первую букву поля на заглавную
capitalize = true/false
urlMaskProp = 'P-идентификатор свойства, отвечающего за маску ссылки',
-- Функции, через которые поле будет отформатировано:
format = { функция1, функция2, ... },
suffix = 'Текст после поля',
},
-- Второе поле:
{
value = 'Отображаемое значение',
},
-- Остальные группы:
...
suffix = 'Текст в конце группы',
},
-- Остальные группы:
...
ensureEnds = 'Окончение форматированных данных, например, точка.'
}
Функции форматирования полей
Форматирование поля задаётся через команду format с указанием функции форматирования, принимающей определённый набор аргументов. Доступны следующие встроенные функции:
numericalRanges — форматирование диапазона чисел (корректирует знак диапазона);
dash — оформление тире в тексте;
unit — получение единицы измерения у элемента Викиданных;
abbr — получить сокращённое обозначение (есть ограничения) у элемента Викиданных;
short — получить короткое название у элемента Викиданных;
abbrWithHint — получить сокращённое обозначение (есть ограничения) у элемента Викиданных с расшифровкой в подсказке;
date — форматирование даты;
quantity — форматирование количества с указанной в нём единицей измерения;
entity — получить значение идентификатора элемента Викиданных;
wikilink — оформить поле Викиссылкой, если это возможно;
wikisource — оформить поле ссылкой на Викитеку, если в элементе Викиданных указана соответствующая статья;
link — оформить поле внешней ссылкой, если это возможно;
wikidata — добавление к полю надстрочной ссылки на элемент Викиданных, если хотя бы в одном языковом разделе есть статья по теме;
wikidataLink — оформить поле ссылкой на элемент Викиданных, который с полем связан.
forceWikidataLink — оформить поле ссылкой на элемент Викиданных, который с полем связан. Формирует ссылку, даже если ранее по тексту ссылка на такой элемент была дана.
Внесение изменений
При исправлении ошибки, пожалуйста, сначала добавьте тест, который будет проваливаться из-за обнаруженной ошибки, и только затем вносите исправление. При внесении исправления проверьте, чтобы все тесты проходили. Вносить исправление можно только, если оно не ломает другие тесты.
Добавление нового функционала рекомендуется делать у себя в песочнице, скопировав в неё модуль. В правке копирования необходимо указать тот факт, что делается копирование, и сделать ссылку на оригинальный модуль в виде викитекста. При добавлении нового функционала сначала желательно добавить тест на этот функционал, затем добавить сам функционал, убедившись, что все тесты при этом проходят.
Тесты
N 1 тест провалился.
|
Название
|
Ожидается
|
Фактически
|
|
test_format_array
|
|
|
|
test_format_arrayCapitalize
|
|
|
|
test_format_arrayForceCapitalize
|
|
|
|
test_format_capitalize
|
|
|
|
test_format_conflicts
|
|
|
|
test_format_conflicts_recursive
|
|
|
|
test_format_date
|
|
|
|
test_format_delimiter_function
|
|
|
|
test_format_depends
|
|
|
|
test_format_depends_fieldPath
|
|
|
|
test_format_depends_recursive
|
|
|
|
test_format_ensureEndsAndDelimiter
|
|
|
|
test_format_fieldPath
|
|
|
|
test_format_group_childDelimiter_and_childEnsureEnds
|
|
|
|
test_format_group_passthrough
|
|
|
|
test_format_group_prefix_with_delimiter
|
|
|
|
test_format_group_prefix_with_delimiter_inside_another_group
|
|
|
|
test_format_groups_delimiter
|
|
|
|
test_format_innerTags
|
|
|
|
test_format_isStatic_hidden
|
|
|
|
test_format_isStatic_hidden_in_array
|
|
|
|
test_format_isStatic_hidden_in_array_in_additional_group
|
|
|
|
test_format_isStatic_visible
|
|
|
|
test_format_link
|
|
|
|
test_format_linkOrder
|
|
|
|
test_format_nested_array
|
|
|
|
test_format_oneField
|
|
|
|
test_format_person
|
|
|
|
test_format_person_multipleNames
|
|
|
|
test_format_prefixAndSuffix
|
|
|
|
test_format_recurseGroups
|
|
|
|
test_format_rootTag
|
|
|
|
test_format_squareBrackets
|
|
|
|
test_format_tableTag
|
|
|
N
|
test_format_wikilink
|
<span>[[Почка]]</span>
|
<span>[[Почка (внутренний орган)|Почка]]</span>
|
|
test_format_wikisource
|
|
|
В качестве интеграционных тестов использованы тесты модуля, который работает на основе текущего модуля.
Книги (6/12) |
---|
| Тест | Ожидается | Фактически | Разница |
---|
| Книга с указанным типом работы
{{Источник информации|Q114831437
|ref = Веракса, Веракса
}}
| Веракса Н. Е. Познавательное развитие в дошкольном возрасте : учебное пособие / Н. Е. Веракса, А. Н. Веракса. — М. : МОЗАИКА-СИНТЕЗ, 2012. — 336 с. — ISBN 978-5-4315-0097-8. — WD Q114831437. | Веракса Н. Е. Познавательное развитие в дошкольном возрасте : учебное пособие / Н. Е. Веракса, А. Николаевич? Веракса. — М. : МОЗАИКА-СИНТЕЗ, 2012. — 336 с. — ISBN 978-5-4315-0097-8. — WD Q114831437. | < [[Веракса, Александр > А. Николаевич < Александр Николаевич|А. Н. Веракса] > А. Николаевич < Николаевич|А. Н. Веракса] > А. Николаевич<sup>[[d:Q100233847|?] < Николаевич|А. Н. Веракса] > [d:Q100233847|?]]</sup> Веракса. < Николаевич|А. Н. Веракса]]. > Веракса. | | Книга с указанной серией
{{Источник информации|Q115189432
|заглавие тома = Животные
|ref = Красная книга РФ, т. «Животные»
}}
| Красная книга Российской Федерации. Т. «Животные». — 2-е издание. — М. : ФГБУ «ВНИИ Экология», 2021. — 1128 с. — (Красная книга Российской Федерации). — ISBN 978-5-6047425-0-1. — WD Q115189432. | Красная книга Российской Федерации. Т. «Животные». — 2-ое издание. — М. : ФГБУ «ВНИИ Экология», 2021. — 1128 с. — (Красная книга Российской Федерации). — ISBN 978-5-6047425-0-1. — WD Q115189432. | | | Книга по qid издания и qid темы
{{Источник информации
|qid издания = Q98103166
|qid темы = Q58184
|ref = Наточин
}}
| Юрий Викторович Наточин. Нефрон : [арх. 14 апреля 2023] // Знания : интернет-энциклопедия / Гл. ред.: С. Кравец. — 2023, 17 января. | Юрий Викторович Наточин. Нефрон : [арх. 14 апреля 2023] // Знания : интернет-энциклопедия / Гл. ред.: С. Кравец?. — 2023, 17 января. | < [s:Знания|Знания]] : интернет-энциклопедия / Гл. ред.: [[Кравец, Сергей Леонидович|С. Кравец]]. > [Большая российская энциклопедия (портал)|Знания]] : интернет-энциклопедия / Гл. ред.: С. Кравец<sup>[[d:Q17125177|?]]</sup>. | | С указанием иллюстраторов
{{Источник информации|Q115634662
|ref = Clement, Davis, Harris
}}
| Clement P.[d] Finches and Sparrows : [англ.] / Illus.: A. Harris, J. Davis. — 1st edition. — 1993, 21 November. — 500 p. — ISBN 978-0-691-03424-9. — WD Q115634662. | Clement P.[d] Finches and Sparrows : [англ.] / Illus.: A. Harris, J. Davis. — 1st edition. — Princeton University Press, 1993, 21 November. — 500 p. — ISBN 978-0-691-03424-9. — WD Q115634662. | < 1993, > [[Издательство Принстонского университета|Princeton University Press]], | | Том через qid с ручным заданием частного заглавия
{{Источник информации|Q115926218
|заглавие тома = Full text
}}
| Lefever Ernest W. United Nations peacekeeping in the Congo: 1960-1964 : an analysis of political, executive and military control : [англ.]. In 4 vols. Vol. 2. Full text / Ernest W. Lefever, Wynfred Joshua. — Washington : Brookings Institution, 1966, 30 June. — 454 p. — OCLC 489825. — WD Q115926218. | Lefever Ernest W. United Nations peacekeeping in the Congo: 1960-1964 : an analysis of political, executive and military control : [англ.]. In 4 vols. Vol. 2. Full text / Ernest W. Lefever, Wynfred Joshua. — Washington : Brookings Institution, 1966, 30 June. — 454 p. — OCLC 489825. — WD Q115926218. | < [https://www.worldcat.org/oclc/489825 > [https://search.worldcat.org/title/489825 < [https://www.worldcat.org/oclc/489825 > [https://search.worldcat.org/title/489825 < [https://www.worldcat.org/oclc/489825 > [https://search.worldcat.org/title/489825 | | Ручное задание информации с серией
{{Источник информации|Q118220282|авторы=Ulla C. Kopp|заглавие=Neural Control of Renal Function|ссылка=https://www.ncbi.nlm.nih.gov/books/NBK57113/|оригинал=Neural Control of Renal Function|место=San Rafael|издатель=Morgan & Claypool Life Sciences|дата=2011-08-20|серия=Integrated Systems Physiology: from Molecule to Function to Disease|pmid=21850765|язык=en|qid=Q121112788|офлайн=1}}
| Kopp Ulla C. Neural Control of Renal Function : [англ.]. — San Rafael : Morgan & Claypool Life Sciences, 2011, 20 August. — (Integrated Systems Physiology: from Molecule to Function to Disease). — PMID 21850765. — WD Q121112788. | Kopp Ulla C. Neural Control of Renal Function : [англ.]. — 2011, 20 August. — (Integrated Systems Physiology: from Molecule to Function to Disease). — doi:10.4199/c00034ed1v01y201106isp022. — PMID 21850765. — WD Q121112788. | < San Rafael : Morgan & Claypool Life Sciences, 2011, <span class="nowrap">20 August</span>. — (Integrated Systems Physiology: from Molecule to Function to Disease). > 2011, <span class="nowrap">20 August</span>. — (Integrated Systems Physiology: from Molecule to Function to Disease). — [[Цифровой идентификатор объекта|doi]]:[https://doi.org/10.4199/C00034ED1V01Y201106ISP022 10.4199/c00034ed1v01y201106isp022]. |
Медиа (1/2) |
---|
| Тест | Ожидается | Фактически | Разница |
---|
| Видеозапись на youtube
{{Источник информации
|заглавие = Деятельность ВОЗ по научно-техническому анализу и прогнозированию в области здравоохранения
|qid издателя = Q7817
|id = 1m_4Y6pHmUw
|qid издания = Q866
|язык = ru
|дата = 2022-07-08
|дата обращения = 2022-11-22
|ref = ВОЗ
}}
| Деятельность ВОЗ по научно-техническому анализу и прогнозированию в области здравоохранения [видеозапись] // YouTube. — ВОЗ, 2022, 8 июля. — Дата обращения: 22 ноября 2022. | Деятельность ВОЗ по научно-техническому анализу и прогнозированию в области здравоохранения [видеозапись] // YouTube. — ВОЗ, 2022, 8 июля. — Дата обращения: 22 ноября 2022. | < [https://www.youtube.com/watch?v=1m_4Y6pHmUw > [https://www.youtube.com/results?&search_query=1m_4Y6pHmUw&sp=CAM%253D < [https://www.youtube.com/watch?v=1m_4Y6pHmUw > [https://www.youtube.com/results?&search_query=1m_4Y6pHmUw&sp=CAM%253D < [https://www.youtube.com/watch?v=1m_4Y6pHmUw > [https://www.youtube.com/results?&search_query=1m_4Y6pHmUw&sp=CAM%253D < [https://www.youtube.com/watch?v=1m_4Y6pHmUw > [https://www.youtube.com/results?&search_query=1m_4Y6pHmUw&sp=CAM%253D |
Язык (0/1) |
---|
| Тест | Ожидается | Фактически | Разница |
---|
| На двух языках
{{Источник информации|Q101483459}}
| Whitlam J.[d] Harper Collins Portuguese dictionary : English-Portuguese, Portuguese-English : [англ., португ.] / J. Whitlam, Vitria Davies[d], M. Harland[d]. — Glasgow : HarperCollins UK[d], 1991. — OCLC 370343862. — WD Q101483459. | Whitlam J.[d] Harper Collins Portuguese dictionary : English-Portuguese, Portuguese-English : [англ., португ.] / J. Whitlam, Vitria Davies[d], M. Harland[d]. — Glasgow : HarperCollins UK[d], 1991. — OCLC 370343862. — WD Q101483459. | < [https://www.worldcat.org/oclc/370343862 > [https://search.worldcat.org/title/370343862 < [https://www.worldcat.org/oclc/370343862 > [https://search.worldcat.org/title/370343862 < [https://www.worldcat.org/oclc/370343862 > [https://search.worldcat.org/title/370343862 |
План разработки- Реализовать форматирование сносок, подтверждающих поля.
- Возможность отображения только тех утверждений, которые подтверждены сносками.
- Ограничение количества сносок (по умолчанию 3-мя), подумать о возможности комбинирования сносок в троеточии.
- Сделать демку шаблона (в песочнице) сноски по QID.
- Более подробная документация с примерами.
- Подумать о возможности форматирования группы целиком (объединение полей заглавия и подзаголовка в форматируемую группу, в которую добавится ссылка). По логике, родительская группа будет полем ссылки.
См. также- WDBackend — модуль получения информации из Викиданных по задаваемой схеме.
- WDSource — модуль получения информации об источнике из соответствующего элемента Викиданных.
|
|