Eleventy AMA - Getting started, content without page output, custom ordering, adding JS

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Ooh. All right. So. I'm a bit of an Eleventy fan, just a small bit. I happen to own this site called 11ty.Rocks. Um, I frequently say that Eleventy has been my enabler and I, I'm not kidding. I have uh I have over 20 repos that are Eleventy based projects. Um, and so if you get nothing else out of today, what I want to make sure I share is that Eleventy is so much more than a static site generator. Like that's its core functionality. But I've been able to do just about anything that I've wanted to do with it, including some really fun stuff for a currently secret new resource that will be a paid resource. My first paid resource, um, it's coming up hopefully in a few months, but 11ty.Rocks, you can find quite a bit of information here. I have, um, a quick tip section. I have info on the config, which we'll talk about more, um, a few articles. I, I had a little switch of priorities, so I'm um, I guess April 2nd. Oh, it was still this month. So I got at least one out this month. Um, you can get a quick overview in three minutes, which is, which is the same overview we're going to do today. It will take a little longer than three minutes to do it live. Um, And then I also have a full 20 minute course on egghead, if you will. Um, it is a membership co um, course not a free course. I believe. And then I also have started an 11ty Rocks YouTube. And for some reason it has over 200 subscribers and I only have two videos, but I will be putting this recording out there. So at least I have something. And, um, after I get through a few other priorities, I am hoping to return to this and actually get, get some more content put out there. Um, I have a, quite a variety of, of starters that you can choose from. So there's a few select ones here. This Sass starter is probably the most popular. And then I have some plugins that I've, I've worked on creating. That's been a fun thing. Creating packages was new to me. So that was a good, uh, as I said, its my enabler, right? So it got me to finally create a package. Um, and then I get into some of the kind of different things that I've done with it. I've made a web component generator. I've made an email generator, a CSS Houdini worklet generator. So, um, Just putting those out real quick to say, uh, you know, yeah, it's going to be offering you more than just what a static site is able to do. Um, but this top link, there's an overview of key features and it talks a little bit more about those projects that are definitely not just a static site being produced. So anyway, there's, there's the plug for all that, but we will get into kicking off a new site. And let me just make sure I read this question that came in. Um, I have a bunch of blogs and want to create a random page to display a random blog every time I load that page. And that's an interesting question. We can definitely address that one. Okay. So let's get this kicked off, go ahead and feel free to pop in questions if we think of them and we'll, we'll come back to them. So as you can see, I have a truly completely blank project. Um, so I am going to end it just our essential project. We don't have to do this step if you're only going to build this locally, um, You can just run it from the command line. You can install it globally and just run the project and not have to actually have a package. But if you're going to publish it somewhere, that has a build step you'll, you'll likely want to include, um, include include it as a package so you can indicate the commands needed to build that. So that's going to be our second thing that we'll do. I recently learned that I've been leading everyone astray and that the instructions that I've been giving to use just Eleventy are only applicable if you do have it installed globally. So I have some updating to do with my materials. Um, if you have seen this, including in the tutorials that I have out on, on, um, on well, everywhere, lots of places. Um, so I actually haven't done this at all. I just realized it this week that I had incorrect, but anyway, we're going to run Eleventy and we're going to have a start command. That's going to include the serve flag. That's going to load up BrowserSync. Um, if you're not familiar, that means we'll have access to hot reload of our browser. As we make changes to files and then we'll have just a build command it it just doesn't have that serve flag attached. So let me make sure to save. Oh, and you know what? We missed a critical step in between those two. We need to install Eleventy into this package. So, um, what to note there is that it is a scoped package. So it's going to be at one, one T Y slash Eleventy spelled out. All right. So that's installed. So we can go ahead and close out of our package. You don't need that. Um, and then the next optional step, but one that I, um, typically start with as a preference is we can go ahead and add a Eleventy config file, which is dot Eleventy dot JS. And in here, we're going to make just one modification to start out with, we're going to modify what we want our input directory to be. And our output by default, your input is just your root, um, project root. And if you don't customize the output, it's going to create a directory that's _site. And that will be where your public files live. If you are interested in having your input and output directory be the same, that's actually possible. You can check out the docs for that information, which I'll just drop the main official docs link there. So that's our one modification. And now at this point, You know, if we, I don't have this checked into a repo just a local, um, directory. So, you know, typically I'd do a .gitignore and those sorts of steps in here as well, but we're just going to get started creating today. Um, I may have thrown it up as a repo, um, later, but I have a lot of repos doing similar things. So if we do something unique though, we'll push it up there. Alright now it's time to actually get started. Now a, the first key concept is that Eleventy accepts, well, technically 10 different templating languages, and one of the languages that was asked about, um, over on Twitter when I, again, when I push this out was about using markdown as kind of your first, um, your primary content source, and also not necessarily making pages from that. So we'll try to address that question. Um, but first, since I customized my input and output, let's go ahead and add my input directory that I defined and. Um, just as any project anywhere, um, when you're making a website, we need an index file. And so we can decide to do this as markdown or Nunjucks, Liquid, JavaScript, um, handlebars. There's there's 10 different ones. You can find those in the docs. I tend to use HTML, markdown and Nunjucks as my primary templating languages. So our first step, I am going to start with markdown. So we'll make markdown index file. And then what we can do at this point is go ahead and run our projects. So we customized what our start command was. Hey, max! And say, we're going to go ahead and run it. And so since we included that serve flag, as I mentioned, it's going to load up BrowserSync and I have it loaded over here. I'm going to refresh the page. Of course, there's nothing there. We haven't given any content, but at least we don't have our error page anymore. So it's successfully has run. Now, the first thing to know is of course, we're going to do a hello Twitch world. Is that it's not going to actually successfully reload the page because in order for BrowserSync to work, we have to have an HTML head. So I'm going to have to manually reload it just this first time and the way to resolve that, the common pattern to resolve that is to start to create a layout. And so within our src file, we're going to create the Eleventy expected directory of includes. This is going to be where Eleventy looks by default for layouts. Um, if you coming from different types of environments, partials might also be something new you're you tend to create template partials. Um, You can also throw your JavaScript in here. Um, there's a little bit different way you might think about that. And we'll talk about that later. Um, so in our includes folder, kind of the convention here is to create a base layout as your starting point. And I tend to create my layouts with Nunjucks. So the extension there is N J K. And from here. Um, so I'm in VSCode. I enjoy using Emmet that's baked in. So we'll just use that to quickly give us a HTML5 boilerplate and then we need to connect our index to that layout. So even when you're not in, um, a markdown file an interesting thing about Eleventy is that you can use front matter. I think on, I know you can at least use it on markdown, Nunjucks and Liquid templates, I think on other ones as well, because it's doing some extra processing. So we'll do some front matter in here and we will assign the, uh, layout as that base file. And we'll refresh one more time because it's not connected yet. And I evidently. Oh, cause I haven't told it to output my content. So we've connected it successfully, but we haven't actually in, in this layout, um, indicated where to pull that content. That's why we lost our h1. So a few different things. The other thing I typically include in my front matter as a starting point as a title, um, cause we'll end up using that several places across, um, the base layout so then we're going to go ahead and replace what Emmet populated here with our title. And let's go ahead and give us a nice kind of semantic starting point. So we'll wrap it up there and let's go ahead and fix our semantics while we're on that topic. Since we have defined our h1 differently and then we'll do main, um, A main element here and now we'll insert the Eleventy expected variable of content. So this is your. Anything within the body of your template file, by the way, I just realized I'm throwing a couple different terms at you. So layouts are special templates that can wrap your content, but all files that you're creating content within your markdown, Nunjucks, et cetera, files. Those are considered templates by Eleventy. So a little bit interesting, um, pages maybe use the more familiar term, but it's not always pages either. You know that you're, you're creating here. Okay, so just wanted to make sure I mentioned that. "Petition for a semantics command." That's a good idea. It's a little long. Oh, you know what? Watch this. I was going. I wasn't going to mention this yet but the Twitch scenes are, uh, Eleventy. So there you go. Now you have it. I can see if it works. Um, anyway, so yeah, nice and centered to that time around. Cool. So, um, anyway, so the Eleventy supplied variable of content is going to pull anything within the body of this template, right? So the other. Let's go ahead and do it so I can show you what's gonna happen. So you notice that it didn't actually, and let me zoom in my browser side, it didn't actually compile that. So we have one more tiny step to do, and we're going to bring in what is called a filter and again, supplied by Eleventy. And it's the, I think supplied by Eleventy slash the templating languages themselves. So I added that safe, which means it's okay to, um, Render the HTML and not escape it, which was what was causing it to show up here. Hey, PracticalDev. welcome! Yes. Eleventy is so fast and that's another reason why I say it's been an enabler for me. So at this point, Hey, we have a site, right. We could keep creating pages out here and let's create just one more. So I can talk about the fact that, um, by default Eleventy uses, uh, file system page creation. So I've created that "about" file. I'm going to just to make this a little more expedient, um, we'll change the title to "About" Let's give us a nice, just "Hello" and then over in my browser side, I'm going to go out to /about and I instantly have my page there. So pretty awesome. So if we look at the, not quite sure why I think I accidentally hid my public folder. Yep. I did. Okay. Um, Sorry about that. Anyway, I wanted to show, so this is what's being actually compiled so we can see our index file. And then for our about to work like that, it's it's creating the index in order for that to work again, these are like, you know, the, the central concepts of how web webpage comes together. Right. It's just kind of automating some of that for you by allowing you to use templating, to make these things more efficiently. So right now with that said, we haven't done anything that exceeds static, right? It's, it's nice that we've added the templating but you know, for a super small site and we're not getting too much benefit, to be honest. Um, other than to me it's still a benefit to have it run the, the server and have BrowserSync included. Um, I think I have a gist out there of before I found Eleventy trying to figure out the slimmest setup, I could, I don't know why I was really, really lobbying to not use Gulp. Um, And so consequently, I had a giant package that was doing some of the things that are happening from Eleventy, just as a given, like moving files around adding ins compile well compiling Sass is separate. We can talk about that, but loading BrowserSync so Eleventy each just compresses all that together in my workflow. And I can just get moving no matter how big or small the project is. Um, So, yeah, so we, again, like I said, we could keep going. We could, if your goal was just, um, um, some page content, you know, um, of course we're missing one kind of key thing in here. Um, we haven't added any style, so, um, let me get down my cheat sheet to that section. Um, as I mentioned, I do havea Sass starter out here that will show you how to do Sass um, and there's literally nothing in it. Besides the build process processing, um, scripts needed to include Sass as part of your Eleventy workflow. Um, so if you're interested in that, um, that's, you can go grab that. I can give you the direct link here. If my copy paste decides to work. Not sure why my keyboard copy paste is not working, but anyway, um, but we're just going to talk about how to add just a style sheet and get started with, you know, vanilla CSS, and there's other folks who certainly have talked about, if you're interested in a particular framework, that's not my bag of tricks. Um, but if you are interested in that, you can certainly search and find something, either a starter that includes a certain framework or, uh, instructions on how to do that. But let me close some of these files and clean this up. Um, so the first thing we're going to do, and this part is going to be a matter of preference. Um, I'm going to create a CSS directory and create my style dot CSS file. And then really the only style anybody needs is that, oops, I made the whole thing, a directory. I always do that in VSCode. Um, really the only style anybody needs is this one. So we have a couple of steps to actually get it to go through. The first is currently, and I think this might change in a future version. Um, it's, it's, I've seen it bantered around is that by default, Eleventy is not going to pick up that CSS and push it through to our output directory. So we have one intermediate stop to tell it that we would like to do that. Um, And that is called adding a pass through copy. Um, other instances where you might need a pass through copy is if you're a locally hosting fonts or for your favicon, um, robots dot texts, any of those kinds of extra files that aren't recognized to be a template file right now. So, okay. That's in place so we can see already it pushed it through. So that's good. Um, but again, just like any classic website, we need to link to this in our, in our template. And again, this is where I super appreciate having, um, Emmet because I do, I still don't remember the syntax and I run a blog called moderncss.dev. So here we are. Um, All right. So, um, just to kind of guard ourselves against, you know, maybe this site is going to get a lot more complex, uh, hierarchy. Um, we're going to pass this in as, uh, through a filter, which is going to help update this relative path if, if it needs to be. Um, so we'll do that and we'll use the filter is URL. So there we go. It works. We now have our lovely san serif sites. And, um, I just need to refresh that page, but just as, um, the, the other step though, that we haven't done yet is it's pushing it through, but BrowserSync is not aware of it in terms of making sure the changes get included on our, um, When we make a change. So we have one more adjustment. We already added it as a pass through copy, but we also need to add it as what is called a watch target. So it's the same path we're passing in, but a watch target. And so now, um, if we want to make a change, it will be included or not. Did I miss one more step guys? I haven't done this for a little while. I may have to just restart my, um, restart the server real quick. Okay. We'll check that that is now working. I didn't miss another step. Okay. Now we're good. So I did have to restart, um, for, for that scenario of adding a new watch target. So minor thing you saw, how quickly though it rebuilt it. Not a big deal to have to restart. Um, I did a couple of years of React development, um, including working with Gatsby. So you'll find immense speed gaines um, between those two, I'll say that obviously there's various reasons to get used either. And, um, maybe we can talk about that at a different time. Um, so the question that I received on Twitter was "my biggest points of confusion are around including markdown snippets. Um, it seems like docs are about blog posts as collections", which that's a topic we can get to as well. Um, "what if sites just have chunks of content on single pages they want to pull it in from markdown?" So I think the question is like, what if you don't want to actually display them as pages, you just kind of want to use it as the basis for content and that's something I am, um, Is a frequent need of mine as well. I have a few different sites that are single page sites, but I prefer to write my content in markdown. Um, so we can absolutely go through how to do that. And actually I'm going to grab the link. I actually go through this on my site. I did struggle with what to name it. So folks may not be getting there that are looking for. This information, that link is to this article on using template content as data. And so this whole, um, tutorial is, is the scenario of wanting to create content, but not output it as pages. So we'll kind of go through this and this will give us a chance to thanks, Ben. Um, this will give us a chance to talk about collections, which we haven't talked about yet, and they are a super important, um, concept for Eleventy. So, if you happen to come from WordPress world, I have 10 years of WordPress under my belt. Um, collections would be similar to how you add tags or categories and you get, you don't create a group of content. So similar ideas in Eleventy. And in fact, they use the tags terminology to create a collection in the most, um, fundamental way. And so let's create our first collection. So one thing I like to do is go ahead and add a directory to contain that collection. And I'll show you why in a second, um, what kind of collection should we have? Let's have a collection of I always do like posts for like the blog scenario. Um, we'll start there. If anybody has a more clever idea, we'll go for it. Okay, so posts and we can go ahead and output, you know, post one post is also a little misleading because of how we're going to use it. Um, let's say news. So with the idea that it's going to be like, just something we output in one place, so they don't really need their own page. Um, You're not going to get quite this complex in this, in this next 15 minutes, but you know, you might like have some date based, um, rules around when they can be viewed and actually have that in place. On my main, um, my main website out here for my events section. I rules in place that, you know, flip it between these two, um, sections, whether they're upcoming or past, and these are done in a similar way of what I'm about to, to talk to. So we'll do it this way. So by default, um, right away, it's gone ahead and created. That's actually created both because, uh, It's not going to remove something that it sees that you have removed. So that's a, that's a safety tip. Um, if you remove a section of content you'll, you can just, you know, delete your public and then the next time you save it, it'll rebuild it right away. Um, so it's, it's going to do the typical, like I said, it's file system creation. It recognizes markdown as a template file. And so, um, it's gone ahead and push that through. So. Um, one of our first things that we will do, we're going to, we're going to do two things in one step. We're going to define the collection and we're going to prevent that page output that we saw happening. So I'm going to go ahead and copy this. We'll change the data, but, um, and how that's done, make sure I'm in the right directory, um, is we're going to create, what's called a data directory file. This file has to be named the same as the directory. And it's typically JSON at least that's the format I use. You can use, um, JavaScript as well as an export. I believe I haven't actually done that. So I'm not sure. Um, so news dot JSON, and to create our collection, we're going to add a tag. Now this directory file. The purpose of it is that it will apply these, um, this data to everything contained within that directory, which is really handy for this stuff that you repeat across each one, you can also use it to change the format of permalinks. I have quick, quick tips regarding that, um, out on 11ty.Rocks. So in this case, we're changing it to news because we do want the collection, but in order to prevent that page creation, you set permalink to false. So I'm going to delete my public again. And if we go back into event one, I'm just going to save it. You see that we no longer have the news directory being created and those individual pages. So now we can, once we start to fill out this markdown, we can display it anywhere we want. We can still continue to use front matter. Um, you know, we're just not going to define a layout because we're not outputting a page. So we'll go ahead and say something like this. Um, here is the news and let's give us a couple, um, we'll keep it simple event too. I guess I'm switched from my, uh, event to news. Oops. I switched that up. Didn't I all right. We'll just do it this way. All right. So we have two news items. I'm going to go ahead and close those. We don't, we don't need to keep seeing their content for now. Um, but now how do we use that content? How do we output that collection? I guess? So, um, we've created the collection thanks to this tags, just to reaffirm. Um, that part. And so we have a couple decisions to make, um, you know, where do we want it to output? Um, one amazing thing about Eleventy is that you can mix templating languages. It might've been kind of obvious you could mix HTML with like Nunjucks, but you can. And you might know that you can insert HTML in markdown, um, by default. Um, but we can actually put Nunjucks in markdown, which gives us access to things like looping and filters. There is a caveat to that. Um, technically, technically it assumes if it finds a template tag in markdown, it assumes that that's Liquid. Um, so. The safeguard to make sure that this works is in our front matter. So I'm in my index file, which is where I want this collection to, um, output. We're going to add templateEngineOverride, and we're going to set that to say that first we want it to process as Nunjucks so that way it processes those mark or those template tags, and then we want it to process as markdown. So now we can freely intermix these. So let's give us a new news section and the syntax here. Um, it's going to look a little funny if you're not used to templating languages. Um, they're gonna all indicate template areas a little bit differently. Um, both liquid and Nunjucks, I believe use this kind of setup to start indicating. Um, things like for loops or shortcodes. Um, and then we already saw when we looked at the base template that it's using double curlies to indicate variable output. So in this case, we're going to create a for loop and we're going to loop through and we can, Iuh you might be familiar with, for loops from other languages like JavaScript, um, where this next thing will be just a local variable for this. For I'm going to call it item in. Now we're going to reach into our collections and we called that let's double check. Cause I usually either pluralize it or not, and then try to use the wrong version out here. So I did call it news. Let's go ahead and close our for loop. Um, and then. We only gave it a title and a bit of content. Um, this is where it gets a little bit tricky when you're in a for-loop versus a layout. In a layout, like our base layout, we sort of get the front matter types of things and end this content kind of just for free it's already available. But when we're inside of a loop, we have to, uh, dip one level down to actually get this content. Let me, let me show you what I mean. So first let's get the title. So our local variable is item and we have to dip into the data, um, property of that template content, and then we can access the title that we added. So there we go. Just like that. It's it's output on the page and we also did have content, and this is another one where it's just a little bit tricky. Um, But it's going to be directly off of our item. And instead of content, what we want is the already compiled version. So it's already been compiled from that template file out here are news one and news two that. Mark. We want the markdown pre-compiled essentially, so we'll say template content, and just like we saw for the regular content variable, we want to make sure to pass it in the safe filter. So obviously I didn't give this any formatting, so it's all getting smashed together, but it, you know, it's outputting as we expect. So, um, the other interesting thing is that because we're within a markdown file, it's going to assume that those are paragraphs. So we obviously can adjust that by adding in very good news. Yes. The best news. Get your good news here. We all need some good news. Um, so we can adjust the semantics of that in, in our template. So it makes it, this is, this is literally like Eleventy's superpower to me. This is what makes sense from my workflow, what I try to do with it. And, um, Nick oh you're always lobbying for <marquee>s I'm going to send you a marquee shirt for Christmas or something. Um, um, anyways, so, Oh my gosh. Are you...okay... let's see. Um, now I'm curious. Did did anyone see earlier in the week, someone had a super clever use of <marquee> that they were using for like their own personal, a teleprompter and made it go vertical, which I didn't even know that vertical scrolling was a thing. I also didn't know you could change the speed. So this little <marquee> element that might've been like the first web component when you think about it. Good times. Okay. Major tangent. Let's take that off. Sorry. I should've given a motion warning. I'm trying to get better about doing that when it's applicable. "The file naming is just a convention not required because it's in the news folder". Um, you can clarify if I'm interpreting that correctly, Nick, um, this folder, the data directory file does need to be the same the same as the directory it's in these fellows themselves. I, I just, I use news. It can be whatever you would like it to be. Um, and interesting thing about that too, is, or a pitfall of. Doing your content this way, where it's not outputting collections and even when it is, or excuse me outputting, um, pages. Um, but even when it is, is the concept of ordering that content because by default, it's going to be date based ordering. Well, if you're kind of rapid fire, um, creating this content and. You know, the date-based ordering may not be what you actually want or confusingly what you see on your local site may not be the same as what you see on a production site. Especially if you're using something like Netlify where it's going to rebuild that content. And so the date. Uh, the timestamp that you have locally, um, where you're like, yeah, I want that, you know, I created the first item first and the second item second, there that's the order I want. That's fine. Um, that may get jumbled if it's technically the same day, um, that that file was created or updated, um, when it gets built. So a little pitfall there, there's a couple of ways to get around that we could explicitly define date, which the safest way would be. Um, your. Month day. I know that's not the correct day, whatever today is. Um, but again, when you're doing something like this, um, date still isn't quite the right thing. Um, especially cause we're not adding like a time, a full time stamp here. Um, Again, a little more than we have time for today, but how I typically address this and is in that article that I posted earlier on using template data as content, um, I typically set up a custom ordering parameter. I've done this a few different ways and it depends how extensive my content is. Um, or I, uh, in the case of my news or my actual like events, um, events that I have out here, um, I have a couple of front matter values. I have a date, a start date and an end date, and then another custom one that says whether or not I even want it to appear as a past event. Um, so, uh, and how that's handled then is we would dip back into our Eleventy config and there's ways that let me see if I can pull it up on my, um, Pull it up on part of my, um, posts out here. It gets in this one jumped down to, here we go. Um, You're able to create a custom collection. Um, so these are like Eleventy supplying you these different methods that you can use to create custom collections. So we're looking at our collect are already created collection, which in this case was called demos. So imagine that's our news collection. And then we're, I mean, we're just using JavaScript so we can sort it and we're going to sort it by that order parameter. So then that creates a new collection. You can call it whatever you want. In this case, I called it ordered demos. Um, You might call it like in our news, like upcoming news or latest news or what have you. And so then instead you would change from querying news to the name of your new collection to specifically get the ordered one and alternate way you could do this is to go ahead and, um, Use our news collection, but that's just essentially just an array. So you can pass that through a filter to either return specific ones. Um, if, uh, you were talking about asking for a random one, so you can ask it to return a random one, you could create your own random filter, um, which I do have an example of, um, on eleventy rocks. Um, but here's one last key point. And I'm almost out of time here is that if you do something like that, where it's random. Okay. It's going to be random at build time. It's not going to be random client side. And that's a key difference because we are talking about a truly, truly static site. Right? So when I, um, view page source on this, the only reason I have a script file in here right now is because I am serving it locally and it's loading up BrowserSync. Once this creates a production build BrowserSync goes away and. I mean, what you see is what you get, right? It's, it's truly, truly, truly static unless you choose to add any scripts. So that said, um, as we saw with like things like including our style sheet, you can still of course include, include scripts, um, in. Has script tags. Um, there's a few other ways you can do it as well. Um, there's examples in the official docs of how you can, um, create a variable out of a JavaScript file and run it through a filter to minify it. So that's really handy, especially if you just have a small bit of, of some kind of script that you're trying to input. Um, I load the, some tiniest little bit of JavaScript on modern CSS so that this little read next bug is randomized, which of course is not there we go switch to this one. Um, there wasn't a non script way to do that. So, um, client side. So there you go. That's, you know, we could banter all day about philosophies on JavaScript, but that's one of the reasons that I love Eleventy and why it is able to be so quick is that there is no client side JavaScript necessary on your production build. So. Pros and cons to that too. Um, but for my purposes, I haven't needed that. The only pro... um the only Eleventy based project that I've needed that for which, by the way, um, there'll be a small bit of motion. I'll tell you when it's off screen, um, is ButtonBuddy and I have my, no, do I have it zoomed in? Um, anyway, so this is Eleventy, um, But I needed JavaScript because it's also a web app. And so I needed it for the various functionality that's happening down here to update, um, these different things. So, um, for that I used, um, for that I used, um, Michelle Barker who has CSS in real life, um, blog. She's also an Eleventy fan and has a Parcel starter. So that's what I used to help, um, make ButtonBuddy happen. So I could incorporate some of my familiar, like JavaScript processes and things. Um, and that worked out really, really, really well. So if you do know already that you need a little bit heavier JavaScript for what you're trying to do, um, integrating with Parcel, I can vouch for as being a really excellent path.
Info
Channel: 11ty Rocks!
Views: 1,484
Rating: undefined out of 5
Keywords:
Id: KKSEs0m6eVY
Channel Id: undefined
Length: 39min 21sec (2361 seconds)
Published: Sat May 01 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.