Этот плагин теперь включён в ядро Discourse. Использовать этот gem больше не нужно.
Для создания нового плагина используйте: rake plugin:create[plugin-name]
С тех пор как я начал разрабатывать плагины для Discourse, мне казалось, что общую настройку можно сделать более простой. Мы должны обеспечить лучший опыт разработчика при создании плагина.
Он клонирует и создаёт копию discourse-plugin-skeleton под вашим именем пользователя или организацией в зависимости от выбранного вами варианта. После этого он заменяет все заполнители на имя вашего плагина, делая его готовым к началу разработки.
Как использовать?
В том же духе, что и npx create-next-app или npx meteor
Спасибо! Я думал об этом каждый раз, когда создавал новый плагин за последние пару лет! Похоже, вы сделали это намного лучше, чем я мог бы. Не могу дождаться, чтобы попробовать!
@grubba, как вы смотрите на то, чтобы интегрировать это в ядро в виде задачи Rake? Например:
bin/rake plugin:create
В любом случае, для работы с плагинами нужно иметь рабочую среду разработки ядра, так что это кажется логичным решением? Это также сделало бы процесс более «официальным» и упростило бы поддержку всей командой.
Интересно, не лучше ли сделать это полностью на основе Git, вместо того чтобы полагаться на использование GitHub (и наличие CLI gh)? Некоторые люди используют другие сервисы для хостинга своих плагинов, а также могут не хотеть, чтобы они сразу становились общедоступными.
В discourse_theme мы поддерживаем локальный кэш шаблона темы, поэтому это работает даже офлайн!
Думаю, это имеет смысл! Люди уже протестировали это, я получил несколько жалоб и отзывов, а также внес некоторые правки. Считайте, что оно уже в довольно хорошем состоянии, чтобы стать «официальным». В ближайшие несколько дней я займусь его добавлением в ядро.
Я согласен, что использование gh не является идеальным решением, и я найду способ это исправить. Возможно, то, что делает discourse_theme new, — это именно то, что мне нужно…
РЕДАКТ: Я удалил Gemfile.lock из .gitignore, как и было сказано. Теперь всё работает.
В .gitignore не допускается Gemfile.lock
Клонирование 'https://github.com/discourse/discourse-plugin-skeleton' в '/home/pfaffman/src/discourse-repos/discourse/plugins/discourse-public-bookmark-timers'...
Инициализация репозитория Git...
Инициализирован пустой репозиторий Git в /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-public-bookmark-timers/.git/
Следующие пути игнорируются одним из ваших файлов .gitignore:
Gemfile.lock
подсказка: Используйте -f, если вы действительно хотите добавить их.
подсказка: Отключите это сообщение, выполнив
подсказка: "git config advice.addIgnoredFile false"
rake aborted!
Команда завершилась с ошибкой 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>'
Задачи: TOP => plugin:create
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)
Я попытался снова после выполнения git config advice.addIgnoredFile false, но результат остался прежним.
А также:
$ gem exec create-discourse-theme discourse-public-bookmark-timers
ОШИБКА: Не удалось найти валидный gem 'create-discourse-theme' (>= 0) ни в одном репозитории
ОШИБКА: Возможные альтернативы: create-discourse-plugin, discourse_theme, askclass-course-theme, date_discreter, opensource-theme