Функция: лайкать конкретный текст внутри поста, а не только сам пост (видео)

Привет, сообщество!

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

Вот краткое описание:
Я хочу, чтобы пользователи могли ставить «лайки» на конкретные фрагменты текста внутри постов (в том числе в постах других людей), а не только на пост целиком.
Как только пользователь выделяет текст, он нажимает на новый значок, который, в свою очередь, оборачивает выделенный текст в блок [warp], который я затем использую для стилизации.

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

Вопросы:

  • Я ищу способ сохранить свои «метаданные» непосредственно в модели.
  • Я ищу способ изменить/декорировать текст так, чтобы это мог сделать любой пользователь.

Спасибо за помощь!

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

Я реализовал это более безопасным способом, также используя компонент темы.

Цель
Дать пользователям возможность лайкать контент внутри поста, а не только сам пост. Например, пользователи должны иметь возможность выразить, что им нравится конкретное изображение или отрывок текста.

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

Результат
Теперь пользователи могут ставить «сердечки» на изображениях, текстах внутри элементов LI и параграфов P.

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

Если люди будут ставить достаточно много лайков, я скоро выпущу это :slight_smile:

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

Конечно, мы можем построить что угодно;) Что вы имеете в виду под «самыми 25 процентами»?

Сообщения, которые получили больше лайков, чем третий квартиль (наибольшие 25 процентов).

Пожалуйста, выпустите эту функцию как можно скорее!
Мне очень нравится функция подсветки на Medium, и теперь я хочу, чтобы она появилась и в Discourse. Иногда мы хотим выразить свои чувства по поводу какого-то текста и сохранить его, чтобы позже просмотреть, как закладку (но сейчас можно сохранить только всю статью целиком) :heart_eyes:

Привет! Теперь всё работает стабильно. Необходимо провести очистку кода и подготовить версию, готовую для сообщества.

Отзывы об этом просто потрясающие — людям это очень нравится.

Буду держать вас в курсе! Надеюсь, смогу предоставить что-то на этой неделе.

Это выглядит впечатляюще. С нетерпением жду, когда код будет опубликован, чтобы взглянуть на него (и, возможно, понять 30%). :slight_smile:

Удивительно! С нетерпением жду, когда это заработает. Спасибо!

Привет, ребята! У меня была похожая идея, о которой я рассказывал в этом посте. Есть какие-нибудь новости по этому поводу, @Sören_Geier?

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

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

Спасибо :slight_smile:

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

Текущая версия выглядит гораздо круче, чем в первом видео!

Следите за обновлениями и наберитесь немного терпения.

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

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

Любая помощь будет очень кстати, чтобы я мог продвинуть проект вперёд.