Plugin API documentations?

AI-generated summary

The discussion centers on the lack of comprehensive documentation for Discourse’s Plugin API. a9udn9u initially asks for API docs beyond the basic Get Started guide, noting that existing resources like docs.discourse.org and the Beginner’s Guide don’t explain plugin-specific properties, callbacks, or method parameters like those in Chrome or WordPress plugin docs. net_deamon suggests consulting Ember and Rails docs or browsing Discourse’s source code, referencing a prior thread for context. erlend_sh encourages such questions to be posted in Development. bcartwri96 bumps the thread for visibility. pacharanero confirms the scarcity of official Plugin API docs, noting that while some conventions are Ember/Rails-based, much is unique to Discourse. They suggest community collaboration to build a Discourse Developer Manual, pointing to early efforts at thepavilion.io. fzngagan and alxndr direct users to the plugin-api.gjs file in the Discourse repo, which contains brief inline documentation for available methods — now located at blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.gjs. The consensus is that developers must currently rely on source code, community posts, and fragmented guides.

Sorry if this has been asked, I tried searching for documentations but all I can find is the Get Started post, it helped me create a plugin but it didn’t cover topics such as what APIs are available. So, are there documents at all?

Thanks!

Api documentation is available at

Discourse API doc is not what I’m requesting. I was thinking about something like Chrome plugin development docs or WordPress plugin development docs. For example when I read the Beginner’s Guide to Creating Discourse Plugins, I have questions like what are other special properties and callbacks does Discourse recognize in the default module? or what parameters are passed into the initialize() method? Neither the guide nor docs.discourse.org answered those questions.

As discourse uses ember in frontend and rails in backend, you can browse their respective docs to know how to create components, or controllers, etc.

That being said, you can go through the code of discourse to learn how they are doing things.

I had asked similar question long time back… See if the answers given here help you.

Then those questions are probably good candidates for Development :slight_smile:

Giving this a bump bc it wasn’t answered :slight_smile:

@bcartwri96 I think the long and the short of it is that there is very little in the way of comprehensive documentation for Discourse’s Plugin API.

There are bits and pieces of information here on Meta, such as Developing Discourse Plugins - Part 1 - Create a basic plugin but there is no comprehensive API reference it would seem. Although some of what is happening is plain Ember or Rails, there is a huge amount in between which is pure Discourse convention.

Over time it would be good if the community could perhaps work on a Discourse Developer Manual that would fill this gap. We’ve put some of that into practice in terms of fragments of HOWTOs at Pavilion and hopefully some of that work is the initial groundwork for developing a more comprehensive reference guide.

Checkout this file. Most of the methods are documented briefly
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/lib/plugin-api.js

This file has moved to blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.gjs