Ваш сценарий использования точно не поддерживается в Discourse «из коробки» и потребует некоторой кастомной разработки. Я бы рассмотрел разработку плагина или привлечение консультанта для помощи в его реализации.
Я бы добавил в раздел «Решение проблем» следующее: если Discourse не может проанализировать содержимое вашей страницы или поста в блоге для создания новой темы, встраивание не сработает (при этом никакого уведомления об этом не будет). Попробуйте сначала встроить конкретную тему, а затем воспользуйтесь опциями для анализа вашей страницы.
Это отлично! Единственная проблема, с которой я столкнулся, — это не могу понять, как использовать правильный CSS-селектор для извлечения meta-description, чтобы использовать её как первый пост.
Я пробовал несколько вариантов, подобных этому. Есть какие-то предложения?
Если вы пытаетесь извлечь содержимое тега meta из раздела head вашего сайта, я думаю, что это невозможно.
Я всё ещё сожалею, что это не просто создаёт одно окно для ссылки, предоставленной во встраиваемом элементе, а вместо этого выполняет более сложную импортировку текста и потенциально изображений.
Конечно, для сайтов со сложными данными страниц и макетами кто-то должен был придумать сценарий, где тема служит заглушкой для обсуждений и одновременно способом направить людей на удалённый сайт со статьёй или историей?
Плиз? ![]()
Итак, мы рассматриваем возможность внедрения этого на некоторые блоги и статьи на нашем основном сайте, а также использования форума. Сегодня утром на встрече мой сотрудник по маркетингу сказал, что это плохая идея, так как каждая публикация на форуме будет выглядеть как дублирующийся контент по отношению к нашему блогу, поскольку у них одинаковые заголовки и отображается один и тот же первый абзац. Он продемонстрировал это с помощью поиска в Google на примере. Есть ли встроенное решение, которое поможет показать Google, что это не дубликаты, или вы можете добавить no index для этих публикаций?
Хм, это интересно, потому что если мы добавим noindex, то комментарии тоже не будут индексироваться, что нежелательно. Есть ли способ сказать Google: «эта часть страницы дублируется»?
Мы могли бы применить это к первому сообщению темы.
Это как раз было моим опасением, когда мы обсуждали этот вопрос. Я не хочу снижать SEO-ценность блога, но также не хочу скрывать раздел с вопросами и ответами форума, поскольку он иногда привлекает не меньше внимания, чем некоторые статьи блога. Я не знаю, как указать Google индексировать одну часть поста, но не другую.
В Discourse есть настройка сайта embed set canonical url. Когда она включена, канонический URL для встроенных тем устанавливается в URL встроенного контента. Поможет ли это улучшить проблему дублирующегося контента?
Похоже, это поможет решить проблему. Не мог бы вы посоветовать кого-то, кто уже использует эту функцию, чтобы я мог посмотреть и привести пример?
Другой вариант здесь — добавить «Комментарии к ______» в начало заголовка обсуждения.
Это сложный вопрос, так как я не могу раскрывать детали о сайтах наших клиентов. Подробнее об этой проблеме можно узнать в этой теме: Add option to set canonical_url to embed_url. Я задал вопрос в этой теме, чтобы узнать, не хочет ли кто-то поделиться информацией о том, как включение этой настройки повлияло на их SEO.
Достаточно ли изменить заголовок? Содержимое поста всё равно будет распространяться.
По какой-то причине я даже не могу открыть страницу: даже с отключённым Adblock он пишет, что его нужно отключить.
Одного абзаца «дублирования» недостаточно, чтобы вызвать проблемы с дублирующимся контентом, судя по моему опыту — тем более что вы использовали скриншот с моего блога ![]()
Это похоже на цитирование абзаца из случайной статьи.
Я пробовал сделать это сегодня, поместив URL страницы в скрытый div. Скрипт просто вставил ссылку как текст. К сожалению, превью Onebox не появилось. ![]()
Мне удалось настроить функцию встраивания так, чтобы она подтягивала мои фотографии со страницы. Проблема была на моей стороне: код использовал JavaScript-библиотеку lazyload для предварительной загрузки и плавного появления изображений. После её удаления создание тем позволило отображать любые изображения, которые я настраивал в области селектора классов. Однако…
Тема создаётся и несколько минут работает нормально. Изображение можно просмотреть, кликнув для увеличения. Но через несколько минут после обновления страницы тема меняется: вместо изображения появляется строка с текстом «загрузить».

Похоже, это сбой при удалённой загрузке изображения на сервер форума. Есть какие-либо идеи, почему это может происходить? Также, если загрузка не удаётся, почему система не сохраняет исходный URL? Это кажется странным.
Добавлю, что это был не единственный случай. Проблема стабильно возникала во всех темах, где изначально присутствовало изображение (около 10 и более тем).
[обновление: Обходным решением стало добавление моего сайта в чёрный список сайтов, с которых нельзя загружать изображения. Таким образом, HTML просто подтягивает их с удалённого сайта. Для меня это работает.]
Можно ли предотвратить создание новых тем при изменении URL (например, при обновлении заголовка блога)?
Да, но вашему программному обеспечению для блога потребуется отслеживать ID темы, созданный при первом вызове, и передавать его в качестве параметра в последующих запросах на встраивание.
Смотрите «Ссылки на существующие темы» в ОП.
Я не могу внедрить через TypeScript в Angular. Пожалуйста, помогите.
let window: any;
window.DiscourseEmbed = { discourseUrl: 'xyz.com',
topicId: 26 };
let script = this._renderer2.createElement('script');
script.type = "text/javascript";
script.src = 'window.DiscourseEmbed.discourseUrl ' + 'javascripts/embed.js';
script.async = true;
this._renderer2.appendChild(this._document.body, script);


