Я пытаюсь найти и заменить битые изображения, оставшиеся после миграции нашего форума на Discourse, и добился больших успехов (обожаю команду remap!), но для этих примеров она ничего не находит, хотя я не вижу никаких ошибок. Вы можете посмотреть?
Мне нужно выполнить это в два прохода, так как мне нужно сохранить содержимое тега alt и заново собрать элемент img вокруг него. Первый remap не работает:
то есть НАЙТИ: <img src="https://londonbikers.com/images/transparent.png" alt="
и ЗАМЕНИТЬ на: <img src="https://londonbikersarchive.blob.core.windows.net/forum-attachments/
Я предположил, что двойные кавычки нужно экранировать обратным слэшем? Поэтому использовал такую команду:
О, погодите, некоторые из этих изображений отображаются. Это функциональность вложений Discourse? Здесь используется какая-то кастомная логика рендеринга, а не просто HTML-строки в базе данных?
А вот это — нет. У меня есть файл в облачном хранилище (blob storage), поэтому я хотел бы либо импортировать его в Discourse, либо просто ссылаться на него из blob storage:
raw — это поле, в котором находится текст, который вы видите в редакторе. То, что вы заменяете, — это то, что вы видите при редактировании поста в UX, верно? (cooked — это обработанный контент, который отображается.)
Выполнение операций для переписывания постов. Этого может быть достаточно, чтобы сделать вас опасным:
bps = Post.where("raw like '%//SOME-STRING%'")
bps.each do |post|
post.raw.gsub!(/OLD/,'NEW')
post.save
end
Преимущество перед задачей Rake в том, что вам не нужно справляться с несколькими уровнями экранирования.