로그인
로그인

그누6 어드민 테마를 만들어 보려고 시도해보았으나 실패!

페이지 정보

profile_image
작성자 시원찮은용원
댓글 0건 조회 66회 작성일 24-02-04 23:45

본문

그누6에는 관리자페이지에도 테마를 지정할 수가 있죠.

이게 어떤 역할을 해낼지 모르겠지만 일단 시도를 해봤습니다.

 

 

일단, 현재 그누6은 그누5의 관리페이지를 그대로 옮겨둔 후 그누6에 맞게 항목을 조정하고, 모바일 등에서도 사용하기 편리하도록 반응형(또는 적응형)과 다크모드가 적용되었죠.

 

그누5에서 가져온 HTML 마크업도 조금 변경되었지만 반응형을 위한 레이아웃과 일부 헤더를 위한 변경이 있는 것 같네요. 설정 폼 구성 등은 크게 다르지는 않습니다.

 

 

어쨌든 관리페이지도 테마를 변경할 수 있어서 부트스트랩부트스트랩 아이콘 그리고 AlpineJS를 이용해 새로운 관리페이지 테마를 만들어 보는 것을 시도해봤습니다.

 

레이아웃만 얼추 만들어봤는데 아직은 문제들이 많습니다.

 

 

일단, 테마에서 CSS, JS 그리고 이미지 등의 assets 경로가 문제입니다.

그누6에는 FastAPI 의 라우터를 기반으로하기 때문에 그누6의 공용 에셋이나 기본 포함된 basic 테마의 에셋 등이 `/static`, `/theme_static` 경로로 라우팅되는데 관리페이지의 테마는 아직 적용이 되어있지 않네요.

 

관리페이지 테마의 경로인 `/admin/templates/테마이름/static` 등의 경로를 사용할 수 없고 `/static` 폴더에 넣어두고 만들어야 했습니다. `tehme_asset()` 함수가 제공되어서 테마 경로를 라우팅해주는 주소를 반환해주지만 관리페이지에서는 이를 인식하지 못해서 방문자 페이지용 테마의 에셋 경로를 반환해서 `/template/basic/static` 폴더에 파일을 두어야하는 상황이네요.

 

 

이와 관련해서 몇 가지 이슈들이 이미 올라와 있는데 그누6이 공개되기 전에 이미 이슈가 작성된 것도 있네요.

게시판 스킨에서도 같은 문제가 있는 모양입니다.

지금 게시판 스킨의 CSS, JS는 테마의 static 폴더... basic 테마는 `/templates/basic/static` 폴더에 테마의 레이아웃은 물론 게시판 스킨까지 모두 여기에 들어있죠. 여기에 들어있다기보다는 그냥 한 파일에 몽땅 때려 넣었습니다. 그누5와는 상당히 대조적이죠.

 

 

현재는 게시판 스킨은 테마에 완전히 종속적인 구조이며, 누군가 새로운 스킨을 만들어 배포한다면 그누5처럼 `/skin/bbs/스킨명` 폴더를 지원하지 않고, `/templates/테마명/board/스킨명` 폴더에 스킨을 만들고 `/templates/테마명/static` 폴더에 CSS, JS, 이미지 등의 파일을 넣어두어야해서 사실상 스킨을 만들어 배포하려면 이 폴더는 board 밑에, 이 폴더는 static 폴더 밑에 넣으라고해야 합니다.

 

더구나 `<head>` 영역에 에셋을 로드시키는게 현재는 불가능하며, basic 테마에서 레이아웃은 물론 기본 게시판, 최근게시물 등의 모든 스타일이 항상 로드되기 때문에 영향을 받을 수 있는 상태입니다.

 

이 문제는 위 이슈들에서 해결이 되겠죠.

관련 로그를 보진않아서 추측이지만, 아마도 게시판 스킨도 처음에는 다른 것들처럼 스킨을 지원하지 않으려 했던게 아닌가 싶기도 하네요.

 

 

그누6 최근게시물 스킨을 처음으로 만들어 올리신 분이있죠.

이 스킨에서도 특정 CSS 파일을 로드해줘야하는데 현재는 방법이 마땅치 않아서 JS로 CSS를 로드하라는 이상한 해결법을 안내 받아야만 했죠.

이 안내에서도 `/static` 디렉토리에 파일을 넣을 것을 안내하고 있는데, 베타 버전이라서 발생하는 오류 정도가 아니고, 현재는 스킨을 만들어 배포하기 많이 어려운, 구조도 잡히지 않은 상태라고 생각되네요.

그누5의 add_stylesheet() 같은 방법이 현재는 없어서 발생하는 문제죠. 아마도 이런 문제 때문에 지금처럼 한 파일에 몽땅 때려넣은 이유이기도 한 것같고요.

 

 

위와 같은 문제로 어드민 테마도 사실상 배포하기 어려운 상태입니다. 당장 배포할 생각도 아니고 레이아웃만 깔짝댄 것이기 때문에 배포도 할 수도 없지만, 그누6이 아직은 전반적으로 아직 설계 중인 상태라는 느낌을 받았습니다.

 

게시판, content 스킨은 배포를 고려해 폴더를 분리해 놓은 것같지만, 이 외에는 사실상 테마에 종속적입니다. latest 같은 것들은 모두 단일 파일로 템플릿 파일을 사용하는 형태이고, 물론 이 상태에서도 css, js, img 등을 포함해 만들어 배포할 수도 있겠지만 다른 스킨과 이런 폴더명이 겹치기 때문에 이런 보편적인 이름을 사용할 수가 없고, 애초에 현 상태에서는 이 에셋 경로로 라우팅 자체가 되지 않기 때문에 이런 파일들은 루트나 테마의 static 폴더에 넣으라고 안내해야하는 상황입니다.

 

 

현실적으로... 음 저는 그누6의 스킨을 배포하고 다운로드하여 사용하는 생태계는 사라진 것이라고 생각됩니다. 그누5에서 `/skin` 폴더가 완전히 사라진 상태를 상상하면 그게 맞고, 그것보다 조금 더 좋지 않은 상태입니다.

 

물론, 현재 상태에서 말이죠.

 

앞으로 `/skin` 폴더와 같은 구조가 만들어질지 모르겠지만 이슈들을 두루 살펴본 것으로는 지금 그누6의 상태가 의도된 설계인 것같네요. 이 설계 안에서 게시판, 내용관리 스킨 정도는 지원을 하려는 것으로 보이지만 아직 부족한 부분이 있는 것이고요.

 

 

게시판, content 스킨 외에는 스킨이라기보다는 그냥 템플릿 파일을 다른 곳으로 선택하는 정도이고, 사실상 스킨 기능은 대부분 제거되고 레이아웃을 포함한 테마 전체를 배포하는 형태로 구조를 잡은 것으로 추측합니다.

 

위젯 시스템도 고려된 것같은데 나중으로 미뤄진건지 현재는 제거된 것으로 보이고요.

 

문제가 해결되고 제가 시도한 이 어드민 테마를 배포하게 될지는 모르겠지만, 이왕이면 배포까지 해볼 수 있었으면 좋겠네요. 유지보수까지는 힘들겠지만 그냥 재밌는 경험으로요.

 

 

 

그누6 사용후기 게시판에 글 올리기도 실패! 해서 자유게시판에 남깁니다. 아마 자료실 스킨? 같은게 적용된 모양입니다. 에디터도 나오지 않고요.

댓글목록

등록된 댓글이 없습니다.