Устранение неполадок интеграции комментариев Ghost с Discourse

Огромное спасибо за это! Новая настройка действительно превращает Discourse в полноценную систему комментариев, особенно для объединения систем комментариев нескольких агрегированных блогов в единую форумную систему. Тем не менее, к сожалению, у меня возник целый ряд проблем.

Оставив в стороне косметические вопросы, сразу отмечу, что я пытаюсь настроить это для блога на Ghost, который интегрирует системы членства Ghost и Discourse с помощью интеграции Discourse on Ghost (DoG) (объявлено на форуме Discourse здесь). Я уверен, что некоторые из моих проблем напрямую связаны с использованием DoG, другие — нет, а третьи… возможно?

Первая проблема касается того, что я, похоже, получаю не «полную» систему комментариев, а лишь её половину.

Да, после прохождения полного процесса регистрации через DoG я вижу всплывающее окно «Разрешить доступ», с которым соглашаюсь.

Однако после этого я не вижу кнопки «Ответить» под каждым комментарием, как на демонстрационных постах блога Discourse (при этом иконка ссылки заметно отличается от той, что я вижу на блоге Discourse). Кроме того, прокрутив пост до конца, я вижу, что, хотя часть новой настройки присутствует, кнопки «Поделиться» и «Ответить», которые, как я предполагал, должны были появиться слева, отсутствуют. Единственная кнопка «Ответить» находится справа (с другой иконкой стрелки по сравнению с той, что на блоге Discourse; эта иконка, кажется, отсылает к оригинальной системе встраивания, хотя это может быть просто особенностью темы, используемой на форуме Discourse).

Более того, при нажатии на эту кнопку «Ответить» меня перекидывает на главную страницу форума моего блога, вместо того чтобы появилось новое интегрированное поле для комментариев. Если же я нажму на кнопку со счётчиком комментариев «37/37» выше, то поле действительно появится, как и кнопка «Перейти к», а также возможность «прокручивать» комментарии. Однако, когда я «прокручиваю» к комментарию и отпускаю кнопку мыши, позиция в встроенном блоке комментариев не меняется (просто закрывается окно).

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

<section itemscope itemtype="http://schema.org/UserComments" class="post-item post-comments" id="comments" loading="lazy">
    <div class="wrapper post-wrapper{{#is "post"}} no-post-border{{/is}}">
        <h2 class="comments-title">
            <a href="#comments" class="heading-link">
                <svg aria-hidden="true" class="aal_svg" version="1.1" viewBox="0 0 16 16">
                    <path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
                </svg>
            </a>
            Комментарии</h2>
        <div id='discourse-comments'></div>
        <script type="text/javascript">
            if (window.location.pathname.indexOf('/p/') < 0) {
                DiscourseEmbed = {
                    discourseUrl: 'https://ff2f.discourse.group/',
                    discourseEmbedUrl: '{{url absolute="true"}}'
                    fullApp: true,
                    dynamicHeight: true,
                    };
                (function() {
                    var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
                    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
                    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
                })();
            }
        </script>
    </div>
</section>

И да, у меня включён переключатель «Полный режим приложения» в настройках форума моего сайта.

Возможно, я просто не активировал какой-то глупый переключатель или забыл включить одну строку кода, или же это может быть связано с какой-то несовместимостью между новой полной системой комментариев и DoG?

Именно для этого мы его и создали!

Стоит отметить, что это требование актуально только для Safari.

Это просто режим «не авторизован», когда пользователь, просматривающий запись в блоге, не авторизован в Discourse.

Если в том же браузере всё работает нормально на blog.discourse.org, то, скорее всего, проблема связана с настройкой кастомного DoG.

Если под этим вы имеете в виду не просто «легитимную систему комментариев», а скорее настройку для «объединения систем комментариев нескольких агрегируемых блогов в единую форумную систему» (как я это сформулировал), то я в некоторой степени возглавляю эту инициативу, используя Ghost различными способами. Поскольку DoG уже создан, я сейчас помогаю кому-то провести бета-тестирование функции дайджеста рассылки, которая позволит читателям выбирать из различных тем и/или авторов, чтобы настроить свою собственную еженедельную или ежемесячную рассылку — как с одного блога, так и с агрегирующего сайта. Следующим шагом станет сама функция агрегации, а новая полная система комментариев Discourse станет вишенкой на торте. Надеюсь, всё будет готово раньше, чем позже.

Это имеет смысл, так как я входил в систему через разные браузеры, чтобы протестировать различные роли пользователей, и не заметил, что это всплывающее окно появляется только в Safari. Но поскольку вы обратили на это внимание, а также из-за ещё одной проблемы в Safari с тёмной темой (по которой я напишу Тиагу в отдельной ветке), я заметил, что проблема с прокруткой, при которой отпускание полосы прокрутки не приводит к изменению позиции, возникает не только в Safari, а только при отсутствии определённых параметров. Если в Safari открыть публикацию блога, которую поделился Тиагу, вы увидите, что полоса прокрутки работает как положено. Его конфигурация следующая:

fullApp: true,
lazyLoad: true, // отключить ленивую загрузку iframe
lazyLoadMargin: '1500', // пикселей до области просмотра для начала загрузки
dynamicHeight: true,
embedMinHeight: '400',
embedMaxHeight: '1500',

Однако, если вы зайдёте на публикацию блога с моего сайта в Safari и попробуете использовать полосу прокрутки, вы увидите, что она не работает. Отпускание полосы прокрутки приводит к небольшому подёргиванию вверх-вниз на несколько пикселей, и всё. Вот конфигурация моего блога:

fullApp: true,
dynamicHeight: true,

Когда я заменил свою конфигурацию на конфигурацию Тиагу, проблема исчезла.

Всё это немного выше моего «уровня компетенции», но после разговора с создателем DoG он сказал, что, по его мнению, проблема может быть на стороне Discourse. Как он выразился:

Я не согласен, это что-то связанное с авторизацией во встроенном контексте. Если я открою встроенный URL в новой вкладке, всё работает. Но если я просматриваю встроенный контент, ничего не работает. Я сделал жёсткую перезагрузку, чтобы убедиться, что проблема не на моей стороне.

А вот два изображения, которые он мне отправил:

Кажется ли вам это правдоподобным?