Learn Forestry: A Git-Based CMS | Clyde D'Souza | Skillshare

Learn Forestry: A Git-Based CMS

Clyde D'Souza, Software Developer and Author

Learn Forestry: A Git-Based CMS

Clyde D'Souza, Software Developer and Author

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
21 Lessons (1h 37m)
    • 1. Class introduction

    • 2. Prerequisites

    • 3. What is a CMS?

    • 4. What is git?

    • 5. What is a static site?

    • 6. Creating a static site for this class

    • 7. What is Forestry?

    • 8. Connecting Forestry CMS

    • 9. Exploring settings

    • 10. Updating content via CMS

    • 11. Adding images

    • 12. What is front matter?

    • 13. Creating a front matter template

    • 14. Fields only front matter template

    • 15. Front matter template for public pages

    • 16. Renaming sidebar items

    • 17. Restricting front matter templates

    • 18. How are settings stored?

    • 19. Adding a read-only page

    • 20. Adding HTML content

    • 21. Conclusion

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.





About This Class

Hi, everyone!

My name is Clyde D’Souza and in this class, I’ll teach you all about a git-based CMS software called Forestry. To super simplify it, Forestry adds a CMS user interface on top of your git repository which means all the changes made in the CMS portal will directly be committed to the repository. 

In this class, I’ll teach you:

  • What is Forestry?
  • How to add/update content via the CMS portal?
  • What is front matter and how to configure front matter templates? 
  • And some more advanced features.

You can follow along and use these Forestry features on a static site for your class project too.

There’s a lot of exciting things to learn so, see you on the other side and happy learning!

Meet Your Teacher

Teacher Profile Image

Clyde D'Souza

Software Developer and Author



I'm Clyde. I'm a full-stack software developer. I've also published a book titled Mama, Tell Me a Story which is available on these platforms. It's a collection of twelve short bedtime stories that parents will love reading to their kids over and over again.

In my spare time, I like to explore other interests like writing, teaching and I've also created many other projects in my spare time.

Check out my Skillshare classes below and let me know what you think. Happy learning!

See full profile

Class Ratings

Expectations Met?
  • Exceeded!
  • Yes
  • Somewhat
  • Not really
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Your creative journey starts here.

  • Unlimited access to every class
  • Supportive online creative community
  • Learn offline with Skillshare’s app

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.


1. Class introduction: Hi everyone. My name is slightly Syriza, and in this class, I'll teach you all about a good based CMS software going for industry. To simply put it, forestry adds a CMS user interface on top of your git repository. Which means that all your changes made via the CMS portal with directly become addicted to the Git repository. In this class, I'll teach you what is forestry out to add an update content. We are the CMS portal. What is front matter and how to configure front matter templates and some more advanced features. There is a lot of exciting things to learn. So see you on the other side and happy learning. 2. Prerequisites: Let's take a look at what are the prerequisites for this class. The first one is a GitHub account. Now we will be using GitHub a lot. So it is definitely advise to create a GitHub account. It's free and very easy to sign up. So go ahead and create a GitHub account. And the second thing is to have a general understanding of web development. So if you see some HTML code or some other code, it'll be great if you have a general understanding of what really does does. Because this glass is focused completely on forestry and forestry CMS. But we will be connecting for history to a static site, which is generated using a static site generator called Jekyll. Now, I will be explained a lot about forestry, and I will be explaining how to get your hands, get a copy of this static site and how to get it working. But I won't go into the depth of how that static Sita's built because there's just not in the scope of this class. It is generally advice. If you have some understanding of web development, it should be fairly easy to look at the static site and understand what really does. But of course, you can also choose to not focus on the static site too much. Just get a copy of edges, clone it, and just follow along the glasses. And you should still be able to complete all the classes. 3. What is a CMS?: What is a CMS or a content management system? What is it exactly to know more about a CMS? Let's take a step back. Let's take a step back to a traditional website. So in a traditional website, the content and the code was coupled tightly together. So what this means is that if you had to make changes to your content, you would have to get developers involved who will then go ahead and make your content changes. Then, after a long process of developing, testing, and deploying all your Website changes, all live upset files to the server. The content changes will then go live on your website. Now this could take a long, long time for even a small, small, tiny bit of content change. Now if you compare this process with a CMS based website, in a cmos based website, the content and the code is decoupled from each other. So what this means is that if you have to make content changes to your site, all you have to do is get content editors involved who were make content changes using a CMS portal. Now this portal is different to what developers use to make the alco changes. Once you make or onesy content editors make content changes to your site. Within minutes, this content will get updated on the life side and your changes will be done. Now, one thing to note is that if you don't have content editors or a content team, even you can make changes to your site. So this works great if you don't have a development background. While all you need to do is make content changes, genocide. You don't need to get developers involved. So there's no developers require and dig and focus on developing courses site while you or your content deem can make changes, make content changes to your site. So that really is the power of CMS Content Management System. It helps you, it gives you a port and it gives you a nice user interface to manage the content on your system. While other developers are the software developers, look after the code that runs your site. 4. What is git?: Now since for history is a good based CMS software, let's quickly take a look at what exactly is Git. Git is a distributed version control system. That's very, very BAD blood in today's times. And almost every other software developer would have or is using good for the software development process. Now let's take a look at these two words, distributed and version control system. What do they actually mean? A version control system keeps track of what has changed. Since you make changes to your code base in Git will track those changes. It tells you what has been deleted and what has been added. It not only does this for the contents of the file, but it also does this fall the files themselves. If you delete an add new files, it will keep a track of them. If you delete an add new folders, it will keep a track of them as well. So it keeps track of what has changed. And it also keeps a history and maintains versions of code base. So because it keeps track of what has changed, it knows who changed the, a particular line of code. When did they change it, and why did they change it? And it does this and it maintains a history of all these of all these commits of all these changes. So that when you actually go and have a look, you exactly know the history of every particular file in your code base. And this also means that because you have these versions is different versions of a particular file. If the latest version is not what you want or not what you expected, you can roll back to a previous version, which might work better. Now what is distributed? Distributed is when a copy of the core is not only mundane on the server, but also on every developer's local computer. So that means in any particular case, if the server was to go down, developers can still continue developing on their local repositories. And when the server comes back online, all the developers can sink the core back to the server and back to their own BCS ONE and repositories. Now, version control and distributed. These both features allow get to become a highly, highly effective, efficient collaboration tool for software development. And that's why this is really the most popular tool for software development. 5. What is a static site?: Now let's take a look at what is in static site. In the purest of its essense, a static site is nothing but a page that is prebuilt using HTML, CSS, and JavaScript, right? So what this means is that every time a user requests for a page, let's say the user requested for the about us page. The server will return the page with everything in it, right? So the About Us page will exist a pre-built about a spatial exists with all the HTML, CSS, and JavaScript that is required for it. And let's say the user requests for a product's page. A product's page will exist with all these tendencies in JavaScript in it. So the About Us page will contain the HTML that contains a text about that particular company or the person, so on and so forth. And on the other hand, the products page will actually contain all the products are coded as HTML in that particular HTML page. Now, if we compare this with the dynamic side, a dynamic site is the sum of the database. Bless the template. So the database will contain all the data required. That template will contain the structure of the page. And when you combine these together, you get the final HTML page. But now the difference here is that this process of combining the data from the database with the template from the template files and producing this final HTML output is done on every request. So that means every time a user requested for a webpage, for, let's say in this case, let's say a product's page requests will be made to the server, the soul, we go ahead and combine this information, combined the database and the template, and then return the final HTML output. Now what is different in a static site generator? If you use static site generator, you get the best of both worlds. What this means is that static site generator is a combination of markdown files, which has the content. It combines data with the template files with. So that could be HTML templates just tell you the structure of the page. And then that produces the final HTML output. That page will contain all HTML, CSS, and JavaScript that is required. Now the benefit of this is that this happens only once when the site is built, right? So when it changes made to, let's say a template file or a Markdown file. The static site generator. So let's take Jekyll for example. Jkl will build the site. It will combine all the markdown files and template files together and build all your HTML files. So now what happens is when a request is made for an about us page or the products as productive phage, the HTML versions that already ready. Right? So the output is just like using a static site. A user makes a request to the about us page, and the content is already ready because JPL has already pre-built the output for us. Similarly, when the user requests for the Bernanke speech, The output is already ready for us. Now what this means is that you get the benefit of having things in a dynamic nature. But also because everything is static, you get the benefit of speed. Things happen instantly. There is no server-side processing. On every request. It is prebuilt and the user gets the output and nice and fast. So that is a static site versus a dynamic site versus using a static site generator like Jacob or hugo or gets b or one of the others. So these are the three concepts that you should be aware of and feel free to dig in a little bit more as well before you proceed with the rest of the class. 6. Creating a static site for this class: Okay, so one of the things that we spoke about earlier in these videos was about static sites. And in the pre-requisites also, we talked about having your hands on a static site for this class, which will make things a lot easier. So in just in case if you don't have one ready, what you can do is you can create a fork, which is a basically a github copy of a repository of this particular repository. So I will create one, I will create a focus of this particular repository and my personal account, and I link it right here below. So you should see my notes popping out anytime in this and relation, what do you do is you start from there. And what this really is, it is a simple website, so it is a simple static website based on J Q, which is a static site generator. And it just has some demo content, right? So it is just simple. A few pages here. Even see a little bit from blogging sort of situation going on here. But actually it's just different events with all dummy contents. So this, we can always go in and change the content as we like. Now this particular depository itself was forked from this, a guy here. And this is the repository here, which is the official website of an event that I conceptualized and I put together a few years back and see if you want to check out this site, please feel free to do so. But this repo history itself are also forked from the original theme called Beautiful check-in. So I phoned the repository, made a bunch of updates to the site. And that's what the site looks like. And then what I did was I forked it into this repository and then sort of generalized it. And so now if you see it as all dummy content and which is, which is very easy to copy and play around with it. Now one of the other things is that you would see in terms of the branches, you would see a master plan which will contain all the forest tree contents, all the templates. And then there'll be another branch called without forestry. So depending on where you want to start, if you want to start following along with me with this video, you can start with the Without forestry brunch and start creating your own stuff. But of course, if you want to see what the final output looks like, you're just connect forestry with the master branch and everything would already be in place. Having said that, when you do create a focus of this particular repository that has certain things you wouldn't need. Do you go on to the settings and rename the repository to be your username dot github dot io. And so in most cases, this menu named as depository to build this particular format decide works perfectly fine. But if it's a sort of a sub site, then it may or may not work. So feel free to check that out, net out. And the other setting that you needed changes into, scroll down to the section called GitHub pages and enable get up pages and it'll be saved. But, and then once it is enable, you will see a message like this. Your site is published at the particular URL, which you can then click on and visit the site. Now when choosing the branches, if you are using your master branch, and that obviously contains all of the forest tree contains. Then of course you can select must have lunch. But let's say if you are choosing to go without forestry and then following along with me with this class. Then, then you would need to select without Fordist tree branch here in your source for GitHub Pages. And, and the reason is because if you select master branch and click on save and serve your site and n in Soviet site from the master branch. And then in forestry, if you're editing the contents in the Without forestry branch, what will happen is that your changes from forestry would not show up on the site because your site is actually it's actually been served from the master branch, right? So you just need to make sure that your source for DR site and for forestry is the same. So if you are choosing master, then then, then that should be the source for GitHub Pages n for the stream. If you are going with, without for a street, then make sure you are changing the source of both the places, right? Hopefully that makes sense. But just, just take it at that and enough and that it should be perfectly fine. 7. What is Forestry?: Let's take a look at what is for this tree. Forestry is a content management system, which means that all the content that needs to be updated for your website will go here. You'll make your changes in forestry system. But it's not just any other CMS. It is a good based CMS. Now what that means is that all your changes, all your content updates that you make in forestry gets committed, has scored, do your gate based source code repository. So every time you make content changes, it actually makes good based commits so that, that changes gets checked in do your source control repository. Now, after it gets checked into your repository, you can then plug in your build and deploy tools to build your site and then deploy it to your server where your actual website is served. Which means that any changes made to follow this tree will go through this pipeline and then finally get deployed to your website. And then users who visit your website will be able to see your content changes. So to summarize, it is forestry is a content management system. Now this means that anyone can edit content. So if you don't, if you don't have a development background, if you don't edit code, you can get forestry hooked up to your site so that anyone can update content. Even on the go, you get a, what you see is what you get editor, it rich text editor, which means that you do not need to remember syntax on how to style your content. You get a nice-looking Editor to be able to make those changes, make rich text content changes to your site, to all of your pages. And being a CMS tool, the user interface is absolutely super, super easy to use. Since there's no development background needed. This tool, this UI, is built for content editors so that anyone really anyone can edit content on the goal. Falls tree. Cms is a good based CMS which is also built for static site generators. Now what this means is that there's no database involved. All your content gets checked in, gets committed, has markdown files. It's a markdown based environment. So what this means is that all your content is source control in the same Git repository where your template files, where your HTML, JavaScript and CSS files are. So everything is based in your Git repository. And in the moment content changes are made, you can build the site and then deploy it to your website server. 8. Connecting Forestry CMS: So what we'll do is we'll head over to forestry dot IO. So now to sign up with for distributing under do is you want to click on the sign out button and fullscreen or IO, and then click on sign up with GitHub, the shutter open above up. And you need to authorize for history to access your GitHub account. So click on the green authorize forestry IO button. And that will allow the Login to happen and for history to be able to pick it up because your repositories from GitHub. Now what you wanna do is I want to just complete this forms. You just get this menu. Just start off with this just for forestry didn't know what kind of usability have. So we'll just click on the developer. And I'm using it for, let's say, of your personal websites. And I'm building is injected. So complete. And there you go. We have forestry all setup. Now from here what we'll do is we'll click on the Add Site button. And I'm going to select Jekyll because that's what this site is built using check-in icon next, and we'll click on GitHub because that's bad and storing the account, stoning the repository, click on Next. And I have this repository. And now I'm going to slave master branch because by the end of this class, the master branch will have all of the follow strict contains. And therefore, we know when you then create a glow Knauf Muda of this repository, you'll have the exact working condition than that of Forestry of the forest reconfiguration and that I have used for this particular glass. So I'm just gonna select Master. But of course, if you're following along and you want to select without forestry, feel free to do so. Once a select on next, I will be able to see the site dashboard page sellers click on markets w1. Complete setup, that's fine. And this is my foil stirred dashboard page for this particular site. Now what I like to do is I just like to give it a quick refresh celebrity. Sometimes some pages don't detect these numbers. Ends I just laid to be safe and refreshed one's skin. And now if I click on pages, I can see that there's a few pages all ready been picked up by Forestry. I've seen there's a post is steams. So all of this has already been picked up now. And we will have a look at configuring all of these, all of these elements in the future videos. But for now, for this particular video, just get yourself set up to this particular state. 9. Exploring settings: Now that we have false, true connected with our GitHub repository and we have a dashboard set up. The first thing what we'll do is we'll actually go and have a look at the settings, right? So this is a bit unusual to go into settings at the very beginning, but let's, let's do that rather than going into any of the other menu items. So in the general damp, what we have is an option to update the branding. So a little bit of settings over their site name, URL, logo, feel free to update. This is just the metadata that will be stored. And of course, what do you want to do is you wanna make sure that your new file format is set to models and this is at the site level. And so there's no confusion about that. Now. And it's something that we will take a look at one of the other videos. But using for industry, you can actually update markdown and even HTML on the goals. And that is really, really beneficial. In collaborators and teams. This tab allows you to add collaborators. So if you have a team of people who need access to this particular CMS, particular dashboard. Where you can do is you can give them this and they e-mail addresses and just give them the access levels. So editor, developer, admin, depending on what access level you select here they'll have, they'll see different permissions. So for instance, editor won't, won't be able to change settings, and so on and so forth. So just enter the email address and they will receive an invitation and then they should be able to access the dashboard as well. Now if you are on a page plan, your, you will also have access to teams with just a way of grouping uses together. Then we click on the sidebar, which as you would have noticed, is these names, these words matches with what appears here, right? So this particular screen, this section here, not the site section, everything about that can be customized. So right now we just have three items at four distri has automatically detected it for us. But what you can do is you can always add more items over here. You can remove these items and so on and so forth. We lose. We'll have another video may be actually go ahead and customize the sidebar a bit in, in detail and explain in all the settings that you need to take care of or enter when, when you add a new section. So we'll leave the details to that particular video. And then we'll go into the repository tab, which is gives you some metadata about the GitHub repository that this particular for X-ray count or the site is, is connected to. In the media tab, you can select when your media files must get uploaded by media, I mean, is usually, usually images. So you have a few options here. You have Cloud nearly Amazon nicely fire. So few options here, but the easiest one that you can just make yourself right at, right from the beginning is covered media to repository, which means it, whenever you upload an image, it will check in that image to your repository, to your code repository. And then which folder it creates and checks your images into, checks in your images and do can be updated so you can maybe chances to images or uploads. And depending on your preference. And I usually like to leave this as it is, right? So I have these at its defaults, not a problem at all. And then finally in previews is varied. You have, you know, more additional settings. This is more foreign anti-violence to user. I wouldn't recommend modifying on updating any of these settings. And at this very stage, unless they're super confident, we fought history. 10. Updating content via CMS: Now let's take a quick look at how you might go about updating content in forestry. Now remember it is a CMS. So that means you should be able to update content without having to deploy your site again. Now to do that, what you do is your condo pages. Let's just say we pick up one of the pages listed here, maybe the About Us page. And once it loads, you can see on the screen you have on the left-hand side if form, that has some metadata about this page. And on the right you have texts. And given that you have these controls here at the bottom of the screen, it is safe to assume that this is a rich text editor. And what that means is that if I highlight some texts, again, make this boy, I can Jane student Alex, I can add links, images. I can make certain texts, you know, let's say heading. So if I click on this particular icon and select Heading one or two, let's say do, this is what I get. And then if I click on save, what forestry will do is it will save all these condensed directly into my repository. So it'll commit all my changes directly to the repository. Now don't worry about the left hand side section so much this is called Frank matter, and we will be taking a look at this in detail in another video. For now, we'll just focus on updating content. Now that I've made these changes, I've updated the content of this page. If I go onto the website and if I click on about. Now for the changes to appear on your website, it might take a while because JPL has to build your site GitHub Pages stability aside, and it has to generate a static version of the site. So what you wanna do is you can just give it a quick hide, a refresh, and then when the site loads so that when the cash is cleared, your browser caches clear. When the side loads, you should see that our content is now visible. So you have about us, which is in the nice heading, and you have boiled contained here as well. So that's a quick surfer door on how to update content of your site using forestry CMS. Now one more thing I must add is that if you don't want a rich text editor, you can click on the three dots here and click on row editor. What this will do is it will give you a, a straight away. It'll give you a mug down editor. So if you're familiar with Markdown, and in this case it is using Git flavored markdown. So if you're familiar with markdown, you can, you can update your content in regular markdowns. You need to learn this in tags, but hey, I have a glass on debt, so I'll just link that in the video right in here, and click on that and feel free to learn more about London. Of course, if you don't click on the three dots and switch to what you see is what you get editor. This is nice and simple and very easy to learn. Because for learning more about our labor force, it is a good news. What's the food? All over? The web? 11. Adding images: Now I have updater the content on my page, on my website using forestry. But now what if I want to add an image onto, onto my website under this particular page. So let me go to afford a street and have this About Us page opened. Now if I go to the next line here and our NDA or down to insert an image right here. So for that, what I'll do is I'll click on Insert Image. And now I have two options. Now at this stage, inserting from the URL doesn't quite work, has expected. So hopefully in the next for his share of date, it will fix itself. But for now, let's have a look at the media library approach. And you can click on the Open button from here, which will open the media library directly. But if you don't want to do that, you can also click on the media menu item on the left-hand side of the screen under the site section. So if you go over here on the media, this is your media manager. So all your uploads, which settings really you'll recall a goes under the settings, goes and uploads folder. So all of the images gets told there in our GitHub repository. And to upload, we click on the upload button, which will pop up a button, which should pop up a dialogue box. And I'll just click on this particular image to upload the image. Now, once we have the image here, I can go back to our about us page. Continue editing. And then click on image open. And then just select the image that I just uploaded. You would have noticed that it has brought me back to the media manager where I can still click on upload and upload a different image. Should I, should I decided to change my mind. And what I'll do is I'll click on Insert and the ego and the images now in mind. Beach. Now what I'll do is I'll click on save, which will update the GitHub repository, and which will then trigger a Jake will build. So I'll wait for a few minutes, maybe a minute or so. And then we'll come back and then refresh the about us page. So now if I go to the About Us page and if I give it a quicker the fresh, I should be able to see the image that we just added. So yay go the images right here. If I right-click and open THE image in a new tab, I can see that the image stored in my repository in the uploads folder and label, that's the image name. So the image I have taken from land splash, which is a source of a bunch of three images just in case you did not know. Okay. And okay. Okay. 12. What is front matter?: Now let's say we decide to go ahead and update our event page. Alright, so let's take a look at even do one. If I click on that, click on continue editing. Now if you look at the screen right here, right, we briefly UP briefly discuss the layout of this page. On the right-hand side, you have the content. All your markdown content can go on the right. Now on the left, we briefly talked about that this is called front matter. And friend Matt is nothing but just metadata on this particular page. And for the street displays for anti-matter has a form which you can just update and then save the page has a word if you had to make any content changes. But now what is this front, Amanda? Right. So it is, it is as we discussed, just just metadata of the page. So you can have variables. Think of this as variables that are available within particular page. And you have said certain values for this particular, for these particular variables. And now this metadata can then be used on the particular page for either displaying content or conditionally displaying content, right? So let's say if you have a variable that says Show form and it has a dog and re that true or false. Now depending on that value, you can, you can define it in your JKL or if you use any other language, you can define it in your template to say that if this value of this particular, this particular metadata is, is true, then we'll display the form. If not, then we want to split the phone, right? So just simple things like that. And that's how you just can store information about their particular page. Now if you take a look at GitHub and we take a look at this same event one page on GitHub, you can see that of course there's heaps of content here, loader if some content. But what he didn't say that dog is a table. And this is how GitHub displays meta data or your fundamental information as a table on tops of desired. If you can preview DR. metadata or friend, mentor. And what it basically is is just a key, right? So you have category and it's valuable in this case, it is past events they found view the raw version of this particular file. You can see that the file is still of the extension dot M D, which is marked down. And you know, all your condenser will be marked down. But at the very start to define front matter, what you'd do is within, within these three dashes. So you start with three dashes, end with three dashes. And within that, you define your friend Amanda, using the language called YAML. And learning and Boulez is again, pretty simple. If you just Google about it, there's, there's a few guides that teach you how to use Yammer. And essentially it's a key followed by a colon, followed by a value. And if you want to add lists, list of items. So you can either use key core value and then the value in this case is just a hyphenated sort of list, as you can see. Now, since we are using Jacob has static site generator. What do you want to do is go onto the site and search onto this particular page. And I'll also link this in my notes, class notes. You want to just have a quick read through this particular page. It again talks about friend matter. It talks about YAML and how it is used as a similar thing that what I just spoke. But something that's really, really important to keep in mind is things like the predefined global variables. And now this list, depending on how they develop, it may or may not increase. So you know, I don't want to have an exhaustive list and my glass by things like layout is a predefined variable layout. The valley of the layout is basically the name of your page template. And so you don't want to mix your own reuse this variable and n stored a complete different value for a completely different purpose. Alright, so things like that, you do it, it's good to keep it in mind. And if you keep scrolling down, it tells you how to add custom variables. So in this case, as you can see, between three dashes and the top and three dashes at the bottom you have a custom variable, coil, full, which has the value of Pisa. And so in your template I, you can basically use badge dot food within these double curly braces. So this tells you how to use the variables. And of course, this is HTML. So either you can, you can of course write HTML and mark down. But if you have HTML template files, and this is how you would use your customer labels. And again, there are few predefined labels of post as well. So just need to make sure that you are aware of these. And this is of course a Jekyll, but of course if you're using a different language like Hugo or any other static site generator, then they might have a different set of predefined variables for front matter at all. They might just have a different way of handling things, right? So hopefully this gives you a very quick introduction to front matter. Definitely pause the video and reflect on this, and then continue ahead with this particular video. 13. Creating a front matter template: So if your backend for history, and I can see we have the speech or even to one. And if I click on that, we have all the front matter metadata on the left and the content itself on the right. Now this is all good, but now let's try adding a new event. So event number two. Now if I click on the Create New event, so I can see that it is giving me two options. One is to create a folder which no explanation, but the other one is to create a post. So non-figurative posts click on Creative Post. It says that I do not have any front matter templates yet, right? And now I have two options over there. I want to create one or do it later and I felt renewed later, I won't be able to add a new page. Now, what is this front matter templates in forestry? Now, in the previous video, we already had a look at what friend matter itself, foils and in forestry friend dramatic templates is sort of a way which it tells you what type of Bayesian creating. And on the left-hand side, depending on what type of page you create. On the left-hand side, it gives you those many fields. And you can just plop, populate all of that, all the metadata for the page which gets stored in YAML. So something like this. And then of course on the right, you will have your content. Now. Begin, we'll, we'll of course dive into front matter templates, a bit more upper for nowaday lose, we'll click on create a template. Now when we click on create a template, I have two options. I can create a blank new template on base or an existing one. Now of course, if you're starting from scratch and you have not, or you know, you have not. You don't have too many pages or too much, too much of content, too many documents, then of course you can create a blank new template. But now because you will be have event one, I can actually create a template based of event one, which will then allow me to create event to. So let me click on create based on existing document. And I will name this. I will leave this template, event template. And for the pages were a loser click on event one because that is the page or document that we are going to base this template off. Click on Create template, and it populates a lot of fields. As you can see, this is sort of like defining a schema for that page, right? So these are all the keys and this is what it's basically trying to say. This, if, if this table is your actual key and value bears, what for this resigned to do is it's trying to create a form for that so that whenever you add new content of Philip the form, this is what your table should look library the conditional populated in a schema that should look something like this. Now, it has smart enough to detect automatically, which is a text field which might require an image or a file upload. But of course there are a lot of fields. And if I just click on Add Field button, I can see that there are a lot of different types of fields, right? So you have something simple, has a TextField, but he also has something like a color picker or a list, a select field, which can give you a set of options. He ever toggle so many, so many different options. But for now we'll lose trend map each and every one of these fields to what we have already over here. So this is event one. Eyes can see and we'll just try to map the schema to this one, right? So it starts off with category. Now, category here is past events. So while this does look like a text, just a bit of a search engine here, but I'll just give you an explanation of how this text, past events has come gum upon here, right? So the reason it's coming here is because of this file called Bayes dot HTML in the Layouts folder. As you can see in this code of block, what am trying to do is I'm trying to actually get the value of category, right? And what I'm gonna do is I'm going to, in this filter post.html, I'm going to pass the value for gathering has upcoming events, right? And so if you have a look at filtered post.html, it will take in this value has the category and filter all the pages by that particular category. So as you can see here, there's just in this code block. In this case we have two different types of categories. So either it is upcoming events or past events. And event number one was already past events. So definitely here we have two things that we have we have clarified. One is that it is not as simple text field. It is supposed to be a select freedom red, so it shouldn't be a, there should be two options, predefined options, and the user should be able to select any one for this particular page. So definitely this is not the right. This is not the right type of type of field to be put under Template. So what I'll do is for this category, I will delete the field. And now I will add a new field called select field. And I'll give the same name. So this is, it goes here, says you can see this is the key using a front matters and this has to be what you already have here in the table header. And then here this is just a human-friendly name, so this can be any, anything else? And what I want to do is I'll give you options. You have custom. And the first option that I want to mention is, let me copy this from here, the exact text called past events. Using the S1 it enter. And the second one is upcoming events. And we click on option ego, validation, it is required. And the default. Spawns Stevens, which is fine. And visibility is, if you want this particular field to be visible, if an either feel is visibility of these conditional visibility thing going on here. But of course, for the sake of this particular demo, it's learned, acquired. So I'll just click on Dan because that's all we require. And move this guy writer Doc because that's what, that's where this guy was. Now for the rest of it. So you have layout, title, subtitle. All of them are fixed fields, which is completely fine layout ID subtitle. Now of course this is a date, but the delivery using subtitle is, it's actually not really for data itself, is using into displayed pretty much like a subtitle. So I won't use it. Take a datetime field here, I'll just keep it as a regular text. And so that's all done. Nine terms of big Ay mg, big image. Alright, so this is just the bath. But of course we're going to use to be able to upload a biofilm, nor does type in the bun like a text field. So for that we have used a field called image of file upload. Now, all the fields have these tabs. And so if you had overdose early stamps that again in, you can choose different values for this human or restrict the maximum file size for any measure blower. All those kind of things you can actually define. So for different type of fields, you will have different type of options to choose from all over the confidence. All right, so let's clean up Kansas and that's fine. And if I keep scrolling down, I am banks, which is a sort of a list. Which is fine because now here you have events and 2080 and so even says a tag. So you sort of groups on all the pages that have these tanks together. And 2018 is just tagging it as that particularly at the event happened. So I'll just leave that that way. Of course you can add a select list over there as well. But I wanted to be a free-flowing sort of baggage. So something like if you're familiar with medium or any other values you can, uses can add their own bags. So I think we'll, we'll leave it at that. And then you have this event, desolate and even date. Now that is some descending they would have come with the libertarian actually using this in, in practice and we don't want to use is to be adding any values here. So what I can do is I can safely delete these two fields. The event date is gone. And now we have meta description. So meta description is something that we're definitely using. Now Isaac has you know that the name is really the key, the exact value. So that has to be Mad-Eye from description. But of course, the label, a human-friendly name. There's no need to be the same. So we can change this to meta description and purify. And so we're just labeling in the field with a different sort of xt, more human-friendly text. Now, I can leave the other fields as it is. For the sake of this demo should be all good, right, so we have all our fields configured, which is amazing. So I'll just hit the Save button. Now one more thing I wanted to show you is the settings icon here. If I click on this, I can see that of course they can keep changing the name of the template. But there's another very interesting configuration here you have. On the left we have fields and big content area. So in this case, you have YAML or front matter on the left end, markdown content on the right. But you can also create templates which, which contain only your front, front mattered data metadata. So you, sometimes you want to create pages which actually don't have content. Maybe it just needs to have certain metadata information in it. And I'll actually show you variable use this type of template. And that, that's, that would be another video later in this course. And of course, if you want to delete the template, you can always click on the delete button here, but we won't do that. So now that we have our template created, I'll go back to posts. And from the Create New drop-down and click on create a new document. And now I'm able to add in new. I'm able to add a new event right here. So now if I click on even to, I have filled up the information embedded image and fill up the content, a little bit of a sample content here. If I head over to GitHub, I can see that not even do created stats, amazing. And then now if I refresh the page, I should be able to see their content in here as well. So now what happens is when I click on events, I can see that now, apart from event one, event two is also showing up. And if I click on even to again see the new image, the dates, and all the content, such as updated their content here, but all of the content is showing up as well. So one thing you need to know is that when you're creating a post, so many are practicing and when you're falling this class, make sure to add a sufficient contender here. Otherwise, you might get Eddas, the beige, um, so make sure they add some sufficient content here. You can just copy what voters in even to one, just copy it into even two, and you should be fine. So I've just copied just and the same. So that is, you are creating templates. And then after that based on, you know, once you create a template and then you can actually create pages based of that template. 14. Fields only front matter template: So in the previous videos, we have gone ahead and added and a new event in posts. Now what we'll do is we'll add a new team member, right? So to do this, you would think that you will follow the same process, the process of clicking this drop-down here and clicking on teams create a new document. But when you do so, what do you notice that the front matter template on the left-hand side of the screen is completely incorrect. This is showing the friend Mary template for the one that we use when we're creating an event. And if you compare that with the existing team members file. So Jane Smith, mark down, you're gonna see that in this case the front matter, they look completely different. So now we need a different template. You need to create a new template. And to do that, what the easiest way to do that is may click on an existing person. And then we click on Create template from the street tree. These three dots will click on Create template. Now we'll name this template has team member template and click on Create template. So this has automatically associated this new template with John Smith md because that's the file that we just clicked on. So create template, it has automatically showed me all these fields. So I've gone ahead and check all of these veils and all of them are correct. The types or collect, the keys are correct. So have gone reference them with all these, all these keys. Now one thing to check is the type of this template. So if I go to settings and if I check the template settings, I can see that this time it is not Fields and big content area. It is. Forestry has automatically set the template settings to fields, fields only. Now the reason for this is because the, I find that it was basing this template off was John Smith and our MD. And it has looked at the file and seeing that there's only YAML contained here, right? That's the only metadata information over here, but there's no markdown content. So it has detected that this must not be a content based file. It must just, it must just contain metadata information. And that's why it has automatically selected fields for us. So again, click on Done. And of course, I can save this template so that we can reuse this one. Now, when would we use USB thinking, when would we use a field only template, right? When men would we not add content to our files? Now, we would use this if you want to. You, if you wanted to use these Mangan files has just a data storage mechanism. So what I mean by that, and if you go into this site and click on team, you, you can see that there's this base called team. But in this page you have Jane Smith and John Smith just showed up here has individual kinds in division information. And I can click on these individual record and economic click on John Smith and view ease profile in details. So basically what we have here is a Content page. And inside that we have this widget, right? So you have this visit, which can be something around this section. And all this widget does is it looks at the team's folder and, and basically pulls through all the markdown files. And then this becomes your data structure. So this is just considered this as each row in your database. So all it does, it has all this information about each and every team member. And now what it has to do it is to look through all of those records and display each and every member. So it first displays Jane spins information than John Smith. And now when we add a new team member, it will display that the members information as well. So let's do that. So let's go to Teams and we'll create this. We'll, we'll click on the drop-down here and click on beams created new document to create a new team member, to add a new team member. So when we click on this, we immediately have this option called create team. We have this pop up. Now for the streak and not decided what type of template to select men when you're creating a new team member. And we can solve this problem, but will solve this problem in another video, right? So that's late in the course, but just remember this. So for now what we'll do help for its tree and we'll say, okay, not even doublet, I want team member template. So I selected that, clicked on next. And now it knows what fun to show me. All right, so what I'm gonna do is I'm going to pause this video and fill up the information for this new team member. So thrilled up the information and I will now save this file. And for the file name I will say new team member. And it has automatically adding the extension dot Markdown. So that's great. Create document. And now I forgot to teams again, see if Jane's meant John Smith and then new team member. Now we'll wait for JKL to build GitHub Pages to build on site because you've just added on your team member. And then what we'll do is we'll refresh this page. And so we'll just give it a minute and then we will see a new team member showing up on this page. So just gone ahead and refresh this page. And as you can see, a new team members profile has appeared on this particular page. 15. Front matter template for public pages: Now that we have created templates for posts, which are, which are even and teams. Now it's time to create a template for our public pages. So to do that, you know, like we did in previous videos, what you will do is click on anyone of these pages. That is the easiest way to create a template. So you click on about, for instance. And then of course a go ahead and create a template. And that should pretty much have this same forms has what you see here on the left-hand side of the screen. But now the problem here is that if you go onto the About dot MD file table in the Yammer table here, and you can see that there's a lot more metadata. There's lot of mode YAML keys. Then what shows up here? Now, this is something that you need to take care of is if a, an existing document, as has these toggle, toggle values, Boolean values. And if they're set to false for the street does not automatically pick them up. A subtitle which is empty, that forestry has picked it up, right? So there's, there's these drawbacks, there's these little caveats that you need to be aware of. That means what will happen is even if you create a template here, you'll be actually completely excluding these Boolean values. So which is 12345 of them. So you're completely excluding these values. So that is a need to keep in mind. And another thing to keep in mind is that when you have multiple pages, so in this case, all the public pages are in our root directory. So as you can see, there's a lot of Maldon finds about contact events. One of the things that you might need to do, of course not for this particular example, but let's say if you're implementing this in real life, in practice, is to pretty much have a look at a few randomly sample a few of these markdown files, and then just compare these tables, right? So what do under this unit compare all of these YAML information with each other. Because sometimes it might happen that till the time you are not using for history, what might happen is that for some pages, you might end up adding, let's say layout, title, subtitle. But for the other page, you might add only layout, but completely skip title and subtitle and then use the either qi's, Right. So there might be inconsistencies between different pages that you just need to be aware of. And if they're in Kansas, consistencies between pages, what do you need to do is you need to find out a page or you need to combine these inconsistencies in a separate document and make a list of all the possible keys at you might acquire for it, either for a set of pages that you can logically grouped together. And then you create a template based of that. So that's, so now that you have this knowledge, what will lose will now create a template, a front matter template for these public pages. So what I'm going to do is now that I know what what files are missing, what forms and missing, I'm still gonna click on the three dots and go and click on Create template. And Name this public page template. So as you can see, it has created these fields. And of course, in this particular instance, it has actually automatically added the dog ills that we were concerned about. So that is amazing that it has added that. But of course, it is always good to go ahead and check your pages and make sure that there's no inconsistencies between these, between these tables. So as you would imagine, what you'll do is you'll go ahead and check all the keys is validate what information is provided if it's correct, and then go ahead and save your template. So let's do that just now. So I've gone ahead and have clicked on the settings and I've checked all of these values. All the keys match with all of the keys that we have over here. Now you can also go ahead and change the displayed text. So if you, let's say for this particular example, if you click on Settings key, you have to keep it the same. But for label, this should be a more user friendly text. So if you want, you can go ahead and change this to be a more user friendly text is hyphens. But for now, for this, for this particular demo has M demoing right now. I'll just leave it as it is and I'll let you decide if you actually want to go ahead and do that. And of course now if you go to the settings for history, smart enough to detect that these are fields and big content areas that is perfect as well. So I think on Dan and I will click on pages. So now what you want to do is let's say if you want to add a new page. So you can go ahead and click on this drop down, click on pages. And of course it will show up dialogue box because for district cannot decide which template to use will help for a shin tilted it at this zip public base template. Click on Next. And then we will go and do is just add some dummy content here. And then I will resume this video back. So what I've done is I've gone ahead and my desk content, text, content data. And then if I go to get help, I can see that it escalated test.html noun and has inserted all of the information has and we expected. So that is great. Now what we'll do is we'll just give it a minute for GitHub Pages to build the site and then we'll have a look at this page on life site. So I've gone ahead and looked at the URL forward slash test. And I can see that perhaps some content here, because I check these boxes include past and upcoming events that has been included. These widgets had been included in this. Well, but of course, the rest of it is, I'm exactly as we enter, including the image and including this content as well. So there you go, a public page and a public page template. 16. Renaming sidebar items: So now one of the things what I wanted to do is I want to rename these to the sidebar items, right? So instead of pages, I just want to say public pages. Instead of posts, I want to call this Events. And instead of themes, I'll just call this 18 singular. Right? So now to update the labels for these three sidebar items, I can go into settings and click on sidebar. And there I see these three sidewalk items now only need to do to rename as click on it and change the labels instead of pages. We call this public pages. And I click on Dan. And similarly wear loose of post uranium does to events. And four teams are just changes to team. And then I'll click on the Save button. And all of these three sidebar items have caught rename now very nicely. Now in this bhava, you would have also seen some other items, some either Pfam items here on the top of that we can configure. So now what are these items? Let's take a look at them in the next video. 17. Restricting front matter templates: So when I click on public pages, I can see that a partial label that we just changed. There are few other items to configure. The first one is create. So the type of content that been that we can create. So in this case, it's set to all, which means you can create a document and a folder. I think we have previously in one of those dropdowns in the previous videos, we did see that. And so either you can change this to just documents if that's all you want or you can send none. That means in this particular item you cannot create any more for their documents. So by default it is all. But then depending on your use case, it might be different. For any new file that is created in that particular, that particular directory. It will automatically be created of the extension dot md, which is a Markdown file. And if you want to change this, let say to HTML or something you can mention this year explicitly mentioned here so that that's the file type net will be created. And now finally we have available templates. And if you open this drop down, you can see all of these three templates that we previously created. Now if you remember, we had this problem in earlier videos where we really wanted to create a new document in one of these three side-by-side menu items and one of the three directories. But every time you wanted to create a new one for history did not know what template to use and we had to help for sure. But telling, telling forestry that this is a template to use when you're creating a new document. Now you can solve this problem by setting available templates, by configuring available templates right here. So let's say this is public pages, so I just want one template to be available. So public page template to be available. Any new document that will be created in the public pages directory will only have to be graded using public page templates. I'm Nam restricting the options that are available, right? So have I have three templates. But for this particular folder, I'm saying that, oh, there's only this template that there can be can be used. So I'm just mapping them together. So now I'm going to click on Done. And what I'm gonna do is for events, I'm also going to select, I'm going to do something similar. So I'm gonna select event template, click on Done. And then for team, I am also going to change the available template, team member template, and click on down. Now let's give this a quick save. So now what happens is when you go onto team, for example and say create new. It will automatically create it using their team templates. So that is, that's always a problem we don't have we don't have that extra bulb showing up right? Now. One of the other things that you would have noticed is the veneer clicked on team. The pop-up shows a lot more items, right? It is. If you compare this popup with what we seen when we clicked on public pages or events. It is quite different. And the reason is because public pages and even, so evens used to be posted before, right? So these two are default of ions. Because in jQuery for using JKL, by default, you have pages that are outside in the root directory markdown files, and usually most templates come with a underscore post the directory. So forestry automatically picks them up and knows how to configure. But for teams, what happened is we have this new folder, so this won't come with every other template, this underscore team's folder, but it has come with this particular template. And so far this should picks it up as a new directory that contains content and that must be added to the CMS portal, right? And of course it has not magically a pick this up, you know, otherwise is rapid. The other folders up as well. The reason it has picked underscore teams into the CMS portal is because if you go into the config dot yaml file, I have set up the team's folder in the collections, in the list of collections. So now this is going a bit deep into JKL, so I'll just stop there. But just for your information, FYI. This is why forestry was able to pick up the theme theme folder or demes folder because it was mentioned in the collections, in the list of collections. So over here, when we configured a directory, of course you can change the label, but we can also specify the exact directory we want. So let's say instead of teams, if we were to add underscore data, then that's the directory that you will pick up the contents from. In that, in that directory. We want to pick up all the files that match a particular file baton. Now in this case i'm going with a double asterisk followed by a forward, forward slash for by a single gastric. Now what this means is it fetches all the files that will be contained in the underscore team's directory. But you can specify, you know, like dot AMD. And this would filter all the files in Markdown extension. So just in case if you have HTML files in that folder and you don't want that to be picked up, then you can specify, explicitly specify dot, md, and so on and so forth. And of course, while we are matching, you can also exclude exclude files or exclude things, right? So you can specify both the cases here. When creating a new document. Again, here you have the option of folders and documents, just documents or nothing at all. And then you have the same new file extension and then the available templates that we already had a look at. So I'll click on Done. And we don't have to say because we didn't change anything and just lay this. You can configure your sidebar and you can add a section, and you can do a whole bunch of other things as well. So in the next video, we'll look at the ad section a bit in more detail, but for now, but I definitely encourage you to please reflect on these three sidebar menu items. 18. How are settings stored?: Now what I have done is we have connected foil distributed our GitHub repository, and had been making all these changes. Now, of course, all of these changes has stored some there. Now what you would find interesting is that all of the settings are not stored with forestry. Instead, it is being checked in with adipose tree. So if you've gone to a repository and refresh your page, you should see a folder called dot forestry. And in their folder, you will have a file coil settings or the YAML at the very least. And in this way, you have all your settings, right? It means this particular file contains the state or self-audits through dashboard at that given point of time. So this way what happens is that even if you delete your site history, even if you remove a branch from here. And then if you added all of that again, has long as you have this fine, in your repository, the dashboard should populate exactly. Has you left off? Isn't that good? I find this very fascinating. 19. Adding a read-only page: So far, what we have done is we have added the sidebar items in each sidebar menu item. When you click on them, you have all these pages, but all of them up public pages, they are for your website. And that's what year you're expecting either users to be reading content that you put, you know, put in your update here. But what if you wanted to write content for your end-users? Like if there are, if there are any other collaborators on this particular CMS platform along with you, maybe you wanted to just write a one-page yet of how CMS or in a useful links or useful numbers or something, some information that you want not to be displayed on your website, but just to be displayed in the CMS itself. Read-only so that nobody else can edit it. Does read-only information. Just a dashboard maybe, so that other users can just read the, read the data and then consume and maybe get some information from it. Now how would we go about doing that? So the way this site, it is a static site works, in this case JKL works is that it, it knows if there are particular folders that it picks up from. So if you obviously add a Markdown file in the root directory, you will be able to access this from your website. What you can instead do is make use of these hidden directories. Now of course it isn't source control, but by hidden, What I mean is that the vendor site is built into, into a static site. Many evangelical processes it, the contents in these hidden directories won't be, wouldn't be, wouldn't be copied across, right? So what we can do is we include simple markdown file and we can put our content in there, right, so let's, let's do that. So let's add a file. So they say greater file. And we'll name dot, dot learn with Clyde. And forward slash dashboard, note Md. Now in this file, you can add whatever links you want rice or dashboard for internal users. Please enjoy some useful content and links here, right? So this is what it will really look like. Simple file, you probably wouldn't update this has much, alright, so let, let me just commit this file directly into master. And now that I this file over there, what I'll do is let me go back to forestry. Now one that file to be displayed here has dashboard. So what I'll do is I'll go to settings and then click on sidebar. And then from here, what I'll do is I'll add a section. And now from here, I have a few options there and I have a few options to choose from. At this stage, I just want to display that one particular document has a dashboard. So it makes sense to select document instead of heading or directory, right? Cells live document. And I'll name this, let's say Dashboard. I can name this as a welcome or on anything else that, that's totally fine. And I will copy this path from the URL, copy that here. So forward slash learned collide. And then dashboard, not mount down. I'll click on this file. I'll click on this toggle read-only so that nobody else can edit it. And, but of course, if you want people to inhibit it, then you can leave this unchecked. And I'll click on that and you can save. Now let's give this a quick refresh. The ego. It has picked it up. Took a while to pick this up by database, right? Given the fresh and makes sure that the content has been saved. Because since we made changes directly to the repository, it might have taken a while to, for forest shaping that up almost immediately units. So just give it a while. And as you can see, the simple text over here, this your dashboard that shows up over here. Nothing too fancy. Now of course if you wanted or we could do is we could add sections as well. So view on the left-hand side you can see there's all these pages just disc at a dinner and the same, same level here. But let's say if you want it to be separated a bit, so what you can do is you can go to Settings sidebar. And in this time we'll add a heading. And the heading is site content, right? So that is site content. I will replace that just below the dashboard and click on safe. So what happens is dashboard sort of gets its own space. Decide contending make sense because all of these are grouped into that same category called site content because it's editable. And of course this is just site which is, which is not really editable. But I said then that just goes aside. And then the next video we'll have a look at how you can even add HTML and in even update HTML on the go. 20. Adding HTML content: Now you may be using a static site generator and then something like JKL or hugo or any other website template which may contain markdown files and the mix of HTML files. Or you might have in your HTML site read there's no, there's no markdown files. Either way. Let's say if there's a folder with some HTML files and you wanted that to be edited and on the go as well. You can do that using a forestry. And so in this case, this is a JPL said that we are at editing in this class. And JKL sites, apart from a few months on files, usually have HTML5 as well. This is what decides the structure of the page, the schema of the page, the template of the page in a kinetic visits. So the includes his little partial views that you can add. All of those kind of things again, do. So lets say if you want to include these, these, this folder and I want to be able to edit these files from forestry. How would I do that? I can go into for this tree, click on Settings, click on side-by-side. And the first thing would undergo a zone to add a heading. So this outdo clearly specified that this is in developer content in London and aloneness and the bottom click on save. And so that hitting should come here at already appeared here. That's great. So now we're going to do is on the ad in directory and that I will call it includes or I can even call it visits for that matter. And the directory would be in glutes. And I will filter stem to HTML5 only. In this particular folder, I want to be able to create only documents. And of course there are no templates and don't need to worry about that. And click on Done. Now, I'll move this down to develop a content and click on save. Now of course it has shown up as 0 by lead-time. For all the, all the contents to sync, it will forests trivial pick up the files from, from, from our GitHub repository, and then some time just give it to the fresh. For the ego that is changing is given leaf Daesh, and you'll have all your HTML files right here. So once all the content is loaded, and you can click on anyone of these HTML files. And you can see that of course there's, there's no, there's nothing on the left hand side because there is no friend method. There is no metadata for this page, right? So we don't need to worry about that. On the right hand side, that is HTML which we can edit. And of course these are specific to Jake and so this is, this is some syntax at specific check in. So don't worry about that, but you know, just HTML. So if you want to add a paragraph somewhere, you can pretty much do that, do Hello World, whatever. And then once, you know, once I've edited your content from HTML, you can then click on the Save button and then the process is exactly the same in the site will build again. And then within a few minutes you should see the updated website on your light portion in the browser. So simple as that, we can do this for, you know, you've done this when includes, We can do this for layouts few one, and we can do these things as well. So let's say, and another example would be if you go to the underscore data file, at least if you're using a Jekyll site, then you have this YAML files here, which basically stores on Settings, right? So like for a Facebook icon, what I shouldn't show, what should be the base URL, all those kind of things. So assumption, social network settings here, all of that can be, can be changed. And of course, if you have a source coding and go ahead and change this, but you can also add that over here. So in this case, if I go into settings, sidebar and a section, and instead of directory, if let's say, I mean, of course there would be ideal if you add the entire directory because usually data file contains everything. But let's say if you want to just add one particular file, so I'll decided document, and I'll call this social media settings. And the path would be this one here. And click on Dan. Move this and the bottom. Oops, LIGO. And good, unsafe. And then of course it will go and face this document and mumbling in the new YAML file. So have just refreshed the page and it has updated the sidebars. If I click on the site by social media settings that I've just created. You can see that all of the settings, and now here I can click on each of them and that shows up in some settings. But I can change the vara James, the Facebook guy gone due to be no Facebook like gone and a light or something like that. I can just click on save and ology injustice to be immediately reflected. So this is very nice handy way for, for you to update. Just in case if you don't have access to the source code directly, you can update it from forestry CMS as well. 21. Conclusion: And finally, it's time for the last video of this class. The conclusion. In the final segment, I'd like to talk about a few things. Number one is review. I'd really like to know your thoughts of this class. What do you want to think about this class in if there's any feedback that you would like to give me. If there's something that you liked about this class, something that you didn't like about this class. I'd really like to know. And the best way for me to, for you to provide this feedback is, is in skill share when once completed class, you'll be asked for and to provide a feedback. And, and over there that out really like or are really request. You really do take a few, few minutes out of your day after you complete this class and provide some detailed feedback over there. And you might also be asked to rate this glass provide a few ratings in terms of the star's number of stars. And so please take your time and, and rate this class according to the feedback that you have. And the second thing is about the glass project. Now, on this particular page, in the bottom there will be a project's tab. And over there you would have details about the project. So what do you need to do? What you need to submit all of the class project details, you should find it right there. But in summary, really what, what I'm looking for is for you to be able to connect your static site with forestry. And so just like we did in the class, you know, you, you, you basically, you basically power up your site, yeah, your static site at the CMS functionality using forestry. And then what it can do is you can just blog about it because, I mean, of course you can share your forestry, forestry dashboard with, with the, with the class. So what you can do is you can just write a blog article about it. You know, just, just talk us through what you did. How you connected in what are the things that he found, does write a blog post, a small one in some pictures in it, maybe some videos in it as well. Try it and see how you can communicate your entire class project, the process, and what amounts to looking is for your experience of how you found, you know, how he found it using using forestry. I guess many of you must be using first-ever the first time and react to know what you thought about using a forestry CMS away, a static site. So feel free to include that in your, in your, in your blog post. And then of course you submit a link to your blog post in the class projects in skill share, right? So when you, when you asked for it, just just submitted over there and, you know, feel free to light up and write a blurb about it as well if you'd like. But yep, I'm definitely looking forward to receiving all your links about ammonia articles on, on using forest tree by following this particular class. And then def definitely looking forward to receiving and reading all of your feedback. So with that, that's the end of the class. And thank you so much for sticking around till the end of the class. And I really hope that you have learned something new over, over this class and defeat. Go give it a try and happy learning for all of your other classes in future and all the best. Thank you. Thank you so much.