Масштабирование изображения не работает, если отсутствует альтернативный текст

Не уверен, это задуманное поведение или ошибка, но кнопки % для масштабирования изображений и само масштабирование перестали работать, если у изображения отсутствует альтернативный текст. Раньше это работало до недавнего обновления (неделю назад?).

Если в посте есть несколько изображений и у одного из них нет альтернативного текста, то при нажатии на его кнопки % меняется масштаб другого изображения, у которого альтернативный текст есть (РЕДАКТИРОВАНО: я только что изменил категорию на bug, потому что, даже если альтернативный текст необходим, такого происходить не должно).

Это не работает, хотя раньше работало:
![690x184, 40%](upload://hash)

Как и ожидалось, проблема решается добавлением части alt| перед размером изображения.

Мне нужно обновить некоторые темы, чтобы адаптироваться к этому — иначе эти изображения при повторной сборке в итоге окажутся на 100%. Я также понял, что с другими пользователями может случиться то же самое, поэтому и написал этот пост.

1 лайк

Можно воспроизвести: удаление альтернативного текста нарушает масштабирование изображения.

2 лайка

Хм, что ты думаешь по этому поводу, @sam?

1 лайк

Я не думаю, что это когда-либо работало без альтернативного текста. Полагаю, мы могли бы добавить такую поддержку,

2 лайка

Это работало, у меня в инстансе есть несколько тем с правильным масштабированием, но без альтернативного текста. Если я пересоберу любую из них, масштабирование пропадает.

РЕДАКТИРОВАНИЕ: Возможно, это связано с этим изменением?

Я не смог найти ничего, что объясняло бы разницу при обработке постов.

Мне не возражаю редактировать эти темы, но другие пользователи могут столкнуться с этой проблемой, и элементы управления изменением размера для изображений без alt не должны менять масштаб другого изображения.

Справедливо, если вы уверены, что раньше это работало, я верю вам на 100%.

@david, полагаю, это может быть вашей регрессией здесь, кажется, что исправить это достаточно просто?

4 лайка

Да, похоже, это было моё изменение. Я предполагал, что предыдущая реализация была ошибкой. Все наши тесты предполагают, что размеры будут находиться после символа |:

Я мог бы откатить нас к старому поведению и добавить тест, чтобы убедиться, что оно продолжает работать. Но это означает, что вы никогда не сможете иметь изображение с альтернативным текстом вроде 123x123.

@renato, не знаешь ли ты, как получилось, что в твоем markdown не оказалось символа вертикальной черты? Насколько мне известно, все опции интерфейса должны генерировать его с символом | :thinking:

6 лайков

Да, посты, в которых я заметил такое поведение, были созданы через API с предустановленным исходным содержимым, которое ранее тестировалось в интерфейсе. Я намеренно удалил альтернативные описания двух изображений, которые не имели бы особого смысла для программ чтения с экрана.

Я не против адаптироваться к новому поведению, если вы так и решите.

Не по теме: могу ли я попросить рекомендацию плагина, который преобразует [что-то] в какой-то исходный контент в качестве вдохновения для создания собственного плагина? Тогда я мог бы просто отредактировать все эти темы, и если в будущем мне снова понадобится их изменить, достаточно будет перезагрузить их.

2 лайка

Да, я думаю, что лучше адаптироваться к новому подходу здесь. Мы изначально не планировали поддерживать это. Более широкая поддержка дополнительных форматов означает больше кода в бэкенде и больше тестирования.

Самый простой способ — использовать remap базы данных, см.: Replace a string in all posts - Self-Hosting - Discourse Meta

3 лайка

Хорошо, я оставлю предложение показывать кнопки масштабирования только для изображений, которые можно масштабировать.

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

Спасибо и извините за столько шума из-за этой небольшой проблемы.

3 лайка

Ничего страшного, спасибо, что подняли эту тему и проявили такое терпение к нам.

3 лайка