다음과 카카오가 합병하면서 많은 수의 (돈 안되는) 서비스가 샷다를 내렸습니다.
현재로서는 티스토리는 그 대상이 아닙니다만, 다음카카오가 운영하는 꼬락서니를 보고 있으면
몇 년 안에 샷다 내릴 가능성이 영 높아 보이길래 워드프레스로 이전하려고 마음을 먹었습니다.
티스토리는 텍스트큐브(구 태터툴즈) 엔진을 바탕으로, 다음에서 자체 개조한 엔진을 사용합니다.
다행히도 TTXML 포맷으로 전체 데이터 백업을 받을 수 있고, 여기에는 첨부파일까지 포함됩니다.
이걸 워드프레스로 넘기려면 importer가 필요합니다.
기존에 누군가 만들어둔 플러그인이 있습니다만, 연 단위로 업데이트도 없고 첨부파일 문제로 죽어버립니다.
그리고 기껏 가져온 첨부파일도 기본값인 연월 순으로 정리가 안 되고 1이라는 폴더 하나에 다 몰아넣어버리죠.
뭐 필요하면 만들어서 써야죠. 그래서 일단 TTXML 데이터를 뜯어봤습니다.
포맷 이야기는 넘어가고, 문제가 몇 가지 있는데 대충 다음과 같습니다.
1. CDATA 처리가 하나도 안 됨
블로그 본문이 HTML태그나 특수문자가 모조리 escape된 plain text로 저장됩니다. 사실 좀 어처구니가 없었어요.
뭐 일단 파이썬에서 불러들이는데 문제는 없었으니 넘어갑니다.
2. 유령 첨부파일
기본적으로 첨부파일은 원본 파일명, 본문에서 사용하는 hash 이름, 등록시간 그리고 base64 인코딩된 파일내용이
제공됩니다만, 무슨 버그인지 아무것도 없는 유령 첨부파일이 존재하게 됩니다.
그래서 기존에 존재하던 TTXML importer는 동작 중 죽어버립니다.
3. 텍스트큐브 자체 태그
텍스트큐브는 파일이나 미디어 첨부, 그리고 접기펴기 기능을 자체 태그로 구현합니다.
이건 짤없이 변경해줘야 합니다. 다행히 정규식으로 손쉽게 잡아낼 수 있었습니다.
여하튼 어떻게 파이썬으로 불러들이는데 성공했습니다. 파이썬 참 편리해요. 들여쓰기가 마음에 안 들지만.
여튼 이걸 이제 워드프레스에 욱여넣으면 작업 끝입니다만, 워드프레스 백업파일인 WXL 포맷으로 컨버팅하자니
이건 포맷 공개가 멀쩡하게 된 게 없습니다. 뜯어서 만들자면 만들 수 있는데 영 복잡합니다.
거꾸로 WXL importer를 뜯어봅니다. 흠... WXL을 불러들여서 JSON으로 파싱해서 넘겨줍니다. 오호라.
JSON 규격은 손쉽게 뜯어낼 수 있습니다. 그렇다면 소스를 조금 고치면 되겠군.
물론 WXL imporeter도 제대로 된 건 아닙니다.
특히 워드프레스의 고질적인 문제인 CJK파일명 취급에서 상당히 골때리는 문제가 있어서, 1바이트씩 날아간다던지
몇 가지 패치를 해 줘야 하는 부분을 확인할 수 있엇습니다.
여하튼 그렇게 한 달쯤 삽질을 거쳐서 온전히 티스토리에서 워드프레스로 이사했습니다.
물론 100% 완벽한건 아니고, 이미지를 제외한 대부분의 첨부파일은 워드프레스 자체 필터때문에 첨부 안 됩니다.
접기펴기도 워드프레스에서 구현이 안 됩니다. 하릴없이 showmore 플러그인을 깔아야 합니다.
워드프레스닷컴에서는 외부 플러그인 금지니 티스토리->워드프레스닷컴은 이전이 어렵곘죠.
그 외에도 제가 본 적이 없는 텍스트큐브 자체 태그도 이전 안됩니다.
작성한 코드는 깃허브에 올려뒀습니다.
https://gist.github.com/Koasing/d2701169d6bf70b86aef271f06c58e16
파이썬 코드를 실행하면 TTXML을 json과 첨부파일 뭉치로 바꿔줍니다.
이걸 워드프레스에서 가져오는 방법은 코멘트를 참고하세요.
저도 예전에 블로그 서비스 몇개 전전할 때 이전이 가장 머리아팠는데.. 이 글이 많은 분들한테 도움이 되지 싶어요