임베드에서 전체 이름을 표시하는 방법

안녕하세요 여러분

최근 이 게시글을 읽었습니다: 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

재빌드 후에도 변화가 없으며, 임베드에는 여전히 전체 이름 대신 사용자명이 표시됩니다.

어디서 실수를 한 것일까요?

감사합니다

마크, 환영합니다! :wave:

앱을 다시 빌드하면 Discourse가 다시 다운로드되며, 컨테이너 내에서 수행한 모든 변경 사항이 덮어쓰기됩니다.

Discourse에 수정 사항을 적용하려면 이 방식으로 파일을 편집하는 것은 적절하지 않습니다.

Discourse의 기능을 사용자 지정하는 것은 일반적으로 테마 컴포넌트를 사용하여 수행됩니다:

또는 플러그인을 사용하여 수행됩니다:

코딩 지식이 있다면 이 링크들을 참고해 보시는 것을 권장합니다. :slight_smile:


이 링크가 특히 흥미로울 수 있습니다:

첫눈에 보기에는 정확히 찾고 계신 내용을 수행하는 것 같습니다. 다만 동일한 상위 폴더 내의 다른 파일을 대상으로 합니다.

@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

결국 플러그인이 의도한 대로 작동했나요? :slight_smile:

@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