├── _astrosphere.jpg ├── _lighthouse.png ├── public ├── open-graph.jpg ├── robots.txt ├── fonts │ ├── atkinson-bold.woff │ └── atkinson-regular.woff ├── js │ ├── scroll.js │ ├── animate.js │ ├── copy.js │ ├── theme.js │ └── bg.js ├── favicon.svg ├── brand.svg ├── copy.svg ├── social.svg ├── stack.svg └── ui.svg ├── src ├── env.d.ts ├── content │ ├── blog │ │ ├── 04-astro-sphere-writing-markdown │ │ │ ├── spongebob.png │ │ │ └── index.md │ │ ├── 05-astro-sphere-writing-mdx │ │ │ ├── MyComponent.astro │ │ │ └── index.mdx │ │ ├── 01-astro-sphere-file-structure │ │ │ └── index.md │ │ ├── 02-astro-sphere-getting-started │ │ │ └── index.md │ │ ├── 06-astro-sphere-social-links │ │ │ └── index.md │ │ └── 03-astro-sphere-add-new-post-or-projects │ │ │ └── index.md │ ├── work │ │ ├── facebook.md │ │ ├── mcdonalds.md │ │ ├── apple.md │ │ └── google.md │ ├── projects │ │ ├── project-3 │ │ │ └── index.md │ │ ├── project-1 │ │ │ └── index.md │ │ ├── project-2 │ │ │ └── index.md │ │ └── project-4 │ │ │ └── index.md │ ├── config.ts │ └── legal │ │ ├── terms.md │ │ └── privacy.md ├── layouts │ ├── TopLayout.astro │ ├── BottomLayout.astro │ ├── PageLayout.astro │ ├── ArticleBottomLayout.astro │ └── ArticleTopLayout.astro ├── types.ts ├── pages │ ├── robots.txt.ts │ ├── rss.xml.ts │ ├── search │ │ └── index.astro │ ├── blog │ │ ├── [...slug].astro │ │ └── index.astro │ ├── projects │ │ ├── [...slug].astro │ │ └── index.astro │ ├── legal │ │ └── [...slug].astro │ ├── work │ │ └── index.astro │ └── index.astro ├── components │ ├── Container.astro │ ├── Counter.tsx │ ├── StackCard.astro │ ├── MeteorShower.astro │ ├── SearchBar.tsx │ ├── Search.tsx │ ├── ArrowCard.tsx │ ├── BaseHead.astro │ ├── Drawer.astro │ ├── TwinklingStars.astro │ ├── Footer.astro │ ├── Header.astro │ └── SearchCollection.tsx ├── lib │ └── utils.ts ├── consts.ts └── styles │ └── global.css ├── .vscode ├── settings.json ├── extensions.json └── launch.json ├── .gitignore ├── astro.config.mjs ├── tsconfig.json ├── .github └── workflows │ └── stale.yaml ├── package.json ├── LICENSE ├── tailwind.config.mjs ├── README.md ├── _deploy_netlify.svg └── _deploy_vercel.svg /_astrosphere.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-sphere/HEAD/_astrosphere.jpg -------------------------------------------------------------------------------- /_lighthouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-sphere/HEAD/_lighthouse.png -------------------------------------------------------------------------------- /public/open-graph.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-sphere/HEAD/public/open-graph.jpg -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | 4 | Sitemap: http://localhost:4321/sitemap-index.xml -------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "[astro]": { 3 | "editor.defaultFormatter": "astro-build.astro-vscode" 4 | } 5 | } -------------------------------------------------------------------------------- /public/fonts/atkinson-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-sphere/HEAD/public/fonts/atkinson-bold.woff -------------------------------------------------------------------------------- /public/fonts/atkinson-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-sphere/HEAD/public/fonts/atkinson-regular.woff -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /src/content/blog/04-astro-sphere-writing-markdown/spongebob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-sphere/HEAD/src/content/blog/04-astro-sphere-writing-markdown/spongebob.png -------------------------------------------------------------------------------- /src/layouts/TopLayout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Container from "@components/Container.astro" 3 | --- 4 | 5 |
6 | 7 | 8 | 9 |
-------------------------------------------------------------------------------- /src/layouts/BottomLayout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Container from "@components/Container.astro" 3 | --- 4 | 5 |
6 | 7 | 8 | 9 |
-------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /public/js/scroll.js: -------------------------------------------------------------------------------- 1 | function onScroll() { 2 | const header = document.getElementById("header") 3 | if (window.scrollY > 0) { 4 | header.classList.add("scrolled") 5 | } else { 6 | header.classList.remove("scrolled") 7 | } 8 | } 9 | 10 | document.addEventListener("scroll", onScroll) 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | 4 | # generated types 5 | .astro/ 6 | 7 | # dependencies 8 | node_modules/ 9 | 10 | # logs 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | -------------------------------------------------------------------------------- /src/content/blog/05-astro-sphere-writing-mdx/MyComponent.astro: -------------------------------------------------------------------------------- 1 | --- 2 | type Props = { 3 | name: string 4 | } 5 | const { name } = Astro.props 6 | --- 7 | 8 |
9 |
10 | Hello, 11 | 12 | {name}!!! 13 | 14 |
15 | 16 |
-------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export type Page = { 2 | TITLE: string 3 | DESCRIPTION: string 4 | } 5 | 6 | export interface Site extends Page { 7 | AUTHOR: string 8 | } 9 | 10 | export type Links = { 11 | TEXT: string 12 | HREF: string 13 | }[] 14 | 15 | export type Socials = { 16 | NAME: string 17 | ICON: string 18 | TEXT: string 19 | HREF: string 20 | }[] -------------------------------------------------------------------------------- /public/js/animate.js: -------------------------------------------------------------------------------- 1 | function animate() { 2 | const animateElements = document.querySelectorAll('.animate') 3 | 4 | animateElements.forEach((element, index) => { 5 | setTimeout(() => { 6 | element.classList.add('show') 7 | }, index * 150) 8 | }); 9 | } 10 | 11 | document.addEventListener("DOMContentLoaded", animate) 12 | document.addEventListener("astro:after-swap", animate) -------------------------------------------------------------------------------- /src/pages/robots.txt.ts: -------------------------------------------------------------------------------- 1 | import type { APIRoute } from "astro" 2 | 3 | const robotsTxt = ` 4 | User-agent: * 5 | Allow: / 6 | 7 | Sitemap: ${new URL("sitemap-index.xml", import.meta.env.SITE).href} 8 | `.trim() 9 | 10 | export const GET: APIRoute = () => { 11 | return new Response(robotsTxt, { 12 | headers: { 13 | "Content-Type": "text/plain; charset=utf-8", 14 | }, 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /src/content/work/facebook.md: -------------------------------------------------------------------------------- 1 | --- 2 | company: "Facebook" 3 | role: "Intern" 4 | dateStart: "07/01/2019" 5 | dateEnd: "12/31/2019" 6 | --- 7 | 8 | Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. Sit amet consectetur adipisicing elit. 9 | 10 | - Sit amet consectetur adipisicing elit. 11 | -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "astro/config" 2 | import mdx from "@astrojs/mdx" 3 | import sitemap from "@astrojs/sitemap" 4 | import tailwind from "@astrojs/tailwind" 5 | import solidJs from "@astrojs/solid-js" 6 | 7 | // https://astro.build/config 8 | export default defineConfig({ 9 | site: "https://astro-sphere-demo.vercel.app", 10 | integrations: [mdx(), sitemap(), solidJs(), tailwind({ applyBaseStyles: false })], 11 | }) -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "compilerOptions": { 4 | "strictNullChecks": true, 5 | "baseUrl": ".", 6 | "paths": { 7 | "@*": [ 8 | "src/*" 9 | ] 10 | }, 11 | "jsx": "preserve", 12 | "jsxImportSource": "solid-js" 13 | }, 14 | "include": [ 15 | "src/**/*.ts", 16 | "src/**/*.tsx", 17 | "src/**/*.astro" 18 | ], 19 | "exclude": [ 20 | "dist", 21 | "node_modules" 22 | ] 23 | } -------------------------------------------------------------------------------- /src/content/work/mcdonalds.md: -------------------------------------------------------------------------------- 1 | --- 2 | company: "McDonalds" 3 | role: "French Fryer" 4 | dateStart: "03/16/2018" 5 | dateEnd: "07/01/2019" 6 | --- 7 | 8 | Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum. 9 | 10 | - Quibusdam, debitis voluptatum. 11 | - amet consectetur adipisicing elit. Iure illo neque tempora. 12 | -------------------------------------------------------------------------------- /src/components/Container.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { cn } from "@lib/utils" 3 | 4 | type Props = { 5 | size: "sm" | "md" | "lg" | "xl" | "2xl" 6 | } 7 | 8 | const { size } = Astro.props; 9 | --- 10 | 11 |
19 | 20 |
21 | -------------------------------------------------------------------------------- /src/content/work/apple.md: -------------------------------------------------------------------------------- 1 | --- 2 | company: "Apple" 3 | role: "Software Engineer" 4 | dateStart: "01/01/2020" 5 | dateEnd: "11/27/2022" 6 | --- 7 | 8 | Voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. Sit amet consectetur adipisicing elit. Iure illo neque tempora. 9 | 10 | - Sit amet consectetur adipisicing elit. Iure illo neque tempora. 11 | - Quibusdam, debitis voluptatum, lorem ipsum 12 | -------------------------------------------------------------------------------- /src/content/work/google.md: -------------------------------------------------------------------------------- 1 | --- 2 | company: "Google" 3 | role: "Staff Software Engineer" 4 | dateStart: "11/27/2022" 5 | dateEnd: "Now" 6 | --- 7 | 8 | Sit amet consectetur adipisicing elit. Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. 9 | 10 | - Aadipisicing elit. Iure illo neque tempora, voluptatem est. 11 | - dolorem dignissimos nulla ratione. 12 | - Quibusdam, debitis voluptatum, lorem ipsum dolor. 13 | -------------------------------------------------------------------------------- /src/components/Counter.tsx: -------------------------------------------------------------------------------- 1 | import { createSignal } from "solid-js" 2 | 3 | function CounterButton() { 4 | const [count, setCount] = createSignal(0) 5 | 6 | const increment = () => setCount(count() + 1) 7 | 8 | return ( 9 |
10 | 13 |
14 | Clicked {count()} {count() === 1 ? "time" : "times"} 15 |
16 |
17 | 18 | ) 19 | } 20 | 21 | export default CounterButton 22 | -------------------------------------------------------------------------------- /src/components/StackCard.astro: -------------------------------------------------------------------------------- 1 | --- 2 | type Props = { 3 | text: string 4 | icon: string 5 | href: string 6 | } 7 | 8 | const { text, icon, href } = Astro.props 9 | --- 10 | 11 | 12 | 13 | 14 | 15 | 16 | {text} 17 | 18 | -------------------------------------------------------------------------------- /src/layouts/PageLayout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import "@styles/global.css" 3 | import BaseHead from "@components/BaseHead.astro" 4 | import Header from "@components/Header.astro" 5 | import Footer from "@components/Footer.astro" 6 | import Drawer from "@components/Drawer.astro" 7 | const { title, description } = Astro.props 8 | import { SITE } from "@consts" 9 | --- 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 |
22 |