`create-discourse-plugin` gem으로 Discourse 플러그인 설정 자동화하기

:mega: 이 플러그인은 이제 Discourse 코어에 번들링되었습니다. 이 gem을 사용할 필요가 없습니다.
새 플러그인을 생성하려면 다음을 사용하세요:
rake plugin:create[plugin-name]

Discourse 플러그인 개발을 시작한 후, 전체 설정 과정이 더 직관적일 수 있다고 느꼈습니다. 플러그인을 생성할 때 더 나은 개발자 경험을 제공해야 합니다.

이러한 정신에 따라, 저는 여가 시간에 create-discourse-plugin이라는 gem을 만들었습니다.

이 도구가 하는 일?

선택한 옵션에 따라 사용자 이름 또는 조직 아래에 discourse-plugin-skeleton을 복제하고 복사본을 생성합니다. 그런 다음 모든 플레이스홀더를 플러그인 이름으로 업데이트하여 개발을 시작할 수 있는 상태로 만듭니다.

사용 방법?

npx create-next-app이나 npx meteor와 같은 정신에 따라

 gem exec create-discourse-plugin <plugin-name>

요구 사항

  • 작동하는 GH CLI가 있어야 합니다

기여하기

17개의 좋아요

감사합니다! 지난 몇 년간 새 플러그인을 만들 때마다 항상 이런 방식으로 해보고 싶었습니다! 제가 했다면 훨씬 더 잘 해내셨을 것 같아요. 사용해 보고 싶네요!

6개의 좋아요

정말 멋지네요. 그러면 언제쯤 짜증이 충분히 치밀어서

 gem exec create-discourse-theme <theme-name>

을 만들어 주실 건가요? :wink:

6개의 좋아요

그건 discourse_theme new가 맞아요 :slight_smile:


@grubba 이걸 rake task로 코어에 포함하는 건 어떨까요? 예를 들어

bin/rake plugin:create

어쨌든 플러그인을 작업하려면 제대로 동작하는 코어 개발 환경이 필요하므로, 이 방식이 잘 맞을 것 같은데요? 또한 더 ‘공식적인’ 성격이 부여되고, 전체 팀이 유지보수하기에도 쉬워질 거예요.

사람들이 github(그리고 gh cli)을 사용하도록 의존하기보다는 100% git 기반으로 만드는 게 더 나을까요? 일부 사람들은 다른 서비스를 사용해 플러그인을 호스팅하기도 하고, 바로 공개하고 싶지 않을 수도 있으니까요.

discourse_theme에서는 theme-skeleton의 로컬 캐시를 유지하고 있어 오프라인에서도 작동합니다!

6개의 좋아요

아, 맞다! 나는 항상 watch만 사용했거든요. 예전에 한 번 시도해 봤는데, 정확히 기억은 안 나네요. 그런데 그걸 완전히 잊고 있었어요. :exploding_head:

2개의 좋아요

생각해 보니 그럴듯하네요! 사람들이 테스트해 봤고, 몇 가지 불만과 피드백을 받아서 일부 조정을 했습니다. official로 만드는 데 꽤 좋은 상태라고 생각합니다. 앞으로 며칠 안에 core에 추가하는 작업을 진행하겠습니다.

gh를 사용하는 것이 이상적이지 않다는 데 동의하며, 해결책을 찾아보겠습니다. 아마 discourse_theme new가 하는 것이 제가 찾고 있던 것일 수도 있겠네요…

5개의 좋아요

좋은 소식입니다! 방금 이 새로운 rake 태스크를 코어에 병합했습니다:

rake plugin:create[name]

이 태스크는 gem과 유사하게 작동하지만, GitHub로 푸시하지 않으므로 discourse_theme new와 정확히 같은 방식으로 원하는 대로 처리할 수 있습니다.

더 공식적인 해결책이 있으므로 이 gem은 비추천(deprecated)으로 표시하겠습니다.

10개의 좋아요

수정: 지시대로 .gitignore에서 Gemfile.lock을 제거했습니다. 이제 작동합니다.

.gitignore에 Gemfile.lock 사용 불가
Cloning 'https://github.com/discourse/discourse-plugin-skeleton' to '/home/pfaffman/src/discourse-repos/discourse/plugins/discourse-public-bookmark-timers'...
Initializing git repository...
Initialized empty Git repository in /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-public-bookmark-timers/.git/
The following paths are ignored by one of your .gitignore files:
Gemfile.lock
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
rake aborted!
Command failed with exit 1: git
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:352:in `system'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:352:in `block (2 levels) in <main>'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:344:in `chdir'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:344:in `block in <main>'
Tasks: TOP => plugin:create
(See full trace by running task with --trace)

git config advice.addIgnoredFile false를 실행한 후에도 다시 시도했으나 동일한 결과가 나왔습니다.

그리고

$ gem exec create-discourse-theme discourse-public-bookmark-timers

ERROR:  Could not find a valid gem 'create-discourse-theme' (>= 0) in any repository
ERROR:  Possible alternatives: create-discourse-plugin, discourse_theme, askclass-course-theme, date_discreter, opensource-theme
1개의 좋아요