Почему к моему преттифицированному предварительному тегу добавляется пробел?

Предварительный тег без класса prettyprint

Предварительный тег с классом prettyprint

Когда я вставляю (скопированный из возвышенного текста) код в предварительный тег contenteditable, он выглядит нормально. Когда он сохраняется в базе данных, возвращается вниз и добавляется класс 'prettyprint' (google-code-prettify), он, кажется, добавляет кучу случайных пробелов. Есть идеи, почему?


person Liam McCabe    schedule 25.01.2014    source источник
comment
Как вы его сохраняете? Например, у кода есть проблемы с WP.   -  person Wrikken    schedule 25.01.2014
comment
Родительский div отправляется на сервер следующим образом: $.trim($('.post-body').html()). Предварительный тег и содержимое отображаются так, как они были вставлены после извлечения из базы данных. Только когда класс добавляется, он, кажется, испортился.   -  person Liam McCabe    schedule 25.01.2014
comment
убедитесь, что ваш пул css чист, правила на ‹ span › или красивое имя класса все испортят...   -  person dandavis    schedule 25.01.2014
comment
Это мало о чем мне говорит. И публикация изображений вместо кода мне несколько мешает ;) Тот же самый код, который вы получаете с сервера byte для byte? Или есть тонкие изменения (пробелы нулевой ширины, причудливые кавычки и т.д. и т.п.).   -  person Wrikken    schedule 25.01.2014
comment
Хм, подождите: вы сохраняете отрендеренный html (уже «красивый») и, возможно, просите javascript повторно преобразить его снова?   -  person Wrikken    schedule 25.01.2014
comment
Нет, две строки идентичны, обычный текст. Пример вывода, который я получаю: snippi.com/s/j6xt8ik. того же размера, что и символ табуляции?   -  person Liam McCabe    schedule 25.01.2014
comment
Хм, между ними нет пробелов в том, что вы публикуете, только теги. Если вы используете инструменты разработчика своего браузера для проверки этих диапазонов, применяются ли к ним какие-либо правила, такие как поля или отступы, которые следует применять? Мне кажется, проблема должна быть где-то в CSS. В двух словах: как уже упоминал дандавис.   -  person Wrikken    schedule 25.01.2014
comment
Похоже, пробелы появляются там, где встречается ` class = pun`. Как предлагает дандавис, возможно, убедитесь, что для .pun не существует существующего правила.   -  person Mike Samuel    schedule 25.01.2014
comment
Никакие стили не перезаписываются. Я создал альбом, который демонстрирует проблему выбора текста, которая должна пролить свет на эту ситуацию: в верхней части каждого изображения показан код, скопированный и вставленный из возвышенного текста, в нижней части показан код, скопированный и вставленный из stackoverflow imgur.com/a/EWYyY Я думал, что может быть проблема с конечными пробелами в возвышенном, но, увы, похоже, никто :/   -  person Liam McCabe    schedule 25.01.2014
comment
Я нашел «решение». Пишу ответ сейчас.   -  person Liam McCabe    schedule 25.01.2014


Ответы (1)


Код, скопированный из Sublime Text, который использует отступы табуляции, а не отступы пробела, приводит к результирующему предварительному тегу с ошибочным интервалом. Это может быть проблема с Sublime Text или с тем, как предварительные теги обрабатывают отступы табуляции, кто знает?

Исправление:

Проверьте, где написано «Отступ с использованием пробелов», и нажмите «Преобразовать отступы в пробелы» для надежности.

введите здесь описание изображения

person Liam McCabe    schedule 25.01.2014
comment
Я вижу это с аналогичным выводом, но возвышенный текст не задействован. Я думаю, что это проблема браузера. - person eggmatters; 19.01.2016