안녕하세요 여러분
최근 이 게시글을 읽었습니다: How to display full name in comments embeds
아래 명령어를 실행해 보았습니다.
cd /var/discourse
./launcher enter app
x86_64 arch detected.
root@discourse-app:/var/www/discourse# cd app/views/embed/
root@discourse-app:/var/www/discourse/app/views/embed# nano comments.html.erb
Nano가 설치되어 있지 않아 설치한 뒤, comments.html.erb를 편집하여 해당 게시글에서 언급된 줄들을 교체했습니다.
이후 launcher를 종료하고 다음을 실행했습니다.
./launcher rebuild app
재빌드 후에도 변화가 없으며, 임베드에는 여전히 전체 이름 대신 사용자명이 표시됩니다.
어디서 실수를 한 것일까요?
감사합니다
Canapin
(Coin-coin le Canapin)
2월 16, 2023, 10:59오전
2
마크, 환영합니다!
앱을 다시 빌드하면 Discourse가 다시 다운로드되며, 컨테이너 내에서 수행한 모든 변경 사항이 덮어쓰기됩니다.
Discourse에 수정 사항을 적용하려면 이 방식으로 파일을 편집하는 것은 적절하지 않습니다.
Discourse의 기능을 사용자 지정하는 것은 일반적으로 테마 컴포넌트를 사용하여 수행됩니다:
Discourse Themes and Theme Components can be used to customize the look, feel and functionality of Discourse’s frontend. This section of the developer guides aims to provide all the reference materials you need to develop simple themes for a single site, right up to complex open-source theme components.
This introduction aims to provide a map of all the tools and APIs for theme development. If you prefer a step-by-step tutorial for theme development, jump straight to:
Themes vs. Theme Compon…
또는 플러그인을 사용하여 수행됩니다:
코딩 지식이 있다면 이 링크들을 참고해 보시는 것을 권장합니다.
이 링크가 특히 흥미로울 수 있습니다:
첫눈에 보기에는 정확히 찾고 계신 내용을 수행하는 것 같습니다. 다만 동일한 상위 폴더 내의 다른 파일을 대상으로 합니다.
@Canapin 조언해 주셔서 감사합니다.
이 저장소를 만들었습니다: https://github.com/OptDev/optuma-discourse-custom-embed
하지만 별다른 진전이 없습니다.
아래 명령어를 실행하면 오류 없이 빌드가 됩니다.
./launcher enter app
하지만 임베드에서 기대하는 변경 사항이 보이지 않습니다. 몇 가지 사용자 정의 CSS 클래스 이름을 추가했고, <%= post.user.username %>을 <%= post.user.name %>으로 변경했습니다. 이 문제를 해결하는 방향으로 조금 더 도움을 주시면 감사하겠습니다. 다른 플러그인에서 플러그인 템플릿 파일을 오버라이드하는 것이 그렇게 복잡하지 않을 것이라 생각합니다.
현재까지 해본 것은 앱에 진입하여 플러그인의 템플릿 버전을 /var/www/discourse/app/views/embed/ 디렉토리에 수동으로 복사한 후 앱을 재시작하면 원하는 결과를 볼 수 있다는 것입니다.
플러그인이 로드될 때 이 과정이 자동으로 이루어지도록만 하면 되는데, 바로 그 부분이 막혀 있습니다.
이것이 플러그인에 있는 파일로 /app/views/embed/comments.html.erb 파일을 덮어쓰지 않는 이유가 무엇일까요?
after_initialize do
::EmbedController.prepend_view_path File.expand_path("../embed", __FILE__)
end
음, 내가 맞았네. 경로 문제였어.
이제 사설 git 저장소에서 데이터를 가져오도록 설정하는 법만 알아내면 돼.
클론된 URL에 개인 액세스 토큰만 추가하면 됩니다
@merefield app.yml 파일에서 어떻게 구현해야 하나요?
괜찮습니다. 여기에서 찾았습니다. Install plugins on a self-hosted site
한 가지 참고할 점은, 문서에서 "token"을 사용하라고 되어 있다는 것입니다.
git clone https://<token>@github.com/owner/repo.git
제가 발견한 바로는, GitHub 사용자 이름과 토큰을 함께 사용해야 했습니다.
git clone https://<github-username>:<token>@github.com/owner/repo.git
Mark_Wass
(Mark Wass)
2월 21, 2023, 11:01오전
10
@Canapin 네! 모든 것을 정상적으로 작동하게 만들었습니다. 최종적으로 plugin.rb 파일이 이렇게 생겼습니다. 결국 파일의 커스텀 버전을 넣는 경로에 문제가 있었던 것이었습니다.
결국 파일을 /custom_views/embed/comments.html.erb 폴더에 넣었습니다.
# frozen_string_literal: true
# name: optuma_discourse_custom_embed
# about: 포럼 임베드의 템플릿을 커스터마이징하는 데 사용되는 간단한 플러그인
# version: 1.0.0
# authors: Optuma Pty Ltd
# url: https://github.com/OptDev/optuma-discourse-custom-embed
# required_version: 2.7.0
after_initialize do
::EmbedController.prepend_view_path File.expand_path("../custom_views", __FILE__)
end