summaryrefslogtreecommitdiff
path: root/examples/blog-multiple-authors/src/components/PostPreview.astro
diff options
context:
space:
mode:
Diffstat (limited to 'examples/blog-multiple-authors/src/components/PostPreview.astro')
-rw-r--r--examples/blog-multiple-authors/src/components/PostPreview.astro66
1 files changed, 66 insertions, 0 deletions
diff --git a/examples/blog-multiple-authors/src/components/PostPreview.astro b/examples/blog-multiple-authors/src/components/PostPreview.astro
new file mode 100644
index 000000000..b126ca2fb
--- /dev/null
+++ b/examples/blog-multiple-authors/src/components/PostPreview.astro
@@ -0,0 +1,66 @@
+---
+export interface Props {
+ post: any;
+ author: string;
+}
+const { post, author } = Astro.props;
+
+function formatDate(date) {
+ return new Date(date).toUTCString().replace(/(\d\d\d\d) .*/, '$1'); // remove everything after YYYY
+}
+---
+
+<style lang="scss">
+.post {
+ padding-top: 6rem;
+ padding-bottom: 6rem;
+ border-bottom: 1px solid rgba(black, 0.25);
+ text-align: center;
+}
+
+.author {
+ text-transform: uppercase;
+}
+
+.date {
+ font-style: italic;
+}
+
+.description {
+ font-size: 1.25em;
+}
+
+.link {
+ text-transform: uppercase;
+ font-size: 0.8em;
+ margin-left: 1em;
+}
+
+h2 {
+ font-weight: 700;
+ font-size: 2.75em;
+ line-height: 1;
+ letter-spacing: -0.04em;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+time {
+ display: block;
+ margin-top: 0.25rem;
+ margin-bottom: 0.5em;
+}
+</style>
+
+<article class="post">
+
+ <div class="data">
+ <h2>{post.title}</h2>
+ <a class="author" href={`/author/${post.author}`}>{author.name}</a>
+ <time class="date" datetime={post.date}>{formatDate(post.date)}</time>
+ <p class="description">
+ {post.description}
+ <a class="link" href={post.url} aria-label={`Read ${post.title}`}>Read</a>
+ </p>
+ </div>
+</article>