-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
"inner" index reorganization #20867
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
"inner" index reorganization #20867
Conversation
4e814a3
to
9cd0a35
Compare
Agree it's too cluttered, but what about moving reference to the version specific pages since it only makes sense in context of a specific version? |
Agreed that it's too crowded. However, I'm neither happy with the current nor with the proposed structure. I'd need a moment to sit down and work out what's really the issue and propose something better. In the context of the upcoming 3.5 release: When do we need this to be finished? Are there plans to still work on the index page? |
I think we have 2-3 weeks to get the inner index (as produced by sphinx) and the brochure site (@dorafc is looking at it right now) ready. Doing a quick survey, the headings across the top for : numpy: ['User Guide', 'API reference', 'Development'] https://numpy.org/doc/stable/index.html pandas: ['Getting Started', 'User Guide', 'API reference', 'Development', 'Release notes'] https://pandas.pydata.org/docs/getting_started/index.html scipy: ['Getting started', 'User Guide', 'API refernec', 'Development', 'Release notes'] http://scipy.github.io/devdocs/index.html networkx: ['Install', 'Tutorial', 'Reference', 'Developer', 'Gallery', 'Guides->'] https://networkx.org/documentation/stable/index.html Bokeh: [, 'First steps', 'User Guide', 'Gallary', 'Reference', 'Developers', 'Releases', 'Tutorial->', 'Community->'] https://docs.bokeh.org/en/latest/index.html binder: ['Tutorials', 'How-to Guides', 'Reference', 'About mybinder.org', 'Contribute'] https://mybinder.readthedocs.io/en/latest/For one thing the consensus seems to be to spell it "User Guide" not "User's Guide". I have not chased down what is in each of those I'm going to push a bunch more re-organization work to this branch (some of it conceptual, some of it trying to get the navigation to play nice). I think putting the release notes an their own top-level thing makes a lot of sense. My current plan is:
The user profiles I'm thinking about are and what they want from the site in order to make progress on what ever it is they are actually doing that they need to use Matplotlib on the path to.
|
9cd0a35
to
a8216e9
Compare
I think we all agree it's trying to do too many things, and it seems like Tom's proposal is slim it down to just folks who need to read the docs (judging by the user stories), and let the new "matplotlib.org" handle the community roadmapping (ecosystem & contributing). Plot Types and Gallery are also overlapping in weird ways, but I dunno that a gallery landing page/drop down is the right solution/too much. I'm unsure about
|
doc/users/release_notes.rst
Outdated
.. include from another document so that it's easy to exclude this for releases | ||
.. include:: release_notes_next.rst | ||
|
||
3.4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the benefit of splitting this page? AFAICS there is no difference in the rendering other than we have additional but pretty useless toc pages per version (https://63048-1385122-gh.circle-artifacts.com/0/doc/build/html/users/relnotes/3.4.html).
From a maintainance POV I think having everything in one file is simpler because one can more easily see what is there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally, this is on a good way. I particularly like the landing page.
I still struggle with the toc structure. The landing page is great for topical redirection, but we don't have a toc anywhere that shows everything. E.g. Contributing is only linked at the bottom of the landing page.
Since we cannot use the top bar as top-level navigation, we need a separate page that structures everything and contains the full TOC. For now, I call this "Site map", but there may be a better name (maybe just "Matplotlib 3.5 documentation"?). Structure could be:
- Site map
- Installation
- User documentation
- Explanations
[ can gallery and tutorials be linked in here? ] - API reference
- FAQ
- Explanations
- External resources
- Release notes
- Back matter
- License
- Citing
- Credits
- History
- Contributing
The landing page (index.rst) should not define the structure. It's not meant as a full overview and thus cannot be the top-level defining element. It rather announces the most relevant parts of the docs and links there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still don't like that the user guide is functioning more as a site map than a guide - who is the intended audience for the user guide?
doc/index.rst
Outdated
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
- The :ref:`users-guide-explain` section of the :doc:`Users guide <users/index>` | ||
- Many of the :doc:`Tutorials <tutorials/index>` have explanatory material |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think a show not tell approach could work better here, something like
- Many of the :doc:`Tutorials <tutorials/index>` have explanatory material | |
- :doc:`Tutorials <tutorials/index>` on topics such as usage, customization, color, fonts, etc. |
That is addressed in my comment #20867 (review). The user guide is gone there. I don't think we need a section "user guide" at all. |
It is made worse because the https://63048-1385122-gh.circle-artifacts.com/0/doc/build/html/contents.html does existing but we do not link to it anyplace obvious. I guessed that it existed, because a contents.rst exists and suppressing sphinx from making a page while also using it to populate the top bar seemed hard! From there you can search for it and we do link to it a few random places (like the prose at the top of gallery). I think the toc rules should be that My concern with your proposed layout @timhoffm is that we lose a way to pull apart the 4 kinds of docs that https://documentation.divio.com/structure/ defines. I suspect that there is going to have to be some negoitation between pydata-sphinx-theme and sphinx-gallery to tweak how they generate TOCs to fold some things nicer. |
This is where I uncritically adopted the install card from: http://scipy.github.io/devdocs/getting_started.html#getting-started-ref |
We should hide the prev/next buttons. They only make sense in a linear book-style doc, not in a hierarchial structure where each page stands for a dedicated topic. Auto-tocs should be more or less ok for us. Top-bar is an issue. Can we work around that using external links? https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/configuring.html#adding-external-links-to-your-nav-bar
Yes.
I can't follow. The 4 kinds of docs should become elements in the "User documentation" section once we get to properly distinguish between them. |
Taking a quick look, I don't think its impossible to move "Plot Types" into "Gallery", and just putting them at the top. Not sure how nestable S-G is. OTOH, I think I agree that "Contributing" does not need a top-level link in the banner. I think folks who want to contribute can find that either on the landing page or the "Users Guide" or via google, 99.9% of users probably don't "Contribute", and those that do, probably only need the Contribute guide until they get their feet under them. Thanks, this is looking good! |
Sorry, I think I miss-understood your outline with the gallery and tutorials being under "Explanation" rather than as peers to it.
done
For the "New to Matplotlib" user above I think it is worth having the very streamlined "this is the kind of thing you can do" entry point always easy to get to.
The external links in the conf adds links with the however, I stand by not keeping the link to third-party in the top line I'll play around later with trying to use (internal) links in the top bar and seeing what that does, but my suspicion is that it is going to break the bread-crumb behavior. |
Agree about third party as a top bar issue. Users don't need to frequently access that and I assume it is on both the landing page and somewhere in the user guide. |
2c13550
to
f6fa78f
Compare
ok, I think I got the top bar and over all structure to be what @timhoffm proposed last week! |
Thanks Tom, this looks great! Still two things:
|
doc/index.rst
Outdated
pip install matplotlib | ||
|
||
|
||
Further details are availabe in the :doc:`Installation Guide <users/installing>`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: available
f6fa78f
to
1083a35
Compare
1083a35
to
daffe46
Compare
I had a commit that fixed that that I had failed to push 🤦🏻
dropped that commit (and opened #21027 ) to talk about that later. |
Doc build failure:
Edit: Ah, that's because of #21003. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that the left nav for the "Release notes" is awkward. Probably, because all next-lower level sections are on the page itself and I assume that the on-page sections go on the right nav whereas links to other pages go to the left nav.
Anyway, I propose to merge nonetheless. It would even be bearable to use this state for release. While the left nav is pretty useless as is, I assume that people will be visually drawn to the large "Version x.y" headings on the page and mostly ignore the noise on the left bar. Also we have #21027 to address this further.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bunch of minor comments that you can take or leave and/or could be addressed after merging
I guess this should be squashed as well, but I think anyone can merge if squashed....
doc/conf.py
Outdated
@@ -291,6 +294,12 @@ def _check_dependencies(): | |||
html_theme_options = { | |||
"logo_link": "index", | |||
"collapse_navigation": True if CIRCLECI else False, | |||
# "external_links": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you want to keep this comment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should go as I think it is extra-useless as this is read by navbar_center
template that got replaced a bit further down.
- :doc:`Axes API <api/axes_api>` for *most* plotting methods | ||
- :doc:`Figure API <api/figure_api>` for figure-level methods | ||
- Top-level interfaces to create: | ||
|
||
- Figures (`.pyplot.figure`) | ||
- Subplots (`.pyplot.subplots`, `.pyplot.subplot_mosaic`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this should be a sublist because these are all under api/index
. But not sure how it renders...
- :doc:`Axes API <api/axes_api>` for *most* plotting methods | |
- :doc:`Figure API <api/figure_api>` for figure-level methods | |
- Top-level interfaces to create: | |
- Figures (`.pyplot.figure`) | |
- Subplots (`.pyplot.subplots`, `.pyplot.subplot_mosaic`) | |
- :doc:`Axes API <api/axes_api>` for *most* plotting methods | |
- :doc:`Figure API <api/figure_api>` for figure-level methods | |
- Top-level interfaces to create: | |
- Figures (`.pyplot.figure`) | |
- Subplots (`.pyplot.subplots`, `.pyplot.subplot_mosaic`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm going to hold off on this one as if everything but one is in the second sub-list we should find some other way to structure this.
fac72ef
to
4c98316
Compare
I squashed it down to three commits (one for the sponsor button, one for the version bump, one for everything else). |
This does several things to the documentation: - Restructures the top-level TOC (as given by contents.rst) to be flatter and highlight were the 4 kinds of documentation are in the docs. - Changes the "inner" index page to better serve existing Matplotlib users by making it easier to find the kind of documentation they need. - Replaces the default top-level nav bar with a custom template that is not directly taken from the TOC layout given in contents.rst. We want to highlight (and provide easy access to) different things than the top-level structure of the overall docs. The current contents (and the links) of the navbar are hard-coded in doc/_templates/mpl_nav_bar.html - Adds the search bar back to the left nav on the inner index Co-authored-by: Jody Klymak <jklymak@gmail.com> Co-authored-by: hannah <story645@gmail.com> Co-authored-by: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com>
4c98316
to
64df6ad
Compare
Let‘s go. 🎉 Further refinements can be done in follow-up PRs. |
…867-on-v3.5.x Backport PR #20867 on branch v3.5.x ("inner" index reorganization)
Remove generated file accidentally added in #20867
"inner" index reorganization
Remove generated file accidentally added in #20867
The top bar is too crowded so this moves the Third-party and contributing links out of the top bar and moves them to the version-specific landing page.