-
Notifications
You must be signed in to change notification settings - Fork 608
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
docs: refactor and move to Quarto #6814
Comments
Hey! I'm happy to PR in a reference section from this prototype of porting the ibis docs to python: https://github.com/machow/ibis-docs-demo. Do you want me to open a PR against lostmygithubaccount:quarto-docs? I'm also happy to pair, in case you have questions about translating anything to quarto / funkiness. I think an interesting migration piece will be this impala backend page, which embeds documentation on some classes / methods. |
going to defer to @cpcloud, we are getting ready to merge into master soon (as a separate the impala backend page was the only one that broke, I believe I changed it to a |
I'm going to reopen this and add a few items instead of opening new issues |
Glad to see this trucking along! Whenever the timing is right / useful for API docs, lemme know and I'm happy to PR in reference docs (or if you want to take a swing yourself at quartodoc, I can diligently fix anything that breaks 😅) |
To add one more TODO:
|
Bunch of notes from a doc review of https://ibis-quarto.netlify.app:
|
I think I've gotten most of the low hanging fruit from ☝🏻 |
Thanks for flagging the quartodoc ones -- I have the repo open and am adding interlinks now! (Then will look through the other ones). Can you elaborate a bit on some of the points, like..
(Or point to a page in the netlify build where the problem shows up) |
@machow Thanks for taking a look! Here's a link to some strangely highlighted output from https://ibis-quarto.netlify.app/reference/expression-tables#examples-22 Here's an example: |
This one is a feature request to be able to highlight everything except some objects matching specific patterns. This was a nice feature of |
Pivot longerFor the pivot longer example, the code is inside a markdown python code block, so I wonder if the weirdness has to do with the syntax highlighter (either quarto's default, or a custom one if set?) Here's the part of the qmd for pivot_longer (code block at the bottom):
edit: if there's something more sensible than python to use for the codeblock here, we can def change it ExcludingThat makes sense, I've put it off for a long time, but it's an easy add 😅. Do you have an example (either here, or from the past docs) you can share? That way I can make sure it hits your exact use-case |
@machow For now, is it possible to not syntax highlight examples (but keep them inside triple backticks to keep the monospaced font), or to have an option to turn that off? |
That's super doable--I'll add it in a custom renderer in ibis for now, and try to reproduce in a quarto issue |
@machow I'm seeing a funky rendering of a markdown table embedded in an argument description of the Am I doing something wrong in the docstring? Code is here: https://github.com/ibis-project/ibis/blob/master/ibis/expr/types/numeric.py#L69-L85 |
Oh gosh, quartodoc escapes pipes, since in a description they could mess up the parameter table. We can toggle how the parameter tables get generated pretty easily using the Here's part of the escaped description.
I think it's basically a situation where if we can figure out some format that would work in a qmd, we can tweak the renderer to produce it (even if just for this particular docstring, etc..). |
I'll be out for the next week, but wanted to at least summarize some of the lingering issues from the list above! I think the biggest one for me to loop back to and complete when I get back is the last one (implement filtering in quartodoc). round description is not rendered correctly (quartodoc issue)See above, I think we might need to figure out some format quarto will accept. If we could hand-code an example parameters table in a qmd that has this nested table, then I should be able to tweak the renderer to produce it. variable width font for types is ugly (quartodoc issue)I think this was raised by in machow/quartodoc#206, and machow/quartodoc#208 by the shiny team. Based on this comment, I think we should be able to wrap renderered annotations in a Here's the relevant code from shiny docs quartodoc autodiscover (quartodoc issue)Leaving breadcrumbs for myself. It looks like the filters are here: https://github.com/ibis-project/ibis/blob/master/mkdocs.yml#L79 |
Huzzah! Thanks for your work @machow! We are probably going to cut over to the new site at the end of next week, so nothing is blocking us at the moment. I think the rest of our changes are content changes and don't need anymore infrastructural adjustments. For the embedded table, we may just convert that into a bulleted list for the time being. |
Oh, and yes the variable width font issue is fixed! |
Awww yeah! If you hit other issues next week, and raise them on quartodoc, I can probably beseech some members of the shiny team to weigh in 🙃 |
Closed by #7061. Thanks everyone! |
subsumes #6512
related #3701
related #6511
related #6618
The purpose of this issue is to propose and track the implementation of Ibis documentation in Quarto.
There are several motivations for this work. The first is the existing documentation using mkdocs is slow to build and has a lot of minor issues. The most important reason for moving to Quarto is to improve the user experience of using Ibis documentation and key features like more native interactive Python support (in markdown files) offers both a better user and documentation developer experience. Additionally, numerous minor issues are fixed.
Timeline
We should aim to have fully moved our documentation over by the release of v7, but as soon as possible.
Priorities
P0
We must have these to consider switching to Quarto as main site.
P1
We should have these before merging.
P2
Nice to have before merge; likely follow ups.
Questionable items:
Organization, structure, opinions
Open to feedback.
I have started porting the docs to Quarto here: https://github.com/lostmygithubaccount/ibis/tree/quarto-docs.
See the README in the docs2 directory for how to setup and preview the docs locally. The website has 5 primary sections mostly aligning with the https://diataxis.fr/ framework. Backends are important enough for their own section. Then, we follow the standard getting-started/concepts/how-to/reference split for the rest of the documentation.
The concepts are very light right now. It would be helpful to decide on the top-level structure here before writing all of the documents. I will take on drafting the "Why use Ibis" document based on recent discussions.
The how-to guides are also light and again I think we should decide on a top-level structure. These should be search engine optimized and contain useful code snippets a user is likely to want. We should section them by task, e.g. "file input and output", "eda", "ml", "timeseries". I don't love the current layout though.
We should limit backend-specific documentation to that section, i.e. disallow backend-specific how-to guides, to avoid sprawl.
All documentation should be written in
.qmd
files; we will convert old documents and if a user insists on PR'ing a notebook or otherwise we'll convert it over (this is easy and automatable). This format allows for significantly easier CI/CD to test examples (something both GCP and Azure have custom solutions in) by embedding the code directly in markdown. Modern IDE tooling (vim and VSCode, at least) make working with these files in what I would argue is a better experience than traditional notebooks. So, we will embrace this format for documentation to both improve the end user experience (less broken examples, better look) and developer experience (easier PRs).More thoughts on AI in a separate issue. Try out the app though, it seems decent especially for getting started.
The text was updated successfully, but these errors were encountered: