Обсуждение модуля:Песочница/Vcohen/Прогноз ММ

message: Давайте продолжим обсуждение тут, дабы не отвлекать следящих за моей СО. Хотел сразу скопом вывалить вопросы и замечания, но так только запутывался всё больше. Так что пойдём по порядку, пока первые два:
# Почему всего одна функция, но аж два дополнительных параметра? Нельзя ли сделать так, чтобы просто каждый из четырёх вариантов вызывался отдельной функцией со своим названием? Так намного удобнее будет на мой взгляд. Предлагаю year, date, citeyear и citedate.
# Разница в названии между span и ref name для чего сделана? Только ради более короткого вызова? Если да, то лучше её нивелировать, намного меньше путаницы будет. Или они не могут одинаковые имена иметь? ØM 18:03, 24 июля 2018 (UTC)
* Первое: нет проблем, мне так было проще, чтобы отлаживать. Сделано. Второе не понял. Ссылка может содержать информацию, касающуюся хоть участка, хоть двух участков, хоть отдельной станции. У кого с кем должны быть одинаковые имена? И какой вызов при этом будет менее коротким? Vcohen (обс.) 07:14, 25 июля 2018 (UTC)
** Спасибо. Ну вот смотри, ты вызываешь для span NE источник BCL-NE. Почему не назвать источник тоже NE, так нельзя? Кстати, у нас после унификации преамбул в них везде используется только именительный падеж, то есть модулю не потребуется по умолчанию выдавать «в конце такого-то года» или «в таком-то году», вот в качестве третьего параметра падеж можно добавить, для текста статей о линиях и перспективах. Базу источников по url ещё не делал, судя по тому, что каждый раз прописываешь все параметры? Давай тогда это будет ближайший пункт разработки. Mos.ru в ней кстати должен быть викифицирован, у нас есть такая статья. ØM 11:24, 25 июля 2018 (UTC)
*** Понял, отвечаю по пунктам. 1. Префикс BCL уберу, просто я брал name из сносок в статье, не вдаваясь в принципы их построения. 2. Если запрошена полная дата и при этом поле date заполнено, то результат строится из date и year: "в январе" (из поля) + "2019" (из поля) + "года". Если же запрошена полная дата, а в поле date ничего нет, то результат стоится только из year: "в" + "2019" (из поля) + "году". 3. Про базу источников понял, бу сделано. Vcohen (обс.) 12:08, 25 июля 2018 (UTC)
*** Сделано 1 и 3. Vcohen (обс.) 12:34, 25 июля 2018 (UTC)
**** Спасибо. Так про то и речь: модуль по умолчанию не должен выдавать никакого «году». Если поля — date="январь"; year="2019", то вызовы — date: «январь  года»; year: « год». Если запрошена полная дата, а в date пусто, то выдача не должна отличаться от year. ØM 16:25, 25 июля 2018 (UTC)
***** Я брал примеры из статьи, и там все даты - не в форме "январь" и "год", а в форме "в январе" и "в году". Я еще думал о том, чтобы каким-нибудь параметром делать в этой выдаче первую букву заглавной, потому что такие примеры там тоже есть. Мы ведь не хотим полностью перестраивать все имеющиеся в статьях фразы? Vcohen (обс.) 18:23, 25 июля 2018 (UTC)
****** Предлагаю использовать неименованный параметр для этого, если в него передано "в", то "в таком-то году", если "В", то "В таком-то году", если параметр не используется, то именительный падеж. ØM 04:35, 26 июля 2018 (UTC)
******* Но именительный падеж тоже может быть и "январь", и "Январь". Нужен один параметр для падежа и другой параметр для заглавной буквы. Vcohen (обс.) 08:47, 26 июля 2018 (UTC)
******** Приведёшь пример предложения, в котором должны сочетаться именительный падеж и заглавная буква? Есть подозрение, что это возможно только при наличии серьёзных косяков со стилем, которые нужно исправлять, а не поощрять. ØM 09:27, 26 июля 2018 (UTC)
********* Хронология предстоящих пусков. Январь 2019 - участок от... Ну и т.д. Vcohen (обс.) 10:38, 26 июля 2018 (UTC)
********** Предложения в хронологии у нас обычно начинаются с маркера списка, после которого следует строчная буква. ØM 10:52, 26 июля 2018 (UTC)
*********** Может быть какая-нибудь таблица, в которой текст в ячейках с большой буквы... Vcohen (обс.) 12:02, 26 июля 2018 (UTC)
************ Есть у нас такая таблица, и там традионно тоже с маленькой :) ØM 12:34, 26 июля 2018 (UTC)
************* Я сейчас вернулся в исходное обсуждение и попытался пройти по всем 4 головам дракона ("Список строящихся, шаблон развития, описание в статье ММ, и таблица там же"). Нашел 3, не нашел "таблицу там же". Vcohen (обс.) 06:51, 27 июля 2018 (UTC)
************** Она там по нажатию на кнопку показывается. ØM 07:11, 27 июля 2018 (UTC)
*************** Понял, спасибо. Я не уверен, что это хорошо, когда в одном столбце всё с большой, а в другом всё с маленькой. Но согласен, что сейчас это так. Ладно, чуть позже сделаю. Vcohen (обс.) 07:54, 27 июля 2018 (UTC)
*************** Пока застопорилось на том, что я не могу программно заменить большую букву на маленькую. Задал вопрос коллегам. Vcohen (обс.) 11:37, 27 июля 2018 (UTC)
*************** Спасибо Игорю, всё получилось. Сейчас буду доделывать документацию. Vcohen (обс.) 11:45, 27 июля 2018 (UTC)
thread_title:  Первая версия 

message: Отлично, спасибо! Осмотрел код на предмет того, что ещё осталось нереализованным: altsource ты вроде ещё не делал, да? Это когда например NE не как с source и source2 показывает вот так: 2021—2022[4][5] (так тоже надо, да), а вот так: 2021[4]—2022[5]. ØM 12:18, 27 июля 2018 (UTC)
* Документация готова. Пытаюсь понять, что ты говоришь... А в каком порядке показывать эти данные, надо определять программно? Например, в одном источнике сказано "2019-2021", а в другом "2020-2022". Просто тупо соединять их через тире, сначала первый, потом второй? Vcohen (обс.) 12:35, 27 июля 2018 (UTC)
** Ну у нас же дата привязана к участку, а не к источнику, и вводится вручную. То есть если на участке введён диапазон дат через тире, и при этом есть altsource, то source автоматически показывается к той дате, что перед тире. ØM 12:50, 27 июля 2018 (UTC)
*** Не понимаю. Дан участок, у него диапазон дат через тире и источник к этому диапазону. Теперь мы через altsource добавляем другой диапазон со своим источником. Как это будет выглядеть? Vcohen (обс.) 12:53, 27 июля 2018 (UTC)
['NE']={date=,year='2021—2022',source='SE2021',altsource='NE'}, первая дата заявлена в первом источнике как начало одного диапазона, вторая во втором как конец второго. ØM 13:03, 27 июля 2018 (UTC)
* В этом примере я ничего не понимаю, особенно с учетом того, что участок под названием NE ссылается сам на себя. Мой вопрос такой:
 ['NE']={date=,year='2019—2021',source='1921',altsource='NE+'}
 ['NE+']={date=,year='2020—2022',source='2022'} (эта строчка, видимо, в какой-то новой таблице)
replies: text: - один диапазон со своим источником, другой диапазон со своим источником. А вопрос в том, как это должно выглядеть в статье. Vcohen (обс.) 13:15, 27 июля 2018 (UTC)
Нет, всё не так :) Видимо время вновь объяснять на пальцах. Итак, мы имеем два источника, первый из них говорит, что станция N откроется в 2019—2021 годах, заносим:
	       ['N2019']={
		url='https://stroi.mos.ru/news/N-otkroietsia-v-2019—2021-ghodah',
		title='N «поедет» в 2019—2021 годах',
		accessdate='2018-07-28',
		sitedata='stroi.mos.ru'
		},Второй говорит, что станция N откроется в 2020—2022 годах, заносим: 
	       ['N2020']={
		url='https://stroi.mos.ru/news/N-otkroietsia-v-2020—2022-ghodah',
		title='N откроется в 2020—2022 годах',
		accessdate='2018-07-28',
		sitedata='stroi.mos.ru'
		},Кстати, почему нет поля "date" для cite web? Источники занесли, осталось занести отображение для статьи:
                ['N']={date=,year='2019—2022',source='N2019',altsource='N2020'},. В результате должны получить такой вывод: 2019[1]—2022[2]. ØM 21:55, 27 июля 2018 (UTC)
* Что написано в поле year в этих двух источниках? Поле date исправлю, для этого надо будет переименовать уже сделанное поле date, относящееся к дате пуска. Vcohen (обс.) 09:10, 28 июля 2018 (UTC)
** А где у нас в источниках используется поле year? Его же там вообще нет, ведь источники содержат лишь некоторые параметры cite-web. Давай лучше новое переименуем, пусть будет cw-date, а работать для шаблона cw просто как date, так возможно? ØM 14:17, 28 июля 2018 (UTC)
*** Так. С date разберемся потом. Сейчас хочу понять, что от меня требуется с altsource. Я правильно понял, что программа должна взять из таблицы значение 2019—2022 и расчленить его, вставив сноску в середину? Мне это сложно, мне проще держать 2019 и 2022 в двух разных полях. А такая возможность уже есть - 2019 с одним источником и 2022 с другим. Vcohen (обс.) 15:22, 28 июля 2018 (UTC)
**** Да, понял правильно. Не надо привязывать дату к ссылке на источник, она должна только параметры cite-web содержать, дабы не было путаницы. Давай тогда так лучше: поля date и date2, year и year2. Если заполнено только одно или два поля из первого набора, то выводится одиночная дата или год, если же заполнены поля из второго, то выводится диапазон. Таким образом source всегда должен будет выводиться за date (в который тоже можно вставить диапазон если источник на него один), а за date2 всегда будет выводиться altsource, если они существуют. ØM 15:30, 28 июля 2018 (UTC)
***** В общем, я сделал что-то, но пока не проверил. Все новые поля отличаются от старых добавкой _alt: year_alt, date_when_alt, date_what_alt, date_alt, source_alt, source2_alt. Чтобы проверить, надо где-нибудь заполнить эти поля. Что касается date для cite web, то оно есть - я не заметил, что одинаковое название date используется в разных местах, но оно есть. Переименование не критично, но я потом все-таки переименую, чтобы не путать тех, кто будет использовать модуль. Vcohen (обс.) 16:52, 28 июля 2018 (UTC)
****** Проверить случайными данными чисто функционирование этого, или нужно искать где такое на самом деле сейчас есть? ØM 17:55, 28 июля 2018 (UTC)
******* Лучше начать с реальных данных. Потом можно будет поиграться с ними, чтобы проверить разные варианты. Vcohen (обс.) 18:11, 28 июля 2018 (UTC)
********  . То ли что-то не работает, то ли я сделал что-то не так. ØM 19:21, 28 июля 2018 (UTC)
********* Внес несколько исправлений. Сейчас лучше? Только для mosday.ru надо будет дозаполнить данные. Vcohen (обс.) 19:48, 28 июля 2018 (UTC)
********** Да, спасибо, лучше, только вывод-то должен быть вот такой: 2019[1]—2020[2] год, а не как сейчас. Данные дозаполню конечно, сейчас главное функциональность обеспечить. ØM 19:51, 28 июля 2018 (UTC)
*********** А если date и date_alt заполнено, как мне его комбинировать? Я думаю, если надо получить в выдаче только номера годов, то и вызывать надо не citedate, а citeyear. И плюс еще проблема: что делать, если в year и year_alt сидит один и тот же год, а разница только между date и date_alt. Vcohen (обс.) 21:13, 28 июля 2018 (UTC)
************ «конец 2019[1]— начало 2020[2] года». Выдача должна быть всегда корректной, вне зависимости от того, заполнены параметры date или нет. О! Модуль должен бы уметь это распознавать и выдавать тогда «начало[1]—конец[2] 2020 года». ØM 21:21, 28 июля 2018 (UTC)
************* Вариантов может быть много. Например: 31 декабря 2019 - начало 2020. Или: вторая половина 2019 - 1 января 2020. Как из этого сделать корректный текст? Vcohen (обс.) 21:26, 28 июля 2018 (UTC)
************** А что с этими вариантами не так? Они же типовые. 31 декабря 2019[1] — начало 2020[2] года. вторая половина 2019[1] — 1 января 2020[2]. Или ты про стиль? Тогда можно сделать параметр (в самом модуле, не для статей), который, если добавить его в строку станции или диапазона, будет обрамлять вторую дату в такое: 31 декабря 2019 года[1] (по другим источникам — начало 2020 года[2]).
*************** А если в одном есть date, а в другом нет? Vcohen (обс.) 08:27, 29 июля 2018 (UTC)
**************** Тоже вариант с параметром. Параметр же в любом случае будет вручную добавляться там, где добавляющему видится, что лучше будет с надписью «по другим источникам». ØM 21:26, 29 июля 2018 (UTC)
***************** Чтобы это увидеть, надо в момент добавления в модуль сделать предпросмотр всех вариантов в статьях. Не надо такого требовать от людей. Модуль делается для того, чтобы упростить работу. Vcohen (обс.) 07:42, 30 июля 2018 (UTC)
*************** И вообще, мне кажется, что "по другим источникам" - это единственный корректный вариант. Превращение двух дат из источников в диапазон - это орисс. Предлагаю для date сделать "по другим источникам", а для year, так и быть, диапазон. Vcohen (обс.) 17:16, 29 июля 2018 (UTC)
**************** Да вроде не особо орисс... Хотя может это я просто привык уже, мы нередко так делаем, никто не возмущался вроде. ØM 21:26, 29 июля 2018 (UTC)
***************** Две конкретные даты в источниках опираются на какие-то предположения, которых мы не знаем. Грубо говоря, если будет принят проект А, то дата такая, а если Б, то другая. Нет промежуточного проекта между А и Б, поэтому нет и промежуточных дат. Да, после выбора проекта все равно будут отступления от графика, но это не связано с тем, что проектов изначально было два, и не сказано в источнике (как и в случае, когда дата одна). Vcohen (обс.) 07:42, 30 июля 2018 (UTC)
****************** Ну так-то конечно ты прав, просто таким образом получается, что мы не просто автоматизируем существующую норму, а создаём новую. ØM 10:21, 30 июля 2018 (UTC)
******************* Мы в этой норме заодно исправляем обнаруженную ошибку. Vcohen (обс.) 10:35, 30 июля 2018 (UTC)
******************** Ладно, пусть будет так :) ØM 10:48, 30 июля 2018 (UTC)
********************* Пока сделал "по другим источникам" на все случаи. Потому что может быть в поле year и так диапазон (возвращаемся к моему первому примеру), и тогда диапазон из диапазонов с тремя тире будет нехорошо смотреться. Vcohen (обс.) 11:00, 30 июля 2018 (UTC)
********************* Сделал еще одно исправление. Если оба года одинаковые и запрошен только год, или если случайно обе даты одинаковые и запрошена полная дата, то никаких "по другим источникам" я не делаю, а просто добавляю вторые сноски после первых. Vcohen (обс.) 11:09, 30 июля 2018 (UTC)
********************** Разумно, согласен. ØM 11:39, 30 июля 2018 (UTC)
thread_title:  Диапазоны 

message: Всё готово, я могу начинать заполнять модуль реальным контентом для полноценного тестирования всего перед релизом? ØM 22:34, 3 августа 2018 (UTC)
* С моей стороны вполне. Заодно, возможно, выявятся новые проблемы, которые мы сможем исправить до выпуска на свободу. Vcohen (обс.) 14:38, 4 августа 2018 (UTC)
thread_title:  Контент 

message: Это возможно вопрос уже не первой версии модуля, а дальнейших (хотя будет зависеть от сложности реализации такого на Lua), но подниму его уже сейчас. Модуль же может на основе всё тех же данных по отдельным функциям создавать автозаполняемые таблицы, как те, что обсуждались выше и ранее, например для шаблона ? По крайней мере в обычном шаблоне я примерно представляю как такое реализовать, пусть и через уйму кода и несколько подстраниц шаблона. ØM 22:39, 3 августа 2018 (UTC)
* Да, конечно. Мне нужно только знать, в каком формате нужен вывод. Vcohen (обс.) 14:39, 4 августа 2018 (UTC)
** Ну вот собственно в таком формате и нужен, вызываем например {{#invoke:Песочница/Vcohen/Прогноз ММ|template}} вместо всего кода вышеупомянутого шаблона, получаем тот же вывод, что есть сейчас. Аналогично с таблицей в Московский метрополитен#Перспективы: вызываем {{#invoke:Песочница/Vcohen/Прогноз ММ|table}}, получаем нынешний её вид. ØM 15:20, 4 августа 2018 (UTC)
*** Вопрос по шаблону: как группировать по годам? В шаблоне у каждой станции (по крайней мере на первые несколько лет) указан один однозначный год, а в модуле в поле year могут быть и интервалы. Вопрос по таблице: откуда брать текст? В таблице много текста, который сейчас в шаблоне не предусмотрен. Надо его весь запихать туда? Или как-то передавать при вызове? Vcohen (обс.) 16:57, 4 августа 2018 (UTC)
**** Не раз сталкивался с подобной проблемой вне контекста модуля: в источнике дан интервал, а табличная структура шаблона заставляет выбирать один конкретный год. Лично я обычно решал это в пользу минимального года, то есть — первый из диапазона.Думаю нужно завести для этого дополнительный необязательный параметр comment для станций и участков, вывод которого будет производиться только в этой таблице. ØM 17:04, 4 августа 2018 (UTC)
***** Насчет первого понял. Насчет второго: параметр - это поле в модуле? А группировка информации по строкам таблицы в статье - это по тем самым участкам, которые введены в модуле, или не совсем? Vcohen (обс.) 17:39, 4 августа 2018 (UTC)
****** Да. На текущий момент не совсем, но вполне можно и приравнять для удобства. ØM 18:11, 4 августа 2018 (UTC)
****** А насколько это срочно? Я вообще-то сейчас в вики-отпуске до конца сентября. Оно терпит до конца сентября? Vcohen (обс.) 10:12, 6 августа 2018 (UTC)
******* Ну как я уже сказал, конкретно этой части необязательно входить в первую версию модуля, так что — вполне, отдыхай :) ØM 11:01, 6 августа 2018 (UTC) 
----
thread_title:  Дальнейшее развитие