Удаление дефисов из имен тегов

:discourse2: Краткое описание Удаление дефисов (-) из названий тегов в списке тем и на странице темы
:eyeglasses: Предпросмотр Предпросмотр в конструкторе тем Discourse
:hammer_and_wrench: Репозиторий https://github.com/discourse/discourse-remove-dashes-from-tag-names
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

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

Возможности

Этот компонент темы удаляет дефисы из названий тегов во всех местах их отображения в интерфейсе.

Так как Discourse заменяет пробелы в названиях тегов на дефисы, этот компонент полезен для визуального преобразования дефиспробел при отображении.


:discourse2: Размещено у нас? Компоненты тем доступны для использования в наших тарифах Standard, Business и Enterprise.

14 лайков

7 сообщений были перенесены в новую тему: Тире не удаляются из тегов боковой панели

Спасибо за ваш вклад.
Удаление Dash из боковой панели тегов работает, а как насчет заголовка тега?
%{filter} %{tag} %{category}

Спасибо за это. Я никогда не мог понять эти дефисы там :smiley:


Текущий компонент темы всё ещё не охватывает многие места, где дефис в названии тега нельзя удалить, особенно заголовок сайта, чтобы он был дружелюбным для Google. Можете ли вы обновить его?

1 лайк

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

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

1 лайк

Этот скрипт временно заменяет данный компонент

function replaceTextNodes(node) {
    node.childNodes.forEach(child => {
      if (child.nodeType === Node.TEXT_NODE) {
        child.textContent = child.textContent
          .replace(/-E-/gi, ' & ')
          .replace(/-/g, ' ');
      } else {
        replaceTextNodes(child);
      }
    });
  }

  api.onPageChange(() => {

    document.querySelectorAll('.discourse-tag.box').forEach(tag => {
      replaceTextNodes(tag);
    });
    
    document.querySelectorAll('#sidebar-section-content-tags .sidebar-section-link-content-text').forEach(tag => {
      replaceTextNodes(tag);
    });
  });
1 лайк

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