가져온 MyBB 데이터베이스 MyCode 문제

MyBB 포럼을 Discourse로 이식하는 작업을 진행 중입니다.
가져온 게시물 중 상당수, 하지만 전부는 아닌 경우에 MyCode 포맷 태그가 그대로 표시되고 있습니다.

예시 (UTF-8 문자 인코딩 문제도 별도로 확인 중이며, 이는 별도의 스레드에서 다룰 예정입니다):

TTTThao Nguyen

Jul '18

[quote=“admin, post:4, topic:1297”]

Paul, 고맙습니다. 아래 답변을 고려하면 이것이 가능할지 확실하지 않습니다.

[color=#222222][size=medium][size=small][font=Calibri, sans-serif]계단이 건물로 간주되는지 여부가 문제가 아니라, 제 문의는 두 건물 간의 연결(nature of the attachment)의 성격을 통해 그것이 하나의 건물인지 두 개의 건물인지 결정하는 것입니다.[/font][/size][/size][/color]
[color=#222222][size=medium][size=small][font=Calibri, sans-serif]Â [/font][/size][/size][/color][color=#222222][size=small][font=Calibri, sans-serif]두 건물 사이에 내부 연결이나 통로가 없으므로, 하나의 건물/화재 셀로 해석되지 않습니다.[/font][/size][/color]
[color=#222222][size=medium][size=small][font=Calibri, sans-serif]Â [/font][/size][/size][/color][color=#222222][size=small][font=Calibri, sans-serif]따라서 C/AS1 5.1.2가 적용됩니다.[/font][/size][/color]

그러므로 '내부 접근성’이 결정적인 요인인 것 같습니다… 하지만 내부 접근성이 없는 상태로 집에 부착된 차고 등을 많이 본 적이 있어, 그러한 경우에도 방화 등급이 필요하지 않은 것 같습니다. (참고로 이 프로젝트에는 소방 엔지니어가 참여하고 있지만, 그의 의견도 무시되는 것 같습니다!!) 아마도 좋은 소방 엔지니어를 한 명 더 고용해야 할지도 모르겠습니다!!! :-/

어쨌든, 이 포럼에 게시하도록 조언해 주셔서 감사합니다. 조언과 지원을 감사드립니다!!

MyBB에서는 정상적으로 보이는 의도된 포맷이 Discourse에 표시되도록, 포맷 태그가 아닌 실제 포맷으로 파싱하는 방법은 무엇일까요? (가능한 한)

Discourse가 사용자가 선택한 글꼴, 크기, 색상 텍스트를 지원하지 않기 때문에 문제가 일부 발생한다고 추측합니다.

[color=#222222][size=medium][size=small][font=Calibri, sans-serif]

또는 제가 하드 리턴으로 추정하는

[hr]

Discourse가 여러 글꼴 등을 지원하지 않는 것 자체에는 개인적으로 문제가 없지만, 가져오기 시점에 사용 불가능한 포맷 태그가 깔끔하게 필터링되면 좋겠습니다.

이를 해결할 희망으로 GitHub - discourse/discourse-bbcode: vBulletin BBCode plugin · GitHub 플러그인을 설치했지만, 현재 Discourse 버전에서는 이 플러그인이 더 이상 작동하지 않는 것으로 보입니다.

마찬가지로, MyCode 태그가 첨부된 이미지(원래 MyBB에서는 텍스트와 인라인으로 표시되었던)를 참조할 때, 태그가 표시되는 대신 이 첨부 파일이 텍스트와 인라인으로 표시되도록 하는 방법은 무엇일까요?

이러한 태그에 대해 여러 치환 작업을 수행하는 vBulletin 가져오기를 살펴볼 수 있습니다. 또한 이 중 많은 부분을 지원하는 bbcode 플러그인도 있습니다.

인용구와 관련하여, 시작 태그 앞과 닫기 태그 뒤에 줄바꿈이 있는지 확인해야 합니다.

2002년에 만들어진 아주 오래된 PhpBB 포럼을 가져오는 과정에서 같은 문제를 겪었습니다. 가져오기에 여러 가지 정규 표현식을 추가하여 이러한 BBCode 태그를 제거하거나(어떤 경우에는 대체) 처리했습니다. 결국 꽤 잘 작동했습니다.

저도 [quotes] 문제를 겪었으며, 마크다운으로 올바르게 표시되도록 각 줄에 독립적으로 배치해야 했습니다.

개인 기록에서 이 특정 문제에 대해 제가 달성한 것으로 보이는 코드를 찾았습니다:

text.gsub!(/(\[\/?quote.*?\])/mi) { |q| "\n#{q}\n" }

당시에 작성한 내용으로는 150,000개 메시지 중 모든 인용문이 작동했지만… 알 수 없는 이유로 57개는 실패했습니다. 그러나 실패한 인용문의 수가 그렇게 적어 큰 문제가 되지는 않았습니다. 수동으로 수정할 수도 있었습니다.

vBulletin 가져오기 도구는 다양한 인용 버전용 대체 기능을 여러 가지 제공합니다. 올바른 참조를 위해 게시물 번호를 가져오는 기능도 포함되어 있습니다.