confluence to tistory 제작-1
개발 1일차
단위목표
- confluence api 조사
- 페이지, 스페이스 목록 정보 조회 api 확인
- 특정 페이지
html
ormarkdown
export api 확인
REST API 활용
- 인증 구현
- personal token 생성
<로그인 이메일>:<토큰>
을 base64로 인코딩- Authorization 헤더에 Basic <base64 인코딩 된 값>을 추가하여 사용
curl -H "Authorization: Basic <yourToken>" https://{confluenceBaseUrl}/rest/api/content
- space 목록 확인
구분 | 정보 | 비고 |
API 경로 | https://<baseurl>/wiki/rest/api/space |
|
매서드 | GET | |
호출 목적 | space의 name, key 쌍 확인 |
- 페이지 목록 조회
구분 | 정보 | 비고 |
API 경로 | https://<baseurl>/wiki/rest/api/content |
|
매서드 | GET | |
Query 파라미터1 | spaceKey | 값: 조회할 space의 key |
호출 목적 | contents 들의 title 및 id 값 확인 |
xmlRPC
페이지를 html로 랜더링해주는 REST API를 도저히 찾을수가 없어서, 관련 자료를 검색하던 중, xmlRPC API에는 관련 메서드가 있는듯 하여 찾아보았다. 이미 confluence Cloud에서는 5.5 버전에서 이미 지원이 종료된 API 기능 이었지만, API는 아직 동작 하지 않을까 싶어 시도해 보았으나, 한참 삽질 끝에 더 이상 동작하지 않는 API라는 것을 알게 되었다.
개발 2일차
신규 단위목표
- 이미지 추출 및 공개서버에 업로드 → html내 링크 정보 치환
- 테이블 테그 tistory 형식에 맞게 변경
- codeBox tistory 형식에 맞게 변경 필요
드디어 페이지 html 추출 성공
- 페이지 html export
구분 | 정보 | 비고 |
API 경로 | https://<baseurl>/wiki/rest/api/content/<pageId> |
|
매서드 | GET | |
Query 파라미터1 | expand | 값: body.styled_view |
호출 목적 | 페이지 html로 export |
추출된 페이지 테스트 등록
추출된 html이 tistory 게시물로 등록되었을 때 바람직한 모양으로 출력되는지 테스트하기 위해서 테스트 게시물을 게시해 보았다. 눈에 띄는 문제점 두가지가 보였다.
- 표 디자인이 구림
- 코드박스 syntax highlight가 동작하지 않음
보이는 문제점 말고도 가장 치명적인 문제점이 하나 있는데, html내부에 삽입된 이미지가 confluence Cloud 서버내에 저장되어 링크가 걸려있었다. 당연히 로그인 통해 인가된 사용자만 접근하여 이미지를 로딩해 올 수 있었기 때문에, 블로그에 정상적으로 게시하기 위해서는 이미지를 별도 퍼블릭 서버에 업로드 한 뒤, 이미지 url 변경 사항을 반영하여 html을 다시 작성해 줘야 했다.
코드블럭 하이라이팅 활성화
<code>
블럭 추가로 해결
표 예쁘게
th
테그 모두 td
로 변경으로 해결
이미지 호스팅 서버
무료이면서 가장 api 활용이 편리한 사이트를 찾다보니 imgbb 라는 사이트를 찾게 되었다. API가 매우 간결하고 필요한 정보만 있어서 선택하였다.
- 이미지 업로드 API
구분 | 정보 | 비고 |
API 경로 | https://api.imgbb.com/1/upload |
|
매서드 | POST | |
Query 파라미터1 | key | 값: api token |
Form 데이터 | image | 값: 이미지 바이너리 |
호출 목적 | 페이지 html로 export |
참고자료
- confluence restapi docs : https://developer.atlassian.com/server/confluence/confluence-server-rest-api/
- confluence server restapi docs : https://docs.atlassian.com/ConfluenceServer/rest/7.11.1/
- confluence cloud restapi docs : https://developer.atlassian.com/cloud/confluence/rest/intro/
- Atlassian community : https://community.atlassian.com/t5/Confluence-questions/Programmatically-Export-Space-to-HTML/qaq-p/374156
반응형