wiki

Устройство osu! wiki

См. также: Руководство по работе с osu! wiki

Здесь рассказывается о технических и административных аспектах osu! wiki, а также приводятся различные рутинные задачи по обновлению статей, с которыми вы можете помочь. Все обсуждения, связанные с osu! wiki, ведутся на канале #osu-wiki дискорд-сервера osu!.

Администраторы

Основная статья: Администраторы osu! wiki

Администраторы — лица, у которых есть совместный доступ к репозиторию ppy/osu-wiki, где хранятся все статьи и новости. Они разбирают связанные с проектом задачи и проблемы, проверяют пулл-реквесты и принимают решения, определяющие развитие osu! wiki.

Администраторы также принимают или отклюняют пулл-реквесты. Если ваши правки пора публиковать, или вам нужно ревью, попросите кого-нибудь из них в канале #osu-wiki.

Технические подробности

Трекер задач

У osu! wiki есть трекер задач для идей и предложений, связанных как с самими статьями, так и с вики-движком сайта. Туда стоит публиковать свои идеи, а также сообщения об ошибках в какой-нибудь из статей. Обратите внимание, что писать туда нужно только про вики, а прочие официальные проекты osu! живут в других местах:

Теги

Теги — это метки, которые ставятся на пулл-реквесты и задачи на GitHub и отражают их содержание или особенности. Они добавляются администраторами и носят справочный характер (по их названию и так всё понятно). Теги красного цвета являются служебными и не требуют от пользователей никаких действий:

  • rule change: изменения в правилах (например, в критериях ранкинга), которые должны быть проверены знающими людьми;
  • blocked: пулл-реквест пока нельзя принять: в нём либо есть серьёзная проблема, либо он зависит от других изменений;
  • needs rebase: обилие малосодержательных коммитов, которые нужно объединить и переоформить (обычно это делают сами администраторы перед тем, как влить пулл-реквест).

Ссылки и перенаправления

У большинства статей в osu! wiki есть короткие ссылки-синонимы, которые настраиваются через файл redirect.yaml. Они предназначены для использования за пределами вики — например, на форумах или в чате, где для них существует отдельный синтаксис:

Ссылка на критерии ранкинга: [[RC]]

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

Автоматизированные проверки

В репозитории osu! wiki настроены автоматизированные проверки (CI), отлавливающие распространённые ошибки в пулл-реквестах. Список проверок можно найти в файле continuous-integration.yml.

В файле package.json перечислены все плагины (remark) для CI (некоторые из них написаны администраторами osu! wiki).

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

  1. Пролистайте пулл-реквест до конца, найдите в табличке строку osu-wiki continuous integration и нажмите в ней на ссылку Details.
  2. На новой странице найдите пункт run remark on changed files и кликните по нему. Около каждой найденной ошибки будет указана её причина и местоположение.

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

Если вам нужна помощь в расшифровке автоматически найденных ошибок, обращайтесь в канал #osu-wiki.

Отключение проверок

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

Ниже — список всех проверок, которые запускаются автоматически:

# Тип проверки Инструмент Пояснение Как обойти
1 Размер файлов meta/check-file-sizes.sh Проверяет, чтобы размер файлов изображений умещался в ограничения для новостей и статей (1 МБ). Для файлов более 0,5 МБ выдаётся предупреждение. Никак.
2 Markdown remark, запускаемый через meta/remark.sh Проверяет правильность и единообразие разметки Markdown в новостях и статьях. В описание пулл-реквеста нужно добавить строчку SKIP_REMARK. Чтобы подавить конкретную ошибку, над строчкой с ней нужно добавить <!-- lint ignore rule-name -->, заменив rule-name на нарушаемое правило.
3 YAML Команда check-yaml из набора osu-wiki-tools Проверяет структуру YAML в redirect.yaml и метаданных статей. Никак.
4 Битые ссылки Команда check-links из набора osu-wiki-tools Проверяет, что все вики-ссылки ведут на существующую статью или новость, либо на их разделы. В описание пулл-реквеста нужно добавить строчку SKIP_WIKILINK_CHECK.
5 Устаревшие переводы Команда check-outdated-articles из набора osu-wiki-tools Проверяет, что при обновлении английской версии статьи её переводы помечены как устаревшие. В описание пулл-реквеста нужно добавить строчку SKIP_OUTDATED_CHECK.
Правило для remark no-heading-punctuation

В конце заголовков не ставят точки, поскольку заголовки — это не предложения. Тем не менее, иногда точку нужно разрешить — например, если она входит в название исполнителя или песни.

<!-- lint ignore no-heading-punctuation -->

### Amusing Reflection Rag.
Правило для remark heading-increment

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

# Список любимых маперов peppy

::: Infobox
<!-- lint ignore heading-increment -->

#### peppy

Создатель osu!.
:::
Проверка ссылок

См. также: Критерии оформления статей/Оформление § Вики-ссылки

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

  • В случае мелких точечных правок, которые не призваны подправить всю статью целиком;
  • Ссылки на разделы, которых ещё (или уже) нет в переводе;
  • Перемещение файлов в другое место (если ссылка, ведущая на них, и так была сломана).
Устаревшие переводы

См. также: Критерии оформления статей/Оформление § Устаревший перевод и Критерии оформления статей/Содержание § Равенство содержания

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

Разработка

osu! wiki интегрирована в веб-сайт osu!: о технических ошибках и своих идеях сообщайте в трекер задач для веб-сайта в репозитории ppy/osu-web. Чтобы остальные редакторы знали о найденной вами проблеме, пришлите ссылку на неё в канал #osu-wiki (или в соответствующую задачу в трекере).

Инструменты

Некоторые программы или сервисы облегчают работу с вики, но не относятся напрямую к веб-сайту osu! и потому туда не добавлены. Написать подобный инструмент может любой желающий, владеющий навыками программирования. Ниже — несколько полезных примеров:

  • osu-wiki status: список статей, написанных на каждом языке, и как именно их можно улучшить (перевод, обновление, дописывание). Пожелания по работе можно оставлять в ppy/osu-wiki#2486.
  • osu-wiki-bin: коллекция скриптов на Node.js для автоматических проверок и правок (поиск битых ссылок, обновление статей про группы, поиск с заменой слов и т.д.).
  • osu-wiki-tools: утилита на Python для автоматических проверок (поиск битых ссылок, порядок обновления статей), которая запускается в ходе CI
  • scissors: утилита на Rust, проверяющая ошибки в указании флагов или имён пользователей.

Рутинная работа

Примечание: на сайте osu-wiki status есть список статей, нуждающихся в доработке.

Ценность и полнота вики зависят от участия сообщества. Вы можете помочь администраторам и редакторам, если тоже сделаете пару правок. О том, как именно их сделать, см. Руководство по работе с osu! wiki. Если вы где-то застряли, попросите помощи на канале #osu-wiki дискорд-сервера osu!.

Перевод статей

Список переводов и их статус: см. osu-wiki status

osu! wiki читают пользователи со всего мира. Чтобы помочь вашему локальному сообществу и, возможно, привлечь в игру новых крутых игроков, мапперов, моддеров или разработчиков, переведите на русский какую-нибудь статью или обновите устаревшие переводы. Если вы знаете другой язык, убедитесь, что он поддерживается osu! wiki. Помните, что перевод должен совпадать с оригиналом по содержанию. Если вы хорошо владеете языком и умеете чётко излагать мысли, беритесь за какие-нибудь ключевые статьи, например, правила или критерии ранкинга. Новичкам имеет смысл начать с маленьких статей, чтобы ревьюеры могли легко указать на основные ошибки.

Перевод могут добавить и без ревью, если за неделю его никто не проверил.

Дописывание заготовок

Примерный объём работы: см. список статей-заготовок на английском

Некоторые статьи osu! wiki не завершены и содержат лишь базовые сведения. Они самостоятельны, но являются заготовками: нужно, чтобы кто-то написал полноценный, завершённый текст. Если вы хорошо знакомы с предметом статьи, то можете доработать её и тем самым поделиться знаниями.

Расстановка ссылок

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

Написание статей

osu! постоянно меняется: появляются новые карты, новые возможности самовыражения и прочие новые вещи. Если о чём-то нет статьи, возможно, её стоит написать, чтобы остальные тоже об этом узнали. Очередной турнир или конкурс? Свежая функциональность в osu!? Раскрыта одна из тайн прошлого? Вперёд, за клавиатуру.

Обновление статей

Примерный объём работы: см. список TODO в английских статьях

Уже написанные статьи тоже надо обновлять. Если в текст попала ошибка, или тема раскрыта не полностью, или вы просто хотите дописать или поправить статью, не стесняйтесь улучшить osu! wiki. Перед тем, как менять что-то важное или вносить масштабные изменения, стоит обсудить это с остальными: напишите в канал #osu-wiki или заведите новую задачу.