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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

자유게시판

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

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

본문

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

2900516653_1707057872.209.png

추천
2

댓글 7개

테마 경로에 관리자 템플릿도 포함되면 좋을것같아요

그러면 기존 테마 함수로도 사용할 수있겠죠

theme/이름

           -  관리자 페이지

          -   나머지  이런거요

 

스킨은 만들고 계실지 잘모르겠네요

 

스킨도 폴더 하나 만들어서 경로 똑같이 해서 로딩시에 덮어씌우는 식으로 하면 되긴할거 같은데 플러그인을 더 권장하는 방식이 되는걸까요? 플러그인도

기존 url 을 덮을 수있게 되어있긴하네요 아직 다안봐서 모르겠지만요

 일반 테마와 섞이면 좀 헷갈리지 않을까요?

theme_asset()은 아마 admin_theme_asset() 같은게 제공되겠죠.

 

스킨은... 본문에도 적었지만 현재 테마/스킨은 의도된 설계 같습니다. 바뀔지는 모르겠지만 최근게시물, 아웃로그인 같은건 사실상 테마 디자인에 종속성이 강하다보니 이런 설계를 적용한 것같고 일리는 있다고 생각합니다.

 

아마도 게시판 스킨 정도는 skin 폴더가 생길지는 모르겠지만 그 외에는 지금 이 구조로 가지 않을까 싶네요. 

 

그누6 자료실은 테마, 플러그인, 게시판 스킨 이렇게 세 분류로 갖춰지지 않을까 싶네요.

 

여기에 content 스킨 그리고 스킨화를 고려 중인 것같은 faq 정도가 추가될 수도 있을 것같은데 사실 이런건 그다지 많이 배포되거나 사용되지는 않는 것들이라서 지원한다해도 활성화 되지는 않을거고요. 오히려 지금과 같은 설계에서 content 스킨이 지원되고있는 지금이 이상해 보일정도네요.

 

latest 가 스킨을 지원하지 않는게 치명적?이라고 보는데 과연 어떻게 될지요.

관련 PR: https://github.com/gnuboard/g6/pull/351

이 PR은 아마도  인 것같네요.

참고로 그누5에도 기본 테마와 관리페이지에 다크모드가 적용된 변화가 있었습니다. 반응형/적응형은 아님.

https://github.com/gnuboard/gnuboard5/tree/feature/darkmode

 

아직 워킹 브랜치에 있어서 이게 적용되어 배포될지는 모르겠지만 그누6에 다크모드를 작업하면서 나온 부산물 같네요.

 

위 브랜치 코드를 받아 사용해보시면 확인 가능합니다. 영카트까지 다 적용되어있네요. 

저도 사실. 의아했던 부분이여서 스킨 게시판 만들기 전 이미 문의를 해봤었습니다.

 

지한님 말씀하신대로 개별 스킨의 개념보다는 테마형태라고 답변 받은적이 있습니다. 글 보는데 소오오름 돋았습니다.

 

정확한 예지력(?)에 엄지척입니다

@미니님a 예상이 맞았다니 다행?이네요.

 

워드프레스 테마처럼 의도한 것 같은데, 그누보드도 테마 디자인에 종속적인게 강할 수 밖에 없고 최근게시물, 아웃로그인 이런걸 다운받아 사용하면 상당히 튀는 경우가 많아 사실상 활용이 어려운 것들이 많긴하죠.

 

설득 가능한 구조로 생각되지만 그누5와 같은 스킨 공유 생태계는 그누6에는 재현되지 않을 것 같네요.

개인이나 취미로 스킨을 공유해왔던 생태계는 테마 전체를 제작해야하는 부담 때문에 사실상 사라지고, 유료 테마 위주로 돌아가겠죠.

? 유료도 사실상 수요가 있어야 한다는 숙제가 있죠

 

100원 팔더라도 사용자 없다면 의미가 없으니깐요

 

가장 큰 숙제죠 그누6의 활성화.

 

무엇보다 전체 테마형태라 다소 부담이 많이 가네요 개별 스킨이 아니여서

파이썬을 몰라 공부 겸 저도 플러그인을 만들고는 있는데 관리자 부분은 끝이 났고 유저 부분만 완성하면 되기는 하지만 어렵네요...

 

뭔가 예전부터 언급하던 언어 말고 달라진걸 모르겠다고 했던게 백엔드 프론트를 같이쓰는 방식때문이기도 합니다.

 

G5 G6 구조적인 부분 백 개발자가 아닌지라 면밀히 살펴본 것은 아니지만 fast api는 rest api형태로 반환이 가능하다는 점에서 뭔가 아쉽습니다.

 

특히나 위에 언급한 스킨도 일부만 지원하는것도 갸우뚱하구요

실제 제가 PR남긴건 코어 코드가 아니라 캐시 코드 수정인데도 적용이 안해주시는것은 의도가 스킨이 아닐수도 있다는 생각이 많이 듭니다.

 

제 개인적으로 템플릿 버전과 rest api버전을 유료던 무료던 2가지 형태로 풀어내면 정식. 버전 이후는 좀 더 활성화가 되지 않을까?싶습니다.

 

아마 향후 길게도 볼 것 없이 1ㅡ2년안에 승부(?)가  나지 않을까? 싶습니다.

 

공개적으로 다양한 방향성이 아닌 제한적이라는게 조금 아쉽습니다.

 

플러그인까지만 완성하고 다시 php가야할듯ㅋ 저도 제 사이트 개발해야하는데ㅜㅜㅜㅜ

전체 196,895 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT