Как исправить кодировку символов кавычек?
Я использую бесплатный тариф платформы wordpress.com для размещения справочной информации на небольшом сайте. Задача состоит в том, чтобы иметь возможность скопировать код с со станицы сайта и поместить его в собственную IDE, например VSCode. Поскольку тариф бесплатный, то все фичи Wordpress урезаны до минимума, в том числе и установка плагинов. Есть возможность пользоваться только стандарными блоками типа HTML, Code, Классический Редактор и пр. Когда встала необходимость публикования кода с подсветкой, то я не нашел ничего лучшего, чем копировать его из своего редактора кода и конвертировать в HTML, вставляя его затем в стандартный блок HTML Wordpress. И поначалу все было нормально, т.е. я имел возможность скопировать блок кода с подсветкой со страницы моего сайта и вставить его в редактор кода VSCode. При этом, в редакторе код отображался так же как и на странице. Но вдруг, все в одночасье изменилось и возникли такие проблемы: символ одинарных кавычек (') стал отображаться как открывающая одинарная кавычка (‘) и закрывающая одинарная кавычка (’), что делает код нерабочим и необходимо его править, что крайне неудобно:
describe(‘Examples for Querying commands’, () => {
before(‘Navigate to querying page’, () => {
cy.visit(‘https://example.cypress.io/commands/querying‘);
});
// Скопируйте интересующий вас пример и вставьте его здесь
});
Двойные же кавычки стали неправильно отображаться уже на самом сайте. Вместо (") стали отображаться как (»):
cy.get(‘[data-test-id=»test-example»]’)
С чем могла быть связана такая метаморфоза? Она произошла после очередного пересохранения отредактированной страницы. Символ одинарной кавычки кодируется на странице как &apos замена его на сам символ (') тоже ничего не дает. Посмотреть можно здесь: https://kitchensinkcypress.wordpress.com/%d0%bf%d0%be%d0%b8%d1%81%d0%ba-%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2/. Сайт находится в процессе разработки. Подскажите, пожалуйста, как можно побороть?
Ответы (1 шт):
Я возьму на себя смелость утверждать, что причиной описанной проблемы является баг Wordpress. Дальнейшее изучение проблемы показывает следующее: первоначальное создание html блока для размещения в нем подсвеченного javaScript кода проходит успешно - код отображается на странице корректо и при его копировании со страницы в редактор кода (проверено в VBCode) отображается также корректно. Однако, стоит сделать любые изменения на странице (где угодно кроме самого блока html, содержащего интересующий нас код) и пересохранить ее, как код тут же становится сломанным - символы двойных кавычек (") начинают отображаться на странице как угловые кавычки (»), а при копировании блока кода со страницы в IDE вместо одинарных ковычек (') отображаются открывающая одинарная (‘) и закрывающая одинарная (’), что делает код непригодным для использования и требует ручной правки:
cy.get(‘[data-test-id=»test-example»]’).should(‘have.class’, ‘example’);
Я считаю, что такое поведение можно считать багом поскольку один и тот же код, безо всякого вмешательства пользователя, отображается по-разному - сначала так как и ожидалось, а затем иначе. Возможно я объясняю несколько путано, тогда вот пошаговый алгоритм:
- Создать блок HTML для отображения подсвеченного кода на странице и сохранить его в виде html файла.
- Запустить данный файл в браузере и убедиться в том что код отображается нормально.
- На странице сайта создать стандартный блок HTML, предоставляемый Wordpress, и скопировать в него html-код из упомянутого выше файла. Сохранить страницу.
- Открыть страницу в браузере и убедиться, что код отображается нормально.
- Скопировать со страницы подсвеченный код и вставить его в IDE.
- Убедиться что код в IDE отображается нормально (проверено для VSCode).
- Отредактировать любое место на странице, за исключением упомянутого блока HTML.
- Пересохранить страницу.
Ожидаемый результат: Описанный блок подсвеченного кода отображается как и раньше, поскольку никаких изменений в нем сделано не было.
Фактический результат: блок кода оказался модифицированным: двойные прямые кавычки оказались заменеными на угловые закрывающие кавычки, а при копировании данного блока в IDE прямые одинарные кавычки оказываются замененными на открывающую одинарную и закрывающую одинарную.