New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-organize API reference docs to be one page per class #13814
Comments
I am very much in favour of this. There might be some overlap with BokehJS if we manage to elevate that to a standalone NPM package as we'd need API docs for that, and ideally both sets of API docs would be organised along similar lines for ease of mentally switching between the two. The BokehJS model classes are already split into sensible groups so it would be good to do similar on the Python side. |
@ianthomas23 can you elaborate? The structure on Bokeh sides should still be identical AFAIK. The only difference is that on the Python side model definitions are small so a module like I'm not sure how that pertains here, though. These things are all distinct:
So just being clear, this issues is not about expecting users do |
Just noting that I can get a basic configuration with |
@bryevdv I assumed that
meant splitting up the Python directory/class structure to be more fine-grained, but you have said this isn't so. My mistake. |
@ianthomas23 no mistake I just hadn't imagined that was something people wanted, since it seems like it will result in hundreds of very small files. I'd like to understand what benefits you identify in splitting things up more are? Entirely possible I just don't see them, but I can learn :) |
I think the docs over at @snehilvj/dash-mantine-components have a great way of displaying each widget with examples and full docs, as shown here, with one page per widget. |
I don't think |
@ianthomas23 I am actually starting to come to the conclusion that "one page per model" may in fact not be possible unless we adopt the fine-grained split you suggested... (or else write yet another custom extension or literally hand-author hundreds of ReST files, but I am loathe to consider either of those options) |
unfortunately Bokeh has unusual requirements, and I am not sure there is any immediate path forward without more custom tooling. I'm not sure when/if I would have bandwidth to look at that. |
(This issue mostly pertains to the contents of
bokeh.models
)Our reference docs are currently hand-curated into topical groupings. The original reason for the the groupings was that early on we had issues supporting and effective search capability, and because the API surface was much smaller and easier to organize by hand. Search has since gotten better and the API surface has grown considerably.
In addition to posing a manual maintenance burden, this organization also results in som very heavy pages in our docs. These large page sizes can cause problems or block new features:
I think we must split the API docs into a one-class-per-page organization. I.e. instead of:
there would be a dedicated page like:
This organization is common in other projects and is supported by some tools e.g.
autoapi
and others. It will take some research and experimentation to see whether these tools can be used "out of the box" or if we will need to make other changes to accommodate them or (worst-case) develop our our tooling. I'll try to do some minimal investigation to see how/if existing tools currently function.There are some questions that probably intersect with this, such as the idea to split up the monolithic
bokeh.models
namespace itself at the user-facing API level (cc @mattpap I thought there was an issue/discussion about this but I can't find it)cc @bokeh/dev for comments (not triaging as "discussion" since I think the necessity of change is making itself evident)
The text was updated successfully, but these errors were encountered: