Нормализованные ссылки на профили

:information_source: Краткое описание Добавление ссылок на карточку пользователя и профиль
:hammer_and_wrench: Репозиторий GitHub - literatecomputing/normalized-profile-links: Add profile links and normalize the user part (e.g., make https://twitter.com/user or @user both be user) · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

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

Например, пользователь может ввести любое из следующих значений для Twitter (X):

  • https://x.com/MyHandle
  • https://twitter.com/MyHandle
  • https://www.twitter.com/MyHandle
  • x.com/MyHandle
  • twitter.com/MyHandle
  • /MyHandle
  • @MyHandle
  • MyHandle

Этот компонент темы преобразует все эти варианты в “MyHandle”, так что если пользователь введет любое из них в поле Twitter, ссылка станет https://x.com/MyHandle. Для сайта вроде YouTube, где в URL профиля требуется символ @, необходимо указать ссылку как https://youtube.com/@, чтобы итоговая ссылка стала https://youtube.com/@MyHandle. Я рассматривал возможность включения символа @ в сам идентификатор, но это ломает функциональность, если пользователь введет @literatecomputing.com как свой идентификатор BlueSky, поскольку BlueSky требует, чтобы URL профиля был https://bsky.app/profile/literatecomputing.com без символа @.

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

Обратите внимание, что custom_field_name и название ссылки чувствительны к регистру. Я рассматривал возможность исправления этого, но это было слишком сложно, и я решил, что администраторы могут самостоятельно привести регистр к соответствию. (Спасибо @NateDhaliwal за тестирование компонента темы и @Moin и @Richie за указание на проблему чувствительности к регистру.)

Если вам нужны дополнительные иконки Font Awesome, вы можете добавить их в настройку “Дополнительные иконки”.

Многие примерные настройки (и соответствующие иконки) сгенерированы ИИ и не протестированы. Вы можете самостоятельно изменить настройки, но если вы сообщите мне о неработающей (через email или PR), я с радостью исправлю её.

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

Почему ещё один компонент темы для пользовательских полей?

Официальный Custom Profile Link добавляет ссылку только для одного пользовательского поля. (:person_shrugging:)

Multiple Custom Profile Links похож на этот, но данный компонент добавляет:

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

Благодарим Grey Arrows Drone Club за финансирование начальной разработки!

14 лайков

Не уверен, как сделать так, чтобы иконки отображались? Я пробовал создать пользовательское поле для пользователя, но, кажется, это не тот способ?

@NateDhaliwal Если это поможет, вот настройки пользовательского поля, которые мы используем для YouTube. Также убедитесь, что два параметра «Показывать на…» не отмечены:

Вот настройки, используемые в этом компоненте темы для YouTube:

Итоговый результат при просмотре профиля пользователя:

2 лайка

Понятно, я проверил.
Я сделал ровно то же самое, что и вы, но мой значок GitHub не отображается.



В настройках компонента ваше значение для имени поля — «GitHub», а над именем поля указано «Github». Возможно, это заработает, если они будут одинаковыми.

4 лайка

Теперь всё работает. Большое спасибо!

3 лайка

Привет, в консоли у меня есть это предупреждение, касающееся этого компонента. Есть ли доступное обновление?

Спасибо.

1 лайк

У меня есть PR с исправлениями для устареваний массивов

3 лайка

Спасибо, Лилли! Я только что объединил это!

2 лайка

Замечательно, спасибо :person_bowing:

И я только что обновил свой Discourse — всё отлично :partying_face:

1 лайк

И однажды мы доведём его до v0.0.2 :grin:

2 лайка

Есть на что надеяться!

2 лайка