популярные структуры для этого?
                  
                  
                  
                  
                  
                  Например, у нас есть место, где сервер присылает некое "описание" сущности, которое содержит гиперссылку.
                  
                  
                  
                  
                  
                  Я вижу такие варианты решений:
                  
                  
                  
                  
                  
                  1) (самый нерекомендуемый, озвучиваю для галочки) Сервер шлёт html текст, на клиенте он вставляется через innerHTML
                  
                  
                  2) Сервер шлёт какой-то особый формат, о котором договорились заранее. Например, сервис google pagespeed шлёт ответ примерно в таком виде:
                  
                  
                  
                  
                  
                  {
                  
                  
                    args: [
                  
                  
                      { type: 'HYPERLINK', value: 'https://google.com', text: 'this link' }
                  
                  
                    ],
                  
                  
                    format: "Follow $1 for more details",
                  
                  
                  }
                  
                  
                  
                  
                  
                  3) Сервер шлёт маркдаун, на клиенте парсится с помощью какой-либо маркдаун-либы
                  
                  
                  4) Сервер шлёт html текст, на клиенте используется библиотека для html-парсинга с вайтлистом тэгов
                  
                  
                  
                  
                  
                  
                  
                  
                  Важные моменты:
                  
                  
                  Строить разметку на клиенте желательно не только из соображений безопасности, но так же из-за удобства: для рендера тех же ссылок клиент должен использовать свой компонент <Link />, а не обычный <a />. При innerHTML эта возможность теряется.
                  
                  
                
Хм, можно еще глянуть как draft.js парсит такое У них же там свой формат какой-то, мб в сторону его глянуть
Обсуждают сегодня