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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Здесь находятся завершившиеся обсуждения. Просьба не вносить изменений.

Подправить регулярное выражение[править код]

Нужно регулярное выражение, подобное r( /<[\/\\]?(hr|br)( [^\/\\>]+?)? ?[\/\\]?>/gi, '<$1$2 />' ); в MediaWiki:Wikificator.js, но чтобы обрабатывались br и br/ равноправно, не заменяя br на br/. --Hrum-Hrum (обс) 20:12, 25 июня 2016 (UTC)[ответить]

Не вижу смысла. Должен быть один вариант. — Джек, который построил дом (обс.) 20:24, 25 июня 2016 (UTC)[ответить]
А, или вы в рамках запроса к скриптёрам просто спрашиваете. Сорри. Секунду. — Джек, который построил дом (обс.) 20:25, 25 июня 2016 (UTC)[ответить]
Нет, ну чтобы сохранить слэш, нужно просто сделать capture (окружить скобками  ?[\/\\]? и <$1$2 /> заменить на <$1$2$3>), только зачем? — Джек, который построил дом (обс.) 20:29, 25 июня 2016 (UTC)[ответить]
Палец вверх Спасибо Ага, даже так '<$1$2'+($3==''?'':' /')+'>'. --Hrum-Hrum (обс) 21:14, 25 июня 2016 (UTC)[ответить]

Как создать алиасы на Lua?[править код]

Модуль:Navbox/sandbox. Хочу создать алиасы к параметрам. Но что-то не работает. Добавил args.title or args['заголовок'] где можно. Что я сделал не так? Вот песочница. С уважением, Iniquity 15:57, 13 июня 2016 (UTC)[ответить]

Эээ.
if not args.title or args['заголовок'] then return end
args.title or args['заголовок'] and (args.state ~= 'plain' and args.state ~= 'off')
and во всех языках программирования имеет больший приоритет, чем or, а not и подавно.
И в одном месте у вас agrs вместо args. — Джек, который построил дом (обс.) 16:33, 13 июня 2016 (UTC)[ответить]
Нашел второй вариант как сделать, но он тоже чтот не работает. Буду разбираться, а по первому, как объявить приоритет для определенного выражения? Взять его в скобки? С уважением, Iniquity 17:39, 13 июня 2016 (UTC)[ответить]
Значит, с программированием мы знакомы плохо. ОК, let me do that for you.
if not (args.title or args['заголовок']) then return end
(args.title or args['заголовок']) and (args.state ~= 'plain' and args.state ~= 'off')
Но вообще естественно сначала создать переменную на основе перечня аргументов, а потом с ней работать. Вижу, вы это уже сделали.
local titlemain = args.title or args['заголовок'] or ' '
Пробел интерпретируется как true. — Джек, который построил дом (обс.) 17:51, 13 июня 2016 (UTC)[ответить]
Я его когда-то знал, но уже всё позабыл. Вот пытаюсь восстанавливать. Да я создал переменную, но её обработка возвращает мне ошибку: «Ошибка Lua в Модуль: Navbox/sandbox на строке 15: attempt to index local 'args' (a nil value)». С уважением, Iniquity 17:57, 13 июня 2016 (UTC)[ответить]
Внутри функции, внутри функции всё объявлять надо. Вне — только local p = {}. См. также mw:Manual:Coding conventions/Lua (там ничего нет толком). — Джек, который построил дом (обс.) 18:26, 13 июня 2016 (UTC)[ответить]
То есть внутри каждой объявлять? А нельзя как-то вынести во вне? С уважением, Iniquity 18:38, 13 июня 2016 (UTC)[ответить]
Там же главная функция есть. Она принимает фрейм (frame), она и должна всем заведовать, другим функциям по необходимости значения из аргументов передавая. — Джек, который построил дом (обс.) 18:58, 13 июня 2016 (UTC)[ответить]
Точнее, navbox после первичной переработки передаёт всё хозяйство _navbox, и далее она им распоряжается. — Джек, который построил дом (обс.) 19:02, 13 июня 2016 (UTC)[ответить]
Что-то всё равно делаю не так, уже даже новую функцию объявил. С уважением, Iniquity 19:18, 13 июня 2016 (UTC)[ответить]
return p._aliaces(maintitle)
Это что? Вы в функции p.aliaces вызываете несуществующую функцию p._aliaces, передавая ей maintitle. Зачем? — Джек, который построил дом (обс.) 19:27, 13 июня 2016 (UTC)[ответить]
Я сделал по примеру w:Module:Color_contrast. Видимо не правильно. Хм, вообще я где-то видел модуль с вынесенными алиасами во вне модуля, счас поищу. С уважением, Iniquity 19:30, 13 июня 2016 (UTC)[ответить]
У вас уже есть главная функция в модуле — navbox. Отдельная функция для алиасов явно не нужна. — Джек, который построил дом (обс.) 19:44, 13 июня 2016 (UTC)[ответить]
Не хочет он там это делать. С уважением, Iniquity 08:41, 14 июня 2016 (UTC)[ответить]
Я не понимаю, что это значит. Неважно, кто делает, важно что и на основе чего. Либо navbox, получающая фрейм (aka хозяйство), либо _navbox, получающая массив (таблицу, точнее, в терминологии Lua) переменных от navbox; я уж не знаю, что там по смыслу вернее. Я и WindEwriX в модуль:Example вообще без всяких функций-посредников обходились. Ну да ладно, учить стандартным практикам программирования вас у меня возможности нет. — Джек, который построил дом (обс.) 13:14, 14 июня 2016 (UTC)[ответить]
Ясно, спасибо. С уважением, Iniquity 13:19, 15 июня 2016 (UTC)[ответить]
Кто-нибудь, вставьте, пожалуйста, строчку local maintitle = args.title or args['заголовок'] куда надо. Чтобы я хоть увидел, где она должна быть по правилам и работала. Дальше разберусь :) С уважением, Iniquity 13:19, 15 июня 2016 (UTC)[ответить]
Ещё могу дать подсказку — переменные, объявленные вне функций (а args в оригинальном модуле таки объявляется вне, но не заполняется, естественно), действуют во всех них. Остальные надо перебрасывать от функции к функции, чтобы они были доступны.
Кстати, я уже вижу там обработку алиасов — border = trim(args.border or args[1] or ''), можете сделать по этому шаблону. При этом border объявлена вне функций, можно так же объявить и maintitle. — Джек, который построил дом (обс.) 14:01, 15 июня 2016 (UTC)[ответить]
ДА! ОНО! Спасибо :) С уважением, Iniquity 14:04, 15 июня 2016 (UTC)[ответить]

Итог[править код]

✔ Сделано С уважением, Iniquity 09:33, 27 июня 2016 (UTC)[ответить]

Подсветка[править код]

Это https://www.mediawiki.org/wiki/MediaWiki:Gadget-DotsSyntaxHighlighter.js (http://jsbeautifier.org/) https://www.mediawiki.org/wiki/User:Remember_the_dot/Syntax_highlighter https://www.mediawiki.org/wiki/User:Remember_the_dot/Syntax_highlighter.js разбирает вики-текст "как xml". Говорит, что "For performance reasons...use br/ instead of br".

проблема: после незакрытого <br> начинается сплошная подсветка. <тег> текст - закрашивает только тег, но <тег> текст <тег> запускает закраску текста после первого тега. Можно ли сделать так чтобы цвет заливки текста показывался после обнаружения </тег>? --Hrum-Hrum (обс) 13:48, 9 июня 2016 (UTC)[ответить]

✔ Сделано --Hrum-Hrum (обс) 12:24, 25 июня 2016 (UTC)[ответить]

Нужен модуль аналогичный недоделанному {{ЯзыкПоКоду}}. Суть модуля: Основная часть выбирающая падежи и отсылающая к определенной базе данных, и пять баз с различными падежами названия языков. То есть пользователь задает, например, |падеж = и |код языка = и получает в нужном падеже название языка. Дополнительной функцией можно добавить добавление слова "язык" к названию языка, тоже по падежам и за это добавление должен отвечать отдельный параметр. По умолчанию должен быть именительный падеж. С уважением, Iniquity 09:36, 6 июня 2016 (UTC)[ответить]

Не знаю, есть ли какая-то польза, но в шаблоне {{lg}} валяется список языков + сокращений + кодов. — Джек, который построил дом (обс.) 11:59, 6 июня 2016 (UTC)[ответить]
О, спасибо, знающий человек думаю сможет вытащить. С уважением, Iniquity 15:31, 7 июня 2016 (UTC)[ответить]

Автоматизировать {{Архив}}[править код]

Сейчас в сабже ссылки на подстраницы нужно указывать вручную. Думаю, можно скриптом достать их автоматически (обычно это {{FULLPAGENAME}}/Архив/*). — Ivan Pozdeev 23:10, 1 июня 2016 (UTC)[ответить]

(Добавлено в список техзадач на будущее)

Этот невидимый раздел используется для формирования ссылок на разделы на странице поиска. Тхздч (3) 2016-10-09: Автоматизировать {{Архив}}. Jack who built the house. /Тхздч.

Песочница для отладки собственных скриптов[править код]

Добрый день! Что посоветуете для отладки собственных скриптов по работе с ВП:ВД? Есть ли документация/лучшие практики ? -- A.sav 13:12, 24 мая 2016 (UTC)[ответить]

@A.sav: Видел такое https://en.wikipedia.org/wiki/Wikipedia:User_script_sandbox/Installation . --Hrum-Hrum (обс) 11:02, 9 июня 2016 (UTC)[ответить]
@Hrum-Hrum: Палец вверх Спасибо

Починить гаджет WEF:Ссылки, Книга, Издание[править код]

Не работает несколько месяцев. Прошу починить, или открыть доступ к редактированию, сам попробую поправить. Обсуждение MediaWiki:Gadget-wefexternallinks.js#Не работает гаджет в связи с изменениями свойств в ВД. --Vladis13 16:30, 17 мая 2016 (UTC)[ответить]

Итог[править код]

✔ Сделано. --Vladis13 13:34, 21 мая 2016 (UTC)[ответить]

Множественное сохранение ссылок на сервисах кэширования веб-ресурсов[править код]

Здравствуйте, не помешало бы наличие скрипта, программы, расширения или т. п., чей принцип действия был бы следующий. Пользователь вставляет в форму множество ссылок, разделяя их пробелом или другим символом, какой пожелает разработчик, нажимает на кнопку и через некоторое время получает, например, на почту ссылки на кэшированные версии веб-страниц с WebCite или аналогичного надёжного сервиса. Например, я вставляю в форму этого предполагаемого ПО ссылки https://ru.wikipedia.org/wiki/WebCite и https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%BA_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B5%D1%80%D0%B0%D0%BC , нажимаю на кнопку и вскоре получаю по почте сообщение: «Ссылки на ваши заархивированные страницы — http://www.webcitation.org/example1 http://www.webcitation.org/example2 ».

мне кажется, это значительно облегчит процесс архивирования веб-страниц, помогая в борьбе с вымиранием ссылок. Гуглом и вопросами ничего подобного найти не удалось. Спасибо.--Анима 10:24, 3 апреля 2016 (UTC)[ответить]

Также рекомендую задать вопрос или пошерстить в английском разделе. — Джек, который построил дом 10:40, 3 апреля 2016 (UTC)[ответить]
Однако, поискав "archiv" и "citat" по главным спискам этих скриптов, а также разные сочетания в поиске, ничего не нашёл. На en:Help:Using the Wayback Machine, en:Wikipedia:Using WebCite есть только букмарклеты для одиночных страниц. В идеале должна быть надстройка над https://tools.wmflabs.org/refill/. Только бы мы так не перегрузили сервисы архивирования. — Джек, который построил дом 11:00, 3 апреля 2016 (UTC)[ответить]
✔ Сделано не мной. Как потестирую скрипт на предмет дефектов и багов, и они будут исправлены, отпишусь. Спасибо.-Анима 08:25, 7 мая 2016 (UTC)[ответить]