표준 플러그인 업데이트 절차

표준 Docker 설치로 만든 소형 자체 호스팅 Discourse 사이트를 운영 중입니다. 지난 몇 년간 containers/app.yml 파일 끝부분의 hooks를 편집하여 플러그인 저장소를 git clone하는 방식으로 수많은 플러그인을 설치해 왔습니다. 또한 플러그인 개발도 일부 해본 경험이 있습니다.

그러나 몇 달 전, 많은 표준 플러그인들이 Discourse 코어로 병합되었습니다. 만약 Discourse 저장소 전체를 포크한 뒤 그중 하나의 플러그인(예: discourse-math)을 수정하여 로컬 개발 환경에서 완벽하게 작동하게 만들었다고 가정해 보겠습니다. 이 새로운 플러그인을 프로덕션 Discourse 인스턴스에 적용하기 위한 절차는 무엇인가요?

궁금해서 묻는데, 공식 플러그인 중 어떤 것을 포크해야 하나요?

어쨌든 app.yml에서 특정 플러그인 디렉토리를 삭제한 후, 정말 필요하다면 자신의 것을 클론하는 명령을 실행할 수 있습니다. 예:

<in after_code: somewhere >
    - exec:
        cd: $home/plugins
        cmd:
          - rm -r poll
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/myaccount/myplugin-replacement.git

이렇게 할 수도 있지만, 확인해 보세요:

<in after_code: somewhere >
    - exec:
        cd: $home/plugins
        cmd:
          - rm -r poll
          - git clone https://github.com/myaccount/myplugin-replacement.git

공백에 대해 그렇게 세심하지는 않았으니, 들여쓰기가 완벽하게 맞는지 확인하세요.

discourse-math 플러그인이 사용하는 오래된 버전의 MathJax를 업데이트하길 바라기 때문입니다.

글쎄요, 제게는 이 줄이 제가 놓치고 있는 부분인 것 같습니다:

cmd:
  - rm -r poll

하지만 명확히 하자면, poll이 무엇인가요? 제가 겪고 있는 충돌을 방지하려면 오래된 discourse-math 디렉토리를 제거해야 한다고 생각합니다. 즉, 다음과 같은 것 말이죠:

cmd:
  - -r plugins/discourse-math

이 명령어를 함부로 실행하기에는 좋은 명령어가 아닌 것 같습니다. :slight_smile:

실수를 저질러도 괜찮습니다. 실수를 했다면 다시 구축하면 됩니다.

제 예시는 poll 플러그인을 기반으로 했습니다.

플러그인 디렉토리를 반복하지 마세요.

@merefield 참고로, 제 홈페이지의 애니메이션이 마음에 드실 것 같습니다: https://discourse.marksmath.org/

이 과정에서 여러분의 코드를 일부 사용했습니다.

하, 좋다. 이제 사용자 카드에 클릭도 추가해! :slight_smile:

이렇게 하니 해결됐어요 @merefield - 정말 감사합니다!!!

이것은 공식 플러그인에 대해 pr-welcome(PR 환영) 대상이 될 수 있는 변경 사항입니다. 플러그인을 사용하는 모든 사람을 위해 이 작업에 도전해 보려면, Contribute > Feature(기여: 기능) 토픽을 시작하여 제안해 주세요.