diff options
| author | houston[bot] <astrobot-houston@users.noreply.github.com> | 2023-07-22 12:57:20 -0700 |
|---|---|---|
| committer | Pinapelz <donaldshan1@outlook.com> | 2023-07-22 12:57:20 -0700 |
| commit | 338bcf12e0b7bbd6e587ec992e62860642856e80 (patch) | |
| tree | 280c106666221697a40c13603a91ee4c696e0bfb /src/pages | |
Initial commit from Astro
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/about.astro | 63 | ||||
| -rw-r--r-- | src/pages/blog/[...slug].astro | 21 | ||||
| -rw-r--r-- | src/pages/blog/index.astro | 54 | ||||
| -rw-r--r-- | src/pages/index.astro | 50 | ||||
| -rw-r--r-- | src/pages/rss.xml.js | 16 |
5 files changed, 204 insertions, 0 deletions
diff --git a/src/pages/about.astro b/src/pages/about.astro new file mode 100644 index 0000000..2bed978 --- /dev/null +++ b/src/pages/about.astro @@ -0,0 +1,63 @@ +--- +import Layout from '../layouts/BlogPost.astro'; +--- + +<Layout + title="About Me" + description="Lorem ipsum dolor sit amet" + pubDate={new Date('August 08 2021')} + updatedDate={new Date('August 08 2022')} + heroImage="/placeholder-about.jpg" +> + <p> + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut + labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo + viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam + adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus + et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus + vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque + sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. + </p> + + <p> + Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non + tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non + blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna + porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis + massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. + Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis + bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra + massa massa ultricies mi. + </p> + + <p> + Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl + suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet + nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae + turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem + dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat + semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus + vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum + facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam + vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla + urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim. + </p> + + <p> + Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper + viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc + scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur + gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus + pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim + blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id + cursus metus aliquam eleifend mi. + </p> + + <p> + Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta + nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam + tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci + ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar + proin gravida. Egestas integer eget aliquet nibh praesent tristique magna. + </p> +</Layout> diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro new file mode 100644 index 0000000..0d656a1 --- /dev/null +++ b/src/pages/blog/[...slug].astro @@ -0,0 +1,21 @@ +--- +import { CollectionEntry, getCollection } from 'astro:content'; +import BlogPost from '../../layouts/BlogPost.astro'; + +export async function getStaticPaths() { + const posts = await getCollection('blog'); + return posts.map((post) => ({ + params: { slug: post.slug }, + props: post, + })); +} +type Props = CollectionEntry<'blog'>; + +const post = Astro.props; +const { Content } = await post.render(); +--- + +<BlogPost {...post.data}> + <h1>{post.data.title}</h1> + <Content /> +</BlogPost> diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro new file mode 100644 index 0000000..47126e7 --- /dev/null +++ b/src/pages/blog/index.astro @@ -0,0 +1,54 @@ +--- +import BaseHead from '../../components/BaseHead.astro'; +import Header from '../../components/Header.astro'; +import Footer from '../../components/Footer.astro'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../../consts'; +import { getCollection } from 'astro:content'; +import FormattedDate from '../../components/FormattedDate.astro'; + +const posts = (await getCollection('blog')).sort( + (a, b) => a.data.pubDate.valueOf() - b.data.pubDate.valueOf() +); +--- + +<!DOCTYPE html> +<html lang="en"> + <head> + <BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} /> + <style> + ul { + list-style-type: none; + padding: unset; + } + ul li { + display: flex; + } + ul li :global(time) { + flex: 0 0 130px; + font-style: italic; + color: #595959; + } + ul li a:visited { + color: #8e32dc; + } + </style> + </head> + <body> + <Header /> + <main> + <section> + <ul> + { + posts.map((post) => ( + <li> + <FormattedDate date={post.data.pubDate} /> + <a href={`/blog/${post.slug}/`}>{post.data.title}</a> + </li> + )) + } + </ul> + </section> + </main> + <Footer /> + </body> +</html> diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..26f070d --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,50 @@ +--- +import BaseHead from '../components/BaseHead.astro'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../consts'; +--- + +<!DOCTYPE html> +<html lang="en"> + <head> + <BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} /> + </head> + <body> + <Header title={SITE_TITLE} /> + <main> + <h1>🧑🚀 Hello, Astronaut!</h1> + <p> + Welcome to the official <a href="https://astro.build/">Astro</a> blog starter template. This + template serves as a lightweight, minimally-styled starting point for anyone looking to build + a personal website, blog, or portfolio with Astro. + </p> + <p> + This template comes with a few integrations already configured in your + <code>astro.config.mjs</code> file. You can customize your setup with + <a href="https://astro.build/integrations">Astro Integrations</a> to add tools like Tailwind, + React, or Vue to your project. + </p> + <p>Here are a few ideas on how to get started with the template:</p> + <ul> + <li>Edit this page in <code>src/pages/index.astro</code></li> + <li>Edit the site header items in <code>src/components/Header.astro</code></li> + <li>Add your name to the footer in <code>src/components/Footer.astro</code></li> + <li>Check out the included blog posts in <code>src/pages/blog/</code></li> + <li>Customize the blog post page layout in <code>src/layouts/BlogPost.astro</code></li> + </ul> + <p> + Have fun! If you get stuck, remember to <a href="https://docs.astro.build/" + >read the docs + </a> or <a href="https://astro.build/chat">join us on Discord</a> to ask questions. + </p> + <p> + Looking for a blog template with a bit more personality? Check out <a + href="https://github.com/Charca/astro-blog-template" + >astro-blog-template + </a> by <a href="https://twitter.com/Charca">Maxi Ferreira</a>. + </p> + </main> + <Footer /> + </body> +</html> diff --git a/src/pages/rss.xml.js b/src/pages/rss.xml.js new file mode 100644 index 0000000..7d054b9 --- /dev/null +++ b/src/pages/rss.xml.js @@ -0,0 +1,16 @@ +import rss from '@astrojs/rss'; +import { getCollection } from 'astro:content'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../consts'; + +export async function get(context) { + const posts = await getCollection('blog'); + return rss({ + title: SITE_TITLE, + description: SITE_DESCRIPTION, + site: context.site, + items: posts.map((post) => ({ + ...post.data, + link: `/blog/${post.slug}/`, + })), + }); +} |
