Now that you have built pages using .astro
files, let’s make some blog posts using .md
files!
Get ready to…
Make a new folder and create a new post
Write some Markdown content
Link to your blog posts on your Blog page
Create a new directory at src/pages/posts/
.
Add a new (empty) file post-1.md
inside your new /posts/
folder.
Look for this page in your browser preview by adding /posts/post-1
to the end of your existing preview URL. (e.g. localhost:3000/posts/post-1
)
Change the browser preview URL to view /posts/post-2
instead. (This is a page you have not yet created.)
Note the different output when previewing an “empty” page, and one that doesn’t exist. This will help you troubleshoot in the future.
Copy or type the following code into post-1.md
---
title : 'My First Blog Post'
pubDate : 2022-07-01
description : 'This is the first post of my new Astro blog.'
author : 'Astro Learner'
image :
url : 'https://docs.astro.build/assets/full-logo-light.png'
alt : 'The full Astro logo.'
tags : [ "astro" , "blogging" , "learning in public" ]
---
# My First Blog Post
Published on: 2022-07-01
Welcome to my _ new blog _ about learning Astro! Here, I will share my learning journey as I build a new website.
## What I've accomplished
1. ** Installing Astro ** : First, I created a new Astro project and set up my online accounts.
2. ** Making Pages ** : I then learned how to make pages by creating new `.astro` files and placing them in the `src/pages/` folder.
3. ** Making Blog Posts ** : This is my first blog post! I now have Astro pages and Markdown posts!
## What's next
I will finish the Astro tutorial, and then keep adding more posts. Watch this space for more to come.
Check your browser preview again at localhost:3000/posts/post-1
. You should now see content on this page.
Use your browser’s Dev Tools to inspect this page. Notice that although you have not typed any HTML elements, your Markdown has been converted to HTML. You can see elements such as headings, paragraphs, and list items.
Note
The information at the top of the file, inside the code fences, is called frontmatter. This data—including tags and a post image—is information about your post that Astro can use. It does not appear on the page automatically, but we will access it later in the tutorial to enhance your site.
Link to your first post with an anchor tag in src/pages/blog.astro
:
---
---
< html lang = "en" >
< head >
< meta charset = "utf-8" />
< meta name = "viewport" content = "width=device-width" />
< title > Astro </ title >
</ head >
< body >
< a href = "/" > Home </ a >
< a href = "/about/" > About </ a >
< a href = "/blog/" > Blog </ a >
< h1 > My Astro Learning Blog </ h1 >
< p > This is where I will post about my journey learning Astro. </ p >
< ul >
< li >< a href = "/posts/post-1/" > Post 1 </ a ></ li >
</ ul >
</ body >
</ html >
Now, add two more files in src/pages/posts/
: post-2.md
and post-3.md
. Here is some sample code you can copy and paste into your files, or, you can create your own!
---
title : My Second Blog Post
author : Astro Learner
description : "After learning some Astro, I couldn't stop!"
image :
url : "https://docs.astro.build/assets/arc.webp"
alt : "Thumbnail of Astro arcs."
pubDate : 2022-07-08
tags : [ "astro" , "blogging" , "learning in public" , "successes" ]
---
After a successful first week learning Astro, I decided to try some more. I wrote and imported a small component from memory!
---
title : My Third Blog Post
author : Astro Learner
description : "I had some challenges, but asking in the community really helped!"
image :
url : "https://docs.astro.build/assets/rays.webp"
alt : "Thumbnail of Astro rays."
pubDate : 2022-07-15
tags : [ "astro" , "learning in public" , "setbacks" , "community" ]
---
It wasn't always smooth sailing, but I'm enjoying building with Astro. And, the [ Discord community ]( https://astro.build/chat ) is really friendly and helpful!
Add links to these new posts:
---
---
< html lang = "en" >
< head >
< meta charset = "utf-8" />
< meta name = "viewport" content = "width=device-width" />
< title > Astro </ title >
</ head >
< body >
< a href = "/" > Home </ a >
< a href = "/about/" > About </ a >
< a href = "/blog/" > Blog </ a >
< h1 > My Astro Learning Blog </ h1 >
< p > This is where I will post about my journey learning Astro. </ p >
< ul >
< li >< a href = "/posts/post-1/" > Post 1 </ a ></ li >
< li >< a href = "/posts/post-2/" > Post 2 </ a ></ li >
< li >< a href = "/posts/post-3/" > Post 3 </ a ></ li >
</ ul >
</ body >
</ html >
Check your browser preview and make sure that:
All your links for Post 1, Post 2, and Post 3 lead to a working page on your site. (If you find a mistake, check your links on blog.astro
or your Markdown file names.)
Content in a Markdown (.md
) file is converted to: