Википедия: Lua / Запросы / Архив 2


< Википедия: Lua | Запросы

Для всех, кто интересуется работой с датами, я создал Модуль: Возраст . См. Обсуждение модуля: Возраст . Мне не удалось найти библиотеку Scribunto, которая реализует функции даты, но, вероятно, было бы желательно, чтобы она была создана в конечном итоге (или есть что-то, что я упустил?). Johnuniq ( разговор ) 10:16, 2 апреля 2013 (UTC)

Похоже, это должно быть mw.language: formatDate . Однако мне не удалось заставить команду работать; если я вызываю его, когда lang:formatDate(U)получаю ошибку «попытка проиндексировать глобальный 'lang' (нулевое значение)», и если я вызываю его, когда mw.language:formatDate(U)получаю ошибку, «попытка вызвать метод 'formatDate' (нулевое значение)». Языковая библиотека еще не доступна в английской Википедии? У меня было такое же отсутствие успеха с другими функциями в библиотеке. - Г-н Страдивари, выступление, 11:00, 2 апреля 2013 г. (UTC)
mw.getContentLanguage():formatDate("d M Y")будет работать. - WOSlinker ( обсуждение ) 12:38, 2 апреля 2013 г. (UTC)
Да ... это определенно помогло бы, если бы я полностью прочитал документацию. Спасибо! - Г-н Страдивари, выступление, 13:13, 2 апреля 2013 г. (UTC)

Кто-нибудь написал утомительную функцию для отключения многосвязного текста нескольких внешних ссылок или интервики-вики-ссылок, таких как:

wikitext: [[Travel | Gone]] [http://acmeprepositions.com с] [[статьи на английском языке | the]] [[wikt: Wind]]
разорвано: Унесенные ветром

Обратите внимание на необходимость удалить несколько простых вики-ссылок или межвики-ссылок (например, «wikt:» ​​для викислова ), а также внешних ссылок с помощью «http *». Эта функция отсоединения будет скопирована в другой модуль Lua. Спасибо. - Wikid77 ( обсуждение ) 07:30, 30 марта 2013 г. (UTC)

Удалить ссылки легко, предварительно предварительно просмотрев отрывок текста, а затем скопировав то, что вы видите, в буфер редактирования. Он будет скопирован без ссылок. ЭдДжонстон ( выступление ) 00:28, 1 апреля 2013 г. (UTC) . Неважно. Теперь я вижу обсуждение выше. ЭдДжонстон ( разговор ) 18:43, 1 апреля 2013 (UTC)
Гм, это все хорошо, если вы просто редактируете страницу, но если вы получаете параметры через вызов шаблона, способ автоматической очистки входных данных намного важнее. Van Isaac WS Vex внес вклад 09:28, 1 апреля 2013 г. (UTC)
Что-то связанное уже было сделано в Template: Unlink , но в очень ограниченном объеме. - DixonD ( разговор ) 12:25, 1 апреля 2013 г. (UTC)
Другие, вероятно, меня превосходят, но это не то, что легко сделать правильно и полностью при наличии комментариев, разделов nowiki и возможных разумных (я не могу придумать ни одного) и паталогичных (я могу вспомнить много) случаев с скобки в частях викитекста, которые не следует интерпретировать как ссылки. Мартейн Хоэкстра ( разговор ) 16:36, 1 апреля 2013 (UTC)
Это может быть сложно сделать идеально, но должно быть легко сделать плохо. :) Совершенство может включать в себя хорошую замену для mw.ustring.gsub, который принимает параметр "plain", чтобы мы могли легко вытащить все тексты, комментарии и т. Д., Обработать их специально, а затем gsub-plain их обратно в основную строку снова, не беспокоясь о том, что некоторая часть их содержимого будет интерпретирована как шаблон. (Я не совсем уверен, насколько это сложно - я заметил такую ​​странность, как то, что захваченный заголовок раздела не может быть найден в строке, из которой он был получен ) Wnt ( разговор ) 21:02, 1 апреля 2013 г. (UTC)
Я больше боюсь таких патологических случаев, как "blabla urgh nasty]]" и многих его разновидностей. Может быть сложно определить, когда шаблон действует так же, как парсер, а когда - что-то еще. Я, например, во многих случаях не могу предсказать анализатор, не увидев превью. Я не уверен, что в данном случае совершенство - враг хорошего. Мартин Хоэкстра ( разговор ) 21:12, 1 апреля 2013 (UTC)
не уверен, что понимаю вариант использования. может кто-нибудь привести пример, где такая функция будет полезна? мир - קיפודנחש (он же кипод) ( разговор ) 21:24, 1 апреля 2013 (UTC)
Я должен отметить, что исходный пример дает пример для wikt: Wind - проблема здесь в том, что если его нужно изменить на «Wind», то ссылка 4:20 будет изменена на 20 (если у нас нет таблицы всех забавные префиксы вики и предполагаем, что ни один из них не перекрывает реальные элементы контента). Я склонен надеяться, что, возможно, OP будет удовлетворен тем, что не изменит ссылки, такие как wikt: Wind, если они не написаны как Wind , т. Е. Чтобы отобразить их перед отключением? Wnt ( обсуждение ) 21:30, 1 апреля 2013 г. (UTC) - на самом деле я должен отметить, что это редактирование, написанное как [[wikt: Wind |]], сохранено как [[wikt: Wind | Wind]]. Нужна ли вообще для этого специальная функция? Wnt ( разговорное ) 21:32, 1 апреля 2013 (UTC)
NB. В настоящее время я работаю над этим как над функциями в моем модуле: WikiLinkEverything , который очень нуждается в переписывании и переименовании модуля: WikiLink , который адаптируется как общий компоновщик / разделитель. Wnt ( разговор ) 21:34, 1 апреля 2013 (UTC)
извините за трудности, но я все еще не вижу варианта использования. вы описываете желаемую функциональность (ввод - wikt: Wind , вывод - Wind), но я уже понял функциональность, и это не то, что я задал: вопрос был в том, каков вариант использования? какой шаблон вы видите, где имеет смысл передать wikt: Wind в качестве параметра и в какой-то момент получить "Wind" - обратите внимание, что я не оспариваю необходимость этого и не пытаюсь утверждать, что это не должно быть готово - я искренне спрашиваю о сценарии использования. Часто, когда понятен вариант использования, могут быть найдены лучшие решения. мир - יפודנחש (он же кипод) ( разговор ) 22:09, 1 апреля 2013 (UTC)
В комментарии, который он сделал 30 марта на Module talk: Citation / CS1 / Archive 12 # COinS, Wikid77 упомянул этот запрос. Итак, я предполагаю, что возможное присутствие ссылок в некоторых полях аргументов, используемых COinS, было тем, что мотивировало его идею. В примере с COinS, похоже, нет стандарта относительно наличия ссылок. ЭдДжонстон ( выступление ) 22:34, 1 апреля 2013 г. (UTC)
  • Основываясь на обсуждении выше, это должно было быть написано как «[[wikt: Wind |]]», чтобы отображать «Wind». Вариантом использования может быть необычная ссылка на название книги, где были связаны только некоторые слова, например «Too Late the [[wikt: Phalarope |]]», связывающая только некоторые слова (« Phalarope ») в знаменитом заголовке « Too Late» Палач ». Мы никогда не знаем, как заголовки цитат, заголовки глав или номера страниц могут быть связаны с одной или несколькими другими веб-страницами. - Wikid77 ( обсуждение ) 23:45, 1 апреля 2013 г. (UTC)
  • Нам не нужно беспокоиться о поддержке [[wikt:Wind|]], поскольку синтаксический анализатор обрабатывает трюк с конвейером до того, как обработает #invoke . Достаточно просто поддержать [[wikt:Wind|Wind]]. Я также согласен с тем, что отображение [[wikt:Wind]]as wikt:Windимеет больше смысла, поскольку это то, что читатели увидят на экране. - Г-н Страдивари, выступление 04:16, 2 апреля 2013 г. (UTC)
  • Спасибо за обсуждение и не спешите с такой сложностью: теперь, когда сложность объяснена лучше, даже для отображения текста левой ссылки для завершающего символа "|" в «[[wikt: Wind |]]», возможно, нам следует запланировать около 5 недель для работы над этой возможностью и определенно разрешить комментарии в стиле HTML, возможно, неправильные комментарии, где текст будет обрезаться до «<-», как попытка комментария. Что касается любых тегов nowiki, мы знаем, что они избегают проверки как только внутренние маркеры, и поэтому любые «[...]» в тегах nowiki не будут сканироваться с помощью Lua и будут «принудительно» вставлены в выходной текст. Подробнее позже. - Wikid77 ( обсуждение ) 23:45, 1 апреля 2013 г. (UTC)
Обратите внимание: {{#invoke: WikiLink | main | function = delink dewiki | [[Travel | Gone]] [http://acmeprepositions.com with] [[English article | the]] [[wikt: Wind]]}} генерирует « Ошибка сценария: нет такого модуля« WikiLink ». ». ('wikt: Wind' согласно моему комментарию выше; {{#invoke: WikiLink | main | function = delink dewiki | [[Travel | Gone]] [http://acmeprepositions.com with] [[English article | the]] [[wikt: Wind | Wind]]}} генерирует ошибку сценария: нет такого модуля "WikiLink". ) В настоящее время он ничего не делает с примером Мартин Хоэкстра ... на самом деле я не думаю, что это должно быть, но на самом деле я Я не уверен, почему это не так. ;) Wnt ( разговор ) 23:46, 1 апреля 2013 (UTC)
Прежде чем лечь спать, я хотел бы отметить, что модульные тесты - ваш друг (как для работы над правильной реализацией, так и для четкого представления о том, что поддерживается, а что не поддерживается). Мартейн Хоэкстра ( разговор ) 23:51, 1 апреля 2013 (UTC)
  • Примеры: Еще несколько примеров:
  • {{#invoke: WikiLink | main | function = delink dewiki | All [[Gone]] [[wikt: to |]] [[Bed]] [[Now]]}} выдает сообщение " Ошибка сценария: такого модуля нет" WikiLink ". "
  • {{#invoke: WikiLink | main | function = dewiki dewiki | [[A]] [[B | be]] [[C]] [[DDDD]] [[: es: Ahora mismo |]] [[EeE] ]}} выдает « Ошибка сценария: нет такого модуля« WikiLink » ».
  • {{#invoke: WikiLink | main | function = delink dewiki | [[A]] [[B | be]] [[C]] [[DDDD]] [[EeE]]}} выдает ошибку сценария: нет такой модуль "WikiLink" ".
  • {{#invoke: WikiLink | main | function = delink dewiki | [[Обзор]] из [http://books.google.com Google Книги] на [[UK | Великобритания]]}} дает сообщение " Ошибка сценария: такого нет модуль "WikiLink" ".
Были проблемы, когда межвики-ссылка с вертикальной чертой («|», «wikt: _ |» или «: es: _ |») скрывала предыдущие ссылки в тексте. - Wikid77 ( обсуждение ) 15:08, 2 апреля 2013 г. (UTC)
Хм. Как насчет того, чтобы сначала выполнить синтаксический анализ предложения, чтобы найти границы слов, а затем сохранить каждое из слов как элементы в массиве, чтобы их можно было обрабатывать индивидуально? - Г-н Страдивари, выступление, 15:35, 2 апреля 2013 г. (UTC)
Я изучал это, но чем глубже я заходил, тем больше я понимал, что просто переписываю парсер с нуля, плохо ... это была та часть, где я понял, что вам нужно отслеживать, какие ссылки не могут быть проанализированным, чтобы перестать пытаться разобрать их снова, от чего я отказался. : / Вероятно, самый простой способ написать де-компоновщик - это заставить разработчиков написать перехватчик из Lua в сам парсер, чтобы мы могли отсоединить вещи, не дублируя усилия команды разработчиков. - Г-н Страдивари, выступление, 18:41, 2 апреля 2013 г. (UTC)
Я уже этого боялся. Подход, основанный на регулярных выражениях, может что-то уловить, но, как сказано выше, полный и правильный может быть слишком далеким. Будет ли достаточно определения того, что шаблон работает только при отсутствии тегов? Код, который у вас есть на данный момент, находится на вики-сайте? Мартин Хоэкстра ( разговор ) 18:58, 2 апреля 2013 (UTC)
Я только что закончил кодировать то, над чем работал. Это в модуле: Пользователь: Мистер. Stradivarius / sandbox2 , и на данный момент он может отключить одну внутреннюю вики-ссылку, если он не использует трюк с конвейером, и если это неплохая ссылка. (Обнаружение плохих ссылок все еще требует доработки - на данный момент оно обнаруживает только квадратные скобки.) Его следует использовать как функцию внутри Module: WikiLink, если кто-то захочет попробовать это. А для меня пора спать. - Г-н Страдивари, выступление, 19:21, 2 апреля 2013 г. (UTC)
Итак, у вас есть успешный модульный тест! Вперед! Я бы посоветовал начать с признания того факта, что не будет полной реализации, а с узкого определения случаев, в которых вы ожидаете успеха. Я бы посоветовал для начала: только текст, содержащий правильно оформленные ссылки, без какой-либо другой разметки. Мартин Хоэкстра ( разговор ) 19:52, 2 апреля 2013 (UTC)
Спасибо за обнаружение ошибки в WikiLink - у меня была одна. - которую я не изменил на [^% [] - и вот что сработало. Wnt ( разговор ) 04:30, 3 апреля 2013 (UTC)
  • Я был занят, и, несмотря на то, что я сказал ранее, я закодировал Module: Delink, который удаляет ссылки почти на весь викитекст, включая трюк с конвейером и вложенные ссылки. Есть еще некоторые модульные тесты, которые не проходят успешно, но подавляющее большинство - см . Обсуждение модулей: Delink / testcases . Тем не менее, это может быть связано с гораздо большим количеством вводимых в него данных, поскольку обязательно будут вещи, о которых я не подумал. Пожалуйста, попробуйте сломать его, если сможете. :) - Mr. Stradivarius ♪ talk ♪ 00:31, 4 апреля 2013 (UTC)

Я думаю, у нас должен быть модуль, который автоматически конвертирует такие шаблоны, как эта Albumchart, и модули (любые из моих собственных, написанных до руководства по стилю) в стандартный формат.

Я помню, что у меня были некоторые проблемы с шаблонами, неправильно расширенными с отображением "[[: Template:]]", хотя (я не буду включать здесь всю массу), кажется, на первый взгляд, текущий шаблон обрабатывается довольно точно. Если мы сможем надежно импортировать непроанализированный код шаблона, мы могли бы написать модуль, чтобы поместить все это в стандартный формат с отступами и цветами, которые значительно упростили бы чтение и понимание, что помогло бы быстро кодировать эквиваленты Lua.{{#invoke:Page|getContent|Albumchart}}

Я думаю, что его следует назвать чем-то простым, например, Module: Format, и иметь функции «lua» и «template» для обработки двух типов кода.

Конечно, было бы необходимо придумать полную спецификацию того, как Lua должен быть отформатирован в первую очередь, какие слова нужно делать с отступом и без отступа, будет ли "else if x then" по-прежнему иметь отступ из четырех + четырех символов под ним, а чем пять + четыре, все хитрые мелочи, чтобы убедиться, что он все делает правильно. (И он должен иметь возможность делать вкладки, если / когда редактор их поддерживает)

С шаблонами было бы еще более необходимо быть очень осторожным, чтобы каждая добавленная новая строка или пространство были безопасными для его работы! (Предположительно это можно сделать с помощью комментариев, даже если они написаны белым шрифтом для отображения).

Я чувствую, что со временем смогу это сделать, но не думаю, что займусь программированием до окончания отпуска. А пока есть предложения? Wnt ( разговор ) 17:41, 27 марта 2013 (UTC)

есть Lua стиль руководство где - то - мне кажется на мвт: . Вкратце: никаких вкладок, однострочные «если» и «для» - это нормально, но не в том случае, если они содержат много операций. то есть:
if condition then someAction() end прекрасно, но
if condition then action1(); action2(); action3(); end не является.
один пробел между 1 () или {} и их содержимым, но не 1 пробел для []
то есть: callFunc( param1, param2, { item1, item2 } )
но a[i]и нет a[ i ].
Что касается elseif: см. мой миниатюрный модуль выше для датской диакритики - это стандарт.
правила максимально похожи на руководство по стилю javascript. лично мне не нравятся лишние пробелы внутри () и {}, и я предпочитаю табуляцию пробелам, но я стараюсь придерживаться руководства по работе с WP. Если кто-то найдет ссылку на руководство по стилю, это было бы неплохо - нам, вероятно, следует сделать ссылку на нее с одной из страниц, на которые есть ссылки на вкладках в верхней части этой страницы. мир - יפודנחש (он же кипод) ( разговор ) 17:59, 27 марта 2013 (UTC)
Одно из руководств по стилю - это Википедия: руководство по стилю Lua, оно находится на вкладке «Справка». Но я не думаю, что это исчерпывающий. Wnt ( разговор ) 18:18, 27 марта 2013 (UTC)
О, вау - я даже не заметил, что "elseif" действует в Lua. Придется кое-что исправить ... или, может, оставлю это модулю :) Wnt ( разговор ) 18:20, 27 марта 2013 (UTC)
идея состоит в том, чтобы как можно больше распространять код среди вики, поэтому любое руководство по стилю должно быть в mw или мета, а не enwiki, IMO. мир. קיפודנחש (aka kipod) ( разговор ) 12:45, 30 марта 2013 (UTC)
Я реализовал простое средство форматирования в Module: FormatTemplate , но оно требует большой нагрузки на процессор и, к сожалению, не думаю, что оно может обрабатывать весь шаблон Albumchart. Вероятно, есть способы еще больше его оптимизировать, но может потребоваться переписать его с нуля с очень творческим использованием команд mw.string. Wnt ( разговор ) 04:17, 3 апреля 2013 (UTC)
С тех пор я немного ускорил это и реализовал грубую функцию продолжения, но другая проблема заключается в том, что команды форматирования таблиц используют символы вертикальной черты и не могут быть легко различимы, если таблицы также не проанализированы - но анализ таблиц - это огромное болото альтернативных стратегий. с тегами th, td, такими тегами, как "|}", которые могут появляться в разных контекстах, даже с шаблонами, используемыми для их сборки. Нет простого способа сделать отступ для текста по вертикали и не испортить таблицы. Без некоторого вдохновения модуль может быть понижен до отображения формата шаблона , а не на самом деле делать это. Wnt ( разговорное ) 16:26, 3 апреля 2013 (UTC)
ИМО, в этом нет никакого смысла. нет никаких оснований создавать эти средства форматирования в Lua. имеет смысл сделать это форматирование в JS и интегрировать его в редактор (конечно, как гаджет или скрипт пользователя). Я могу продолжить и подробно объяснить, почему я так думаю, но я не уверен, что это необходимо. 5 минут размышлений покажут любому, почему это очевидно. мир - קיפודנחש (он же кипод) ( разговор ) 18:29, 3 апреля 2013 (UTC)
Боюсь, это нужно. Я только начал изучать Lua прямо перед развертыванием и до сих пор не знаю, для чего он хорош, а для чего плох. Я склонен прыгать в любую идею, которую я придумываю, и смотрю, что происходит. Я смутно предположил, что такой модуль может даже оказаться напрямую включенным в шаблон документации шаблона, так что читаемый, раскрашенный формат каждого шаблона будет на расстоянии одного клика от любого пользователя. Я понимаю, что Javascript может делать то же самое, но ... мне кажется, что какую бы идею ни придумал человек для JS, на самом деле никто не собирается менять свои предпочтения JS, чтобы фактически использовать его. Javascript поставляется с предупреждением безопасности, которое отпугивает их, даже если они этого хотят, но Lua должен быть гарантированно безопасным для использования всеми. Wnt ( разговорное ) 23:51, 3 апреля 2013 (UTC)
Я использовал это недавно, чтобы добавить расширение модуля и подмодуля в Template: Pie chart / doc . Используя это, я смог лучше понять структуру шаблона для его перевода. Я не буду утверждать, что это было огромным улучшением, но с чем-то вроде этого помогает каждая мелочь. Wnt ( разговорное ) 20:45, 5 апреля 2013 (UTC)

Кто-нибудь хочет попробовать свои силы в том, чтобы взять строку ISBN и определить, действительна ли она (имеет ли правильную контрольную цифру)? Полет драконов ( разговор ) 06:30, 9 апреля 2013 (UTC)

Да ладно, я вроде уже разобрался, Модуль: ISBN . Полет драконов ( разговор ) 08:50, 9 апреля 2013 (UTC)

Для тех из вас, кто любит правильно форматировать свои вики-ссылки, но кому не нравится отдельное копирование и вставка имени страницы и имени раздела - я создал модуль: UrlToWiki , который берет URL-адреса страниц из большинства вики-сайтов Викимедиа и выводит вики-ссылки с соответствующими префиксами интервики для местная вики. Так {{#invoke:UrlToWiki|urlToWiki|1=https://en.wikipedia.org/wiki/Wikipedia:Village_pump_%28policy%29/Archive_102#Using_.7B.7BComment.7D.7D_on_articles}}выдает ошибку сценария: нет такого модуля "UrlToWiki". . Взгляните на Template: Urltowiki, чтобы получить инструкции по использованию и другие примеры. - Г-н Страдивари ♪ выступление ♪ 22:43, 9 апреля 2013 г. (UTC)

См. Также User: js / urldecoder для аналогичной функциональности в Javascript. ЭдДжонстон ( разговор ) 01:34, 10 апреля 2013 (UTC)
Хм, я не знал об этом! Ну что ж, иметь больший выбор - это только хорошо, верно? Также я должен упомянуть, что в процессе создания этого модуля я также создал Module: InterwikiTable , доступ к которому можно получить с помощью mw.loadData (). Если кто-нибудь напишет какие-то функции, обрабатывающие межвики-ссылки, это может пригодиться. (Не стесняйтесь добавлять к нему, если вам это нужно.) - Г-н Страдивари, выступление, 13:08, 10 апреля 2013 г. (UTC)

Я хочу использовать шаблон без каких-либо аргументов, который оценивается как автоматически увеличивающееся число примерно так: "text {{inc}} more text, {{inc}}, {{inc}} {{inc}} {{inc}} ... {{inc}} ". И я хочу, чтобы результат был таким: «текст еще 1 текст, 2, 3 45 ... 6». Я попытался вызвать шаблон, который вызывает какой-то сценарий Lua, но все, что я могу получить, это их, поскольку сценарии сбрасываются для каждого запущенного экземпляра. Его следует использовать в викибуке для нумерации упражнений, чтобы можно было добавить одно в начале, а все остальные автоматически скорректировали их нумерацию. - Averater ( разговор ) 16:57, 7 апреля 2013 г. (UTC)

Одна из целей разработки Scribunto заключалась в том, чтобы каждый вызов #invoke был независимым, чтобы не было связи между экземплярами. Это означает, что это невозможно, и если вы выясните, как это сделать, это ошибка, и ее следует исправить. Бьорш (WMF) ( разговор ) 17:23, 7 апреля 2013 (UTC)
Это можно сделать. Идея состоит в том, что у вас есть тег , который ваш модуль Lua обрабатывает, импортируя весь title = mw.title.currentTitle (); text = title.getContent (title) - затем вы выполняете поиск и замену строки в < inc> и вернуть результат как frame.preprocess (frame, text). Завершающий может помешать отображению фактического содержимого страницы, поэтому вы можете поместить #invoke в самое начало и по-прежнему влиять на всю страницу. В основном просто, за исключением ... когда я дурачусь с этим, я как-то получаю устаревшие версии страницы. Если вы создаете небольшую страницу в другом месте, которая читается на вашей странице и делает с ней то же самое, кажется, что она будет правильно обновляться. Я думаю. Wnt ( разговорное ) 17:40, 7 апреля 2013 (UTC)
Ах да, я забыл о сумасшедших хитростях вроде «пропустить всю страницу через Lua для глобального поиска и замены» ... Конечно, это не ошибка. ;) Anomie ⚔ 20:22, 7 апреля 2013 (UTC)
Хорошо, по крайней мере, ваш экземпляр работает на Module talk: TextMarkup . Wnt ( разговорное ) 18:24, 7 апреля 2013 (UTC)
Спасибо! Извините, что мне потребовалось так много времени, чтобы ответить, но у меня были некоторые проблемы с настройкой его в большей степени для моих нужд, и все еще есть некоторые проблемы ... (Модуль: Modul: Numrering используется в Template: Mall: Uppgifter, который, в свою очередь, используется для включения содержимого в, например, эту страницу 3D-Geometri ) - Averater ( обсуждение ) 16:53, 9 апреля 2013 г. (UTC)
Серьезно, это больше похоже на задачу HTML, чем на модуль. Например:
  1. Позиция 1 заключена в промежуток, который включает несколько абзацев, но анализируется как одна строка,
    если вы не используете br /, то есть!
  2. Пункт № 2

    в большом div

    и поэтому следует уважать двойной возврат, хотя я не уверен, почему

  3. №3 и т. Д.

Wnt ( разговор ) 23:51, 17 апреля 2013 (UTC)

Может ли кто-нибудь преобразовать Template: History History в Lua? Код стал бы более понятным. (Кстати, я уже предлагал это несколько недель назад, но он был заархивирован без единого ответа.) - Ypnypn ( обсуждение ) 23:43, 16 апреля 2013 г. (UTC)

Это похоже на долгую, медленную, утомительную задачу, усложняемую защищенным статусом, требующим, чтобы все было изолировано в песочнице ... Я взял на себя смелость добавить один из моих шаблонов, даже если он на самом деле не готов, в документацию page [1], чтобы людям было проще просматривать структуру шаблона ... Wnt ( обсуждение ) 23:45, 17 апреля 2013 г. (UTC)
Собственно, я только что нашел это , и это как раз то, что нам нужно. - Ypnypn ( разговор ) 23:59, 17 апреля 2013 г. (UTC)

Было бы здорово иметь модуль для конвертации дат между разными календарями. У нас есть много шаблонов, которые можно использовать в категориях: шаблоны времени, даты и календаря и их подкатегориях ( Категория: шаблоны календаря , Категория: шаблоны вычисления даты и т. Д.). - DixonD ( разговор ) 09:18, 17 апреля 2013 г. (UTC)

С чего бы вы посоветовали начать? Например, каков пример «преобразования дат между разными календарями» и часто ли он используется? См. #Module: Age выше для объявления о модуле, который является небольшим началом на пути к реализации функций даты. Johnuniq ( разговор ) 10:08, 17 апреля 2013 (UTC)
Я бы посоветовал начать с реализации функций преобразования от некоторой «стандартной» даты / времени ( юлианский день кажется хорошим кандидатом на стандартную дату) в дату / время в григорианском и юлианском календарях и обратно. Позже его можно будет распространить на все другие календари. Примером использования преобразования являются шаблоны Template: Year в других календарях , Template: JULIANDAY и множество других в упомянутых категориях. - DixonD ( разговор ) 10:47, 17 апреля 2013 г. (UTC)

У меня в голове следующая идея - иметь общий модуль, скажем, Module: Datetime, который будет содержать общие функции, которые принимают желаемый вариант календаря в качестве дополнительного параметра. А затем мы создаем отдельный подмодуль для каждого календаря. Таким образом, добавление новых календарей не потребует больших изменений в основном модуле. Так, например, в начале Module: Datetime мы загружаем подмодули Module: Datetime / Gregorian, Module: Datetime / Julian и т. Д. В некоторую таблицу, а затем, допустим, у нас есть функция toStandardTime. Эта функция примет дополнительный параметр («календарь» или первый безымянный), а затем мы просто вызовем toStandardTimeсоответствующий подмодуль, судя по этому дополнительному параметру «календарь». Есть ли в этом смысл? Может быть, я попробую что-то сделать сам, но я не знаю, когда у меня будет на это шанс. - DixonD ( разговор ) 08:49, 18 апреля 2013 г. (UTC)

Точно так же я не уверен, когда я займусь другим подобным проектом, однако я заинтересован и не стесняюсь связываться со мной на моей странице обсуждения, если когда-либо захочу. Я до сих пор не уверен, каково будет основное использование - если все, что вы сказали, было реализовано, каков пример того, как это будет использоваться? Модуль: Возраст реализует {{ серийную дату по григорианскому календарю }}, но это начинается с 1 года нашей эры. Кроме того, он не учитывает недостающие дни в 1582 году. Код gsd в модуле: Age очень короткий, поэтому, если он правильный, я не уверен, что его стоит разместить в отдельном модуле. Если вы хорошо разбираетесь в алгоритмах, но еще не освоили Lua, мы могли бы стать хорошей командой. Johnuniq ( разговор ) 09:53, 18 апреля 2013 (UTC)

Существуют шаблоны de: Vorlage: JULGREGDATUM или pl: Szablon: Data , которые являются локализованными вариантами Template: OldStyleDate . На данный момент версии DE и PL брал только я вру но здесь достаточно для пояснения. грегорианское время (стандартное) в качестве параметра и выводит результат как в старом (юлианский), так и в новом (грегорианском) формате, автоматически вычисляя правильную юлианскую дату. Поскольку я являюсь автором польской версии шаблона, основанной на немецком источнике, один из википедистов попросил меня расширить шаблон с помощью аргумента для выбора типа календаря. В данном случае это был французский республиканский календарь . Однако я отклонил запрос, объяснив это тем, что это может слишком усложнить исходный код шаблона. Внедрение LUA дает возможность создать модуль, который реализует такую ​​функциональность для разных исторических календарей с лучшей проверкой ошибок для разных вариантов. В разных странах григорианский календарь принимался на разные даты, и, насколько я помню, Новый год по старому стилю не приходился на 1 января. Кстати, шаблон в основном используется для форматирования дат рождения людей, например Джорджа Вашингтона . Есть только несколько событий, требующих этого, возможно, Октябрьская революция, однако из-за сдвига часового пояса расчет все еще может быть нарушен. Павел Зиемян ( разговорное ) 12:54, 22 апреля 2013 (UTC)

Для тех, кому интересно, некоторая работа уже проделана другими википедистами в этих модулях: Модуль: Sandbox / DixonD / DateTemplates , Модуль: Sandbox / DixonD / Datetime , Модуль: Sandbox / DixonD / Datetime / Gregorian и Модуль: Sandbox / DixonD / Дата и время / по юлианскому календарю . Тестовые примеры показывают текущее состояние разработки: Обсуждение модуля: Sandbox / DixonD / DateTemplates / testcases Не стесняйтесь присоединяться и помочь закончить этот материал. - DixonD ( разговор ) 07:24, 25 апреля 2013 г. (UTC)

Он также должен быть хорошим кандидатом для преобразования в Lua, поскольку внутренние шаблоны довольно дороги и имеют ограничения. - DixonD ( разговор ) 07:11, 25 апреля 2013 г. (UTC)

Шаблон: Loop15 имеет более 530 000 включений. Вероятно, его можно переписать с помощью модуля Lua (или, скорее, Template: Loop, вероятно, можно переписать, а Template: Loop15 можно превратить в перенаправление). - MZMcBride ( разговор ) 21:25, 24 апреля 2013 г. (UTC)

Создавать новый модуль не имеет смысла - у нас уже есть Module: String . К сожалению, этот модуль защищен (его могут редактировать только сисопы), но он однострочный (строковый объект lua имеет функцию "rep"), возможно, что-то вроде
функция  ул . rep (  кадр  )  return  string.rep (  frame . args [ 1 ]  или  '' ,  tonumber (  frame . args [ 2 ]  )  или  0  ) end
а затем Template: Loop становится чем-то вроде {{#invoke:String|rep|{{{2|}}}|{{{1|0}}}}}(100% непроверенных, но по модулю ошибок, это показывает, насколько сложна задача). Я не думаю, что создавать новый модуль только потому, что одна функция была забыта вне модуля: String имеет смысл.
можно получить немного больше фантазии, фактически запустив сообщение об ошибке, если параметр № 1 не является числом, вместо использования «0». как ни странно, это фактически сделало бы код на 5 символов короче (просто удалите "или 0") ... мир - יפודנחש (aka kipod) ( обсуждение ) 21:49, 24 апреля 2013 г. (UTC)
Что ж, если вы поместите этот код в Module: String / sandbox и сделаете несколько тестовых примеров, я обновлю модуль для вас. Или вы можете использовать {{ edit protected }}. Защищаемый модуль не является большим препятствием для его редактирования, если вы знаете, что делаете. :) - Мистер Страдивари ♪ доклад ♪ 09:30, 25 апреля 2013 г. (UTC)
Есть модуль: строка / песочница, который доступен для редактирования. - WOSlinker ( разговор ) 09:31, 25 апреля 2013 г. (UTC)
Я создал пользователя: קיפודנחש / sandbox / Module: String, который является копией Module: String с одной добавленной функцией, а именно "rep". Я также добавил несколько тестов для этой функции. по какой-то загадочной причине один из тестовых наборов (тот, который намеренно генерирует сообщение об ошибке) терпит неудачу при «сравнении» фактических и ожидаемых результатов. не мог понять этого, поэтому на данный момент есть один «сбой», однако ожидаемый и фактический для меня выглядят одинаково, и сбой возникает только при передаче неверных параметров (нечисловое значение для количества повторений). любой, у кого есть соответствующие права, может скопировать User: קיפודנחש / sandbox / Module: String обратно в Module: String . (Я также добавил тег «source», конечно же, в комментарий lua, чтобы он лучше отображался при копировании за пределы «модульного» пространства, но это практически бессмысленно). как только он скопирован в существующий модуль, шаблоны можно изменить для его использования (это также должен сделать сисоп). мир - יפודנחש (aka kipod) ( разговор ) 19:14, 25 апреля 2013 (UTC)
HTML-код был идентичен для обоих сообщений об ошибках, поэтому я вынужден заключить, что причина, по которой он не был передан, - это ограничение в Module: UnitTests или в программном обеспечении MediaWiki. Я обновил для вас Module: String . Итак, следующий шаг - это шаблоны, но их тоже нужно будет изолировать и протестировать. Довольно легко ошибиться с помощью команды #invoke, так что не стоит рисковать. То же самое - если вы настроите тестовые примеры и все будет работать, я обновлю шаблоны для вас. - Г-н Страдивари, выступление 10:57, 26 апреля 2013 г. (UTC)
В большинстве случаев {{ Loop15 }} использовался в {{ Spaces }}. Я обновил Spaces, чтобы использовать функцию String. - WOSlinker ( разговор ) 18:42, 26 апреля 2013 г. (UTC)

Можно ли что-нибудь сделать с Lua, чтобы 1) повысить производительность 2) как-то упростить синтаксис и использование? - DixonD ( разговор ) 19:35, 11 апреля 2013 г. (UTC)

Вот об этом например. Я бы сказал, что он очень подходит для Luaification.
Например, объединение вложенных шаблонов в один (в основном это три уровня для редактора шаблонов) и использование в качестве параметра «количества столбцов схемы» вместо вариантов шаблонов {{ BS1 }} ... {{ BS9 }}. С другой стороны, сообщество WP: ROUTE могло бы помочь, проявив строгость, последовательность и систематичность в определении (переопределении?, Документировании и легендах) таких параметров схемы, как значения цвета, ориентация / направление, значение и т. Д. И т. Д. Например, в одном шаблоне Lua-ified я хотел бы сразу отметить, что мне нужно 5 столбцов, что все маршруты по умолчанию должны быть Red-for-Rail, и что все логотипы станций метро в моем шаблоне - берлинские. На данный момент многие из этих независимых свойств объединены в единый код для очень короткого имени изображения, например File: uAKRZu.svg (это шоссе на мосту).
Для тех, кто не знаком с этой темой: он происходит от немецкого WP (значок BS = Bahnstrecke: участок железной дороги; значок BHF = Bahnhoff: железнодорожный вокзал). Все значки, небольшие элементарные изображения svg и их шаблоны находятся в свободном доступе.
Я не хочу преуменьшать вклад, который строит целое: отлично! (Я мог построить то и это ); Я просто хочу сказать, что мы можем систематически лучше работать с Lua. - Депип ( разговор ) 18:22, 14 апреля 2013 г. (UTC)
  • Повышается скорость разметки, но для карт нужен графический редактор: я работаю над тем, чтобы эти шаблоны работали в 3 раза быстрее. Как правило, диаграмма или карта генерируются с использованием редактора компьютерной графики , в котором линии рисуются, изгибаются и перемещаются движениями курсора, а символы карты выбираются из меню символов «укажи и щелкни». Тогда вся карта будет сохранена в виде быстрого составного изображения, а не воссоздана в реальном времени из крошечных пиктограмм в виде квадратов карты , размер каждой из которых будет изменен, чтобы соответствовать общему изображению. Вместо этого редакторы карт маршрутов создали огромные наборы тысяч квадратных значков карты (более 8000 именованных символов), где редакторы могут копировать части других шаблонов карты маршрутов для создания или расширения различных карт. Текущие карты, которые используются на более чем 11000 страницах, основаны на этих 8000 символов пиктограмм, подобных кандзи , для отображения «рутинного» языка в виде квадратов карты, соединенных вместе, для отображения в виде линий, кривых и маркеров карты. На первом этапе следует сосредоточить внимание только на том, чтобы эти текущие шаблоны работали намного быстрее. Кроме того, документация может быть расширена, чтобы помочь в поиске символов, имена которых могут ввести в заблуждение новых пользователей, но которые затем будут искать связанные слова в описаниях этих пиктограмм («параллельные рельсы, поворачивающие направо»). Поскольку предыдущие 11 000 страниц использовали карты маршрутов , следует сохранить текущие шаблоны, такие как {{ BS }} - {{ BS12 }} (шириной 12 полос), и, надеюсь, возможность копировать / вставлять из связанных карты помогут новым пользователям освоить язык условных обозначений маршрутов . Между тем, новые карты могут быть сгенерированы в графическом редакторе с различными метками, жестко закодированными в изображение, для пользователей, которые не хотят справляться с ограничениями 8000 символов пиктограммы (сотни все еще не нарисованы как изображения с красной ссылкой). Для создания блоков карты маршрутов необходимы различные технологии. Однако перепроектировать функции многополосной карты Lua было бы сложной задачей, особенно для людей, не знакомых с текущими 8000 пиктограмм. - Wikid77 ( обсуждение ) 19:34, 27 апреля 2013 г. (UTC)
  • Карты маршрутов стали в 3 раза быстрее благодаря {BS-overlap}: сегодня, в 09:12, 28 апреля 2013 г., шаблон форматирования карты маршрутов : BS-overlap был обновлен (впервые за 3 года) для использования быстрого значка. наложить на { Template: Superimpose5 } и опустить { BS-alt }, который устанавливал альтернативный текст для каждой пиктограммы. Эти изменения позволили переформатировать многие диаграммы маршрутов примерно в 3 раза быстрее. К сожалению, в обновлении также были удалены ссылки на изображения (на каждую страницу описания изображения пиктограммы), что, вероятно, связано с неправильной обработкой ссылок атрибуции произведения искусства. В любом случае, это обновление позволяет протестировать, как диаграммы маршрутов теперь можно редактировать и просматривать в 3 раза быстрее, а дальнейшие обновления можно обсудить на WT: Route_diagram_template . - Wikid77 ( обсуждение ) 10:13, 28 апреля 2013 г. (UTC)

Привет всем,

См .: Модуль: Sandbox / Yaris678 и Пользователь: Yaris678 / Sandbox

Я просто пытаюсь написать сценарий, который объединяет слово «test:» перед вводимой строкой, но я не могу заставить его работать. Я был бы очень признателен за указатель.

Yaris678 ( разговорное ) 20:51, 1 мая 2013 (UTC)

Кажется, теперь все работает нормально, я на другой машине. Я предполагаю, что это была проблема кеширования или действительно старый браузер, который был на предыдущей машине. Yaris678 ( разговорное ) 22:37, 1 мая 2013 (UTC)
Ох ... Это было из-за этой перемены! Спасибо Dragons Flight! Yaris678 ( разговорное ) 06:23, 2 мая 2013 (UTC)
Ваши проблемы были связаны с тем, как работает интерфейс между Lua и MediaWiki. Поначалу у меня также были проблемы с его пониманием, так как это большой скачок от написания кода по шаблону. По сути, модули Lua в Википедии должны быть настроены очень специфическим образом, чтобы они были доступны с обычных страниц вики. Во-первых, модули должны вернуть таблицу. Это часть модуля:
local  z  =  {} - возврат  кода модуля z
Затем эта таблица должна содержать функцию. Это часть модуля:
функция  z . test (  frame  )  - Конец кода функции
Обратите внимание, что у вас могут быть функции, которые не являются элементами в таблице, но эти функции не доступны напрямую с обычных страниц вики. Теперь, если у вас есть функция, которая является членом таблицы, которую возвращает модуль, и вы даете этой функции параметр (в данном случае текстовый «фрейм» внутри скобок), тогда программное обеспечение делает некоторую магию, которая позволяет вам интерфейс между Lua и MediaWiki. Программа превращает ваш параметр в объект фрейма , который представляет собой таблицу Lua, содержащую информацию о команде #invoke, использованной для вызова модуля, а также о некоторых других вещах. Неважно, как вы назовете параметр, будь то «рамка», «n» или «обезьяны» - это всегда будет объект кадра. Итак, ваш предыдущий параметр «n» на самом деле был таблицей, а не значением «ABC», как вы думали. Поскольку вы пытались объединить таблицу со строковым значением, вы получили ошибку. Обычный способ сделать это, как показал полет Драконов:
местный  z  =  {}функция  z . test (  frame  )  return  "test:"  ..  frame . args [ 1 ] конецвернуть  z
Здесь frame.args - это подтаблица объекта frame, которая содержит аргументы, переданные в #invoke, а frame.args [1] - это первое поле в этой таблице. (Или, другими словами, frame.args [1] - это первый позиционный аргумент, переданный #invoke.) Это также может работать с вашим параметром «n», например:
местный  z  =  {}функция  z . test ( n )  return  "test:"  ..  n . args [ 1 ] конецвернуть  z
И, наконец, если вы передали именованный аргумент в #invoke, например {{#invoke:Sandbox/Yaris678|test|foo="ABC"}}, тогда вам нужно будет использовать frame.args.foo вместо frame.args [1]. Надеюсь, все это проливает свет на ситуацию. :) - Mr. Stradivarius ♪ talk ♪ 10:31, 2 мая 2013 (UTC)
Это действительно полезно. Спасибо.
В настоящее время я пытаюсь определить порядок действий MediaWiki. Смотрите мою песочницу .
Кажется, что MediaWiki в основном анализирует вывод Lua-скрипта, но тег остается как есть.
Это где-то объясняется? Я заметил, что mw: Extension: Scribunto / Lua reference manual # Возвращаемый текст указывает, что фигурные скобки не обрабатываются, но не упоминает .
Есть ли способ заставить MediaWiki обрабатывать тег ?
Yaris678 ( разговорное ) 12:50, 2 мая 2013 (UTC)
Теги - особый случай. Их нельзя использовать в Lua как есть, потому что это нарушит работу программного обеспечения, поэтому вместо этого они (и их содержимое) преобразуются в «маркер полосы». Полосовые маркеры упоминаются здесь в руководстве, и вы можете увидеть более подробную информацию в Википедии: Полосовые маркеры . - Г-н Страдивари, выступление, 13:28, 2 мая 2013 г. (UTC)
Интересно. Спасибо. Я надеялся использовать Lua для создания версии {{ Nowiki }}, которую можно было бы включить, а не заменять. Но, может быть, это невозможно. В конечном счете, я хочу иметь возможность помещать nowiki во входные данные шаблона. Это позволит нам удалить ввод в {{ разметку }}, который по сути является повторением другого ввода. Yaris678 ( разговорное ) 17:15, 2 мая 2013 (UTC)
Функция Lua mw.text.nowiki( string )должна визуально давать те же результаты, что и <nowiki>stringв большинстве случаев. Одна из проблем заключается в том, что расширение шаблона и тега происходит до вызова Lua, поэтому нельзя использовать Lua для изменения блока, который содержит шаблоны или теги (например <ref>). Полет драконов ( разговор ) 17:28, 2 мая 2013 (UTC)
Потрясающие! Это именно то, что мне нужно. См. ниже. Yaris678 ( разговорное ) 08:12, 3 мая 2013 (UTC)

Если кому-то интересно, я задокументировал несколько случаев, когда это работало и не работало. Его можно увидеть в User: Yaris678 / Markup . Также есть обсуждение на User talk: Yaris678 / Markup . Yaris678 ( разговорное ) 00:19, 8 мая 2013 (UTC)

Есть ли встроенная поддержка json? Smallman12q ( разговор ) 02:14, 3 мая 2013 (UTC)

Не то чтобы я в курсе, но зачем вам это делать? Единственное, о чем я могу думать, - это извлекать внешние данные через какой-то API, и - если это вообще возможно - звучит для меня как ужасная идея, или создавать псевдобазы в вики с содержимым json, которые, если они даже достижимый, звучит для меня одинаково ужасно. Мартин Хоекстра ( разговор ) 17:05, 8 мая 2013 (UTC)
Нет . См. Mw: Module: JSON и d: Module: JSON для возможных обходных путей. Legoktm ( разговор ) 12:19, 12 мая 2013 (UTC)

Привет. Можно ли добавить в этот модуль новую функцию, которая считает элементы списка? Это можно использовать в шаблонах, где перед или за списком отображается информация о количестве элементов списка. Функция «count» может возвращать количество элементов. Приветствую вас --Тлустулиму (разговор) 11:57, 11 мая 2013 (UTC)

Я скопировал сообщение со страницы обсуждения шаблона. - Тлустулиму ( разговор ) 13:19, 11 мая 2013 (UTC)
Привет. Я только что создал песочницу .
{{#invoke: listify / sandbox | input |; | что это; я даже не}}{{#invoke: listify / sandbox | count |; | что это; я даже не}}{{#invoke: listify / sandbox | input | .. | 1 .. 2 .. 3 .. 4 ..}}{{#invoke: listify / sandbox | count | .. | 1 .. 2 .. 3 .. 4 ..}}
возвращается

Ошибка скрипта: нет такого модуля "listify / sandbox". Ошибка скрипта: нет такого модуля "listify / sandbox".

Ошибка скрипта: нет такого модуля "listify / sandbox". Ошибка скрипта: нет такого модуля "listify / sandbox".

Оно работает! - Тлустулиму ( разговор ) 21:45, 12 мая 2013 г. (UTC)

Возможно ли создать модуль Lua, который будет оценивать (насколько это возможно) статус авторских прав в разных странах по некоторым параметрам: дате первой публикации, дате смерти автора, стране первой публикации? - DixonD ( разговор ) 13:58, 14 мая 2013 г. (UTC)

Я бы сказал, что это возможно. Я смотрю на этот вопрос с точки зрения авторских прав и есть ли возможность рассчитать, является ли работа возможным нарушением авторских прав или нет. Я думаю о том, чтобы рассчитать это тогда, исходя из стандартного срока авторских прав, когда это возможно. Для большинства стран можно использовать следующую формулу:
смерть автора + x лет = дата истечения срока действия авторских прав
Эти x лет зависят от страны, в которой работа была впервые опубликована. Я предполагаю, что это можно было бы извлечь из списка, может быть, с помощью переключателя lua. Затем, когда у нас есть дата истечения срока действия авторских прав, остается просто сравнить ее с текущей датой. Если истекает срок действия авторских прав в будущем, то файл является возможным нарушением авторских прав, иначе это совершенно законно, - Снаевар ( разговор ) 14:36, 17 мая 2013 г. (UTC)
Сейчас я пытаюсь реализовать это на украинском Википедии: s: uk: Module: PD-auto . Идея состоит в том, что для каждой страны исходной публикации у нас может быть отдельный подмодуль, который будет рассчитывать, находится ли он в общественном достоянии или нет в этой стране, и был ли он в общественном достоянии до даты URAA, которая может отличаться для каждой страны. Затем, основываясь на этой информации, мы можем рассчитать статус авторских прав в Соединенных Штатах и ​​составить окончательное сообщение. Вот несколько тестов: s: uk: Обговорення модуля: PD-auto / тести . Извините, сообщения на украинском языке, но я думаю, что это поможет вам понять идею дизайна. Если вы хотите присоединиться, я могу перенести существующий код где-нибудь здесь, в английскую Википедию. - DixonD ( разговор ) 04:42, 22 мая 2013 (UTC)

См. {{ Infobox californium }}, используя {{ infobox element }}. Входной параметр требует значения (меры), единица измерения добавляется (например, «К» для Кельвина). |boiling point K=1743...→ . Не, как и предполагалось: . Можно ли отличить и отделить от значения, чтобы мы могли установить правильную последовательность (значение - единица - ссылка)? Я предполагаю, что разделение (распознавание) должно произойти для всех возможных форм ссылок (например, {{ cite web }}). Secondary, также теги могут быть пойманной, чтобы текстовые добавлениями точно так же: . - DePiep ( обсуждение ) 08:38, 14 мая 2013 г. (UTC) (исправления - DePiep ( обсуждение ) 09:16, 14 мая 2013 г. (UTC))Boiling point | 1743[3] K1743 K[3]1743 K (estimated)

Теги ref преобразуются в маркеры полосы перед тем, как попасть в Lua. Вы можете обработать маркеры полос, используя поиск и замену ( выполните поиск по запросу «Удалить все [[Help: Strip markers]], представляющие теги ссылок» в Module: Delink, где я их удаляю ). Вы должны иметь возможность перемещать маркеры полос, не затрагивая справочное содержимое, поэтому я не думаю, что у вас должны возникнуть проблемы с тем, что вы хотите сделать. Хотя сам я не тестировал. Вы также можете удалить маркеры полос, что удалит ссылку с надстрочным индексом, но не удалит ссылку из справочного раздела. Также можно отфильтровать маркеры полос, которые представляют ссылки из маркеров полос, которые представляют другие виды контента, путем поиска текста «-ref-» в середине. ( Модуль: Делинк делает это.) Надеюсь, это поможет. - Г-н Страдивари, выступление, 09:08, 14 мая 2013 г. (UTC)
Спасибо. Буду исследовать этот маршрут. - Депип ( разговор ) 09:16, 14 мая 2013 г. (UTC)
Будет ли это песочница, чтобы удалить ссылку (сохранить значение) и, в зеркальном отображении, извлечь ссылку (добавить в конец вывода). Что-нибудь об альфа-стабильности модуля? - Депип ( разговор ) 08:13, 15 мая 2013 г. (UTC)
Модуль все еще требует серьезного тестирования, хотя основы есть. Есть масса крайних случаев, с которыми мне нужно работать правильно, и мне все еще нужно добавить поддержку для удаления ссылок на файлы. Я также хочу удалить дорогостоящие функции синтаксического анализатора, чтобы его можно было использовать в приложениях, более критичных к производительности, например, для шаблонов цитирования. В последнее время я был связан с посредничеством, но он скоро закончится, так что я, возможно, постараюсь сделать его более стабильным в следующие несколько недель. - Г-н Страдивари, выступление 15:48, 23 мая 2013 г. (UTC)
  • Скройте рефтеги в div-тегах, затем {choptext}: Надеюсь, модуль Lua можно написать так, чтобы исключить повторные теги, но тем временем, используя div-тег для инкапсуляции рефтега, позволит Template: Choptext удалить тег, оставив действительный номер для расчетов, а также допускает появление сноски:
  • Для значения 45 с тегом div 45
    xx
    → 45
    [1]
  • Значение 45 Choptext с повторным тегом: {{choptext | 45 xx | <}} → 45 [2]
  • Значение 45 Choptext с тегом div: {{choptext | 45
    xx
    | <}} → 45
Своеобразное кодирование повторных тегов с помощью полос-маркеров вызывает множество причудливых проблем, которые сбивают с толку большинство редакторов, и поэтому такой анализ повторных тегов является досадным кошмаром при разработке текста вики-разметки. - Wikid77 ( обсуждение ) 08:17, 17 мая 2013 г. (UTC)
Пока я могу поймать хорошо сформулированные ссылки в конце текста, используя модуль удаления ссылок. Проблемы возникают, когда в строке больше тегов, таких как . продолжение следует. - Депип ( разговор ) 08:52, 17 мая 2013 г. (UTC)

Я думал о модуле, который позволит создавать диаграммы из шаблонов. В настоящее время я могу думать только о способе реализации гистограмм (например, с использованием элементов

с абсолютной позицией, цветом фона и принудительными размерами).
Я подумал о трех типах графиков: один с одним типом данных (скажем, население в 1970, 1972, 1974 ...) и несколькими типами данных: например, население 4 разных городов в 1972, 1974, 1976 ...

Второй случай также делится на два подварианта: используются ли все данные в одном масштабе или в разных масштабах: например, можно отобразить диаграмму, которая покажет население и концентрацию фосфора в воде, поэтому два (или более ?) потребуются отдельные шкалы Y.

Реализация не так уж и сложна, самая сложная часть - выбрать разумный синтаксис, который будет разумным и удобным в использовании, но при этом достаточно мощным, чтобы позволить создавать полезные диаграммы.

RFC: синтаксис гистограммы

Это то, что у меня есть сейчас. Идея состоит в том, чтобы использовать ключи в форме «Ключ n» или «Ключ n m», где n и m представляют собой числа.

Итак, вот и:

{{гистограмма| ширина =| высота =| значение 1 1 =| значение 1 2 =| значение 1 3 =| значение 2 1 =| значение 2 2 =| значение 2 3 =| цвет 1 =| цвет 2 =| название 2 1 =| x легенда 1 =| x легенда 2 =| x легенда 3 =| y легенда 1 =| y легенда 2 =}}

так что этот пример предназначен для двух разных групп, по 3 точки данных в каждой. каждая группа имеет цвет и y-легенду, а каждая точка данных имеет x-легенду. При сопоставлении с примером выше, группы представляют город A и город B, а точки данных представляют 1972, 1974 и 1976 годы. Во 2-м примере группы представляют население и концентрацию фосфора.

у каждой панели есть всплывающая подсказка. если для этой панели есть «title xy =», это будет всплывающая подсказка. в противном случае во всплывающей подсказке будет числовое значение полосы.

Мне не очень нравится предлагаемый синтаксис, я просто не мог придумать лучшего. буду рад услышать лучшее предложение.

Комментарии к гистограмме

Я бы предположил, что для редакторов было бы гораздо удобнее объединять значения в виде списков, а не добавлять новый ключ для каждого значения. Например:

{{гистограмма| ширина =| высота =| группа 1 = значение1, значение2, значение3| группа 2 = значение1, значение2, значение3| цвет 1 =| цвет 2 =| x легенда = метка1, метка2, метка3| y легенда = label1, label2}}

Это потребовало бы, чтобы модуль анализировал списки, разделенные запятыми (или иным образом разделенные), но Lua, безусловно, способен на это, и это должно быть менее болезненно для редакторов. Полет драконов ( разговор ) 18:35, 21 марта 2013 (UTC)

это имеет смысл. 2 комментария: во-первых, запятая не является хорошим разделителем: мы должны разрешить людям вводить значения в «числах в языковом формате», например, 13,542,44. Я предпочитаю использовать двоеточие в качестве разделителя, но senicolon тоже подойдет. Причина, по которой я не использовал этот синтаксис с самого начала (я придумал нечто подобное), - это желание разрешить пропуск: некоторые значения могут быть доступны только некоторым группам. однако, увидев ваш комментарий, я понял, что это было просто глупо: мы можем легко обеспечить пропущенные значения, повторив разделитель.
Итог: мне нравится ваше улучшение, с оговоркой о смене разделителя. (та же оговорка для ярлыков - мы не хотим запрещать использование запятых или других знаков препинания в ярлыках. Peace - קיפודנחש (aka kipod) ( talk ) 19:02, 21 марта 2013 (UTC)
Мне нравятся точки с запятой больше, чем двоеточия, но я не думаю, что это имеет большое значение в любом случае. Что еще более важно, можно легко добавить параметр, который позволяет пользователям настраивать разделитель, если значение по умолчанию является разумным. Полет драконов ( разговор ) 19:16, 21 марта 2013 (UTC)
Может быть, разрешить escape-символ (традиционно \)? тогда вы можете использовать Django \: Unchainded в качестве метки. Вы знаете, когда мы хотим использовать неправильное название для фильма. Мартейн Хоэкстра ( разговор ) 20:19, 21 марта 2013 (UTC)
Мне бы очень понравилось создавать прототип, но мой html / css-fu слаб. Может ли кто-нибудь придумать пример? Если я попытаюсь выровнять эти полосы еще раз по нижней части div, я думаю, что могу заплакать. Мартин Хоэкстра ( разговор ) 21:30, 21 марта 2013 (UTC)

Есть немало примеров гистограмм , сделанные с HTML / CSS здесь . Что касается формата данных, я думаю, что значения, разделенные запятыми , будут хорошей отправной точкой, поскольку редактор с большим набором данных, вероятно, уже имеет его в формате CSV или сможет легко экспортировать его как CSV. Мы могли бы написать общий модуль синтаксического анализатора CSV в стиле CSV Apache Commons, который можно было бы настроить с различными символами-разделителями, escape-символами, форматами фиксированной ширины и т. Д., Поскольку он может пригодиться с другими шаблонами для отображения расширенных наборов данных. Toohool ( разговор ) 23:20, 21 марта 2013 (UTC)

Мой модуль: ImportProtein похож на гистограмму. Ключ в том, чтобы иметь внешний div с position: relative и внутренний div с position: absolute. Используйте top: и left: для позиционирования. Я сделал свой со всеми абсолютными значениями пикселей - думаю,% подойдет. Обратите внимание, что именно по этой причине я предложил создать форум для справки по html при кодировании выше. Да, и Module: Plotter оказался действительно простым случаем (разброс, а не столбец). Wnt ( разговор ) 01:06, 22 марта 2013 (UTC)
Я расширил Модуль: Плоттер функцией "планки". Тем не менее, я еще не прикоснулся к этикеткам, которые, наверное, являются самой неприятной из всех. Wnt ( разговор ) 03:30, 22 марта 2013 (UTC)
Обновление: после удивительного количества грубых ошибок у меня наконец-то заработали и простые легенды. Wnt ( разговорное ) 23:18, 23 марта 2013 (UTC)
Ну, я весело провел время, пытаясь заставить основы работать, но все еще подавлял HTML / стиль: это просто не мое. Я займусь изучением CSV-файлов общего назначения. Мартин Хоэкстра ( разговор ) 01:56, 24 марта 2013 (UTC)
Я не уверен, где вы это делали, поэтому я не могу комментировать конкретно, но: основная проблема с использованием стиля html заключается в том, что при многих видах ошибок вы вообще ничего не видите. Хорошо добавлять много бит уникального текста везде, где вы можете поместить их в свои div и промежутки, и искать их в исходном HTML-коде при загрузке страницы, чтобы увидеть, получаете ли вы их вообще и какой стиль выводится. на самом деле. Нам действительно нужен справочный форум по HTML - если подумать, в Викиверситете может быть что-то - дизайн веб-сайтов для фрилансеров - это навык, даже занятие, которому WMF следует обучать большое количество людей. Wnt ( разговорное ) 14:39, 26 марта 2013 (UTC)
Код, который я использовал, находится на http://pastie.org/7130472 , который генерирует http://jsfiddle.net/rj7KC/1/ Вероятно, в нем уже слишком много: «Я знаю, ему нужен другой DIV в качестве контейнера! " продолжается. Мартин Хоэкстра ( разговор ) 23:02, 26 марта 2013 (UTC)
Хммм ... между прочим, похоже, что полоса прокрутки на jsfiddle меня ненавидит , и я думаю, мне придется немного поиграться с кодом здесь; он кажется довольно сложным с некоторыми полезными общими функциями (мы определенно должны иметь стандарт транспонирования, не так ли). Между тем меня раздражает "потеря высоты" на моем модуле: ColorAlphabet ... кажется, что сколько бы раз вы ни думали, что прошли какую-то ошибку HTML, в следующий раз она вернется снова. Wnt ( разговорное ) 23:45, 26 марта 2013 (UTC)
Я, конечно, хотел бы библиотеку матриц, среди прочего, транспонированную, но также своего рода «скалярный продукт» ( f({'s', {a, b, c}}) => {{'s', a}, {'s', b}, {'s', c}}), но на самом деле также функциональную библиотеку, по крайней мере, с map и reduce / fold (я потерялся без карты). Я не уверен, что такие вещи должны быть где-то в mw.something или в локальном модуле на en.wiki. Кроме того, впервые в жизни я назвал функциональную панель без названия-заполнителя;). В любом случае, играйте с ним, как вам нравится, считайте его CC-0 для целей лицензирования (что означает, что если вы заставите его работать и хотите загрузить, вам не нужна никакая атрибуция, что намного проще при редактировании резюме). Мартин Хоэкстра ( разговор ) 00:16, 27 марта 2013 (UTC)

Отчет о проделанной работе с гистограммой

поэтому я думаю, что я близок к завершению обработки параметров и рисования самого графика, то есть столбцов. по-прежнему отсутствует установка весов, проверка ввода с помощью разумных сообщений об ошибках и тестирование.

в настоящее время поддерживаются 2 основных режима: обычная гистограмма и «стек», в которых разные группы накладываются друг на друга, что может использоваться, например, для отображения распределения доли рынка и роста рынка.
в «нормальном» режиме предусмотрены три системы шкалы: единообразная (то есть одна шкала для всех значений) или для каждой группы (что имеет смысл, когда разные группы находятся в разных единицах - скажем, население города по сравнению с городским бюджетом более время). Масштаб для каждой группы может быть автоматическим или «ручным», когда редактор вводит шкалы.

вы можете увидеть демонстрацию, открыв Special: TemplateSandbox и введя «User: קיפודנחש / sandbox» в качестве префикса Sandbox и «User: קיפודנחש / sandbox / testbar» в качестве страницы рендеринга . Вот ссылка .

мир - יפודנחש (он же кипод) ( разговор ) 06:34, 27 марта 2013 (UTC)

Этап 2: см. Модуль: Диаграмма

Я думаю, что я в значительной степени закончил, по модулю ошибок. см. Модуль: Диаграмма . мир - יפודנחש (он же кипод) ( разговор ) 21:05, 30 марта 2013 (UTC)

Что пошло не так

Итак, это более или менее написано, но я только что обнаружил это довольно мощное и сложное в работе расширение под названием mw: Extension: Timeline .

Это расширение, с одной стороны, довольно мощное, но использует очень сложный и загадочный синтаксис: до некоторой степени кажется, что снова нужно снова писать на языке Ассемблер .

Итак, вот что я думаю сейчас: основная задача этой страницы - придумать лучший (то есть самый удобный и простой для редакторов) синтаксис, который возможен для предоставления параметров. как только мы это сделаем, написание lua-модуля, который переводит это во что-то, что может потреблять «Timeline», должно стать легкой задачей.

Я предлагаю как минимум 2, если не 3 разных типа диаграмм. Во-первых, у нас есть линия против столбца. тогда у нас есть отдельные данные против нескольких данных. Не уверен, что расширение временной шкалы также может делать диаграммы с областями, но если может, я предлагаю нам сделать это тоже. Лично я не без ума от того, что кажется стандартным режимом работы enwiki, который заключается в создании одного гигантского шаблона, который может обрабатывать все случаи на основе десятков и десятков (в некоторых случаях сотен) параметров. Я предпочитаю иметь один шаблон для каждой конкретной задачи или, по крайней мере, для каждого достаточно близкого набора задач с гораздо более ограниченным набором параметров.

в любом случае, как я сказал выше, я думаю, что цель этой страницы - определить и придумать хороший, разумный и простой «синтаксис», то есть определение параметров, которые этот шаблон должен принимать, и четкое определение того, что каждый из них означает и как он ведет себя. как только будет достигнуто хорошее определение синтаксиса, мы можем переходить к программированию. Я сделаю первый снимок, определив основу линейного графика:

{{#invoke: Диаграмма | линейный график| y легенда = 50: 100: 150: 200| x легенда = 1920: 1940: 1960: 1980: 2000: 2020| линия 1 = цвет: синий, толщина: 2, точки: * (1920: 70: описание) (1925: 77) (1930: 88: bla bla) (1936: 60) .....| строка 2 = то же самое}}

exaplain: точки данных отображаются в круглых скобках, разделенных двоеточием (числа могут быть указаны как 2000 или 2000, поэтому разделение X и Y запятой недопустимо). каждая точка является либо парой, либо троицей, где третий необязательный элемент - это текст, который будет отображаться или использоваться в качестве подсказки (график временной шкалы также является картой изображений). необязательно, мы можем позволить отдельное определение для легенды и подсказки: (xval : yval : legend : tooltip). Заключение кортежей в круглые скобки кажется очень естественным, с дополнительным преимуществом, заключающимся в том, что в отличие от скобок и фигурных скобок, скобки не играют особой роли в синтаксисе вики.

это не полноценное предложение - больше похоже на тизер, чтобы сдвинуть дело с мертвой точки. если кто-то думает, что это уместно, мы можем перенести всю эту дискуссию в другое место, при условии, что я не единственный, кто болтает в этом «другом месте».

мир - קיפודנחש (aka kipod) ( разговор ) 19:29, 31 марта 2013 (UTC)

Многочисленные предыдущие шаблоны

Другие редакторы создали несколько очень быстрых шаблонов диаграмм, таких как Template: Bar_chart , который форматирует гистограмму за 1/14 секунды или 7 диаграмм за 0,5 секунды с 1, 2 или 4 столбцами полос. Нет особой необходимости в более быстрых графиках. Смотрите также:

  • {{ Историческое население }} (соответствует правилам доступности )
  • {{ Bar box }}, показывает столбчатую диаграмму с текстовым столбцом после столбцов или пар столбцов.
  • {{ Круговая диаграмма }}, показывает секторы на круговой диаграмме.
  • {{ Brick chart }}, показывает сегменты кирпича в прямоугольной "круговой диаграмме"
  • {{ Вертикальная гистограмма }} (не соответствует рекомендациям по доступности из-за отсутствия альтернативного текста)
  • WP: Графики

Ранее тег использовался для диаграмм с жестко заданными числами (без данных из параметров) на странице статьи (см .: Справка: Bar_chart ). - Wikid77 16:16, 4 апреля 2013 г. (UTC)

вы все время твердите о проблеме "скорости". это абсолютно не проблема. в большинстве статей вряд ли будет достаточно большое количество графиков, чтобы скорость была значимой. источник этого запроса не имеет ничего общего со скоростью. Основные проблемы с существующими шаблонами диаграмм:
  1. плохая читаемость самих графиков - это характерно для графиков, основанных на «расширении шкалы времени».
  2. запутанный синтаксис, затрудняющий их использование. опять же, можно создать диаграмму без ванильного «расширения шкалы времени», без каких-либо шаблонов, но синтаксис настолько сложен и запутан, что это непрактично.
  3. ограничения: из-за ограничений шаблона вики, каждый из них ограничен жестко запрограммированными параметрами "left1", "left2", "left3" или чем-то подобным, в отличие от гибкости lua в интерпретации своих параметров, что позволило мне поддерживать "group n" без жесткого кодирования значений "n".
  4. запутанный, сложный для изменения и поддержки шаблонный код. это не вина блестящих людей, создавших эти шаблоны - это необходимость выжать из очень ограниченного синтаксиса вики-шаблонов некоторые функции, для которых он не был предназначен.
отдельные проблемы с диаграммами, на которые вы указали:
  1. {{ Историческое население }} - это не диаграмма. я не знаю, почему вы даже включили это в это обсуждение
  2. {{ bar box }}: красиво, но очень ограниченно.
  3. {{ Круговая диаграмма }}: гениально. Хотел бы я иметь html / css-fu, чтобы сделать что-то подобное. это именно вид шаблона , который может и должен быть сделан в Lua. помимо потери искусственных ограничений (почему 10 срезов?) и неудобного кодирования. Увидев, что это действительно возможно, я почти испытываю искушение создать функцию "пирога" в Module: Chart . вот список _ некоторых_ ограничений этого замечательного инструмента, которые было бы очень легко преодолеть, если бы это было сделано в lua:
    • всего 10 значений (можно добавить больше даже без lua, но всегда будет существовать какое-то искусственное ограничение, и каждый раз, когда вы хотите добавить еще один фрагмент, шаблон становится более сложным)
    • ввод должен быть в процентах, поэтому редактор должен вычислить сумму и процент каждого среза, что сложнее, чем хотелось бы
    • нет контроля размера диаграммы: всегда 200x200
  4. {{ brick chart }} - странно. может быть, гениальный, но это не стандартный способ отображения числовых данных в графической форме
  5. {{ Вертикальная гистограмма }}: здесь используется расширение "временной шкалы" и не хватает нескольких направлений: он очень ограничен, не очень удобен в использовании (в настоящее время используется только в 10 статьях), а результат страдает от всех ограничений «временной шкалы» (плохой внешний вид и удобочитаемость).
ни один из примеров не позволяет использовать столбцы с накоплением, что является стандартным способом отображения данных. просто для иллюстрации, посмотрите, может ли какой-либо из существующих шаблонов диаграмм, на которые вы указали, показать что-то подобное. Кроме того, откройте его в режиме редактирования и посмотрите, насколько удобно его создавать. могут быть некоторые перегибы и ошибки, но благодаря тому факту, что это «нормальный код lua, содержащий менее 300 строк (включая комментарии), он намного более управляем, чем большинство шаблонов, на которые вы ссылались.
опять же, сосредоточение внимания только на скорости показывает, что вы не поняли смысл этого модуля. Дело не в скорости, а в создании простого в использовании и функционального инструмента для построения графиков. Если у вас или у кого-то еще есть предложения, которые помогут сделать синтаксис более ясным и удобным в использовании или более функциональным, или просто указать на простые простые ошибки - я очень хочу их услышать. если вы хотите больше говорить о скорости, пожалуйста, не надо - это совершенно не относится к делу. קיפודנחש (aka kipod) ( разговор ) 18:11, 4 апреля 2013 (UTC)
* Предыдущие шаблоны диаграмм на основе разметки протестированы для работы во многих браузерах: более важным, чем игнорирование скорости, является игнорирование поддержки широкого спектра браузеров. В частности, Template: Brick_chart (который имеет горизонтальные « составные полосы») работает в любом браузере, возможно даже в IE 5 в архаичной Windows 98 . Таким образом, люди могут снова спорить, «что имеет значение», но работа в любом браузере является главным приоритетом, а другие функции, которые также не работают в этих браузерах, являются неудачным второстепенным занятием. Однако диаграмму Lua можно использовать для написания диаграммы на основе разметки для любого браузера с аналогичными параметрами. - Wikid77, 00:02, 25 мая 2013 г. (UTC)
я действительно не знаю, как относиться к этой чуши. что вы имеете в виду "на основе разметки"? вы говорите так, как будто не понимаете, как все это работает. код lua работает на _server_. это не javascript. между кодом lua и браузером нет абсолютно никакой связи. браузер получает чистую разметку, как и любой шаблон. если вы хотите сказать, что моя «работа» - тестировать в старых браузерах, это эквивалентно утверждению, что любой, кто создает новый шаблон, должен тестировать его во всех браузерах. Если у вас есть доказательства того, что это не работает с каким-либо конкретным браузером, давайте обсудим это. в противном случае, пожалуйста, прекратите эту ерунду. (и между прочим: ваше утверждение, что кирпичная диаграмма работает с "любым браузером", основано на каких-либо доказательствах? Кто это тестировал? Вы можете попросить их протестировать этот модуль с этими браузерами? קיפודנחש (aka kipod) ( talk ) 02:50, 25 Май 2013 (UTC)
Очевидно, что יפודנחש верен - викитекст, необходимый для создания приведенной выше диаграммы, потрясающе прост, и это то, что важно (он также очень быстрый и дает хорошие результаты: бонус). Было бы полезно указать на любые функции, предоставляемые другими шаблонами, которые недоступны в Module: Chart , но упор на скорость упускает суть. Одна из функций, которую может быть трудно реализовать, - это интерактивные вики-ссылки. На данный момент я не буду утруждать себя поиском примеров, но я видел несколько супер-уродливых диаграмм с очень полезной информацией, включающей множество ссылок, и было бы замечательно, если бы их можно было заменить чем-то более простым и привлекательным. Johnuniq ( разговор ) 23:40, 4 апреля 2013 (UTC)
Опять же, «то, что имеет значение», - это то, что диаграмма должна отображаться в любом браузере как главный приоритет. - Wikid77, 00:02, 25 мая 2013 г. (UTC)
Я думаю, что это можно сделать, наложив прозрачные изображения поверх полос и используя функцию "link =" изображений. позвольте мне немного поразмышлять, а пока попробуйте придумать разумный синтаксис. может быть, тот же синтаксис, который мы используем с «подсказкой»? т.е. репликация "группа 1", "группа 2" с "звеном 1", "звеном 2", где все необязательно? пожалуйста, дайте несколько предложений по синтаксису, которые будут наиболее полезны.
кстати - я думаю, что вы уже можете использовать ссылки для x легенд и названий групп, хотя я признаю, что не тестировал это. сейчас тестирую ... мир - יפודנחש (aka kipod) ( talk ) 00:10, 5 апреля 2013 (UTC)
Хм! теперь я просто дал себе ответ на вопрос, который я задал на этой странице - "дайте мне пример использования для удаления связей" ... я сделал ссылки "имена групп", но теперь инструменты облажались ... мир - יפודנחש ( aka kipod) ( разговор ) 00:17, 5 апреля 2013 (UTC)
Хорошо, поэтому я добавил возможность создавать ссылки на определенные панели. проверьте Модуль: Диаграмма / док . קיפודנחש (aka kipod) ( разговор ) 04:09, 5 апреля 2013 (UTC)
Я установил функцию круговой диаграммы Lua для Module: Plotter (хотя она все еще использует шаблон Legend и еще не изменяет размер). По крайней мере, он не ограничен 10 предметами. Wnt ( разговор ) 05:15, 5 апреля 2013 (UTC)
Можете ли вы добавить несколько примеров на страницу / doc, чтобы мы увидели, что это можно и чего нельзя? спасибо, мир - יפודנחש (aka kipod) ( разговор ) 14:01, 5 апреля 2013 (UTC)
Я добавил два примера. В одном из них, похоже, проявляются ограничения - мой браузер отображает 1% -ный фрагмент с некоторым размытием. Wnt ( разговорное ) 20:38, 5 апреля 2013 (UTC)

еще один отчет о проделанной работе

Поэтому я добавил возможность «круговой диаграммы» в Module: Chart . это не так уж и много отличается от круговой диаграммы Wnt, созданной в Module: Plotter (я фактически присвоил его подмодуль, который дает цвета по умолчанию, а именно Module: Plotter / DefaultColors ). основное отличие состоит в том, что я думаю, что мой код более ясен и читаем (хотя вполне возможно, что Wnt будет думать, что * его * код более ясен ...), и то, как мой модуль принимает свои параметры: я использовал "tupples", которые предоставляют значение среза, имя среза, необязательный цвет (в противном случае будет использоваться значение по умолчанию, по крайней мере, для 26 срезов - после этого больше нет значений по умолчанию ...) и, наконец, ссылку, так что все выглядит более или в меньшей степени:

| ломтики =(Val1: Name1: Color1: Link1)(Val2: Name2: Color2: Link2)(Val3: Name3: Color3: Link3)

«Цвет» и «Ссылка» не являются обязательными. в приведенном выше примере я поместил по одному кортежу на строку для удобства чтения, но это не требуется, поэтому его можно

| срезы = (Val1: Name1) (Val2: Name2) (Val3: Name3) ...

Конечно, и Wnt, и я обязаны идеей и решением гениальным людям, которые создали Template: Pie chart , но я думаю, что модуль имеет несколько преимуществ перед шаблоном:

  1. не ограничивается 10 фрагментами (10, вероятно, достаточно для большинства реальных применений, но все же хорошо удалить искусственное ограничение)
  2. не нужно указывать числа в процентах (т.е. числа не должны складываться до 100 - добавление до пяти миллиардов или до 0,001 совершенно нормально)
  3. может определять радиус пирога - больше не жестко запрограммировано, как в шаблоне
  4. может предоставлять ввод в локализованном числовом формате. это означает, что значения могут быть записаны следующим образом: 12,402,67 (обратите внимание на запятую), что делает страницу более читаемой.
  5. использует «карту изображений» для предоставления всплывающих подсказок и дополнительных ссылок из фрагментов
  6. более удобный способ кормления параметров (по крайней мере, мне кажется, что это удобнее)

На круговой диаграмме можно было бы провести немного больше тестирования, но я думаю, что ее можно использовать. В настоящее время этот модуль не используется в основном пространстве, но я думаю, что и гистограмма, и круговая диаграмма теперь лучше, чем то, что сейчас используется в enwiki, если я так говорю, как по внешнему виду / функциональности, так и по удобству и более вменяемый синтаксис.

вы, ребята, думаете, что он готов к «большому успеху», и если да, то как вы предлагаете нам это сделать?

Что касается «что дальше»: я не уверен, что мне интересно продолжать работу с другими диаграммами, но я думаю, что было бы хорошо, если бы кто-нибудь создал красивую горизонтальную гистограмму. Преимущество горизонтальной диаграммы в том, что она дает место для большого количества легенд и позволяет использовать большое количество столбцов - для некоторых типов данных это очень полезно.


мир - יפודנחש (он же кипод) ( разговор ) 05:21, 13 апреля 2013 (UTC)

Думаю, пора создать " WP: Lua / Announcements " или что-то в этом роде. У нас должно быть два раздела - один, где вы можете объявить о «бета-версиях», которые кажутся готовыми к тестированию в некоторых статьях, чтобы увидеть, если что-то пойдет не так, а другой для «производственных версий», которые были проверены несколькими редакторами, которые используются во многих из в целевых статьях все их t перечеркнуто, а i - точка (и пробелы в скобках, даже если это кажется глупым). Если бы несколько из нас собрались вместе и сделали эту страницу, мы могли бы делать более эффективные периодические объявления на VPT, в указателе и т. Д., Ссылаясь на него и сообщая о нескольких основных моментах. Wnt ( разговорное ) 15:58, 16 апреля 2013 (UTC)
+1 (я также думаю, что забыл упомянуть, что я присвоил Module: Plotter / DefaultColors из работы Wnt). тем временем я перевел Module: Chart на иврит - вы можете увидеть версию на иврите в he: Module: גרפים , и некоторые другие пользователи немного улучшили его - в частности, мы научили "bar char" (необязательно) отображать числовые значение внутри каждой полосы, и мы также научили его (необязательно) вращать заголовки оси x, чтобы можно было втиснуть больше заголовков на определенный график. мир - יפודנחש (он же кипод) ( разговор ) 16:54, 16 апреля 2013 (UTC)
Как вы вращаете? У меня создалось впечатление, что свойство поворота - это вещь HTML5, которую Википедия не поддерживает (или не разрешает). Wnt ( разговорное ) 17:04, 16 апреля 2013 (UTC)
"html5" не совсем точно определен. есть некоторые функции html5, которые уже давно поддерживаются большинством браузеров (эвфемизм для «всех, кроме IE»), например «Canvas» (поддержка была добавлена, например, в версии 9) или списки в столбцах (которые enwiki уже несколько лет используется в сносках, все нормальные браузеры уже давно поддерживают его - даже то есть добавили поддержку в версии 10).
в частности, это делается с помощью довольно длинного заклинания:
style = '- webkit-transform: rotate (90deg); - moz-transform: rotate (90deg); - ms-transform: rotate (90deg); - o-transform: rotate (90deg); transform: rotate (90deg)'
Википедия не блокирует его, и все браузеры его поддерживают (в том числе, то есть, хотя я не знаю, какие версии. Я считаю, что 7 поддерживает, а 6 - нет). мир - קיפודנחש (он же кипод) ( разговор ) 18:14, 16 апреля 2013 (UTC)
Отлично! Я могу придумать несколько вариантов использования этого ... Wnt ( разговор ) 21:15, 16 апреля 2013 г. (UTC)
http://caniuse.com/#search=transform можно использовать, это приятно. Мартин Хоэкстра ( разговор ) 22:34, 16 апреля 2013 (UTC)

Каким будет самый простой способ добавить расширение файла в шаблон? "jpg", если вы находитесь в "file: foo.jpg" и т. д. Я не думаю, что мы можем сделать это с помощью функций синтаксического анализатора, поэтому следующим шагом будет Lua. Вероятно, это можно сделать с помощью строковых функций, но может быть, это уже где-то написано. - Ярект ( разговор ) 02:46, 21 мая 2013 (UTC)

{{#invoke:string|match|s=file:foo.jpg|pattern=%.([^.]+)$}} → jpg
Я надеюсь, что это удовлетворительный ответ на вопрос. - темный лама 14:54, 23 мая 2013 г. (UTC)
Также можно использовать замену (gsub) - str: gsub ("^ (. *)%.", "") - удаляет все до последнего периода и получает оставшееся расширение файла jpg, png, svg и т. Д. Matroc ( обсуждение ) 05:26, 26 мая 2013 (UTC)
Спасибо, отлично сработало. Я создал Commons: Template: File extension . - Ярект ( разговор ) 11:32, 28 мая 2013 г. (UTC)

Привет. Если кто-то ищет глупый проект, чтобы скоротать время, отчет Module: RFX может потребовать много любви. Это попытка в значительной степени заменить необходимость в боте для обновления User: Cyberpower678 / RfX Report . - MZMcBride ( разговор ) 15:30, 31 мая 2013 г. (UTC)

Привет. Если кому-то скучно, думаю, Template: Loop можно было бы переписать. :-) - MZMcBride ( разговор ) 13:57, 31 мая 2013 (UTC)

это обсуждалось в прошлом . я добавил функцию "rep" в Module: String , которую можно легко использовать для реализации "цикла": например, сопоставление {{loop | 25 | test}} с {{#invoke: String | rep | test | 25}} или что-то такое. конечно, есть некоторая работа (включая некоторое тестирование), но никакого нового кодирования lua делать не нужно - все это в сфере самого шаблона. Peace - יפודנחש (aka kipod) ( разговор ) 14:16, 31 мая 2013 (UTC)
О верно. Так что нам просто нужно обновить шаблон. Хорошо, это хорошо знать. Спасибо! - MZMcBride ( разговор ) 15:28, 31 мая 2013 г. (UTC)
Я сделал это . Это была приятная 30-минутная работа. :) - Mr. Stradivarius ♪ talk ♪ 16:14, 31 мая 2013 (UTC)
Это чудесно. Спасибо! :-) - MZMcBride ( разговор ) 06:20, 1 июня 2013 (UTC)

Цикл и подсчет

Есть ли способ использовать шаблон цикла или модуль внутри шаблона, который вызывает другие шаблоны и знает, что такое счетчик цикла? Я хочу {{#expr:{{Loop|{{PAGESINCAT:Articles with a promotional tone from {{Months before now|}}|pages}} + |{{PAGESINCAT:Articles with a promotional tone|subcats}}}}0}}подсчитать все подстраницы в этой категории. Можно ли это сделать? Технический 13 ( разговор ) 15:39, 31 мая 2013 (UTC)

Цель

построение шаблона, который позволит создавать графики ящиков, такие как {{ Семейное древо }}, с разумным и удобным синтаксисом

Задача: определить синтаксис

В настоящее время для использования «Семейного дерева» редактор должен определять последовательные серии шаблонов, которым предшествует {{ Семейное древо / начало }} и завершается {{ Семейное древо / конец }}. это одновременно и хрупко, и неудобно. Я не критикую людей, которые сделали это: создание этого с помощью ограниченных инструментов, доступных для дизайнеров шаблонов, - немалое достижение, и я аплодирую людям, которые создали этот шаблон. Однако я думаю, что мы можем добиться большего с помощью lua, который является гораздо более функциональным инструментом.

Задача состоит в том, чтобы определить разумный синтаксис, который позволит редакторам создавать графики, используя четкое и краткое описание.


В идеале это должно быть сделано таким образом, чтобы предоставить редакторам максимальную свободу в определении стиля различных элементов: для линий было бы неплохо разрешить сплошные, пунктирные, цветные, ширины, если возможно, стрелки и т. Д. Для в полях было бы неплохо позволить определять границу бокса, цвет фона, цвет текста, размер текста, разрешать использование изображения для фона бокса, делать блоки кликабельными и т. д.

Однако ни один из этих стилей не требуется, и шаблон должен автоматически выбирать разумные значения по умолчанию для всего.

Задача: создать наглядный график из данных

Дополнительные моменты: научите его выдавливать невидимые строки, которые будут использоваться программами чтения с экрана для описания графика читателям с ослабленным зрением.

Первый черновик синтаксиса

{{Box Graph| globl параметр 1 =| глобальный параметр 2 =| уровень 1 =(Имя узла: <Имя>; Легенда: <Легенда>; Родители: Родитель1 Родитель2;  Пара: PairNode; [дополнительные атрибуты узла, такие как стиль])(Узел ...)(Узел ...)| уровень 2 =и т. д. и т. д.}}

Peace - קיפודנחש (aka kipod) ( разговор ) 19:28, 1 июня 2013 (UTC)

Привет, я работаю с WP: STiki , и особый интерес здесь представляет его производная "таблица лидеров" . Можно ли создать функцию (ы) Lua, которая принимает в качестве входных данных имя пользователя и возвращает: (1) позиционный рейтинг и (2) количество использований для этой таблицы? Пользователям нужен ящик, в котором отображается их относительный рейтинг. При отсутствии языка сценариев мне пришлось бы отдельно передавать ячейки таблицы на отдельные страницы для включения. Спасибо, West.andrew.g ( обсуждение ) 16:37, 6 июня 2013 г. (UTC)

Вы составляете таблицу лидеров вручную или генерируете ее какой-то программой и вставляете на свою страницу? Я могу только думать, что если вы автоматически генерируете эту таблицу, вы также можете затем сгенерировать небольшую отдельную таблицу Lua для чтения модулем, который вы вызываете с помощью "invoke" для поиска пользователя и вывода некоторого информационного окна с рейтингом и количество применений ... В любом случае посмотрю и сообщу, если что-нибудь придумаю ... С наилучшими пожеланиями! Matroc ( разговор ) 08:45, 7 июня 2013 (UTC)
Привет, Матрок,
Да, Википедия: STiki / таблица лидеров генерируется машиной один раз в день.
Создание той же машины для экспорта таблицы Lua звучит разумно. В каком формате должна быть эта таблица? Будет ли это фрагмент кода Lua? Будет ли это модуль? (Я не знаю, что такое определение модуля в Lua) Можно ли его сохранить в Википедии: модуль данных STiki / таблицы лидеров или что-то в этом роде? И тогда у вас будет модуль вывода Wikipedia: STiki / Leaderboard, чтобы прочитать его и вернуть необходимое число в виде строки.
Yaris678 ( разговорное ) 13:49, 7 июня 2013 (UTC)
Я сделал это в модуле: STikiLeaderboard . Сопоставление с образцом очень точное, поэтому оно, вероятно, сломается, если вы вообще измените формат таблицы, но мы всегда можем обойти это, если в этом возникнет необходимость. Best - г-н Страдивари ♪ доклад ♪ 15:14, 7 июня 2013 г. (UTC)
Прохладный. Это извлекает данные из таблицы лидеров в ее текущем виде без какого-либо дополнительного программирования сервера STiki. Это идеально. Спасибо. Yaris678 ( разговорное ) 21:35, 7 июня 2013 (UTC)
Это великолепно! Моя основная забота заключалась в разборе таблицы и изменении этого формата. wjk - Matroc ( разговор ) 04:18, 8 июня 2013 (UTC)
Огромное спасибо! Нет, формат таблицы не должен меняться. Тем не менее, я довольно способный программист, если это так - я просто не был хорошо знаком с Lua. Спасибо, West.andrew.g ( обсуждение ) 21:22, 9 июня 2013 г. (UTC)
Я думал, что это пустая трата времени, когда модуль проверяет только два поля данных, поэтому я просто расширил его, чтобы проверить все из них. См. Обновленную документацию в модуле: STikiLeaderboard . - Мистер Страдивари в туре ♪ обсуждение ♪ 06:56, 11 июня 2013 г. (UTC)

Есть ли способ использовать Lua или функции парсера для доступа к информации о файлах, такой как URL-адрес фактических изображений с полным разрешением или ширины и высоты изображения? Для этого файла URL-адрес будет [2] и размером 8150 × 6978. Мне нужна эта функция для шаблона, чтобы упростить создание KML для наложения файлов карты в Google Планета Земля. См. Commons: template: Map . - Ярект ( разговор ) 03:00, 10 июня 2013 (UTC)

Насколько мне известно, это невозможно сделать с помощью Lua или волшебных слов. Я подозреваю, что это возможно при использовании API , но вам придется спросить кого-нибудь, кто знает об этом больше, чем я. Возможно, оставьте сообщение на WP: запросы ботов ? - Г-н Страдивари, выступление 08:25, 12 июня 2013 г. (UTC)
Спасибо, мне просто нужно было второе мнение, так как я не мог его понять. Я знаю javascript, который ищет размеры изображения, так что, по крайней мере, это можно найти (в javascript). - Ярект ( разговор ) 04:03, 13 июня 2013 (UTC)

Привет. Если кто-то хочет развлечься, {{ user }} часто используют и определенно можно переписать. Для страниц, где он вызывается более 1000 раз, он очень медленный (например, Wikipedia: WikiProject Military history / Members / Active ). - MZMcBride ( разговор ) 03:14, 11 июня 2013 (UTC)

Я создал Module: Toolbar, который немного ускорил работу. Но {{ user-multi }} тоже можно было бы переписать. - Г-н Страдивари, выступление, 15:56, 11 июня 2013 г. (UTC)
мне не кажется, что то, что нужно {{ user }}, имеет какое-либо отношение к Lua. Я открыл шаблон в режиме «редактирования» (на самом деле в песочнице - я не могу открыть сам шаблон в режиме редактирования) и нажал «Просмотреть шаблоны, используемые на этой странице». Святой дым! Есть ли в этом смысл? общее количество в списке 151. действительно? Я уверен, что это можно исправить, но я не думаю, что это имеет какое-либо отношение к lua, и трудно представить себе тест, который был бы достаточно тщательным, чтобы показать, что модуль lua действительно делает все, что было в этом шаблоне - дикий делает. мир - קיפודנחש (aka kipod) ( разговор ) 16:45, 11 июня 2013 (UTC)
Две причины, по которым Lua может быть актуальным: использование подшаблонов может быть сделано для предотвращения повторной обработки одного и того же кода повторно. Lua не нуждается в таком обдумывании.
Подшаблоны могут использоваться для добавления (списков) опций. Lua может справиться с этим на одной странице.
Возможно, стоит взглянуть на главный шаблон {{ User-multi }}. - Депип ( разговор ) 17:07, 11 июня 2013 г. (UTC)
Я уверен, что это можно сделать и серьезно упростить с помощью lua. Моя точка зрения заключалась в том, что я считаю, что это можно сделать, и серьезно упростить его без lua. Я не знаком со всеми тонкостями этого шаблона и тем, что он делает, но, взглянув на документацию, я просто не могу представить, что действительно требуется 151 шаблон. возможно, что 140 из этих 150 шаблонов действительно связаны с одним шаблоном, который используется здесь - в этом случае вы, вероятно, захотите либо избежать использования этого шаблона, либо исправить его, чтобы не использовать 140 других шаблонов. выполнение этого с помощью lua практически эквивалентно выполнению этого с нуля без lua - в обоих случаях вы, вероятно, получите что-то лучше и быстрее, и в обоих случаях проверка того, что ваше новое детище действительно ведет себя точно так же, как существующий шаблон, будет очень серьезное начинание. мир - יפודנחש (он же кипод) ( разговор ) 18:14, 11 июня 2013 (UTC)
Автономная версия викикода сделана в Шаблон: Пользователь / песочница . Остальные шаблоны, используемые на этой странице, относятся к {{ Documentation }}. - Снаевар ( разговор ) 21:14, 11 июня 2013 г. (UTC)
Думаю, вы правы, и большинство из 150 шаблонов * созданы * из-за документации. так что у меня на лице появилось яйцо ... не в первый раз (и, вероятно, не в последний). мир - קיפודנחש (он же кипод) ( разговор ) 21:52, 11 июня 2013 (UTC)

Я начал работу над Module: UserLinks и надеюсь, что к концу дня у меня будет рабочий код. Я сообщаю людям об этом в надежде, что это поможет избежать дублирования усилий. - Г-н Страдивари, выступление 08:20, 12 июня 2013 г. (UTC)

Код почти готов. В Template: User-multi / testcases есть несколько тестовых примеров , но их должно быть намного больше. Я приглашаю вас всех попробовать и сломать его. :) - Mr. Stradivarius ♪ talk 15:07, 13 июня 2013 (UTC)
Хорошо, теперь он в прямом эфире. В конце концов, я сделал это довольно сложным, так как он делает волшебство, например, проверяет, действительны ли префиксы интервики и т. Д., Но, надеюсь, он все равно должен быть немного быстрее, чем старая версия. - Г-н Страдивари, выступление ♪ 06:00, 17 июня 2013 г. (UTC)

Я только что написал Module: IncrementParams для тех из вас, кто не любит вручную изменять нумерацию параметров информационного поля. Наслаждаться! - Г-н Страдивари, выступление 08:37, 13 июня 2013 г. (UTC)

Здравствуйте, может кто-нибудь помочь с преобразованием этого шаблона в Lua? - sumone10154 ( разговор ) 20:04, 13 июня 2013 (UTC)

{{ Заголовок без неоднозначности }}, который {{#Invoke:String|replace|{{{1|}}}|%s%(.*%)||plain=false}}удаляет любой текст в конце в скобках, чтобы отсортировать только другую часть. {{#Invoke:String|replace|{{{1|}}}|.*%/||plain=false}}должен выполнять эту часть, поэтому объединение дает:
{{#Invoke: String | replace | {{# Invoke: String | replace | {{{1 | {{SUBPAGENAME}}}}} |% s% (. *%) || plain = false}} |. * % / || plain = false}}
Итак, пока весь модуль: строка копируется в wikivoyage, вы можете вместо этого использовать приведенный выше код в шаблоне, хотя у кого-то может быть еще лучшее решение. - WOSlinker ( разговор ) 21:38, 13 июня 2013 г. (UTC)
Я сделал версию без использования module: string, и теперь она в voy: Template: BASICPAGENAME / sandbox - WOSlinker ( обсуждение ) 06:29, 14 июня 2013 г. (UTC)

Привет всем, я из бенгальской Википедии. Мы нуждаемся в твоей помощи. в T21412 Павел Селицкас сказал, что можно исправить или использовать Scribunto, проанализировать строки и сопоставить их части с названиями месяцев и преобразовать исходную метку времени. Итак, нам нужен скрипт или помощь / руководство. Как использовать в шаблоне. Ниже приведены бенгальские названия каждого месяца на английском языке.

  • Январь = জানুয়ারি
  • Февраль = ফেব্রুয়ারি
  • Март = মার্চ
  • Апрель = এপ্রিল
  • Май = মে
  • Июнь = জুন
  • Июль = জুলাই
  • Август = আগষ্ট
  • Сентябрь = সেপ্টেম্বর
  • Октябрь = অক্টোবর
  • Ноябрь = নভেম্বর
  • Декабрь = ডিসেম্বর

Заранее благодарю за вашу помощь. - Джаянта Натх ( Обсуждение | Контроль ) 07:38, 17 июня 2013 г. (UTC)

Я оставил простой пример в Module: User: Mr. Страдивари / convertTime . Вы можете использовать его со следующим:
{{#invoke: User: Mr. Stradivarius / convertTime | main | }}
Например, {{#invoke:User:Mr. Stradivarius/convertTime|main|১৬:২৫, ৩ এপ্রিল ২০১৩ (ইউটিসি)}}выдает «16:25, 3 апреля 2013 г. (ইউটিসি)». Best - Mr. Stradivarius talk ♪ 09:31, 17 июня 2013 (UTC)
Спасибо, мистер Страдивари, за вашу огромную помощь в бенгальской Википедии. Я пытаюсь внедрить этот модуль в нашу вики. - Джаянта Натх ( Обсуждение | Контроль ) 10:08, 17 июня 2013 г. (UTC)

Привет всем. Я нахожусь на ранней стадии написания Module: WikiProjectBanner и буду признателен всем за идеи относительно возможных функций. Пожалуйста, поделитесь своими идеями на Template talk: WPBannerMeta . Спасибо! - Г-н Страдивари, выступление, 12:51, 18 июня 2013 г. (UTC)

  1. Я не знаю, как именно делать такие вещи :( - просто немного увлекся ...
    • Обновленный код - более простое решение - см. Мою страницу обсуждения Matroc ( talk ) 05:37, 23 июня 2013 г. (UTC)
Знаете ли вы, что в Lua есть встроенные функции для этого? string.byte( "A" )возвращает 65 и string.char( 65 )возвращает "A". В Scribunto также есть функции, которые работают с кодовыми точками UTF-8 таким же образом: mw.ustring.codepoint( "á" )возвращает 225 и mw.ustring.char( 225 )возвращает «á». Anomie ⚔ 19:38, 22 июня 2013 (UTC)
Потрясающе - отличная информация Я ценю это - Спасибо! - Я должен проверить модуль String, чтобы увидеть, есть ли он там ... Отличный опыт для меня ... Matroc ( разговор ) 03:18, 23 июня 2013 г. (UTC) еще раз Спасибо!

Привет. Шаблон: в заголовке курсивом в настоящее время есть ошибка, при которой, если заголовок страницы содержит скобки, не разрешающие неоднозначность (например, «Foo v. Bar (Baz) Bing»), заголовок будет неправильно выделен курсивом. В настоящее время шаблон проверяет только наличие "(". Я бы хотел переключить шаблон на выделение курсивом всей строки, если нет ")" в конце заголовка страницы. Есть ли эквивалент rfind? А может для этого можно использовать обычную находку? Я размещу несколько входов / выходов ниже. - MZMcBride ( разговор ) 01:17, 14 июня 2013 (UTC)

Вход
Название фильма
Выход
Название фильма
Вход
Название книги (значения)
Выход
Название книги (значения)
Вход
Фу против Бар (1956)
Выход
Фу против Бар (1956)
Вход
Фу против Бар (Бинг) Баз
Выход
Фу против Бар (Бинг) Баз

  • Возможное решение для Template: Italic title, которое я также разместил на своей странице обсуждения:
{{DISPLAYTITLE: {{# ifexpr: {{#invoke: String | find | {{PAGENAME}} |)}} = {{#invoke: String | len | {{PAGENAME}}}}| {{# if: {{NAMESPACE}} | {{NAMESPACE}}:}} '' {{# Invoke: String | replace | {{PAGENAME}} | (| '' (}}| {{# if: {{NAMESPACE}} | {{NAMESPACE}}:}} '' {{PAGENAME}} ''}}}} {{documentation}} ->
  • Кто-то должен будет протестировать / утвердить / обновить его и т. Д., Чтобы убедиться, что он соответствует всем критериям - Ура! Матрок ( разговор ) 07:33, 17 июня 2013 (UTC)
  • Ой, похоже, у нас возник конфликт с шаблоном! Я только что потратил немного времени на кодирование чистой реализации Lua, Module: Italic title , которую я только что выложил вживую . Логику намного легче читать в Lua, поэтому я не думаю, что мы должны использовать функции синтаксического анализатора, если нам это не нужно. Новый модуль прошел все мои тесты ранее, но дайте мне знать, если вы обнаружите какие-либо проблемы с ним. Best - Mr. Stradivarius talk ♪ 08:34, 17 июня 2013 (UTC)
MZMcBride указала на проблему в книге « Все, что вы всегда хотели знать о сексе (но боялись спросить)» . Поскольку шаблон работает сейчас (и в истории), скобки остаются нетронутыми независимо от их содержания. Может быть, мы могли бы добавить |italics all=yesпараметр, чтобы покрыть это? Следующим выпуском будет: « Все, что вы всегда хотели знать о сексе (но боялись спросить)» (книга) . Это запрос функции, а не ошибка. - Депип ( разговор ) 09:38, 17 июня 2013 г. (UTC)
Хорошо, я добавлю это как вариант. Что касается второго, он уже должен работать - версия Lua соответствует только одному набору скобок, и только если они находятся в правом конце заголовка. - Г-н Страдивари, выступление, 09:51, 17 июня 2013 г. (UTC)
Теперь он в игре , и все, что вы всегда хотели знать о сексе (но боялись спросить), правильно выделено курсивом. - Г-н Страдивари, выступление ♪ 10:24, 17 июня 2013 г. (UTC)
Большой! - Депип ( разговор ) 11:44, 17 июня 2013 г. (UTC)
Потрясающие! - смотрел на это как на временное решение, пока не был написан модуль Lua (тоже запустил - Ура!) - фантастика! - Матрок ( разговор ) 14:32, 17 июня 2013 (UTC)
Мистер Страдивари: вы прекрасны. Спасибо! JPMorgan Chase Bank против Traffic Stream (BVI) Infrastructure Ltd. теперь автоматически выделяется курсивом, как и ожидалось. :-) - MZMcBride ( разговор ) 18:02, 19 июня 2013 (UTC)
PS И спасибо Matroc за то, что тыкался в это. Смерть функциям парсера!
Название корабля курсивом

Может быть, кто-то найдет радость в Luafying этого родственного:

  • {{ Курсивное название корабля }} (в сочетании с {{ Курсивным заголовком с префиксом }}, см. Также {{ Infobox ship begin }} и WP: SHIPS ). - Депип ( разговор ) 19:52, 4 июля 2013 г. (UTC)

Кто-нибудь создал Lua-версию функции синтаксического анализатора {urlencode:} для сохранения косой черты, амперсанда, '?' а знак равенства '='? Текущая ошибка в веб-ссылках («[http: ____]») всегда добавляет косую черту после URL-адреса, если urlencode закодировал другие косые черты как «% 2F», что ошибка веб-ссылки не понимает как косую черту, и поэтому добавляет косая черта в конце URL. Вместо этого нам нужен urlencode Lua, который сохраняет косую черту, чтобы типичные веб-ссылки в форме «[http: ____]» не добавляли недопустимую косую черту «/» в конце URL-адреса. Я написал Template: Encodelink для правильного кодирования некоторых URL-адресов, но он пропускает кодирование первых 43 символов, чтобы URL-адреса WP можно было кодировать с сохранением косой черты, а также первого символа '?' и '='. Полный urlencode Lua необходим для упрощения веб-ссылок. - Wikid77 ( обсуждение ) 12:40, 11 июля 2013 г. (UTC)

Думаю, дело только в api: это ты имеешь в виду ? - Th е DJ ( разговор • вклад ) 13:14, 11 июля 2013 (UTC)
Это была моя первая мысль. Викид, можете ли вы привести пример ссылки, по которой появляется ошибочная косая черта? Думаю, мне будет легче разобраться в проблеме на примере. - Г-н Страдивари, выступление, 13:19, 11 июля 2013 г. (UTC)
Пример добавленной косой черты: для "[http: // {{urlencode: www.google.com/search?q=xyz}} поиск в Google xyz]" → поиск в Google xyz ссылка не работает из-за дополнительной косой черты "/" после "xyz". "(как ошибка" 400: Ваш клиент отправил неверный или недопустимый запрос. "), поскольку синтаксический анализатор добавляет лишний" / ", который не видит 3-й" / "после" [  http: // __ ] ", когда" / "- в кодировке "% 2F". Я считаю ошибкой (в течение многих лет) автоматическое добавление косой черты в "[http: ___]", но некоторые разработчики думают, что конфликт редактирования тоже не проблема, поэтому мы просто работаем над ошибками вики. - Wikid77 ( обсуждение ) 05:33, 13 июля 2013 г. (UTC)
Wikid77, похоже, вы неправильно используете процентную кодировку. Согласно спецификации HTTP, это не одно и то же:
  • http://www.google.com/search%3Fq%3Dxyz
  • http://www.google.com/search?q=xyz .
В частности, спецификация требует, чтобы управляющие символы, такие как «/», «?» И «=», никогда не могли быть закодированы в процентах, если вы хотите, чтобы они имели свое функциональное значение. (Если это удивительно, не беспокойтесь об этом. Я тоже нашел это удивительным.) HTTP-сервер, который строго реализует спецификацию HTTP, будет рассматривать первый как запрос буквальной страницы "search? Q = xyz", в то время как последний - это запрос страницы «поиск» с запросом, у которого параметр «q» равен «xyz». Это правда, что многие веб-серверы на самом деле снисходительны к этому и рассматривают эти два запроса как идентичные, но это формально не согласуется с требованиями спецификации HTTP. Точно так же кодирование третьей косой черты как% 2F является нарушением спецификации HTTP, поэтому вы не должны сильно удивляться, если она не будет вести себя так, как ожидалось. Если вам нужны URL-адреса, совместимые со спецификацией HTTP, вам необходимо применить urlencode: только к тем частям URL-адреса, которые не должны действовать как назначенные управляющие символы, например, вы не можете применить к нему «/», «? "," = "или" # ", которые определяют части самого URL. Полет драконов ( разговор ) 06:05, 13 июля 2013 (UTC)
Спасибо, что подтвердили то, что я сказал вверху, на случай, если люди не поняли, почему я отметил сохранение косой черты, «&», «=» или «+» и т. Д. - Wikid77 ( обсуждение ) 22:53, 13 июля 2013 г. (UTC )
Точнее, это для кодирования компонентов URL, а не для целых URL. Итак: "[http://www.google.com/search?q={{urlencode:xyz}} googling xyz]" → googling xyz - предыдущий неподписанный комментарий, добавленный TheDJ ( обсуждение • вклад ) 07:43, 13 июля 2013 (UTC)
Более того, в MediaWiki нет даже косой черты. Если вы посмотрите на сгенерированный источник для вашего примера выше, Wikid77, он
< Отн = "NOFOLLOW" класс = "внешнего текста" HREF = "HTTP: //www.google.com%2Fsearch%3Fq%3Dxyz" > прибегая к помощи хуг >   
Без косой черты. Но это ссылка на несуществующее имя хоста «www.google.com/search?q=xyz», а не на любую страницу на www.google.com вообще. Anomie ⚔ 18:21, 13 июля 2013 (UTC)
  • Дополнительная косая черта «/» при нажатии: дополнительная косая черта отсутствует на сгенерированной странице, но добавляется в браузере при нажатии на ссылку, которая не содержит третьего символа «/» в URL-адресе (попробуйте: http://www.google .com% 2Fsearch? q = xyz ). Косая черта автоматически добавляется перед «? Q», чтобы сформировать «/ search /? Q» как недопустимый формат, как неясную ошибку в MediaWiki. URL-адреса, содержащие "/", не добавляют автоматически другой "/". - Wikid77 ( обсуждение ) 22:53, 13 июля 2013 г. (UTC)
    • Вы делаете это неправильно: это делается не MediaWiki, а вашим браузером. Если вы хотите, чтобы кодировалась только часть URL-адреса, кодируйте только эту часть . Произвольный пропуск символов, которые нужно закодировать, когда что-то сделано правильно, потому что вы хотите сделать это неправильно, - это не способ делать что-то. Anomie ⚔ 11:30, 14 июля 2013 г. (UTC)
Некоторые образцы могут помочь? Я немного посмотрел на это, взял ваш пример и создал Module: Sandbox / Matroc / Testurlencode - Edit: 2 + 2 = 4 ... может все еще иметь проблемы с некоторыми символами, может быть возможным способом исследования. Matroc ( обсуждение ) 00:00, 12 июля 2013 г. (UTC) - Это для простых URL-адресов - для создания API-интерфейсов mediawiki требуется больше работы.
Пробуем с Google: Lua от Matroc может разрешить {#invoke: Sandbox / Matroc / Testurlencode | encode | http://www.google.com/search?q=xyz | glink | x}, чтобы сгенерировать "[glink x]" с косой чертой "/" как действительное внутри сгенерированной ссылки "[http: __]". - Wikid77 ( обсуждение ) 05:33, 13 июля 2013 г. (UTC)
Я столкнулся с проблемой реализации в LUA {{FULLPAGENAMEE}} (с дополнительным E в конце). {{}} FULLPAGENAME доступен как fullTextиз getCurrentTitle()описанных здесь . Я пробовал использовать различные URL-адреса, и ничего не работало. title:partialUrl()Для достижения результата мне пришлось создать специальный метод для соединения необязательной части пространства имен с объектом. Я думаю, что uri.encodeне хватает некоторой кодировки и для этой цели можно было бы расширить с помощью новой опции enctype . Павел Зиемян ( разговорное ) 11:20, 12 июля 2013 (UTC)
uri.encode (title.nsText, «WIKI»). ":". uri.encode (title.text, "WIKI") у вас не работает? - Th е DJ ( разговор • вклад ) 07:43, 13 июля 2013 (UTC)
Проблема здесь, очевидно, в том, что {{FULLPAGENAMEE}} некодирует различные знаки пунктуации, которые технически должны кодироваться согласно соответствующим RFC, определяющим процентное кодирование. См. wfUrlencodeКонкретную реализацию. Anomie ⚔ 18:21, 13 июля 2013 (UTC)
Приятно знать. Спасибо. Павел Зиемян ( разговорное ) 20:50, 13 июля 2013 (UTC)
  • Снова сфокусируйтесь на исходной проблеме, для кодирования с сохранением косой черты и т. Д .: Создайте шаблон на основе Lua для ссылки на URL-адрес, который был закодирован, но с сохранением косых черт, амперсандов, знаков плюса и т.д. (keep: /? & + знак равно С этим не стоит спешить, поскольку ошибка с лишним слэшем «[http: __]» уже много лет присутствует в Википедии. - Wikid77 ( обсуждение ) 22:53, 13 июля 2013 г. (UTC)
    • Изменен мой тестовый модуль Lua - Модуль: Sandbox / Matroc / Testurlencode - принимает 2 аргумента: URL-адрес и ссылку - он декодирует 1-й, затем кодирует - выполняет ли подстановку, чтобы (keep: /? & + =) - Matroc ( talk ) 00 : 42, 14 июля 2013 г. (UTC) Может быть решением ...
      • Что сломается, если один из параметров запроса должен содержать фактический '+' вместо пробела или для ссылок, используемых git.wikimedia.org, которые требуют правильного использования как закодированных, так и некодированных косых черт. Суть в том, что то, что хочет сделать Wikid77, - это просто неправильный способ делать что-то, и любое «решение» для него будет своего рода взломом. Anomie ⚔ 11:30, 14 июля 2013 г. (UTC)
  • Думаю написать умный шаблон для кодирования параметров: идея состоит в том, чтобы иметь «умное кодирование», при котором логика Lua знала бы, когда кодировать «+» как буквальный знак плюса, но мы можем подумать об этом несколько недель, а затем, возможно, решить. слишком сложно автоматизировать. Как я уже сказал, спешить с этим не стоит, просто главная проблема в веб-ссылках для обсуждения возможных идей. - Wikid77 ( обсуждение ) 16:39, 14 июля 2013 г. (UTC)

Есть недвижимость d: Недвижимость: P94 и d: Недвижимость: P281 . первый - это имя файла изображения в Commons, а второй - просто строка. Однако оба они идентичны по структуре в LUA. Мне нужно было знать, что делать с текстом, т.е. заключать ли его в [File: ...] или отображать как есть. Викиданные знают кое-что еще, поскольку есть различия в описаниях свойств. Может быть, API базы данных расширен функцией, которая предоставляет информацию? Павел Зиемян ( разговорное ) 20:06, 14 июля 2013 (UTC)

Викиданные - вещь для меня разочаровывающая и загадочная - любая страница, на которой «редактирование» не приводит меня к источнику страницы, - это то, с чем я не знаю, что делать, и не очень ясно, как получить к ним доступ. Я вообще списал проект полностью на уме. Если я использую шаблоны, {{subst: d: Property: P94}} и {{d: Property: P281}} дают мне ... ну, то, что вы видите здесь, ничего. Поэтому я не могу его редактировать и включать ... Давайте попробуем {{#invoke: page | id | page = d: Property: P94}} -> 0, т.е. данные недоступны в Титровальный объект Lua. Так что же вы делаете с Викиданными? Wnt ( разговор ) 01:32, 18 июля 2013 (UTC)
@ Wnt : Вы можете найти более подробную информацию здесь . Насколько я знаю, мы должны получить к нему доступ с помощью frame:preprocess()или аналогичным образом в Lua. @ Paweł Ziemian : Думаю, ваше предложение больше подходит для Bugzilla, поскольку разработчики должны его услышать, а единственный известный мне разработчик, который смотрит эту страницу, - Anomie . - Г-н Страдивари, выступление 08:45, 18 июля 2013 г. (UTC)
  • Спасибо за ответ, однако я не упомянул, что хочу знать разницу в утверждениях, связанных на страницах статей (Q-элементы), а не в определении свойства. У меня возникла идея создать модуль, который отображал бы значение свойства в максимально удобном формате. То есть ссылка на статью, если доступна, строка, если доступна только метка, координаты с должной точностью, которые ссылаются на geohack, дата с должной точностью (включая время, если возможно), и, наконец, ссылка на файл в общем доступе, если data - это тип «файла в свободном доступе». Если, например, я перечисляю претензии по Гданьску, то это:
[p94] = { [0] = { ["mainsnak"] = { ["snaktype"] = "значение" ["свойство"] = "p94" ["datavalue"] = { ["value"] = "POL Gdańsk COA.svg" ["тип"] = "строка" } } ["тип"] = "инструкция" ["id"] = "q1792 $ 297F63DF-B20B-42BC-BFFB-D79BC2B42604" ["rank"] = "нормальный" }...[p281] = { [1] = { ["mainsnak"] = { ["snaktype"] = "значение" ["свойство"] = "p281" ["datavalue"] = { ["значение"] = "80-008" ["тип"] = "строка" } } ["тип"] = "инструкция" ["id"] = "q1792 $ f14becf3-40ab-6ac1-469d-f53cee19b577" ["rank"] = "нормальный" } ...

Нет никакого намека на то, что [p94] - это общее имя файла, а [p281] - это простой текст. Однако я немного подумал и понял, что отображение изображений - довольно сложный процесс и требует дополнительного внимания из-за множества доступных свойств, формирующих изображение. Мой вывод: сделать процесс автоматически вряд ли возможно. Поэтому я отменяю требование. Такие свойства никогда не должны отображаться напрямую, а должны быть отформатированы индивидуально в целевом информационном окне в соответствии с их потребностями и с использованием только необработанного значения свойства в качестве ссылки на данные. Павел Зиемян ( разговорное ) 09:15, 18 июля 2013 (UTC)

Хммм, согласно приведенной выше ссылке, {{#property: p284}} был бы способом доступа к этим данным, и, более того, это невозможно сделать отсюда, как и {{#property: p284 | of = Gdańsk} } действительно работают; однако, играя с ним в предварительном просмотре страницы, я смог увидеть, что при добавлении в статью p281 обеспечивает:
80-008 - 80-958, 80-008, 80-958
против
POL Gdańsk COA.svg
для p94. Я должен отметить, что последний результат - это просто строка, отображаемая в этом предварительном просмотре страницы, а не ссылка, если вы не поместите ее в двойные скобки. В любом случае, я вижу данные, которые вы разместили выше, изображенные в забавной форме в [3], но где вы взяли распечатку структуры данных с идентификаторами и т. Д., Которую вы вставили выше ?? Wnt ( разговор ) 09:40, 18 июля 2013 (UTC)
Здесь у меня есть мой частный Lua-скрипт [4] с методом claims, который, вызванный в статье (конечно, только в предварительном просмотре), создает такой список. Павел Зиемян ( разговорное ) 11:36, 18 июля 2013 (UTC)
Ага - теперь я вижу, что у нас есть mw: Extension: Wikibase Client / Lua . Я даже не знал об этом раньше. Я мог бы повозиться с этим позже, но я действительно недостаточно знаю об этом сейчас, чтобы ответить на ваш вопрос, Павел. - Г-н Страдивари, выступление, 12:07, 18 июля 2013 г. (UTC)

Если не кошерно добавлять запрос на другой проект, вы можете вернуться.

Мы пытаемся сделать так, чтобы нелатинские скрипты отображались без курсива в полях alt = и direction = voy: Template: Listing , и есть подозрение, что модуль Lua сможет сделать это за нас. Но у нас нет никого с опытом. Если кто-то здесь заинтересован в помощи, см. Обсуждение на voy: Template talk: Listing # Нелатинские скрипты выделены курсивом . Спасибо! - Peter Talk 19:21, 21 июля 2013 г. (UTC)

Не уверен, что он вполне готов к использованию в прайм-тайм, но я сделал функцию на voy: Module: IsLatin как отправную точку. - WOSlinker ( разговор ) 22:10, 21 июля 2013 (UTC)
Я встроил модуль: IsLatin в тестовый шаблон - (Используется ifeq для условий теста «да» или «нет». Пока проблем нет. Matroc ( обсуждение ) 02:13, 24 июля 2013 г. (UTC)
{{#ifeq: no | {{# invoke: IsLatin | IsLatin | {{{param}}}}} | ('' {{{param}}} '') | ({{{параметр |}}})}}
Спасибо за тестирование. - WOSlinker ( разговор ) 06:34, 24 июля 2013 (UTC)

В голландской Википедии мы используем nl: Sjabloon: Coördinaten для координат. Ввод примерно такой же, как и в большинстве Википедии, с одним существенным отличием: подчеркивание используется вместо каналов. Так, например, nl: Haarlem использует {{Coördinaten | 52_22_49_N_4_38_26_E_type: city (146753) _region: NL-NH | 52 ° 22 ′ 49 ″ N, 4 ° 38 ′ 26 ″ O}}. Я хотел бы изменить шаблон coördinaten, чтобы использовать #coordinates для заполнения nl: Special: Nearby . Я пытаюсь в nl: Gebruiker: Multichill / Kladblok, но у меня не получается. Может ли кто-нибудь помочь мне здесь или указать правильное направление? Проблема, похоже, в | как специальный символ и его экранирование. Multichill ( разговор ) 10:05, 6 июля 2013 (UTC)

Проблема в том, что у вас не может быть "|" для разделения аргументов на # координаты генерируются с помощью #invoke; вот почему {{ ! }} работает, чтобы «избежать» | в аргументах шаблона. Но вы должны иметь возможность делать это полностью в Lua примерно так:
функция  p . координаты (  фрейм  )  return  frame : callParserFunction (  '#coordinates' ,  mw . text . split (  frame . args [ 1 ],  '_' ,  true  )  ) end
Я на самом деле не тестировал это, но это должно дать вам представление. Anomie ⚔ 12:30, 6 июля 2013 г. (UTC)
Спасибо за вклад. Похоже , я пропустил «истинное» участие в mw.text.split: модуль обновления и обновления шаблона . Таблица теперь заполняется. Multichill ( разговор ) 13:27, 6 июля 2013 (UTC)
  • Мне тоже было интересно использовать этот метод, но это очень простой метод. Похоже, что недопустимые аргументы приводят к сбою рендеринга страницы на стороне сервера, если я создал простой вызов с недопустимыми аргументами.
функция  m . С ( рамка )  возвращение  кадра : callParserFunction ( '#coordinates' ,  {  '100' ,  '200'  }  ) конец

Результатом была страница с ошибкой сервера с извинениями и следующей информацией об ошибке:

Неустранимая ошибка PHP в строке 955 /usr/local/apache/common-local/php-1.22wmf8/includes/parser/Preprocessor_DOM.php:Аргумент 1, переданный в DOMXPath :: __ construct (), должен быть экземпляром DOMDocument с заданным значением null, вызываемым в /usr/local/apache/common-local/php-1.22wmf8/extensions/Scribunto/engines/LuaCommon/LuaCommon.php on строка 500 и определенная 

Однако, если я использую напрямую {{#coordinates: ...}}, вместо этого возвращается правильная ошибка. Поэтому я отказываюсь от вызова координат непосредственно из Lua, пока метод не станет более устойчивым к недопустимому вводу. Павел Зиемян ( разговорное ) 05:52, 7 июля 2013 (UTC)

Пробежался и по нему открыл T52863 . Multichill ( разговор ) 11:26, 7 июля 2013 (UTC)

Было бы здорово автоматически определять приблизительное соотношение сторон изображения (ширина / высота), особенно для использования в общих: Шаблон: Оценки . Возможно ли это? - Рикорди Самоа, 23:04, 3 августа 2013 г. (UTC)

На данный момент мне известно, что в Lua нет возможности сделать это. Я отправил запрос на добавление функции в bugzilla - посмотрим, вызывает ли он интерес. - Г-н Страдивари, выступление ♪ 10:51, 4 августа 2013 г. (UTC)
Большое спасибо, оставайтесь с нами. - Ricordi Samoa 13:14, 4 августа 2013 г. (UTC)

В викикоде параметры могут иметь трехсторонний ввод: 1. обычный текст, 2. <пробел> (пробел) и 3. вообще не определенный (= отсутствует в вызове шаблона). Как мы можем передать их через шаг #invoke: (или: как модуль может обнаружить эти три)?

В wikicode я могу обнаружить все три с помощью функции синтаксического анализатора {#if:}. - Депип ( разговор ) 13:17, 26 июля 2013 г. (UTC)

  • При необходимости кодируйте пустые параметры во время обработки #invoke: не бойтесь использовать {#if: _} для проверки пустых параметров и сбросить пустые значения во время #invoke (например, для значения параметра "# blank #" или подобного) . Внутри #invoke каждый {#if} выполняется со скоростью 800 в секунду, по сравнению с #invoke, работающим со скоростью 500 в секунду с 7 текстовыми параметрами. В общем, не документируйте шаблоны с «шаблоном» из 30 пустых параметров, потому что я думаю, что 1/3 (33%) всех основных параметров шаблона сейчас пустые в миллионе статей из-за продвижения примеров скелетов с пустыми параметрами, в которых перечислены почти все параметры пустые. Плюс дополнительные пустые параметры замедляют обработку экспоненциально, потому что каждый параметр необходимо сравнивать со всеми предыдущими параметрами, в случае повторного использования одного из тех же имен, чтобы перезаписать предыдущее значение параметра и повторно обработать каждый предыдущий параметр, снова и снова, для каждый следующий переданный параметр очень медленный. Таким образом, 1000 параметров «в четыре раза» медленнее, чем 500 параметров, а не вдвое, грубо говоря. - Wikid77 18:27, 26 июля 2013 г. (UTC)
Я пытался прочитать последний blob примерно 3 раза и не понял ни о чем вы говорите, ни о том, какое отношение это имеет к запросу.
iiuc, запрос касается способа различать внутри самого кода lua между параметром, заданным без (= пустым) значением, и параметром, который не задан вообще. Я вижу ценность способа провести такое различие, но я думаю, что этот запрос, вероятно, был бы более уместным в mw: Extension talk: Scribunto . мир - קיפודנחש (aka kipod) ( разговор ) 19:15, 26 июля 2013 (UTC)
Я думаю, они предлагают установить для параметра blank значение "# blank #", чтобы затем преобразовать его в false / nil в Lua. - Lfdder ( разговор ) 19:39, 26 июля 2013 (UTC)
Эти три метода ввода обнаруживаются в lua следующим образом. Ниже в качестве примера я использовал параметр 1 ({{{1}}} в викикоде). Если вы планируете обнаруживать более одного параметра с одним и тем же значением, следует использовать другой подход.
Что вы собираетесь делать после того, как обнаружите эти три входа? - Снаевар ( разговор ) 21:50, 26 июля 2013 г. (UTC)
просто сказал, я хочу различать: 1. вернуть текст, 2. вернуть <пустой>, 3. вернуть сообщение об ошибке по умолчанию (с классом = состояние ошибки). см. {{ IPAsym }} и модуль: символ IPA , с их текущими разработками. - Депип ( разговор ) 01:02, 27 июля 2013 г. (UTC)
На это был дан ответ, но если кто-то хочет возиться, см. Test2 . Не стесняйтесь редактировать там что угодно. Кстати, модулю десять месяцев, и он использует устаревший, frame:argumentPairs()такой же, как pairs(frame.args).
Сначала страница немного сбивает с толку - прочтите «Объяснение» вверху. Каждый тест начинается с отображения используемого шаблона (пример:) {{Johnuniq/Testargs|}}, за которым следует таблица, содержащая «Родитель (аргументы, переданные в шаблон)», в котором показаны аргументы шаблона, видимые модулем (в данном примере - пустая строка). . Johnuniq ( разговор ) 00:52, 27 июля 2013 (UTC)

Спасибо. Я понимаю, что таблица Снаэвара является определяющей. Это могло и должно быть на странице справки LUA. - Депип ( разговор ) 19:11, 27 июля 2013 г. (UTC)

Подожди подожди. Это хорошо работает только при прямом вызове модуля из шаблона: tplX #invoke:....но как передать, когда я вызываю этот шаблон со страницы? - Депип ( разговор ) 21:35, 1 августа 2013 г. (UTC)
См. frame:getParent().argsДоступ к параметрам шаблона, который напрямую вызывает функцию из модуля Lua. Павел Зиемян ( разговорное ) 20:04, 2 августа 2013 (UTC)
Решено
Еще раз спасибо. - Депип ( разговор ) 06:13, 8 августа 2013 г. (UTC)

Я пытаюсь применить параметры rowclass # к строкам заголовков в информационных блоках. Это была моя попытка сделать это. Я изменил страницу тестовых примеров, чтобы проверить, работает ли она, и оказалось, что это не так (я ожидал, что тестовый класс будет на tr в песочнице, а это не так), и я не знаю почему. Может ли кто-нибудь взглянуть на это для меня? Спасибо, Джекмакбарн ( разговор ) 18:02, 9 августа 2013 г. (UTC)

Я предполагаю, что вы, вероятно, не можете связывать вещи между tag () s. Попробуйте использовать lvar (как в строке 56). - Lfdder ( разговор ) 23:12, 9 августа 2013 (UTC)
По-прежнему не работает. Джекмакбарн ( разговор ) 00:12, 10 августа 2013 (UTC)
rowclass зависел от данных ... как ни странно. Если я правильно это читаю , должно быть наоборот. - Lfdder ( разговор ) 00:33, 10 августа 2013 (UTC)

Привет всем. Я только что создал Module: Fixme , который ищет в модулях Lua текст «FIXME» в комментариях и, если он присутствует, добавляет страницу к еще не созданным модулям Category: Lua с тегами fixme . Я подумал, что это будет хороший способ побудить людей проверять и исправлять код друг друга. Мы могли бы проверить все модули автоматически, добавив Module: Fixme в MediaWiki: Scribunto-doc-page-show и MediaWiki: Scribunto-doc-page-does-not-exist . Люди думают, что это хорошая идея? А вы бы предпочли другое название для категории? Дайте мне знать, что вы думаете. - Г-н Страдивари ♪ выступление ♪ 12:03, 20 августа 2013 г. (UTC)

это выглядит немного запутанным. разве это не то, для чего у нас есть категории? если мы хотим пометить некоторые модули как "needin` fixin`", почему бы не создать новый кот, скажем Категория: Модули, требующие модификаций или чего-то подобного, и добавить его на страницу документа этих модулей? мир - קיפודנחש (он же кипод) ( разговор ) 13:01, 20 августа 2013 (UTC)
Идея в том, что такие вещи проще всего объяснить в реальном коде. Имея только категорию, трудно понять, что и как нужно исправить. И если бы это было сделано на странице обсуждения, вам, вероятно, нужно было бы скопировать часть кода, чтобы объяснить свою точку зрения. Что касается запутанности, я думаю, что все наоборот. Все, что вам нужно сделать, чтобы добавить страницу в категорию fixme, - это добавить к вашему модулю комментарий с «FIXME» в нем. А если вы хотите удалить страницу из категории, все, что вам нужно сделать, это удалить текст «FIXME». Если мы вручную добавили категории на страницы / doc, люди, вероятно, забудут добавить категорию после добавления комментария fixme или забудут удалить категорию после исправления проблемы. Кроме того, использование комментариев fixme является широко распространенной практикой программирования, поэтому программистам она уже знакома. - Г-н Страдивари ♪ выступление ♪ 13:32, 20 августа 2013 г. (UTC)

Привет, мне нужна помощь в создании модуля: документация

Я нашел эти коды в Википедии, но перевел несколько слов, вот коды, которые могут помочь мне изменить слова и создать более глупую копию документации, но в сценариях lua, пожалуйста, мне также нужна помощь в переводе и создании той же версии Template: documentation, но в сценариях lua, пожалуйста, это уже было сделано, но мне нужна помощь, чтобы сделать все остальное, например, преобразование шаблона: документация в модуль: документация, пожалуйста

Привет, не могли бы мне помочь, чтобы он выглядел как шаблон: документация / начальное поле и шаблон: документация / конечное окно, вы можете взглянуть на мой тест просто: шаблон: документация / песочница. Мне помогли это сделать, потому что doint знаю, как писать скрипты, но подумал, что это хорошая идея, и вот мы сейчас тестируем модуль на простом вики- простом: Модуль: Документация 109.151.161.64 ( обсуждение ) 20:16, 29 июля 2013 г. (UTC)

привет, может кто-нибудь, пожалуйста, помогите мне создать шаблон: документация в сценариях lua. Я тестирую его на простом: модуль: документация и, пожалуйста, просмотрите его предварительный просмотр на простом: шаблон: документация / песочница 86.159.74.81 ( обсуждение ) 12:06, 4 августа 2013 (UTC)
Сообщество simplewiki на самом деле не обсуждает, стоит ли это того, и этот запрос исходит от sockpuppeteer, уклоняющегося от блоков . Разумеется, любой, у кого есть свободное время, может изучить его выполнение, но, как я уже сказал, в проекте даже не началось обсуждение того, воспользуемся ли мы его на самом деле. Осирис ( разговор ) 14:12, 7 августа 2013 (UTC)
Что ж, у меня нет сомнений в том, что это хорошая идея, по крайней мере, для шаблона документации enwiki. Это один из наиболее сложных, и его, безусловно, можно упростить и ускорить с помощью модуля Lua, если у кого-то будет время собрать его воедино. - Г-н Страдивари ♪ выступление ♪ 14:16, 7 августа 2013 г. (UTC)
ок 86.159.26.136 ( обсуждение ) 18:15, 7 августа 2013 (UTC)
Я сделал это на простых вики, потому что они позволяют создавать страницы без необходимости учетной записи 86.159.26.136 ( обсуждение ) 18:16, 7 августа 2013 г. (UTC)
Однако нет, если вы уклоняетесь от блокировки, поэтому вам нужно войти в свою исходную учетную запись на Meta и запросить разблокировку, прежде чем возобновить редактирование. Осирис ( разговор ) 23:01, 10 августа 2013 (UTC)
Абсолютно согласен, идея хорошая. Я оставлю код на simplewiki, если он кому-то понадобится. Хотя было бы лучше, если бы он был скопирован в эту вики, где есть больше пользователей, имеющих опыт, чтобы помочь в строительстве. Осирис ( разговор ) 23:01, 10 августа 2013 (UTC)
но я не могу войти в свою исходную учетную запись на мета, если она заблокирована 86.141.190.129 ( обсуждение ) 10:15, 11 августа 2013 г. (UTC)
Затем вы отправляете запрос стюардам по электронной почте. @wikimedia.org. Осирис ( разговор ) 05:56, 13 августа 2013 (UTC)
хорошо, как долго мне ждать, чтобы попросить разблокировать учетную запись из-за того, что я недавно редактировал Википедию, и потому что я заблокирован, так сколько мне нужно ждать, прежде чем попросить их разблокировать меня 86.141.190.129 ( обсуждение ) 16:35, 13 августа 2013 г. (УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ)

Как добавить специальные страницы в модуль, поэтому я использую Special: ComparePages для diff 86.159.26.136 ( обсуждение ) 15:48, 10 августа 2013 г. (UTC)

В настоящее время кажется невозможным передать отряды на аутсорсинг для Викиданных, а затем импортировать их в (разные языковые версии) Википедию. В настоящее время в Викиданных есть тестовый квадроцикл, который может быть реализован в шаблонах: состав ФК Бавария Мюнхен и ФК Бавария Мюнхен # Текущий состав в будущем. Сортировка игроков либо по фамилии, либо по номеру футболки. необходим. См. Также WT: WPF # Аутсорсинг отрядов для Викиданных . - Лейо 10:48, 6 сентября 2013 г. (UTC)

  1. ^ xx
  2. ^ xx
  3. ^ xx