Meetup | Deepsha Menghani, Microsoft | Create Your Data Science Portfolio with Quarto
videoimage: thumbnail.jpg
Transcript#
This transcript was generated automatically and may contain errors.
So in the data science hangouts and meetups, we repeatedly hear about the importance of showcasing your work from data science leaders across every industry. So whether you're thinking about building your personal brand to break into data science, transition to a new role, or maximize the impact of the work within your current position, you need to make it easy for others to explore your data projects. However, putting projects together in a clean format and maintaining them can be difficult.
So this is something I'm really excited to explore Quarto for in our fourth Quarto meetup of the series. Today, you'll learn how to create a data science portfolio website and instantly deploy it using Quarto. You'll also learn how to easily maintain and update this portfolio whenever you need to showcase new projects.
I am very grateful and excited to have Deepsha Mangani joining us for today's event. Deepsha is a senior data scientist at Microsoft focusing on investment impact analysis and propensity modeling. When she is not geeking out over data, she is knitting or collecting yarn.
Hi, everyone. My name is Deepsha. And today I'm very excited to talk about how to create your data science portfolio with Quarto, which is something that I have done myself.
But before we talk about the jump into the Quarto portion of it, let's give a brief minute to what is a data science portfolio to ground everybody. So usually we use a data science portfolio to showcase some of our best works and showcase our skills as a data scientist. The components of a data science portfolio are usually a brief about me section, some of your favorite projects, your resume and ways to connect with you in case somebody looks at your website and likes what they see.
A good portfolio website usually is catchy. So what people are reading, they want to continue reading more about it. It should be simple and concise and easy to navigate. People visiting your data science portfolio website should be able to find what they're looking for. And the last thing, it should be up to date. So which means that if, let's say, you did a brand new project or change your employment, had something, anything change, you should easily be able to update it and have the most latest information on your website.
Having said that, we all know what a data science portfolio is, how important it is. But just at the thought of creating one, it can be a little bit intimidating and daunting. And that's what my initial thought was until I saw Quarto and how easy it made it look, just creating your website.
Example portfolio website
So before we go into that, I just want to showcase an example portfolio website that I created just so everybody, again, grounds as to what it looks like. So this is my website. On the front page, there is my photo, a brief description about myself, all the ways to connect with me. And if you click the links, you'll find my projects.
Note that these are all external projects. So somebody clicks on this. These are projects that I already had before I sat down to create my website. So this is a medium blog that I had written on data science stakeholders. Then I also have a blog set up within my website. So this is a Tidy Tuesday is a weekly data visualization event that's run by the Posit community.
So if you click on this, you see that the code is all within the website. And anybody who wants to draw that thought is able to see the code and do that. Then I have two types. I have uploaded a resume. One is uploading an existing PDF resume in as part of your website, which almost all of us have. And then just to show an example that you can also create your resume within the Quarto website.
I created a resume for Wednesday Adams because she's my absolute favorite character. And gave talked about her AI experience, which I think she is absolutely amazing at. The advantage of doing that is that you can also add charts made with. This is made with Gigi Plot and Gigi Trends as a part of your resume. So you can be creative about that.
Why Quarto for a portfolio
So now that we have an example of a portfolio website, let me jump back into why I chose Quarto to build this. So first of all, Quarto is an open source scientific and technical publishing system built on Panda. So we will see how it is used to publish anything. But the advantage of using it is you can be tool and language agnostic because Quarto supports multiple languages.
The base blog website skeleton that Quarto provides when you try to create that project is just by default. So clean looking that I had to do very little work to make my website look the way I wanted it to look. And it was very quick and easy to update. Now, even if you have a very basic understanding going into this of any of your Quarto supported languages and ideas. You should be able to build it.
I'm going to be using RStudio and R today, but you can use other ideas and languages that you are comfortable with. So Quarto comes installed with RStudio, but for other platforms, you can install it very easy.
So what we will cover today is configuring your website. So you saw the tabs that I had going, adding content to those tabs, customizing your website's look to your unique self and publishing and updating your website as you need.
Creating a new Quarto blog project
All right. So let's build a portfolio. So first I'm going to. There's a video here on how to create a new blog post. I'm going to actually blog project. I'm going to just show this to you here itself. So when you click on project and new project, you just go to a new directory. What you want to create here is a Quarto blog. And when you create a Quarto blog, you give it a name and you create your project.
It would open up with some of these files by default, like right out of the bat. It would have a few files. So let's see those files again. So these files are just right off the bat there. You don't have to create these files from scratch. So the few files that you see here are Quarto YAML file and indexed Quarto Markdown and about Quarto Markdown. We're going to deep dive and look into every single one of this.
But the way you render your project is you just click on render your website. And just initially the website that it looks like, it's very, very clean.
So when I render it, this is what it looks like. Just the initial website. I had to do nothing to start with. But you see here, I've got a project, some of my projects. I've got a about page. So if you click on that about page, you have an about section with a photograph, description, links for contacting you. And Twitter and GitHub links to take you to those pages.
Understanding the project file structure
I'm going to briefly try to describe the structure of our blog project and deep dive into each file. So the first important file that we're going to look at is the Quarto YAML file. So the Quarto YAML file you see here has the YAML components that describe what my project is. So it's a website type of project. The title of my website that you see here is Portfolio. It has a navigation bar. And on the navigation bar, it says that on the right side, put this about section, which if somebody clicks, whatever content exists in the about.qmd should open up.
Then I have the GitHub icon that references to GitHub.com if somebody clicks on it. So that's what the icon and href mean. Similarly, there's a Twitter reference as well. The other thing that you have in the YAML that's important to note is your format component, which says what should be the theme of my website. So by default, it picks up a Cosmo theme. I'll show you some more themes you can use. But by default, it picks up that theme, which has a certain color schema, font sizes, font types, etc.
The next important file to note is your index.qmd, which is our index.quarto markdown, which always defines what your homepage is going to look like. So in this case, in our very initial case, all it says is, hey, index.qmd title is portfolio. I have a listing component which says this page should look like a listing of content and pick up my content from this other folder called posts.
The next file is the about.qmd. So if you remember, our quarto.yaml file said that if somebody clicks on this, open up whatever is in the about.qmd. So what's in the about.qmd is a template that says it should look like an about page, which is this. It should look like an about page with a template of Jola. And we will show other templates as well and add those links in that template to reach out to me.
So I showed you three files. But just to recap it very quickly, because I think this is the most important thing to note when you're trying to configure the website to make it look like the way you want is you have the index.qmd, which is your home page. You have the quarto.yaml file, which tells you what is where. So where your navigation, what's inside your navigation bar and what the format of the entire website should be like. You have an about.qmd, which is whatever opens up when you click on about here, which doesn't have to be called about, but in this case it's called about.
Configuring the navigation bar
So quarto.yaml, if you remember, I said it defines the structure of the navigation bar. So in the navigation bar, let's add the first thing we're going to do is add tabs. So let's add a home tab. Now, let's make the homepage points to index.qmd. And I'm just going to copy paste this and create one last tab for my resume. Note that yaml is very space sensitive. So keep an eye on like how you're adding the spaces here.
As soon as I save this, you will see the good thing about yaml is you're actually able to see everything add immediately. Perfect. There. So if I move this here, you saw all these tabs got added. When I say text home, it means give this a home text and refer it to the index.qmd. The reason I like to add a home tab is because no matter where you're on the Web site, if you just want to go to the home page, it's always good for giving that option that is clear, descriptive, that if you click on this, you will come to the home page of the Web site.
Note that we don't yet have a projects.qmd or a resume.qmd. So initially, right now, if you try to click on this, nothing's going to open because those don't exist. And we're going to create those in a minute.
Adding content: home page
So just like that, we had our tabs. So we have like a basic structure of our Web site ready. Now let's add content to it. So the first thing we're going to try to give this Web site is a elegant home page. So on the home page, I did not want content right off the bat. I wanted my home page to look simple like an about page. And so I used an about template for my index.qmd.
So if you go to your index page, I'm going to just delete everything because I don't want posts on my home page. I want to ease into it and add a bit of like a description way. So if you edit your index file to say, hey, use an about page template called Jola, add an image to it. So use the Jola template, take an image, give it this width and make it round and give my about page the name of Deepsha Mingani.
So I use Jola template, but that's not necessarily the template you need to use. So let me show you where you can find pre-existing about templates from Quarto. So if you just click on the link in the footnote, you can see there's other templates like this. If you wanted your about page to look slightly different and there's these other ways you can do it. So note that images in different places, your description is in different places. And also these links that we're going to add later are in different places.
So where you add the links is still in the section. So if you just add the links here, what it says is, hey, add an icon for Mastodon. And what it says is add an icon for Mastodon, which is this M icon, add text beside it called Mastodon and refer it to my Fediverse account. If somebody clicks on it and similarly for the rest of them as well. And so you see all these different icons, Twitter, LinkedIn, GitHub, contact me. They're all bootstrap icons. I have used envelope here. You don't have to use envelope. You can use a mailbox icon. But where do you go find all these icons? I have linked them right at the bottom here.
Adding content: resume tab
Now let's update the next next thing, which is our resume tab. So note that we don't have a resume dot QMD. So which means that if somebody clicks on resume tab, nothing's going to open. So I'm going to go into files and create a resume dot QMD. It opens up here. Now, there's two ways, like I talked about earlier, that you can update your resume. One is you, if ever any of us has had to look for a job, we probably have a PDF version of our resume. So the the least resistant thing to do is to just update, upload that resume in our website as it is.
So let's first look at how you just embed a PDF within the website. So I embedded my PDF as an iframe that if I just add this. If I just add this component in my resume dot markdown, it would show up like this. So if you see here, it would show up as a PDF in my resume. And based on your website, look, you can figure out what height or width that you want.
Or you can update your resume within the website itself. So here, if you see that Wednesday Adams resume is right here within the website to just give you an idea of how you can do that. I have linked the GitHub repo for Wednesday Adams resume that I created. You can play with it, edit it, see how you feel creating a resume within the markdown.
I find this better because I'm able to like add charts and give it give my resume a more of a unique look as compared to if I just updated my resume as a PDF.
Adding content: projects tab
All right. Now we're going to go to, I think, the most important part of our portfolio, which is the reason we have a portfolio, is to showcase the projects. But let's say we did not have a project.qmd when we started. But if you remember, we told quarto.yaml that if somebody clicks on projects, open the projects.qmd file.
All right. So I want my projects.qmd file to look like a page of listing to look like a listing of content. And the good thing is Quarto already has some really clean looking templates for uploading your content. So if you just give it content, it would make it look like this or it would make it look like a different way based on the template you use.
So what I did here is I said, render website. I said, hey, on my projects.qmd, give it a title of title to that page of projects, make it a type of content listing. So content listing and go pick up. So if you click the link here, you see now content has been added. So pick up the content from the post folder. I'll show you the post folder in a second here. Arrange it in descending order. Type default. I'll come to that in a second. But also add categories here to each of my content. I'll show you how to add those.
Sort UI and filter UI is just the ability for your reader to be able to sort the content in a portfolio. So it's OK to keep it false, but you can play with it as well because those are some neat options that are available.
All right. So let's now go look at the post folder. So you have two posts, posts with code and welcome. So if you see here, there's a post with code and welcome to the blog. Let's go inside the post with code and see what all it contains. So inside my post with code, there is an index dot mark QMD that says, hey, this is my post with code. It has some executable code and it shows one plus one.
Let's close that and let's actually try to add a brand new post that we wrote. So I'm just going to use this template and instead say post with plot. So my post with plot has an index dot QMD and an associated image with it. Let's edit that index dot QMD. This is not a post with code. I'm going to say post with plot and I'm going to say written author me. And just to showcase something, I'm going to put the date as a future date for when I created this. I'm going to give it some categories here. I'm going to remove the newest category and I'm going to give it a plot category.
So this is what that post looked like that I added. But you will also see that here it got added right here. So I have my post with plot because we had told the projects or QMD file that arranged my posts in a descending order. It took that latest post because it's a future date. It's showing up as the first post. These categories are really cool because if I just want to see all the posts with code, I just click on it and that shows up all the posts with analysis and with plot or I can see all the all the posts.
Right here is your image that gets picked up. And if you click on it, you're able to see the post. So that's how easy it is to add a new post. And if you just delete the other posts that are here, those just won't show up.
So if you don't want your projects page to look like this, there are some other templates. Let me just show you quickly what those templates look like. So this is a type default. So if you remember here in the YAML section of my projects on QMD, I gave the type default. But if you wanted to say there they are grid template and this is also a good template. Let's say you exceed the number of projects to more than four or five. I'd recommend using a grid template so that you're not having the person on your website keep on scrolling too much.
In fact, you can have your projects as a different tab with this template and you can have a table format for all of your, let's say, GitHub repositories. Like you want someone to be able to find all of your GitHub repositories, the most important and interesting ones. You can add that as a tabular template. So these are like really cool, some base templates that you can start building with so you don't have to do anything from scratch.
Adding external project links
All right. Awesome. So the other thing that I had in my projects here was external links. So let's say when you sit down to build your website, you've been you've worked on a lot of projects already and you don't want to build from scratch the projects inside your website. You just want to be able to link your external projects in your website so that it's just, again, a very quick, minimal effort way to just update your website quickly.
And if you see this, it links to an external link. How do you do that? So in the project.qmd, instead of telling it that, hey, this page is a type of listing, I'm going to tell I'm just going to directly start adding content to the project.qmd page. So I'm going to say, OK, my title is Quarto Blog Data Visualization, Animation and Interactivity. That's my first blog title. Under that blog title, I'm going to divide my page into columns. I'm not going to say initially how many columns I'm just going to say I'm going I'm about to divide my page into columns. The first column with a 55 percent width has my description.
So this is my first column has my description. My second column, just a little bit of gap. It has nothing. Just so my image and text are not too close to each other. And my third column right here with 40 percent, which is the leftover out of 100 percent, is my image. And that's how easy it is to just create this component.
I tried to make it catchy enough so somebody would want to actually click on continue reading and then open that link and read about it. So that's how you can update that for my next for my next project. I wanted the opposite. So I again gave my title for the next project. I divided it into columns. And instead, this time I said my first column should have image, then gap, then my description. So just like that, I was able to customize the look of my page completely as I wanted it.
So I want to take pause here to tell you that the basic structure of your portfolio website is done. You just created your portfolio website. You have your home page, which is your about section. You uploaded your resume either as a PDF or within the markdown. You uploaded your projects. And if you upload your projects that are already existing, then this would take like 10, 20 minutes. But by this time, you have all the basic components of a portfolio website ready and appear very cleanly.
So I want to take pause here to tell you that the basic structure of your portfolio website is done. You just created your portfolio website. You have your home page, which is your about section. You uploaded your resume either as a PDF or within the markdown. You uploaded your projects. And if you upload your projects that are already existing, then this would take like 10, 20 minutes.
Customizing the website's look
So now that we have that structure down pat, even if you didn't do anything else, the website by now using the base Quarto template looks clean. But let's customize it further if you want to.
So if you remember, there were like these default tabs and I'm going to show you this here. The default links that were here were only GitHub and Twitter. Let's say you want to add all the links that we had added in the about our about page to that side as well. So on the right hand side, you can add more links here just by giving it a different icon and a different. You can just keep on adding to this right hand side and give it the link.
You can also add a search icon to your website. So the default when you try to build a website or a blog project, the default actually comes with the search option. So this is my partly document. But you saw that when I clicked on search, it overlays on top of the website. You can change that look as well within the Quarto YAML. So within your website component of your YAML, if you give search location, navigation bar type overlay, it will overlay.
So there's your overlay option and there is your text box option where you don't want to overlay. Really depends upon what look you want for your website. So it can just open up on the side right here as a text box and that's your text box template.
The next thing and I really like this accessibility feature is you can toggle, give the person reading your website to toggle between dark and light mode. Let's actually try this out here. So I'm going to just say right now my default theme is Cosmo, which is the theme. And there is only one theme. Instead, I'm going to go under theme and say, hey, I want a different theme for light. Keep it Cosmo. And for dark mode, I want the dark theme, which is also a default theme that Quarto has. So if I if I just add this button, Quarto by default adds a toggle because it knows you have two themes.
But let's say I don't want that. I want both light and dark theme to have Cosmo as my theme. Like keep all the size and everything same. I just want to change the background color from white to gray or to black or whatever to a dark color. But that's all I want to do instead of just completely changing my theme.
So here, instead of dark as a different theme, I'm going to give it this. So here, what I'm telling my Quarto.yaml is just keep the theme as Cosmo for both my light and dark mode, but in my dark mode, change a few things. And those few things I'm giving it in this new file I created called ThemeDarkCustom.scss. Let me just show you what that file looks like. So this is my ThemeDarkCustom.scss. I think this is a very neat way to be able to customize a lot of things on your website like navigation color. But in this case, all I'm changing is my body background should become dark black. My body color, which is my font color, should be white and a few other things like my link color and my code block transparency.
So I'm going to show you a link here where you can change so many. This is where you can pick up your themes from. So I used Cosmo and Darkly initially for the example, but there are so many other themes that you can pick up based on what you like your website to look like.
Code block customizations
All right. Let's come to code block customizations. So code blocks is within your projects. If we open this post with plot, you will see this. This is your code blocks. And there is so much customization that you can do here as well. Let's try our first customization, which is code link true.
So these code customizations are all still within the theme that we're doing it. So if you just change or if you just add code link true, this is like one of my favorite features under the theme. So again, because YAML is space sensitive, just make sure that you're adding it at an HTML level, your code link. You see here a link just got added. This feature is really cool because you if you click on this, the documentation of whatever function you're using just opens up that quickly. So this is a very cool feature and a very accessible feature for different levels of people that are reading your website.
The code fold as show option. What that allows you to do is not. And I have an example right here. It just folds your code and gives the audience the option to open and open here and here, open and close the code. Now, if you do code folding your show, it means that by default it will show, but it also gives the option to fold the code so you can fold the code by default or not.
If you are, however, giving the audience to fold your code, you want to also give them the option to either look at all the code together, like unfold or fold all of the code simultaneously so that they don't have to do that chunk by chunk. And that's where code tools comes in place. So when you add this code tools as true option, it adds this on top of your page and it has the option of showing all the code or hiding all the code at the same time. And if you it also has this cool feature for viewing the source, which means that, hey, if I'm just interested in looking at the code components of your website or of your page, particularly, you can just click on View Source Code and it just shows you that.
So code blocks background is just as the word says, code block background. I gave it light blue. It's a very not my favorite color. Probably I won't do it for my website, but just wanted to show you this example of you can change your code block background. Add a border to your code to just make it look like easy to find. I have done this for my website where I added a border.
However, if you don't want to change any background or border, but you want to pick up some default themes that are already there for your code, there's a really cool like lots of things that are available by default. If, let's say, you want to take a look at the example of GitHub theme, this is what it looks like. Quarto is smart enough that it's able to change that theme for a light and dark mode and match the code block to whatever theme of your page is. GitHub is one of the options, but if you just click this link and go to the highlighting section, you have so many other themes. Breeze is one of my favorite themes, but you can just like play with these themes, see what looks good with your navigation bar, color, et cetera, that you picked.
Favicon and footer
All right. Very quickly, my favorite part of a website is to add a fav icon. And it is so easy to do in Quarto. If another website option, which is like right under this option, if you just say, hey, pick up a fav icon from this images LinkedIn pic folder. It just adds that right here. This is what your fav icon is. So you see here my website has this top head attached to it. You can have it your pet picture or whatever you wanted, but just gives it a unique picture versus having it like I have on my presentation, which is a globe which opens up for almost every website that you have if it's not customized.
All right. I also have website footers in my website, if you see here at homepage. And the reason I have them at website level is so that wherever the person goes, they have this handy. And that handy is just says made with Posit Quarto, contact Deepsha Minghani. So at any point in the while reading the website, they're like, oh, I want to talk to Deepsha Minghani. Or if any at any point on the website, they want to look at the GitHub repo for the website itself, like how I have coded or built the website that opens up right away.
So I just added a page footer section. I said, hey, in the center, contact Deepsha Minghani on the left hand side of my footer made with Quarto. On the right hand side, link to my GitHub repo and give it a background of this color.
Publishing with Quarto Pub
Last step, we need to publish our website and I'm going to show an example of publishing this with Quarto Pub. So Quarto Pub is just one of the ways you can publish it, but it is one of the easier ways to easiest way to publish it. And I'll show you that in a second. So in in your terminal, just type the command Quarto publish Quarto Pub. Now, if you just read this, the first thing it says is, hey, you have a Quarto Pub account. Do you want to publish it using that account? I'm going to say yes.
It says, oh, publish the name with Portfolio. I'm going to say, yeah. Like just publish that under the name of Portfolio. And that's it. That's literally it. All you had to do to publish your website. So to recap, first, create a free account on Quarto.Pub. Sign in into your default browser so that your terminal is able to know that, oh, that's the Quarto Pub account that this person wants to use to publish their website. And then go to the terminal and get the command up. Looks like it just got published there. This link is now publicly available. You can open this link and try it out.
Go to the terminal and give the Quarto Publish Quarto Pub command and follow the instructions. Now, updating your website. Let's say I have. This is not my favorite color for the navigation bar. I want to change that color. So I'm going to re-update the website. So this could be a bigger change than this. I'm just making a minor change. But let's say you added a brand new project. You updated a completely different resume. Whatever you want to do, you just make that edit. Go back to your terminal. Again, get the same command of Quarto Publish Quarto Pub.
And it is able to, by default, know that where had you published that project. So it asks you whether you want to publish these changes to the same website or you want to create a brand new website. So right now I want to just publish it to the same website. It's intelligent enough to know that. I'm going to just press yes. And that's it. That change is now just going to appear online.
So if I just have like some caveats about Quarto Pub that you need to know while publishing it using Quarto Pub is any website that you publish with it is publicly visible. It's published and the change is made. Now this is online. Any website that you publish with this is publicly visible. It has a limited size and bandwidth. I think all of that is OK for a portfolio website because you want it to be public. It shouldn't be too heavy. It should have minimal material so that the people reading your website are able to actually find things and are not lost in the plethora of content that you may want to add.
However, if that limitation is not something that you want, there are so many other ways you can publish your Quarto website. Using Quarto Pub, GitHub Pages is another way to publish it. Posit Connect allows you to have a private authentication so you can publish it publicly or also have a authentication added to your website and Netify. So based on your needs, see what is the way that you want to publish it.
Useful resources
So we publish it. We have updated it. I want to place some useful links so that I can share what I use to create my website. These were some of the most useful links, which is beautiful reports and presentations with Quarto and building a blog with Quarto by Tom and Isabella from Posit Teams. They were really useful in just helping me understand how I can lay out the different pages inside my website. If you forget how to publish with Quarto Pub, this is the best 100 seconds you will spend. There's a YouTube video also by Tom, which goes about how to publish using Quarto Pub in 100 seconds.
And my portfolio, GitHub Repo, in case you want to use that as a template to just start building your website versus trying to build from scratch, feel free to use that template and then edit from there. So these are some of the useful links. And I want to just call out that you did it. If this content was useful in actually building a website, that's how easy it is to build a website from scratch with Quarto.
Q&A
Thank you so much, Deepsha. That was amazing. Thank you for including all these links, too. I just put the link to the slides in the chat so everybody has access to them right away, too.
And one of the questions that I see. Asked by Marlene and hi, Marlene, is what about adding pre-existing R Markdown docs to your projects? So I actually did have some content in R Markdown. So initially I had created my visualization blog using R Markdown. But I was easily able to most of the stuff, the code capabilities in R Markdown are backward compatible with Quarto Markdown. So I had to do minor changes to make it to a Quarto file and just update it. So most of the code would just run as it is with very little intervention in Quarto Markdown as well.
Is there any way to integrate Shiny app into a Quarto website? Yes, I actually tried that a few weeks ago for a Tidy Tuesday post where I learned how to incorporate Shiny and Quarto. It is it should be in my GitHub Tidy Tuesday. You will able to find you'll be able to find in either one of the 2022 or 2023 presentations. But it's so easy to do. You can. Quarto has really good links where you're able to learn how to incorporate the Shiny in Quarto Markdown.
I will add the caveat, though. You want your portfolio website to be really fast and shiny as as awesome as it is to incorporate in Quarto. Might slow down the not not the rendering, but the actual loading of the website when somebody comes to that page. So see how incorporating that impacts your website speed. And if it doesn't go for it. But it is it is very easy to incorporate Shiny into your Quarto Markdown directly.
One thing on the note of speed is as you're building your website, add a added component by component so that not like every component. And then publish your website, publish it multiple times to see if you added one component. What happens to the speed of your website if you added the next one? What happens so that you're able to find the bottleneck more easily when you're creating your website?
Somebody asked, can you publish a Quarto website internally? So I know and maybe the Quarto team might best answer it, but I know that with Posit Connect, you can just publish your website internally and also have internal authentication. So it's like even at organization level, you can have authentications. So you can definitely do that.
And one of the questions there was, is there support for multi language websites on Quarto? Yes, I am actually going to right now, my website is primarily in R, but I'm going to incorporate Python into it as well. And you can do that within the same Quarto markdown. So you can, let's say, call an API using Python and then pull that API output into our data frame and then plot it using R or ggplot.
Nicola Rennie wrote a really amazing blog very recently. If you're not following them, amazing content comes out of their Twitter and Mastodon links. So find Nicola Rennie's article on how to use Quarto to write R and Python code. But it is totally doable and easy to do. I forgot to call out reticulate is the package that you would use to like talk between Python and R. So you can either have a silo Python document, a silo R document. But if you want them to talk to each other, you would use a reticulate package to make R and Python talk to each other.
Can we create a projects tab that points to other index projects in other repos hosted as GitHub pages? I'm not sure about that answer. But in my website, if you go into the projects tab, it actually links to external stuff. So maybe that way you can link it to external project that you published using GitHub pages. So that could be one way that you could do it, if I understood the question correctly.
Here we go. Here's another one. What is the difference between Quarto website, blog, and other Quarto formats? So I can definitely talk about website and blog. A blog is a type of website in Quarto terms. So when you create a website project or you create a blog project, you're still creating the type of project called website. The reason I chose to create a blog project, because when you create a website project, it gives you a blank slate to start building from there. But when you create a blog project, it had all those files like Quarto.yaml and everything by default. That was very quick for me to format to get it to where I wanted it for my project. But blog is a type of website. With blog, you just have components ready to go as it is. And with website, you are building it the way you want it to from scratch.
Another question over on Slido was, is it free to deploy a website from Quarto platform? I have a portfolio website deployed from GitHub. Is it possible to use Quarto and deploy it from GitHub? Use Quarto to deploy it? I have tried deploying a website from GitHub pages separately. Usually, if it's a Quarto type of project, you should be able to deploy the same thing in Quarto.pub as well. But not simultaneously, as far as I know. But if it's a Quarto project, you can deploy the same website that you did from GitHub. And to answer the first question, is it free to deploy on Quarto.pub? Yes, you can deploy your own website over there right now.
Somebody had asked, does this portfolio live in the cloud? Do you need a hosted site to accomplish this? I have to do nothing to maintain it, which is the biggest reason that I'm using Quarto.pub. It's in the backend. I don't have to do anything. It's not a server that it stops. So it's all in the backend, done and maintained. You can easily update your site, and you don't have to know what's happening in the backend for that.
Awesome. One other question that just came in on Slido is, can you embed a Quarto book into a Quarto website or blog? A Quarto book into a website or a blog? I have tried a Quarto doc into a website, and I was easily able to do that. I think you should be able to do a book. But if there's any book down specific features, most of them are just compatible with the Quarto markdown.
I saw a lot of questions and conversations in the YouTube chat around theming as well. And I think one was, is it possible to create my own theme? And I see Carlos has shared a link there as well and said, yes, it totally is. You do need to know SCSS though. But there's some docs there as well. Yeah. And the links that I shared as one of the footers. There is just so much SCSS that's available on that page that there is a lot of custom theming that you can do from just that page.
So I was curious because I know you had recently learned Quarto and just gave this awesome talk. What was most helpful for you in learning Quarto? I think the talks that your team did with Tom and Isabella, I think was just super helpful. The flexibility of everything that you could do. They did such a great job in showing how flexible Quarto can be. Like I just had so much fun with playing with images. How to make the images lay on top of each other or come up in a fragmented manner. So there's just so much I could do with Quarto. Playing with it after seeing those presentations just made it so much easier.
