-
Notifications
You must be signed in to change notification settings - Fork 90
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
Index pages #1221
base: master
Are you sure you want to change the base?
Index pages #1221
Conversation
c7d9ae7
to
f4cc882
Compare
We agree your example should be using brr's For automatically generated pages, I think it would be better to follow the pattern there (a few other examples). That is:
Also I think you can drop (That way the automatically generated page gives a good blueprint on a structure to enrich to get to landing pages similar to those mentioned above) |
I am not sure what you mean by this, but my PR only concerns automatically generated package landing pages. Brr's index.mld is accessible by the first link in that page. It would be nice not to link to this auto-generated page when a handmade index exists, which is the case in brr. Later I think it could be nice to also have the package description from the opam file on that page. Need for what this PR adds could also be reduced once we enable the sidebar in that page.
That's nice, thanks for the idea.
That sounds good. My first attempt used {!Foo}, it does not work because of an issue in the driver and I now use
Thats reasonable.
That is something we want, but it will be done in another PR.
Thats another mission for Super-expression ! Jokes aside, its a nice idea that could go into the frontmatter, which is probably going to use tags (they will be special tags that trigger a warning if they are not at the start of the document) |
I'm confused. The landing page of a package should not be generated if there exists an Otherwise it's one more click to get to my |
Let me try to explain! So, in the new design1, we decided that pages and libraries will go in separate directory. One natural way to do it is to say that for a package
Moreover, the subhierarchy of mld files, below One nice things about having libraries API and package docs in different directories, is that there is no constraint on the name of the directories in However, we did not want that removing a part of the url yields a 404, so we need to fill a few pages. In our example:
(Note that in odoc 3, we do not plan to have any link to pages outside of One way we could write those pages would be to make them redirect to the carefully crafted This is in my opinion not very important, since the reference driver is primarily a way for us to test new features we implement on real-life packages. It may be reused by ocaml.org, but not with the pages that are in this PR. I hope this is clearer now! Footnotes |
Thanks for the explanations.
Not sure I got that.
If you plan to reuse it for
If there's no content, there's no content. At most redirect to the landing page, but 404 is fine too: users quickly learn up to where they need to delete an URL if the system is consistent. Do not provide thousands of navigation pages and widgets it confuses the navigation for users and slows them down.
Not sure what you meant by that. In my opinion the breadcrumbs should all stop at the package landing page (which is unclear to me where you plan to put it)
Note that these pages are confusing as hell and provide an extremely bad user experience. Take a package like I think this page should follow the way odig works: the landing page of your package should be the |
The "landing page" (by that I mean the author-written file found in If you put the content of
As I said, if ocaml.org reuses this driver, it is only for building the docs (with the new features such as source code rendering). ocaml.org will decide how they want to deal with pages outside of the odoc hierarchy. |
I'm not sure you say this from an URL perspective or a navigation perspective (the breadcrumbs) but if it's the latter this is not good. An You can put it in Basically it's ok to put the docs and the manuals and libraries in separate roots but |
I don't think it's useful to nest the libraries under |
I think in that case it is important because it explain what is the difference between the above "Documentation for brr" link and this one. Maybe it would be less of an issue if instead of having a "documentation" link we had a list of toplevel pages with their titles. Of course in the case of brr we do not want that page to exist but that is another matter. |
Let's talk about package landing pages. I think a good package landing page has the following structure (see the links given earlier in this discussion for many sizeable real world examples):
This gives you an extremely efficient 'LOCAL CONTENT' table of content to quickly access essentials part of a package from the landing page. Now in case this is generated I think we should also have exactly this structure. Except that:
That way there is little difference between a suggested human written package landing page and a generated one and the generated one provides a blueprint to start a human written one. |
I agree with you, and I had approximately the same goals (I had actually given a look at the links you sent earlier). |
I have added a redirection for some pages when a handwritten page is present. The implementation is a bit janky for now. |
This PR improve driver generated pages for indexes of packages, by adding the list of libraires and their modules.