새로운 자동완성 스타일링에 어떤 rebake가 필요한가요?

여기서 변경 사항이 있다면, 해시태그가 포함된 게시물을 다시 생성(re-bake)해야 하는 경우는 어떤 것일까요?

이 기능을 활성화하는 것만으로 필요한 재생성이 자동으로 이루어지는지, 아니면 재생성을 위한 명시적인 마이그레이션 단계가 필요한지 알려 주세요.

기능을 활성화한 후 rails를 통해 모든 게시물을 재처리(rebake)했습니다.

게시글이 매우 많으며, 그중 대부분은 수정할 필요가 없습니다. 명시적이든 암묵적이든, 영향받은 게시글만 다시 빌드(rebake)할 수 있는 기능이 있었으면 좋겠다고 생각했습니다.

리베이킹(rebaking)은 심지어 오래된 게시글에도 해를 끼칠 수 있는 것 같습니다:
모든 게시글을 리베이킹할 때 잠재적인 문제를 피하는 방법?

이 기능은 막 출시된 지 얼마 되지 않았습니다. 현재로서는 카테고리/태그가 포함된 모든 게시물을 다시 처리할 수 있는 내장 기능이 없습니다. 여기에서 사용자분들이 어떤 기능이 필요하다고 느끼시는지, 그리고 그 사이 어떤 해결책이 제시되는지 귀를 기울여 보겠습니다.

임베드/원박스(Onebox)가 포함된 게시물을 제외하고 모든 게시물을 재베이크할 수 있는 패턴이 있을까요?

제가 아는 한, cooked 표현이 class="hashtag"와 일치하는 모든 게시물을 다시 베이킹(rebake)해야 합니다.

rebake_match는 원본 텍스트(raw text)를 기준으로 매칭하기 때문에 여기서는 도움이 되지 않을 것 같습니다. 또한 기존 rails 작업에서 cooked 텍스트를 기준으로 매칭하는 옵션도 없습니다. 따라서 실제로 코딩이 필요할 것으로 생각되며, rails 콘솔에서 하거나 새로운 작업을 만들어야 할 것입니다.

다음과 같은 내용입니다

 Post.where("cooked like '%class=\"hashtag\"%'").each do |p| p.rebake! end

정말 그런 느낌입니다! 방금 제 스테이징 사이트에서 정확히 그 방법으로 테스트를 성공적으로 마쳤습니다.

posts:rebake_match의 지연 옵션에 대해 고민해 보았지만, 아마 중요하지 않을 것 같습니다.

물론 이 방식은 영향받은 게시물의 모든 이미지를 다시 처리하려 하기 때문에 불필요한 작업이 발생하지만, 이를 위한 자동화된 수정이 있다면 이를 피할 수 있을 것입니다. 하지만 당분간은 진행할 수 있는 방법이 있습니다.

영향받은 게시물이 많은 사이트의 경우, 역순 정렬과 지연 시간을 추가하는 방식으로 처리하는 것이 더 나을 수도 있겠습니다.

@mcwumbly 3.0 버전에서 이 기능이 헤드라인으로 발표되었는데, 이미지 재처리 없이 텍스트만 수정하는 마이그레이션을 어떻게 생각하시나요? 아니면, 이미지 재처리 때문에 큐가 막히지 않도록 영향을 받은 게시물만 지연 처리하면서 다시 베이킹할 수 있도록 하는 방식도 괜찮을까요?

@martin 이 문제에 대해 어떻게 접근할 수 있을지 몇 가지 생각을 나눠주실 수 있을까요?

요약하자면, 사람들이 이상적으로 원하는 것은 다음과 같은 것 같습니다:

  • 새 해시태그 기능을 켤 때, 기존 게시물의 내용을 변경하지 않으면서 기존 해시태그의 스타일을 모두 새 스타일에 맞게 업데이트할 수 있는 방법이 필요합니다.

그리고 아마도 이것도 포함될 수 있겠죠:

  • 기능을 끌 때, 그 반대 작업을 쉽게 수행할 수 있는 방법이 필요합니다.

이미 그런 일을 할 수 있습니다.

Post.where("cooked like '%class=\"hashtag\"%'").update_all(baked_version: 0)

그러면 백그라운드에서 예약된 작업들을 통해 처리가 진행됩니다.

향후 1년 안에 baked_version을 올릴 것으로 예상합니다.

위에서 @sam 이 제안한 작업을 수행하기 위해, 자체 호스팅 사용자가 실행할 수 있는 rake 태스크를 만들겠습니다.

이것은 필요하지 않다고 생각합니다. 이제 새 사이트의 기본값으로 설정했고, 곧 해당 옵션을 완전히 제거할 예정이기 때문입니다. 사람들이 기능을 시험해 보고 싶다면 설정을 활성화하고, UI에서 몇 개의 게시물을 수동으로 다시 생성(rebake)한 후, 마음에 들지 않으면 설정을 다시 끄고 같은 게시물을 다시 생성하면 됩니다.

다만, 곧 선택할 수 있는 옵션이 더 이상 없을 것입니다.

색상 지정 카테고리 링크 아이디어가 여전히 검토되고 있는지 알고 계신가요?

그렇습니다. 하지만 이 문제는 표면적으로 보이는 것보다 범위가 더 넓다고 생각하며, 먼저 다뤄야 할 설계 세부 사항이 여전히 몇 가지 남아 있어 바로 구현되지는 않을 것입니다.

좋네요, 기대됩니다!

이 작업을 위한 rake 태스크를 방금 병합했습니다:

bundle exec rake hashtags:mark_old_format_for_rebake

그 명령어를 사용하는 방법에 대한 완전 초보자 가이드를 작성해 주시겠어요?

사용자가 개별 게시물을 수정하는 방법(예: 작은 수정 후 편집/저장)이 있을까요?

감사합니다.

이것은 rake 작업에 대한 일반적인 패턴입니다:

cd /var/discourse
./launcher enter app
bundle exec rake hashtags:mark_old_format_for_rebake

그렇게 하면 작동할 것입니다. 스태프라면 렌치 아이콘을 클릭하여 HTML을 다시 빌드할 수 있습니다.

잘 작동했습니다. 감사합니다. 제 용도에는 rake 작업을 시도하는 것보다 위험이 낮아 보였습니다.