저는 Discourse와 Jekyll 모두를 많이 사용하는 사용자입니다. 최근에는 Discourse 인스턴스를 Jekyll 정적 사이트의 콘텐츠 관리 시스템(CMS)으로 활용하는 실험을 해보고 있습니다. 아직 막 시작한 단계이고, 이 시점에 글을 올리는 이유 중 하나는 다른 분들도 이미 이 작업을 하거나 비슷한 시도를 해보셨는지 확인해보고 싶어서입니다. 혹은 더 나은 방법이 있으시다면, 이 작업을 시도하는 시간을 아끼도록 조언해 주셔도 좋습니다 ![]()
제 구상
-
마크다운 콘텐츠는 Discourse 인스턴스에서 편집됩니다(비기술 사용자에게 편집을 위한 좋은 UI를 제공하며), 쉽게 재편집하거나 업데이트할 수 있습니다. 포맷팅 툴바와 기타 편의 기능이 비기술 사용자의 만족도를 크게 높여줍니다.
-
Jekyll 사이트에는 게시물 URL(또는 Discourse의 baseUrl이 항상 동일하다고 가정한다면 게시물 ID) 배열을 포함하는 YAML 파일이 있으며, 이 URL들을 대상으로 콘텐츠 폴링(polling)을 수행해야 합니다.
-
간단한 Jekyll 플러그인이 각 URL에 대한 폴링 훅을 실행하여(Jekyll 서버가 재시작될 때마다?) 데이터를 GET 요청합니다. (많은 ‘공개’ Discourse 인스턴스의 경우 인증이 필요하지 않으며, 일부 상황에서는 API 키를 제공해야 할 수 있습니다)
-
JSON 콘텐츠는 URL 뒤에
.json을 추가하여 다운로드하며, 이 JSON 객체의raw키에는 이중 인용표로 감싸진 문자열 형태의 마크다운이 포함됩니다. -
마크다운에 Jekyll YAML 프론트 매터(front matter)를 추가해야 하며, 감싸고 있는 인용표 제거와
\n줄바꿈 문자 치환과 같은 정리 작업이 필요합니다. -
Jekyll은 이 전체 페이지를 HTML로 빌드하거나,
{{include file | markdownify }}를 사용하여 다른 페이지에 포함할 수 있습니다.
왜 이렇게 해야 할까요?
-
비기술 편집자나 유지보수 담당자가 정적 사이트를 업데이트하는 것이 훨씬 쉬워집니다.
-
이미 Discourse를 보유하고 있고 비즈니스용 정적 웹사이트를 만들고자 할 때 이상적입니다.
-
정적 사이트는 저렴하고 안정적이며 안전합니다.
-
왜 Page Publishing을 사용하지 않는가? 제가 Page Publishing을 시도해 본 결과, 페이지를 보기 좋게 만들기 위해 많은 작업이 필요해 보였습니다. Jekyll은 더 많은 제어권을 제공하며, 물론 Discourse로 관리되는 콘텐츠와 그렇지 않은 콘텐츠 소스를 혼합할 수 있게 해줍니다.
커뮤니티의 의견은 어떠신가요? 이 시도는 가치가 있을까요?