diff options
| author | Kyren223 <contact@kyren.codes> | 2026-10-06 20:46:31 +0300 |
|---|---|---|
| committer | Kyren223 <contact@kyren.codes> | 2026-10-06 20:46:31 +0300 |
| commit | ba1be9573ef20d6424ae987257a1c727c47d4b53 (patch) | |
| tree | e59ef56f19142215070d0516a9b3a110d15557b6 /src/pages/blogs | |
| parent | ea056b6e080669ba4b6f16c2757b4e2e88ea0553 (diff) | |
Initial setup for website rewrite
Diffstat (limited to 'src/pages/blogs')
| -rw-r--r-- | src/pages/blogs/[...slug].astro | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/src/pages/blogs/[...slug].astro b/src/pages/blogs/[...slug].astro deleted file mode 100644 index a7394ca..0000000 --- a/src/pages/blogs/[...slug].astro +++ /dev/null @@ -1,132 +0,0 @@ ---- -import { getCollection } from "astro:content"; -import Terminal from "@layouts/Terminal.astro"; -import BlogItem from "@components/BlogItem.astro"; -import Link from "@components/Link.astro"; -import TerminalBorder from "@components/TerminalBorder.astro"; - -export async function getStaticPaths() { - const blogEntries = await getCollection("blogs"); - return blogEntries.map((blog) => ({ - params: { slug: blog.slug }, - props: { entry: blog }, - })); -} - -const { entry } = Astro.props; -const { Content } = await entry.render(); - -const blogs = await getCollection("blogs"); -const sortedBlogs = blogs.sort((a, b) => +b.data.date - +a.data.date); -const currentIndex = sortedBlogs.findIndex((blog) => blog.slug === entry.slug); -const previousBlog = sortedBlogs[currentIndex + 1] || undefined; -const nextBlog = sortedBlogs[currentIndex - 1] || undefined; ---- - -<Terminal path="/home/kyren/blogs/"> - <div class="blog-scroll w-full h-[85svh] sm:h-[30vw] overflow-y-auto pr-[1.25vw] border-box"> - <div class="text-[130%] h-full"> - <div class="text-[110%]"> - <BlogItem - title={entry.data.title} - description={entry.data.description ?? ""} - date={entry.data.date} - /> - </div> - <div class="markdown"> - <Content components={{ a: Link }} /> - </div> - <div class="mt-[1vw] px-[0.1vw] py-[0.625vw] grid grid-cols-2 gap-[1.25vw]"> - { - previousBlog ? ( - <TerminalBorder header="Previous Blog"> - <span class="text-[var(--secondary)] truncate flex-1"> - <Link href=`/blogs/${previousBlog.slug}` newTab={false}> - vim ~/blogs/{previousBlog.slug}.md - </Link> - </span> - </TerminalBorder> - ) : ( - <div class="min-w-0 invisible" /> - ) - } - { - nextBlog ? ( - <TerminalBorder header="Next Blog"> - <div class="w-full flex items-center"> - <span class="text-[var(--secondary)] truncate flex-1"> - <Link href=`/blogs/${nextBlog.slug}` newTab={false}> - vim ~/blogs/{nextBlog.slug}.md - </Link> - </span> - </div> - </TerminalBorder> - ) : ( - <div class="min-w-0 invisible" /> - ) - } - </div> - </div> - </div> -</Terminal> - -<style is:global> - .markdown { - user-select: text; - font-size: 1.1rem; - } - .markdown a { - display: inline-block; - font-weight: normal; - } - .markdown code { - background: #333333; - color: var(--accent); - padding: 0 0.5em; - } - .markdown ul { - list-style-type: square; - margin-left: 1em; - margin-bottom: 1em; - font-size: 90%; - } - .markdown li { - margin-bottom: 0.5em; - } - .markdown p { - margin-bottom: 1em; - user-select: text; - } - .markdown strong { - font-weight: bold; - } - .markdown h2 { - color: var(--secondary); - font-size: 125%; - margin-bottom: 0.5em; - } - .markdown h3 { - color: var(--secondary); - font-size: 110%; - margin-bottom: 0.25em; - } - .expressive-code { - margin-bottom: 1em; - } -</style> - -<script> - document.addEventListener('wheel', (e) => { - const box = document.querySelector('.blog-scroll'); - if (!box) return; - - // If scrolling the page itself, forward it to the box - const atTop = box.scrollTop === 0 && e.deltaY < 0; - const atBottom = box.scrollHeight - box.scrollTop === box.clientHeight && e.deltaY > 0; - - if (!atTop && !atBottom) { - box.scrollTop += e.deltaY; - e.preventDefault(); - } - }, { passive: false }); -</script> |
