Resources

Quarto with the Quarto Team | An Open-Source Chat

Join Al Manning, Carlos SchIidegger, & Charles Teague, members of the Quarto Team, as they take our questions. Quarto is an open-source tool for scientific and technical publishing. Create dynamic content with Python, R, Julia, and Observable. Author documents as plain text markdown or Jupyter notebooks. Publish high-quality articles, reports, presentations, websites, blogs, and books in HTML, PDF, MS Word, ePub, and more. Author with scientific markdown, including equations, citations, crossrefs, figure panels, callouts, advanced layout, and more. Key Resources: ⬡ Learn more and get started with Quarto at quarto.org Contact ⬡ Bug reports and feature requests - https://github.com/quarto-dev/quarto-cli/issues ⬡ Need help? Github discussions - https://github.com/quarto-dev/quarto-cli/discussions Introduction Videos for Quarto ⬡ Mine and Julia talk, https://www.youtube.com/watch?v=p7Hxu4coDl8 ⬡ Quarto Series, 1️⃣ Welcome to Quarto Workshop led by Tom Mock: https://www.youtube.com/watch?v=yvi5uXQMvu4 2️⃣ Building a Blog with Quarto led by Isabella Velásquez: https://www.youtube.com/watch?v=CVcvXfRyfE0&feature=youtu.be 3️⃣ Beautiful reports and presentations with Quarto led by Tom Mock: https://www.youtube.com/watch?v=hbf7Ai3jnxY&feature=youtu.be Timestamps 00:00:00 Introductions 2:55 Why open source? 6:20 Can we expect to see Quarto available to R-users via CRAN any time soon? 9:10 Quarto and Google Docs? 9:49 Lua filters/shortcodes. Advice for a good development environment for prototyping and debugging? 14:59 Is there a single documentation page for ALL the quarto-specific YAML options? https://quarto.org/docs/reference 16:15 Navigating Quarto's documentation. 18:00 Is there something like Observable SQL cells on the roadmap? 20:10 Is there something closer to {bookdown} for Quarto? What is the best way to retain data and environment objects in a quarto book? Is there any path to enabling this? See Includes, https://quarto.org/docs/authoring/includes.html 24:20 Flexdashboard? Coming soon. 26:30 A big challenge in the adoption is that Quarto is competing with ipython notebooks for mindspace, what does the Quarto team think about that? Quarto and Jupyter Notebooks will hopefully be thought of as complementary to one another, with Quarto helping a lot with narrative, layout, and appearance for publication and sharing. 30:10 Where should I go to contact you about an issue? What if the issue isn't just Quarto, say, Quarto + Jupyter? 31:50: What is the Quarto team hoping to see the community produce? Feedback, reporting in github issues. Quarto Extensions. 34:05 Custom styling, configuring grid options. Any tips or anything in the roadmap that will help users finetune the look and feel of their output? 38:40 Terminology question; what do we call a published Quarto doc? (or webpage, blog, etc.?) 40:00 How do I stay up to date with Quarto? Getting the latest release and learning about what is new? See what's up on quarto.org. Look under get-started and under downloads for pre-releases

image: thumbnail.jpg

Transcript#

This transcript was generated automatically and may contain errors.

Hello and welcome to another Open-Source Chat. This time we're talking about Quarto with almost all of the Quarto Team. So first off, what are Open-Source Chats?

There are two big goals for Open-Source Chats. Firstly to connect users of a tool, Quarto in this case, directly with the people who develop and maintain that tool. Developers can sometimes feel a little disconnected from end users. Maybe not so much in this case, Quarto has something like 12 commits a day on average for the past two years and a pretty active issues and discussion section. But then, you know, users are often unaware of how these Open-Source tools get developed, get maintained, and so forth.

Open-Source software just works better the more active and engaged the community is and the better the connection there is between developers and our end users. Secondly, we'd like to use this opportunity for you to share with each other how you use Quarto, how you approach and solve common problems. With that in mind, we invited questions from the community in this discussion. Since this is a recorded video, you obviously won't be able to pose any new questions. But instead we invite you to check out the Quarto Dev Team's GitHub discussion section. See the video description for details.

And with us today we have Al Manning. Al is Quarto Team Manager, manager at the growing team at Quarto. Carlos Scheidegger, software engineer and recently previously out of academia. Charles Teague, software architect at Posit, and as I understand it, essentially co-lead of the Quarto project with JJ Lair. And then joining us a bit later is going to be Isabella Velasquez, who is essentially editor-in-chief at Posit blog as well as much else here. She'll be taking over duties about halfway through the presentation because, spoiler alert, I'll be having a few technical difficulties.

What is Quarto?

To get started off, what is Quarto? Quarto is an open source scientific and technical publishing system that builds on standard markdown with features essential for scientific communication. Computational engines include Python, R, Julia, and ObservableJS. Markdown that's Pandoc with many enhancements. But to documents, presentations, websites, books, blogs, and much else.

Why open source?

As a first question to get started, I asked the group, why open source? One thing that the three of you, I've noticed looking at your backgrounds and the CVs that I could find online, there wasn't explicit mention of your contributions to open source software and yet Quarto and joining Posit, that's kind of a core to what we're doing. And I actually know a few of you were making contributions to OS before, but that wasn't kind of a core thing to your occupation where it is now. So maybe if I could start with Al, why open source? Why have you decided to work in open source?

I've been primarily involved in sort of private company software engineering for a very long time. And this was, I've been involved before open source and I've experienced what it was like as a developer to be vendor locked and forced into doing large scale updates based on my relationship with a particular vendor. And then I also saw what happened as the open source movement and basically changed my craft. Completely transformed the way that I work, the communities that I was involved in. Really, really an important sort of aspect to how I've grown as a developer. And so when I had an opportunity to really join in and do open source development, I was very inspired. Also by the mission of the company and how open source is such a close part of what the mission is.

As Curtis mentioned, I'm a recovering academic. I used to be a professor in computer science before I joined RStudio in El Posit just about a year and a half ago. And this problem of sort of technical communication, of sort of creating this mix of document and the computational content in a way that's reproducible, in a way that's easily shareable, that's sort of most impactful and visible for everyone. So this problem has been near and dear to my heart for easily 15 years, sort of like the entirety of my professional career. And so when I had the chance to sort of work on a problem like this with the team that had built R Markdown, that had built sort of like the standard solution for R, and in a way that is both open source and is targeting sort of the broader data science ecosystem, for me it was a very easy solution. It was just like, yes, I will do this. Can I find a way to contribute in any way I can? And so that's sort of how I got interested in open source and in Quarto specifically. And it's been fantastic.

I mean, I think I'll be brief. Certainly a lot of the sentiment that Al and Carlos shared was true for me as well. I think the one other dimension for me individually was that I'm quite inspired by the pursuit of improving scientific communication. And so that's part of what attracted me to Quarto was the ability to try to facilitate better technical and scientific communication. And to me, the foundation of that had to be open source. It was just simply something that was required in order to make that successful in those communities and to support that type of communication really broadly.

It was just simply something that was required in order to make that successful in those communities and to support that type of communication really broadly.

Installing Quarto for R users

The first question I saw that came into Slido actually a couple of days ago, it was actually a question that was posted to the RLIB issues asking about would Quarto actually end up on something like CRAN, where it's a bit easy to install for an R user? Is that something that you're thinking about or working on, or is it likely to continue to be the kind of separate way to separately install the CLI for Quarto?

Yeah, I think, of course, Quarto is built into RStudio. So it's distributable there. There is an R package available for Quarto, specifically Quarto R. And so that's installable as well. Certainly, our goal is to make it really easy for R users, obviously, to use Quarto. So where we're not doing so, we would like to do so. Now that said, Quarto uses a TypeScript runtime, uses a whole bunch of technology under the hood. So it's not merely an R package. It's quite a bit more than that. And so it does need all of that to be functional.

I saw that there was a question specifically about supporting use of Quarto in generating vignettes and other things. And I think that that's a slightly different matter, which is not something that's entirely within our control. From my understanding, I think the main issue there will be that if people want to use it as a vignette, you need to be able to actually have the full binaries run on CRAN. The main issue there is it runs on a lot of architectures for which we don't have a lot of control, like older architectures in particular, because Deno is a relatively new runtime. So Quarto is built on Deno, and Deno is a relatively new system that probably doesn't have a lot of support for older runtimes. We do a little bit of work on, for example, older versions of CentOS, but not on the broad support that you need from CRAN. So we would love to do something like that, but I think that will require the kind of effort that we're currently doing for other things at the moment. So I wouldn't count on that being around in the next year, for example.

Google Docs output

There's another question that was echoed in a question on Slido that was echoed in the Zoom chat as well from John David Smith. The question is, one nice output of Quarto would be to produce a Google Doc. The best current solution is not great, which is to create a .doc file and then drop it into Google Drive. Do you have any kind of support for that? And it was echoed in Zoom because a lot of teams, right, they work out of Google Doc, ShareDoc, and which people work out of.

Well, yeah, thanks for mentioning that. I mean, I think we've talked about different formats and in terms of, you know, our, you know, future backlog. And it's interesting to think about Google Doc and its relationship between like a publishing format, like something like you would see with Confluence or an actual doc format. I think we've talked about it a little bit, but not that much. And I too have used Google Docs and quite a lot before. So I do think it's something that's interesting for us to look into in terms of the actual like approach to publishing. I'm not really sure myself what the, what the format would be and how we would post it out, if it would be similar to what we're doing with Confluence or something else. But I think it's a very interesting idea.

We would love to support it. There's a certain amount of work making sure that everything works exactly how we would love a fully supported sort of system for Google Docs and collaboration to do that in like the right way. So again, that's the kind of thing that we want to make sure we do it right if we're going to do it. So I don't think we have short plans to announce anything like this, but it's certainly something we would love to be able to do. So we hear your pain and we want to address it.

And so just sort of to follow up on some of the solutions that people suggested. So some folks use track down as a way to sort of export in and out in a way that will let you do that. And it's not ideal, but at least you can sort of see the changes and you can actually like pull it back and forth. So there are some workarounds, but we know they're not ideal. So we'd love to be able to do something better. We just don't have any plans given the other things that we need to do at this point.

Lua filters and extension development

There's another question that I actually heard echoed as well ahead of time. The question from Matthew Markington asking about Lua filters and short codes. Lua filters and short codes are amazing. I'm interested to hear from the Quarto team, their approach working environment for developing in Lua in a way that enables quickly prototyping and debugging. This iteration is a point of friction for Matthew.

So I 100% agree with you, given that I had to essentially learn Lua when I joined the Quarto project, and I already joined when there were hundreds of Lua files. And I agree with you that the Lua experience could be improved a lot. And we are actually putting a ton of effort on this coming up. So one of the things that we have support for, and unfortunately, it's only if you're using VS code right now, but you can actually use, if you're willing to use Visual Studio code, which it's not RStudio, for example, for like developing Lua, you actually have, if you open sort of Lua files and filters, we have the ability of doing the kinds of auto completions that you get from, say, like TypeScript, right? So like type inference on template values, type inference on your functions, and sort of like reminding you that if you open a file, you need to check if the file was opened successfully and that kind of thing. And that helps a lot.

So we should probably do a better job of documenting how to get to that. And that's something we're working on at 1.3. But this kind of developer experience for Lua, specifically for sort of filters, short codes, extensions. So Charles has put a lot of effort in 1.2 and providing a really good solid support for extensions. And now in 1.3, we're sort of making it nicely sort of usable in terms of getting all of the intelligence that you can get out of Visual Studio code specifically.

I think the one other note to add there would be, I think, starting in 1.2 of Quarto, the preview server should now be hot reloading if you're changing filters inside extensions, for example. And so you should be getting sort of the ability to sort of modify filters and then see reloading right there without having to go through a whole render cycle again. And I believe that was starting in 1.2, but that was something that JJ added that made a huge difference in terms of extension development.

And I think the one other note that I think is worth throwing out there is we've done a lot of the development of the Lua stuff as extensions, and that's a useful way to test as well. Because so, you know, obviously, you know, that's one of the things to consider.

YAML options and documentation

Another set of questions kind of feeds into a theme that I saw Richard on Slido that asked a few days ago, is there a single documentation page for all the Quarto specific YAML options? And I think the theme of that fits into kind of documentation, like the Quarto Docs site is quite big. Is there any kind of advice that you guys have for people kind of engaging with that and trying to kind of like dive into those features?

It's both like a very strong point of Quarto. It's incredibly well documented, but folks are kind of curious if there's something more like a cheat sheet, for example, or something like that. Right. So we don't have a cheat sheet. And I would love to do something like that, given the ones that, you know, RStudio used to put out for like R markdown. And I'm sure Posit will do that for new libraries. We don't have one for Quarto yet, but that would be a fantastic one to work on.

The problem was so the question was about a single web page with all the YAML references. We would love to do something like that. We originally had considered doing precisely that as a single page. The issue is Quarto has a pretty big surface. So on last count, that was like on the order of a few thousand YAML options that you could use to configure. And that's not an exaggeration, it's over a thousand. So we can't like it's not the issue would be that people would miss the forest for the trees. Right. Like it would be hard to sort of see what's going on on those.

We do have this I posted on chat as Quarto.org slash docs slash reference. Or if you just go on the main Quarto web page, it's right on the main menu. It's reference. So that is actually the options reference. All of those are YAML. And so you can sort of get an entry point if you want to do something for document formats or for presentations, for markdowns, for execution and start from there. And that you have the list of all of those. So if that's a good entry point, it is not a single web page, but it's relatively comprehensive and it's generated automatically from our YAML infrastructure. So that gets sort of automatically updated. So it's certainly like up to date.

One thing that we've heard around our documentation as well is it may be a bit overwhelming in terms of how much there is and how it covers everything very comprehensively and very deeply. And it may be interesting and taking a look at creating on top of the existing sort of full doc set documentation sets that are focused on more specific cases and uses of Quarto. So if this is something that resonates with you, we would love to hear from you about that. As it's as Carlos said, the surface is massive. And so it can be difficult to know exactly how to come in.

OJS and Observable SQL cells

So from chat, we got loving Quarto and thank you Quarto devs and absolutely love the tool. So OJS is a total win and you work with DuckDB, it is great. Is there something like observable SQL cells on the roadmap?

So thank you for asking that, that's a very good question. To the best of my understanding, the SQL, so if you folks don't know what observable is, just to backtrack a little bit, this is a new JavaScript like runtime for web pages that offers reactivity, sort of like what you would get with React, but sort of as a lower level, higher performance. So it can do really nice interactive visualizations. And it has a shiny feel to it if you're not a shiny programmer. So everything is actually reactive and so you don't need to set up event handlers and things of that sort. So it's exceedingly nice.

And Quarto has support for the runtime for sort of like the execution model for that. Observable is built by Observable HQ, which is a startup and they make the runtime open source. And so they've been generous enough to do that. And we are super appreciative of that. And sort of we use that in Quarto. The SQL cell specifically, to the best of my understanding, is not open source. That's part of their value add proprietary cell for sort of navigating a database in JavaScript in runtime. And so they don't offer that as part of their open source offering. So we can't use that.

Sharing data and environment across book chapters

Another chat question from David Reinstein, what is the best way to retain data and environment objects across chapters in a Quarto book? Is there any path to enabling this? It's the main thing from R markdown that David is looking for in Quarto.

Yeah, I think I think the issue, if I understand it correctly, boils down to the fact that I think bookdown sort of conceptually renders the book as a single large executable document, whereas Quarto renders them individually. And so there's not shared context between the individual pages. So, you know, I don't I actually don't know what the best solution to that problem is. I think, you know, the one that jumps out to me straight away is includes and I don't know if Carlos wants to weigh on in this, but simply, you know, creating that shared context and set up cell in a in a file that's included in every chapter. And I know it's not ideal to have to include something in every chapter. That's the best thing that I can think of.

So, yeah, so one of the Charles said this is another issue where the difference between R markdown and Quarto sort of makes it particularly painful for folks that are used to the way that sort of R markdown and bookdown works, which was taking a single document. And running it all in a single context, which Quarto does not do. So Charles mentioned includes, which essentially are you can sort of just pick a cell and like put it on an include document and then just run it. And someone mentioned on on voice right now that that slows down because you have to re-execute that every time. So that's absolutely an issue.

One of the things that you can do is sort of unfortunately, it's sort of manual, but you can introduce some state and check whether your file exists and sort of not run it and sort of just return it from like, for example, an SQLite database or a data frame and sort of do the management yourself, which is an additional pain point. It's not ideal, but that's something you can do.

The other thing you can do and that's starting on version 1.3 is so this is something that just is hot off the presses. And Charles worked on this is we we can actually sort of run things and pull results from an existing notebook, from an existing IPyNB file. And so if you have a setup code that takes a lot of time, you can sort of set up a different Quarto page and render to a PyNB so that the result it generates is a notebook. And then we actually have a new short code that is on the documentation that you can just call the embed short code, which can pull parts of an existing IPyNB file without re-executing it. So it actually pulls it from the result.

And so this works for any IPyNB, whether it was generated by Quarto or whether it was generated by yourself or, you know, sort of from like an existing Jupyter notebook. And it just works like that. And so if you have a PyNB file that generates the result that you want to pull to a different page, that's a very nice way of doing it. Now, it is not as straightforward to pull, for example, data or things of that sort. And so it's not perfect, but that's the kind of solution that we're starting to work on is sort of how to reuse existing bits from other web pages and in this case from notebooks that we would love to sort of figure out the story. And currently we have the support for embed, but this more general sort of how to manage dependencies in order of execution is definitely something that we would love to improve in Quarto and future versions. We'll probably do some work on that next year.

flexdashboard for Quarto

So there is a lot of excitement about flexdashboard for Quarto. What are the plans for flexdashboard or replacement? It's our most common deliverable and not having it has stopped us from sharing with our team.

Well, yeah, I can I can speak to this. We we don't have an official Quarto as a team. So and the main reason why is we're we're trying to be very have a lot of agility and adapt as information comes in. And we saw that with 1.2 and 1.1 that as we were learning, we really needed to focus in on stabilization for the very beginning. The team has been talking about flexdashboard and it's on our mind and we've had recent conversations about it. So it's top of mind in terms of our our forecast.

Well, I think the one thing I can say is it has been flexdashboard has been on the roadmaps since pre 1.0. So I think we originally set out and said, OK, when 1.0 comes out, this is going to be great. It'll have like it'll have support for dashboards. And then we're like, OK, we didn't quite get that done for RStudio comp. But for 1.1, we'll definitely dashboards for 1.2 dashboards. You know, so I think it's it's it's right there. We know it's something that is necessary and we just have not quite managed to get there in terms of the work that we have in front of us. So, you know, I don't think we can commit to exactly when that will be there, except to say that we know it's something that is essential and it is sitting at the front of every time we talk about what should we be doing. It's sitting right there with us. So I do I do expect us to get there soon.

Quarto and Jupyter notebooks

And it's not quite a question, but I would love to just hear your thoughts on this statement. So someone on Slido posted that the biggest impediment for team adoption with Quarto is competing with iPython notebooks for Mindspace. And just welcome your thoughts on like, yeah, on that topic.

Well, I mean, I think ultimately we'd love to see as a complementary to notebooks in some capacity, you know, and so I don't I think notebooks have an important role in data science and in science. And so we don't what it doesn't need to supplant that it can merely be in addition to it. But there are advantages to Quarto. There are capabilities that Quarto has that notebooks don't have. And so for particular kinds of communication, I would highlight things like citations of bibliographies, cross references. You know, that type of feature is a feature that is something that Quarto adds to a notebook. And so you could either, you know, in the notebook based world, you could say I'm going to write Quarto markdown in that notebook and use Quarto as an engine to render that notebook. And you'll get resolved citations and references and cross references. And you'll get all the the Quarto goodness on top of that notebook.

You know, as Carlos alluded to, we're working on embedding resources from notebooks. And so that would let you take and use the Quarto document as a narrative focused document. And so focus on narrative and layout and appearance and embed the outputs of computations that come from notebooks right within right within your Quarto document. And so that lets you sort of use the two as complementary to one another.

No, I think that's I think that's exactly right. And I speaking from sort of, you know, I used to be a professor. I mentioned this earlier. And a lot of my students, when we were doing research, they were all using notebooks and PyTorch to sort of do their machine learning experiments. So I share the understanding of how convenient folks find notebooks to be. And one of the things that, right, like Charles mentioned, is sort of this issue of sort of complementarity. And so, right, the embed shortcode that Charles just implemented is sort of going towards that. And one of the things that we can do that maybe we should advertise more broadly is we can use IPyNBs as both input and as output in Quarto. Right. So I'm not sure, just sort of making sure that folks are aware that this is a possibility. But if you like type Quarto render and you give an IPyNB, we will convert that notebook to like Markdown, we will do all the processing and we'll produce all the outputs that you need. If you need to produce an IPyNB file, we also can do that. So you can take a QMD and you can render an IPyNB file that you can share with people that are entirely on the IPyNB ecosystem.

And one of the things that we can do that maybe we should advertise more broadly is we can use IPyNBs as both input and as output in Quarto.

Where to report issues and how to contribute

So a specific one from Slido, Jake asks, I'm not sure where to post issues on GitHub is an issue with the rendering button in RStudio, something for the RStudio team or the Quarto team? And then I guess more broader, like what is the best way of getting in touch? Like what sorts of advice would you give for folks who want to reach out?

I can answer that. So we are happy if folks are not sure where to post a GitHub issue posted on our repository, if we don't think it's the right place for it, we will sort of let you know, we will help you figure out where is the right place for that. But we would much rather hear from you folks that are having issues that we want to help then not hear about it because you folks have some hesitancy about where or whether you're doing the right thing. We would love to get everyone in the discussions. And so if you the main place where we have discussions, I think it's available posted on chat earlier is the discussions forum on the Quarto CLI repository on GitHub. And the issues for that same repository is where we do tracking of all of the problems. So if you want to take that as an entry point for these questions, we would be happy to take either and sort of figure out whether it's an RStudio issue or not. So please don't don't hold back on reporting bugs from us, which we do want to hear because you're not sure where to post them.

Awesome. And in terms of the community, like what sorts of things would you hope to see in future projects, co-contributions, like what is the most helpful and inspiring for you?

Well, so Carlos pointed to issues, that's issues are obviously helpful because it's how Quarto is actually being applied and the scope of what you can do with Quarto is so big, we need people doing all kinds of crazy things. I personally am really interested to see what people come up with for extensions. There's quite a bit of latent capability in the extension ecosystem, and it's one of the things that I do think differentiates Quarto from something like just pure Pandoc is the ability to really bundle and extend the capabilities. A lot of what is built in Quarto that we built sort of pre in the pre 1.0 world could potentially be built as extensions now. And we just didn't have that infrastructure at the time we were doing Quarto 1.0. So to me, there's a huge amount that people can do with extensions and we would love to see those extensions and promote those extensions.

And then even I think just today, just this morning, I merged a pull request from somebody and pull requests are, of course, always, always welcome. I understand and I want to acknowledge it's working on Quarto is not necessarily easy. There's a lot of different languages and a lot of different runtimes. And so just from a complexity perspective, there's a lot to take in. But even small, simple PRs help and we've gotten a ton of those. And I certainly eminently really appreciate that when people take the time to make those PRs to whether it's a translation or whether it's a code change, it's really, really welcome. I'd just like to add to that that there's a lot of very active members of the community now who are supporting us in issues, in discussions. And thank you very much. It is, it is, it's inspiring. And I think we're very grateful to have such an engaged community.

CSS, theming, and customization

But there are a few questions in the chat and the Slido on customization, CSS, being able to look at the gallery examples and, you know, make your website, your blog look the way that you'd like. But any kind of tips or feature, upcoming features on making like that kind of stylization easier?

So one that I will point to for 1.3 that we did and is available in the 1.3 build right now, it's not super well documented. But I think if you find the release notes for 1.3, there's a link to some better documentation. One of the one of the one great thing about Quarto is the grid system that it has that sort of lays out the page and lets you lay out different elements and have sidebars and things. And that's a great thing about it. That's also a terrible thing about it because it's quite opinionated about the size of everything. And so that's been a challenge for people, I think, who have different opinions about the size of things, not they don't share our opinions.

So starting in 1.3, we've tried to make it a lot easier for people to actually control the grid system and call the size and position, not necessarily the position, but basically to say, you know, how what do you want your widths and margins to be inside of our grid system? And that lets you make the content wider or make the sidebar smaller or make the sidebar wider. And we've got pretty simple ways for you to configure those things, be either YAML or SCSS that should cascade through the grid system appropriately. So if people have a chance to give that a spin, you know, I found it makes a really big difference for things like sidebars that have long text or other scenarios where you really get sort of you get some pain from the fact that Quarto has such strong opinions about how narrow and wide things need to be. So that's a simple, simple thing for people to play with starting in 1.3.

Aside from that, I think the one other thing that Carlos just did that is fun is extending our theming to Mermaid, which is really nice for using Mermaid diagrams. You won't if you're in a dark theme, you won't be confronted with a glaring, bright diagram, but instead a nice, consistent themed diagram.

So one of the things that we are working on for 1.3, so the Mermaid theming was one of those things that Charles mentioned, is actually sort of documenting and figuring out what are the CSS and SCSS variables that are available in general for a theme so other packages can use them as well. So we forward SCSS variables to proper CSS variables. So if you're just producing on your own custom JavaScript or your own custom Python output things like we know we're making, we're going through the trouble of figuring out how to make those available for you. So they're themed automatically and things of that sort. Rich Iannone, who's the author of GT, who is the package for sort of producing really nice tables, has been working with me on that. So we're looking forward to have the kind of like really nicely integrated support for theming that will work consistently sort of across packages so that folks that are authoring these can just actually have a consistent look depending, independent of like the theme they chose or the environment in which things are executing.

And one just one thing to note about the one other note about the grid system that's important to distinguish is there's really two resources that you you could use if you're really thinking about the core of grid system. One is just reading about CSS grid, which is what Quarto uses as a grid system and is available. You can just use CSS grid from within Quarto. Then there's if you look on our website under the documentation under article layout, you'll find essentially a higher level grid system that we've built on top of CSS grid that lets you sort of dock things to different positions in the page across the width of the page. It looks a little closer like what you might see as LaTeX geometry. So it looks a little more like that and is a slightly higher level thing that is more constrained, but could be easier to use. That does have the benefit of working across platforms, across output formats. And so many of those layout features are available in PDFs as well as HTML.

Closing thoughts

Thank you so much. So a quick terminology question. So David asks, when you are sharing your work with normies, what do you refer to the HTML hosted Quarto content? You say, have a look at my Quarto, have a look at my dynamic docs. Yeah, welcome. Any suggestion?

I think I just say web page. I think web pages these days are I think folks have been trained or expected that web pages do update themselves. Right. Like we're used to animations. We're used to the New York Times web pages have interactive. JavaScript in them that you can manipulate. And so I think web page kind of communicates. So if you want to say like my Quarto web page, if you're looking to give us a little bit of mind share, we'd appreciate it. But like I actually just use web page or my website that I built with Quarto or something like that.

My hope is that Quarto is powerful enough to sort of stay out of your way and let you think in whichever way you want so that it looks great. But in some sense, if you want to make something that is so customizable, people wouldn't even know it's Quarto. It's just incredible. Right. I want you to build the best web pages you can, not the Quarto web pages that look like Quarto. I hope our Quarto pages look good. But the goal is for you to be able to make the best technical content you can.

Right. I want you to build the best web pages you can, not the Quarto web pages that look like Quarto. I hope our Quarto pages look good. But the goal is for you to be able to make the best technical content you can.

Well, thank you, team, so, so much. Really appreciate you answering all these questions. We have I know that there are a ton more and I'm sure that we can get together, share them with you and, you know, just continue the conversation. For the last closing questions that we have is how do you release Quarto? How do folks know what's the latest and if they want to stay up to date, where do they go?

I think the best place to check is just the Quarto.org website. So we do keep that we keep the Quarto.org website up to date at all times. There's always a release, which is the last is the most recent stabilized version. And then there is always a pre-release available and that is basically hot off the presses. We work very hard to make those pre-releases very stable. And so we do we do try to make those sort of user runnable at all times. But those are hot off the presses. And so from time to time, we will let something slip into those pre-releases that maybe maybe doesn't deserve to be in there. So use those with a little bit of caution. But that said, like I said, you know, we run them all the time. That's what we anticipate. You know, we really work hard to try to make those high quality. So don't be don't be terrified of them, even though they're they're they're fresh.

Excellent. Well, thank you. Hope everybody has a wonderful day. We can really appreciate it. Thank you all. Thank you all for joining us. This has been great. This has been great.