 All right. So I have the super huge pleasure and honor to introduce our first keynote speaker today, J.J. Allaire, is a software engineer and internet entrepreneur. He's actually, I didn't know this, but he actually created the ColdFusion programming language and web application server a long time ago and then founded a slew of companies, including Luzit, which helped me lose 60 pounds, and RStudio. And today, J.J. is going to talk about Cordo, the successor of our markdown. With that, please take it away, J.J. Thank you very much. It's wonderful to be here. Yes, I'm going to talk today about Cordo, which is something that some of you may have heard some things about. We've had it in preview for the last year or so. And then recently, just a couple of weeks ago, we announced version one of Cordo at RStudio.com. So I'm excited to get the chance to kind of take you through in depth what the project is, how it works, and where we see it going. So at the highest level, what is Cordo? And you can think of everyone here, I would say, or nearly everyone here is probably familiar with our markdown. And you can think of Cordo as the next generation of our markdown. And like our markdown, it's an open source scientific and technical publishing system that builds on standard markdown. But it has some differences. One is that the sources of computations are quite varied. In fact, Cordo is built to be a system that is independent of a computational system. So whereas our markdown was tied to NIDAR, Cordo also supports NIDAR, but in addition, supports Jupyter as a system for executing computations and can, in principle, in the future, support others. Markdown in Cordo, as with our markdown, uses Pandoc. And there's a huge variety of types of output that you can create with Cordo, which I'll get into in this talk. And you can really think of Cordo. You talk about it as the next generation of our markdown. But it actually sits inside a much deeper and broader tradition of literate programming systems that started with org mode and an S-weave and has manifestations in many environments, including our markdown, but also not limited to it. So Julia has a system for this. iPyPublish, Jupyter Book. Lots of literate programming systems that handle computations. So Cordo sits in that tradition. And really, if you think about where this came from, really, as I said, it's the next generation of our markdown. It came from spending 10 years. In fact, we actually announced our markdown 10 years ago, 10 years ago in June. We spent 10 years building our markdown, extending the system, adding custom formats, adding features, making it a pretty deep system. But one of the things that has a little disappointed was that we spent 10 years on the system and it will only work with R. And if you think about scientific discourse and scientific communication and scientific computing, there's a lot of different languages and runtime used. In particular, the Jupyter ecosystem is extremely popular. And so what we really wanted to do was say, after 10 years, could we reimagine our markdown and reimplement it in a way that is not exclusively tied to R and also at the same time, kind of smooth over many of the rough edges that we didn't end up loving about our markdown. And so we think about, broadly speaking, the goals of the system. One, obviously, and something we've benefited a lot in the R community from is computational documents, which have the principal benefit of both automation and reproducibility. And I think we've already seen in the R community how much something like R and markdown can help with reproducibility. We kind of hope to make these benefits more broadly available for lots of different types of scientific publication. This one, you'll take a minute to grok what it's trying to say here, but as this idea of scientific markdown, and you think about the different systems you might use to prepare a scientific manuscript, and word is probably the easiest to get started with, but as many of you probably can appreciate as you start adding in computations and figures and figure panels and cross-references and citations, it gets very unwieldy very quickly. Latex actually is harder than markdown and harder than word, but actually, once you learn it, it has really elegant solutions for a lot of these problems. And so we kind of look at markdown as you can see from this graph. It starts at a level of difficulty that's closer to word than latex, and then what we would like to do is markdown can be made to do all the things that latex can do, but it's not necessarily a very smoother, straightforward process. So really what we'd like to do is have that green line start a lot closer to where word starts and have a curve that's a lot flatter the way you see latex displayed here. So that's a significant goal of the project. And of course, single source publishing, the idea that for a lot of scientific discourse, we need to create a print output. We need to create PDFs. We want to create content that works well on the web, on mobile that fits into content management systems. And the idea of having a single set of source code that targets all of those things. Again, we're familiar with this from our markdown, but we'd really like to really deepen our commitment to people being able to create publications from a single source. So I want to address, hopefully I've addressed a little bit in this kind of preamble why we're building a new system. Why isn't this just a new version of the our markdown package? It's this breadth of languages and runtimes used in scientific discourse and obviously the popularity of Jupiter, the ability to grow into other environments later. And I think you can really think about it. Once when you learn more about the system, you'll see that it has a substantial resemblance to our markdown, even to the point where you can actually render most existing R&D files with Cordo. We're really trying to bring our markdown to everyone. We're trying to make it as broadly available as possible. But at the same time, make it fit into the computational environments that people are already using. So I want to start with this idea of Cordo engines. There's several engines that come with Cordo today and others are possible in the future. The principal ones I want to talk about are NIDR and Jupiter, but we also have implemented a support for observable JavaScript, which I'll talk more about in a minute. If we look at the NIDR engine, this diagram is actually an adaptation of the diagram that we've used for a long time to explain how our markdown works. And in the case of our markdown it was RMD to NIDR to markdown to Pandoc to output. And really, Cordo works the same way. It's just it's a QMD file. And the code that's sort of orchestrating the whole process is Cordo rather than the R markdown package. Again, we're using NIDR under the hood. So everything you know and love and use within NIDR still works. And as a result of that, most I would say the vast majority of existing RMD files you can render on modified. So you can just say Cordo render my RMD and it will work and give you the output. So we've tried to make it extremely compatible with what's with the code that you've already developed for our markdown. I want to point one notable difference is that the syntax for chunk options has changed. We had a lot of struggles with the chunk options being on the same line. As soon as you started to create longer captions, subcaptions, alt text, you ended up with very long and difficult to edit chunk option lines. And so we're actually using YAML inside the chunks. As you can see demonstrated here. Note that you can still in when you're using NIDR you can still use the old syntax that still works fine. So it's just sort of added in that case. But in the case of Jupiter, that's the only syntax that's supported. And here's an example of using the NIDR engine. Again, most of this should look quite familiar, but you'll notice we've got this support for cross references here and the cross references resolved. You can see we're using the new style chunk options and where we've taken advantage of a code folding option that you can see the code is displayed hidden, but expandable. So that's using the NIDR engine. The Jupiter engine, it kind of the topology of it and the architecture of it is the same. You start with a QMD source file and instead of sending it to NIDR, you send it to Jupiter and Jupiter runs the computations and produces Markdown. Jupiter, the Jupiter engine will support any other language that has a Jupiter kernel. So the ones that you probably most frequently think of there would be Python and Julia, but I've seen people have, there's a bash kernel. There's an EPL kernel. There's a C kernel, there's a SAS kernel. There's lots of different kernels and the Jupiter engine supports all of those. And so with Jupiter, you can use a QMD file which is just like an RMD file Markdown with chunks, but you can also, if you have existing Jupiter notebooks, you can actually render those Jupiter notebooks directly. So I think I'll just quickly show you what that sort of hello world equivalent in Jupiter looks like. Similarly, we've got chunk options in YAML. We've got this time a Python chunk and you see the Python code and there it is displayed to the right. And as I mentioned, it's actually possible to take an IPI-NV file and render it directly. So if you're using Jupiter lab or Jupiter notebook or VS code or any other editor that produces notebooks, you can just, you can say Cordo, render, notebook.IPI-NV and that works fine. In that case, it's presumed that the execution of the code has actually already occurred inside your notebook editor and so no execution occurs by default. You can actually change that default and have the IPI-NV be executed as well during rendering. And in terms of tooling, I'll get into all the different tooling options later, but it's important to note that if you're using Jupiter lab or Jupiter notebook, you can very easily load it up and then just run Cordo preview and then you'll have a live preview so that as you work with your notebook in Jupiter lab or VS code or what have you and save it, the rendered representation will update in the browser. I wanna briefly talk about observable JS and for those of you who don't know about this, this was actually a set of JavaScript extensions that were created by Mike Bostock who also created D3 and you can almost think of observable as sort of like a shiny for JavaScript and for D3. I'll give you a brief example here. This is something similar to what you might see in a shiny application when you have a slider that affects a visualization. And the interesting thing is that this OJS is actually all done on the client side. So there is no server. This is all client and written in JavaScript and you kind of see that it's a very, it has a very sort of shiny like syntax where you create an input and you say view of and now you can reference that variable when you're computing your outputs and it all kind of works reactively. So that's an exciting development. We expect to see lots of people doing interesting things with that over the years. So one of the things that we've emphasized, one of the regrettable things in our markdown was that we kind of built this ecosystem up over 10 years and you can see many of you have probably used one or more of the packages on the left and if you look at the features on the right, all of these packages had different ways of doing all these different things. And so which we learned one, it didn't necessarily mean that what you learned translated to the others. And in some cases, like in the case of bookdown, you can do cross references, but then it was challenging to bring those cross references like into the Tufti format. We tried to build some interoperability there over time, but the fact that we sort of had all these forks in the R Markdown ecosystem when you went beyond the core R Markdown syntax really ended up being quite confusing for people. So one of the things that we've done in Cordo, and I'll go back here, is to create kind of a shared core syntax for these commonly used features that are always the same across all formats. So some examples here, code folding, we now have a code fold attribute that you can enable globally or you can enable per cell and it'll do this code folding treatment. Again, that works in presentations, it works in HTML documents. It automatically knows not to admit HTML and when rendering to PDF or DocX, et cetera. So that's code folding. Tab sets, similarly, we've got a single syntax for tab sets that kind of works across all formats. You can see it's, you take a div and mark it as a tab set and then just use headings to indicate the different tabs that you have. And the other thing is theming. And this is actually a case where we want it to be compatible not just within the Cordo ecosystem, but we also wanted to be compatible with the R Markdown ecosystem. So we worked with the Shiny team, who's got a big investment in something called BSLib and we wanted to create a universal theming system so that you could create a single theme file, for example, for your company or organization or project. And that theme file would be able to successfully theme R Markdown documents, Shiny applications, flex dashboards, as well as Cordo documents, Cordo websites. And this is something we're pretty excited about. We've also got the same core syntax able to theme reveal JS slides. So just to show you a brief example, this is an example of using a pre-built theme and then overriding it with some various things. And this is sort of this common theme file. So again, these theme files can work both with your Shiny applications and with Cordo and with flex dashboards. So hopefully that'll provide a nice avenue of enabling people to create very consistent and customized theming for organizations. And then we've implemented a huge number of new features in Cordo. And I'll actually go through examples of each of these, but that's one of the things, I think one of the takeaways is, while we're gonna continue to maintain R Markdown and we're gonna continue to fix bugs and make small enhancements to it, and we expect to support people in running R Markdown documents far into the future, when we create big new features in this ecosystem, we're gonna put them in the Cordo ecosystem and kind of try to put all of our technical wood behind that arrow. So this is an example of some of the features, but there will be many, many more to come over the years. So let's dive into a few of these. One is cross-references. And for those of you who use Bookdown, you've got access to a similar facility, but the idea here is automatic resolution, numbering and resolution of cross-references across formats. Latex does this very well natively, but this kind of brings the same syntax to allow you to create cross-references in other formats, including Word and HTML. You can cross-reference figures, tables, equation, sections, theorems, lots of different things. So this is an example of what the rendered cross-references look like, and I'll show you quickly what the Markdown for cross-references are. Here you can see a div that has labeled Fig Elephants, that has two sub-figures in it, which each have their own label. And you can see here I can just reference these and it automatically does the sub-refs. So that's just our static images that you might have. Here I'm actually using another attribute of a div to say I want you to lay out the contents of the div in the two columns. And then the same principle for computations, you provide a label for you, or I'll do the knitter example here. You provide a label, which is just like the label, chunk label and knitter. You provide a caption, and once you've done that, you can then resolve the cross-reference by referring to the label, and you can see here, it's done that, and it also works for sub-caps and chunks that produce multiple figures or multiple plots. Here you can see I've created a label and a master caption, but I've also created two sub-captions and specified two column layout. I show my plots and then you can see again, it's resolving the main figure label as well as the sub-reference, the reference to the sub-caption or sub-figure. And tables has the same sort of thing with sub-tables side by side. You can have multiple tables. You can have computations that produce tables that are cross-referensible and you can even have the same scenario of multiple tables that are produced and then get their own resolution and equations as well. So cross-reference is something that works globally. It works in any standalone webpage or WordDoc or PDF and also obviously it works in books and in the case of books, when you have an HTML book, which I'll show later, it'll resolve the cross-reference links across chapters. There's quite a few features for advanced page layout. If you've worked with Latex or the Tufti package in the R Markdown ecosystem or even the Distill package, you're aware that oftentimes Latex documents can make use of the margins for both displaying figures as well as for content like footnotes and even things like figures in the margins. Again, we supported this in the Tufti package, the Distill package and Miwei had a Hugo theme called Hugo Pros that had some support for this. So what we've done in Quardo is made that available everywhere and it's a part of all formats to show you an example of some of the things that are possible. When an article is rendered or laid out in Quardo, the width of the article is used as sort of an optimum reading width, an optimum comfortable reading width, which is about 700 pixels. And that leaves margin space that's used, as you can see here, for navigation and a table of contents on a website. But you can also make use of the margins. For example, if you have a figure and you can see those side elements just fade away when these come into view. You can, for example, have a figure or an image or table that you want to use a little bit of extra space. You can outset it, you can outset it even further here to the page level. Same kind of thing works with a table where you want to have a very wide presentation of a table. You can actually go and full bleed things if you've got things that you really want to make sure you use every single pixel or sort of a full bleed with an inset. And that's using the margins for kind of wider form content, but you can also place content in the margin. So here we're placing a figure in the margins, we're placing a table in the margin, equations in the margin, and you can even arrange to have footnotes or even references placed in the margins as well. So this is really exciting. We've seen people do really, really cool stuff with this already. And we think this really opens up a whole lot of possibilities for making documents and communication more effective. I alluded to this a little bit before, but the idea of figure panels, if you're familiar with like patchwork or cow plot, you often need to layout content figures plots in some sort of a grid. And what we've done here is we've actually generalized that. So you can use layout attributes on a div and essentially say within this div, I want to break my content across rows and columns and how, why do I want each column to be? Do I want to have any white space in between? There's, as you've seen before, a shorthand syntax layout and call, which I used before. And it also works as I showed before with code chunks. Let me see if that's, I think I've already shown this. Yeah. You can say, for a given code chunk, you can say lay this code chunk out with two columns, but you could also provide a custom layout if you had three figures, for example, like we have here. And again, this is similar to how cow plot and patchwork work, but it's very general because it can actually be any content. You can even have, you know, you can lay out equations this way or a table and an image. Any kind of markdown content can be laid out with this framework. And the layouts work right now in HTML and PDF as well as in documents. Callouts are a really effective way to denote special content, either content you wanna make sure the user pays attention to or perhaps content that you wanna recede a little bit and make it clear to the user they don't necessarily need to pay attention to. So there's different levels of callouts. You've probably all seen these reading technical books. And we've made these callouts work both in HTML but also in PDF word and in EPUB. I believe they also work in reveal JS presentations. We also have native support for diagrams and there are two flavors of diagram that we send. You can see the syntax for diagrams is very similar to kind of the syntax for embedded R or Python code where it's an executable block, except for in this case, the execution is being handled internally by Cordo rather than farmed out to Nitter or Jupyter. Here we have a mermaid diagram and you can see it lays out the diagram and then we also support graph as diagrams natively. Mermaid, if you're not aware is a newer project that is now also supported on GitHub. And so you can put mermaid diagram code inside GitHub, wikis and issues and things like that and it renders the diagram. So we expect that to be a pretty broadly adopted standard for diagrams and of course graph this has been around for decades and lots of people are able to do great things with that. So diagrams are natively supported. We also have a extension mechanism and there's various types of extensions that you can build right now. I'll give a couple of examples, but short codes are kind of things for including content like including font awesome icons or including videos, things like that. Filters let you kind of add new markdown syntax for extended features and formats are custom formats. So just to give some examples, there are some built-in short codes that we have, I won't focus on those, but there are a few short code extensions that exist now. As I mentioned, font awesome and video and then fancy text is, that doesn't work, that's fine. Fancy text is for including like LaTeX and BibTeX correctly formatted networks in both HTML and PDF. Filters are a way of introducing kind of new markdown features. You can think of it that way. Let's see if I have an example. Yep, so we have some examples for automatically syncing tab sets. So if you, in these examples where it says R in Python, if you click Python, the Python tab on one part of the document, then the tab flips and the other parts of the document, an extension for outputting custom LaTeX environments, an extension for doing lightbox images or lightbox treatments for images. So this is really a powerful mechanism to sort of extend the core markdown syntax of Cordo. And then custom formats are similar to R markdown custom formats where you can create new output formats that bundle together templates and style sheets and maybe even filters and short codes. And we've used that, I'll talk about that briefly to enable us to create formats for professional journals. So I definitely encourage you to take a look at extensions. The Cordo team has created a bunch of extensions and I'll give you a link later on to another website that sort of aggregates a list of available extensions. Another big investment we've made, those of you who've used R markdown extensively have probably struggled with YAML where you aren't quite sure why things don't work and maybe you've got one small bit of YAML that's in the wrong place or has the wrong syntax. Maybe you get an error message that's completely indecipherable. And what we've tried to do with YAML, I mean, it's really amazing that you can use kind of configuration properties to drive a lot of behavior but it can be incredibly frustrating. And so we've made a couple of investments. We created a schema for schemas for all of our YAML and we've used that to build both code completion as you can see here and that works in our studio as well as in VS code. And then diagnostics where if we know that your YAML is gonna resolve into an error, we're gonna flag you on that inside the editor. Again, that also works in both our studio and VS code. And then similarly when you render, if you have bad YAML, we actually will create an error that says you have bad YAML you cannot proceed. And this makes sure that all of your YAML pretty much as soon as your document renders, you know your YAML is clean and valid and not the source of any problems. We've also created an integrated publishing facility, Cordo Publish Command that makes it very easy to publish content to lots of different services. We actually have a new service called Cordo Pub that lets you publish blogs, websites, books, presentations. That's a free service. We also have support for publishing to GitHub Pages if you're using GitHub or GitHub Enterprise, support for publishing to RStudio Connect, and then Netlify, which is kind of a professional publishing platform. And it's also important to note that, content created from Cordo, websites or books, which I'll show in a minute, it uses standard formats. It just creates a directory on disk that has your site or your book. And so you can actually publish anywhere. We've just provided some enhanced tooling for these environments. Okay, I wanted to touch briefly on some of the advanced formats. And this kind of gets into the territory of packages like Distill and Blogdown and Bookdown. And just touch briefly on kind of what we've done for each of these. Cordo websites are significantly more flexible than on Markdown websites or Distill websites. I'd say they're on par in terms of flexibility with Hugo websites, but I think they're significantly easier to use. You can have, you can arrange your, you can have arbitrary depth of content and organization, multi-level navigation. You can provide full text search. I probably can't get into freezing computational output, but that's worth taking a look at in our docs. And we've got lots of examples of websites that people have built. A Cordo website is built with Cordo. Someone has ported the ARM manuals. Let's see if I can share that. Yep, ARM manuals. Lots of different, you know, here's a blog that's really cool. So lots and lots of Cordo websites. Yeah, course websites. Very flexible and very powerful. Books, you can kind of think of books as sort of an instance of a website and that you can, the HTML version of the book looks, acts and feels just like a Cordo website and it is in fact a Cordo website. But at the same time, books can also be rendered to single file formats like PDF, Word and EPUB. And again, as I said before, in the case of HTML, the cross references work across chapters. So again, we've got an example of a few different books. You know, here's the Arthur Data Science book in Cordo, you can see. And then this is interesting. This was, I can do this again here. This was a book that was created from, I think the source code for this book is basically like eight Jupiter notebooks, but it's all rendered as a book here. Blogs, again, is sort of a special case of Cordo websites, but they have the ability to generate listings of posts and RSS feeds and a customizable about page. Our blog is running on this and you can see some other blogs here. You can see Matt Worthington's blog. This is the listing page and then you can see his articles, that and you've got support for banners and categories. So you can see he's using the margins. So very easy to create blogs with Cordo. And then presentations. We've tried to create a really deep feature set for presentations. It's based on Reveal.js, but we've heavily customized it to kind of optimize it, optimize it for presenting scientific content. Lots of features and many features inspired by Zerengen Extra. I won't go through the whole thing, but there's kind of a demo slide deck that will show off different things. You've done a lot of things with code. Here's an example of transitions with code for when you're teaching, line highlighting. There's lots and lots of very cool features in here for transitions and fragments and goes on and on. So I won't believe in that, but definitely check out Cordo presentations. And then journals, as we said before, we have a custom format system that's designed to create articles for publishing in professional journals. And the idea here is who, while at the same time take the native latex templates that are provided by journals and be able to produce latex that is derivative of that, but at the same time have the articles be publishable with HTML by using spans and divs to apply formatting, in which case they're correctly resolved to latex macros in the latex case, but then resolve to CSS for HTML publishing. There's also a schema for authors and affiliations so that you can express that data once and then have it automatically formatted according to the styles that different journals use. And then citation style language also kind of abstracts over how citations are rendered and presented. We have a whole section on our website about journals and we've actually created a bunch of journal formats that you can take a look at and play around with. And then we also describe here how to create your own formats. And this is for professional journals, but it's also, you might just want for internal use, want to create a format that makes very sophisticated use of LaTeX, but allows the user to author in pretty straightforward markdown. I guess I can do one example here if this works. Here's an example of a rendered JSS article that was created with our JSS template. Kind of formats code and everything, tables and everything the way that journal expects. All right, I want to talk briefly about tooling for Cordo. With our markdown, we made a huge investment in tooling in the RStudio IDE. And obviously we're doing the same for Cordo, but we're also trying to broaden the tooling story so that it works well, kind of no matter what tool you prefer to use. At the kind of foundation of it is the Cordo CLI. That's kind of the core component that drives Cordo rendering. And this, the Cordo CLI, which you can download here, includes Pandoc in it. So it kind of has everything needed to render markdown. It's a system level component, sort of like Git. And it also happens to come with the latest versions of RStudio. So if you have the July version of RStudio, Cordo is embedded in it. So it's still kind of very simple and straightforward for our users to use Cordo, but then for those who want to use newer versions or control what version they're using or use it outside of RStudio, you can download and install the Cordo CLI. If you want to render documents with R, you'll need the Nitter package. And if you want to render documents with Python or Julia code, you'll need to install Jupyter. And then the RStudio IDE, I would say the current release, the July release has Cordo tooling that is definitely on par with our markdown tooling. We've tried to do all the same things in terms of rendering and previewing and publishing and creating new documents and projects. That should all be there. We've created a VS code extension that has a lot of features. So if you're an R user and you prefer VS code, or if you're a Python or Julia user, we have a lot of things you kind of may be familiar with from RStudio, integrated render and preview, syntax highlighting, executing cells, executing R or Python or Julia cells, completion, completion for citations and cross references, lots and lots of tools here. So I definitely encourage you if you're a VS code user to check that out. And again, as I mentioned before, for JupyterLab, we don't have a plugin, but we don't particularly need one. If you're running JupyterLab and you run Querto Preview, then every time you save in JupyterLab, you'll get a re-rendering of your document. And then it's also important to emphasize that Querto Preview is something you can run from the shell and use with any text editor. So if you just run Querto Preview on your project or your document or your notebook, then every time you save that document in any editor, it will automatically reload. In addition to that, we have implemented some extensions and the community's implemented some extensions for it's kind of popular editors. And I know that our Emacs extension integrates with PolyMode and ESS. And then of course we have the visual editor, which you may be familiar with from our markdown. This has actually been available in RStudio for a couple of years. The visual editor, I can go briefly into this, provides what you see as what you mean, kind of interface for authoring Querto file, Querto and our markdown documents. And this is, I would say for people who if you're writing long form prose, it is incredibly pleasant to work in the visual editor. If you're working with tables and resizing images, it's really pleasant. So I think we found that very experienced, our markdown users have enjoyed the visual editor. And I think it's also smoothed over learning markdown for beginners. So that's currently available inside the RStudio IDE. And that's available both in the February release and as well with the July release. So I'd love to hear questions from folks about Querto. I do wanna let you know about some resources you can use to learn more about Querto. I've posted these slides at the URL listed there. I'll leave this up on the screen for a little bit for people who wanna make sure that they get that. And I can put the link in the chat as well. Let me just get that. But the Querto website has lots of resources for getting started. There's a nice tutorial actually. I'll show you what that looks like here. Depending on what tools you use. So if you're an RStudio user, there's a tutorial for RStudio that kind of walks you through how to do everything and talk a little bit about the basics as well as computations and authoring. But then that also is covered for other tools. The user guide kind of provides a comprehensive top-down reference to all the things that you can do with Querto and how to use them. And there's a highly recommend this website or it's actually it's a Git repo that kind of in the readme collects links to things that both educational resources, extensions, videos, et cetera, kind of for learning more about Querto and doing more with Querto. And then finally, we had quite a few talks about Querto at RStudio Conf in 2022. And those talks are now available online. So again, if you get the link to the slides, they'll have the links to all these talks. And I strongly recommend checking those out as well. So I am going to stop sharing, I believe. And then I'll try to put the link to the slides in the chat here. Let's see, here's the link. Okay, would love to hear questions if people have them. I'm not sure, Stefan, how you like to organize questions. Yeah, no, that's a great question. I'd like to organize questions. I should probably have mentioned this earlier. There is a Q&A function right next to, this is one of the pain. Oh, I see it, I see it, wonderful. And so what I'm gonna ask you guys to do, starting with the next presentation, when you have a question, put it into the Q&A because then people can also rate it and we can kind of go down the questions in a priority fashion. However, for now, we actually do have quite a bit of time left for questions. So what I'm gonna do, so I'm gonna start with a Q&A and then I'm gonna just go down the chat and see what happens. Sounds good, sounds good. Great, so Raymond Belize is asking, what's the URL for the slides? I think we answered that. I put that in the chat, yep. Is there a plan to add quarter or support or integration for the Learn R package and then three pleases afterwards? The Learn R package makes very heavy use of a lot of hooks in our markdown. So we could do something like the Learn R package and probably well at some point, but literally the Learn R package working in Cordo, that's probably not something that's gonna happen soon. I'll be honest about that. Okay, then John Rubin is asking, could you talk a bit more about what's required for doing mermaid diagrams? Yeah, so a mermaid diet, you basically can just add that mermaid cell or chunk. We have the mermaid JavaScript runtime as integrated into Cordo, so there's no other requirement other than putting the mermaid code in there and rendering. I know that our studio and VS Code both actually have some support for previewing of mermaid diagrams. There's an option for, if you wanna include mermaid diagrams in like a PDF, that actually works. We actually will use and sort of use your local version of Chrome to kind of take a screenshot of the mermaid diagram and put that inside a PDF or a DocX. So mermaid diagrams should generally work cross-formats, even though they're kind of fundamentally web technology. Okay, great, more questions are filing in. On your Red Hat Linux install with Cordo, do you need Jupiter installed to be able to run a quarter report with both R and Python? Good question. No, I mean, basically, if you're using NIDR with reticulate, if that's how you're doing your Python, then you don't need Jupiter. You can just continue using reticulate. So no Jupiter requirement if you're doing like a hybrid R and Python document. Okay, so I'm gonna continue with one of my questions, and then I'm gonna jump back into the Q and A. So the visual editor, RStudio visual editor has been transformed for how I do data science, data science teaching, most of all things on how accepting people are of using RStudio as a platform to do stuff here in medicine. What I'm wondering is whether there are any plans to ever do something like that but for presentations? Is there gonna be a visual slide editor? Yes, we're gonna do quite a bit with the visual editor and you will see it outside of our studio as well. So you'll see it in just in the standalone web browser, maybe in VS code. And part of that work will be to create a slide editing mode that will be more traditional. So that's, we're gonna work on that. It is technically pretty demanding to get all that done but it's definitely on a roadmap in our plans and something we will ultimately do. Awesome, okay, so there's a few more questions. Fun question for our mark done, we knit a render report. What is the equivalent term for running a quarter report? Render, everything's render. You'll see that in our studio it says render, quarter render, so it's called render. Any suggestions on how to convert a blockdown-based website to Quarto? If I'm not mistaken, YAMLs are quite different about how they're changing. What I would do is I would just start, get your Quarto website started and build, kind of create the nav structure you want with kind of just like an empty website. And then I would just take the, really the thing that you're gonna be able to convert are the RMDs and the MD files. And you wanna pour the, you're not gonna be able to, there's no real viable like automated conversion from one to the other because Hugo is a very, very different system. And so it's not just like, oh, rename a couple of things and run a converter. But I would just say, get your new website, arrange how you want it, and then just take the individual articles and then pour them over. So start with a blank slate and then transfer your content. Yeah, yeah, that's what I'm saying. Well, Susan Holmes is asking, how easy is it to tailor to PDF for print books which have also been made in HTML? What do you recommend? Yes, yes. So if you look at the the Cordo journals section of the website, that really gives a clear, and as well as some of the examples of journal formats we've created, that kind of gives you a roadmap for how we think about doing this. And really the key is, we've tried to make some of the grid system and layout system available for both HTML and PDF. And we tried to emphasize using more abstracted divs and spans that will work both in PDF and HTML. I would say, and a lot of those formats we do show we have HTML versions along with PDF versions. So I think with some concerted effort and care, you can make books that work really, really well in both HTML and PDF. Okay, and I think there's probably some examples out there where this has been done. There are examples. And we are, and it is still, so we are using XELate Tech. So it does use LaTeX. We are going to invest in the next year or so, some more in page HTML, which people may be familiar with from page down. And so that's another way to get to PDF where you're not using LaTeX, you're using kind of HTML to create, to agree high quality printed output. So that may be another path for a book. It really depends on if publishers are looking for LaTeX, then that's not going to be an option. But if the publisher says, just give me a PDF, it's hard to say. But so we recognize that there are pros and cons to LaTeX versus like page HTML. And so we'll ultimately support both. Mikhael asks, would Quoro be able to sometime generate documentation websites for our packages for Oxygen, Python, Doctrine, and Julia? Yes. So there is already a project called EcoDown. That is, that's used internally by our studio. It's a public open source package, but we haven't promoted it a lot. And the concept of EcoDown is like, it's the notion is there's like an ecosystem of packages. So in the case of like TensorFlow, Spark, Torch, where we have a whole bunch of different packages that we want to put a website together, but also have the reference and everything. So EcoDown allows you to do that and actually uses, it uses like the package down config file to kind of drive how everything works. So that's an example. And I do know there are some people just looking in the RStudio Slack internally working on doing a Doctstring based thing. There's at least a couple of people trying to figure out how to do that well. So I'd expect there will be some way to do that. We currently don't have anything in Quoro proper, but then there are all these other sort of external projects that are working on it. I see. So package down doesn't currently support it? No, but EcoDown kind of basically kind of uses package down. So EcoDown just sort of says, okay, you have package down, but there's seven packages. And so you want to have all those packages. Also you want to have like integrative material as well, like the TensorFlow is a good example. So. Raymond has another question. Is there actually a interest in this as well? Is there a plan for adding word like track changes for quarter docs for our colleagues? Yes. Colleagues who don't know get. Yes, absolutely. Where we're going to work. That's like that's sort of the vector of the visual editor to sort of make this whole world of scientific markdown accessible to people who are not coders or, you know, that is a huge priority for us. I want to reiterate that as a clinical researcher myself, this is track changes is completely essential to my workflow. Yeah. And where we're going to, we are going to definitely work on that. And then Joe has a question that I think you can probably answer in two sentences. What is your big picture vision for quarter? Well, I think we want to transform the way people do scientific communication. And I think that is what I focused on today sort of at a practical level, how you incorporate computations and are reproducible and do multi format things. But I think there's a lot of innovation that is still to come by by various communities about how scientific communication and academic publishing work. And we'd like to be a part of eventually be a part of facilitating some of that innovation through our tools. Yeah, so I want to follow up on this real quick with another question. So there have been some efforts to try to encapsulate reproducible environments in a fashion that make it easy for peer reviewers or for colleagues to rerun the analysis. So one, I think Code Ocean has capsule and then there was the R OpenSci community put together. I don't remember exactly what it's called, Binder or something like that. So I'm wondering if that's something that you envision is going to be something that CoroPub is going to support or is this going to be something that we're going to use WebR for? I think, oh, that's a good, yes. So I think there's, I think right now Coro is kind of orthogonal to all that. You can integrate Coro with those workflows. I do think though that if we can get, this goes back to the previous question, if we can get a lot of people using Coro and kind of standardizing on that as the way they write their documents and collaborate over documents, then we definitely have a chance to facilitate, to make it sort of this pit of success idea, where we say, oh, I'm already using this, the Coro online collaboration system. Oh, look, it's really easy to map my work to a container and let other people reproduce it. So I think once we have kind of the writing and computing and writing workflow, then we can explore making it like really easy to adopt some of these other workflows. Yeah, I love this pit of success idea. And I think one common workflow that you'll see if people use in our medicine is that we really, we're really big fans of RedCap as a data capture solution and then getting data out of RedCap into tidy tables and then analyzing the whole thing reproducibly in a Coro document, I think is what I at least envision to be a workflow to be. And it would be really great if you could create a Coro project that already anticipates that this is the workflow that you're gonna use. That's right, yeah. Cool, then Peter Higgins is asking, will most of the formats from articles get ported to Quarto? And will the interactive web exercises package which works in book down work in Quarto? So we, yeah, we've done about, there's 40 formats in articles and we've done about six of them. I will say that some of those articles formats are very hard coded to just LaTeX, like they're not thinking about the web, they're using LaTeX macros everywhere. And some of them are like a version of the format that was good for the person who was creating a paper but isn't super general. So we're taking more time to implement these, so they're more expensive. So we would like, we need help with that basically, I would say. I think we've created six, we're gonna continue to create them, but we're also gonna be cultivating others to help out with that. So we'll try to set some standards for like, let's make sure this can definitely target HTML. Let's make sure that it uses the author and affiliation schema correctly, et cetera. And then in terms of web exercises, it's, depending on what that uses, I don't know what underlying tech that uses if it's some kind of a HTML widget or what have you, it's likely that it will work, like HTML widgets do work. We have a version of Shiny that works inside Cordo as well. So probably, and certainly, yes, we would want either literally web exercises if we can get it to work or something like it. Cool, and then Peter's shooting a comment, more than a question, we'd love to see Docker containers for RedCap scientific project become a bit of success. So yeah, Peter and I are one mind here. Great, so I don't see any additional questions in the Q and A. Let's see if there's something in the chat. We have another four minutes to the break. All right, so Frank Carroll says, outstanding presentation. Quoto has already been a game changer for my work. That's awesome. Let's see. There's something there. Okay. All right, I think if there's no more questions, then I wanna thank you so, so much for coming and giving this keynote address. I think a lot of us are very excited about Quoto. So thanks for coming and giving us the rundown and I'm really looking forward to what you guys are gonna come up with in the next year or so. I'm even more looking forward to seeing what you all do with this stuff. Awesome, okay. It's pretty cool to see already, so. Sweet, so we're gonna break until 32 after the hour and then we'll come back together with the next presentation. Great, thanks.