├── .eslintignore ├── _astro_nano.png ├── _lighthouse.png ├── public ├── patrick.webp ├── astro-nano.png ├── lighthouse.png ├── astro-sphere.jpg ├── fonts │ ├── atkinson-bold.woff │ ├── MonaSans-Light.woff2 │ ├── atkinson-regular.woff │ ├── MonaSans-Regular.woff2 │ └── MonaSans-SemiBold.woff2 ├── favicon-dark.svg ├── favicon-light.svg ├── deploy_netlify.svg └── deploy_vercel.svg ├── src ├── env.d.ts ├── components │ ├── Container.astro │ ├── FormattedDate.astro │ ├── Link.astro │ ├── BackToTop.astro │ ├── Header.astro │ ├── BackToPrev.astro │ ├── ArrowCard.astro │ ├── Footer.astro │ └── Head.astro ├── content │ ├── blog │ │ ├── 05-markdown-syntax │ │ │ ├── spongebob.webp │ │ │ └── index.md │ │ ├── 07-year-sorting-example │ │ │ └── index.md │ │ ├── 06-mdx-syntax │ │ │ ├── component.astro │ │ │ └── index.mdx │ │ ├── 08-draft-example │ │ │ └── index.md │ │ ├── 02-blog-collection │ │ │ └── index.md │ │ ├── 04-work-collection │ │ │ └── index.md │ │ ├── 01-getting-started │ │ │ └── index.md │ │ └── 03-projects-collection │ │ │ └── index.md │ ├── work │ │ ├── facebook.md │ │ ├── apple.md │ │ ├── mcdonalds.md │ │ └── google.md │ ├── config.ts │ └── projects │ │ ├── project-1 │ │ └── index.md │ │ └── project-2 │ │ └── index.md ├── types.ts ├── pages │ ├── robots.txt.ts │ ├── rss.xml.ts │ ├── projects │ │ ├── index.astro │ │ └── [...slug].astro │ ├── blog │ │ ├── [...slug].astro │ │ └── index.astro │ ├── work │ │ └── index.astro │ └── index.astro ├── layouts │ └── PageLayout.astro ├── consts.ts ├── lib │ └── utils.ts └── styles │ └── global.css ├── .vscode ├── extensions.json └── launch.json ├── tsconfig.json ├── .gitignore ├── astro.config.mjs ├── tailwind.config.mjs ├── .eslintrc.cjs ├── LICENSE ├── package.json ├── README.md ├── _deploy_netlify.svg └── _deploy_vercel.svg /.eslintignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | dist/ 3 | node_modules/ 4 | public/ 5 | -------------------------------------------------------------------------------- /_astro_nano.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/_astro_nano.png -------------------------------------------------------------------------------- /_lighthouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/_lighthouse.png -------------------------------------------------------------------------------- /public/patrick.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/patrick.webp -------------------------------------------------------------------------------- /public/astro-nano.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/astro-nano.png -------------------------------------------------------------------------------- /public/lighthouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/lighthouse.png -------------------------------------------------------------------------------- /public/astro-sphere.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/astro-sphere.jpg -------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /public/fonts/atkinson-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/fonts/atkinson-bold.woff -------------------------------------------------------------------------------- /public/fonts/MonaSans-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/fonts/MonaSans-Light.woff2 -------------------------------------------------------------------------------- /public/fonts/atkinson-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/fonts/atkinson-regular.woff -------------------------------------------------------------------------------- /public/fonts/MonaSans-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/fonts/MonaSans-Regular.woff2 -------------------------------------------------------------------------------- /public/fonts/MonaSans-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/public/fonts/MonaSans-SemiBold.woff2 -------------------------------------------------------------------------------- /src/components/Container.astro: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | --- 4 | 5 |
6 | 7 |
8 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /src/content/blog/05-markdown-syntax/spongebob.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markhorn-dev/astro-nano/HEAD/src/content/blog/05-markdown-syntax/spongebob.webp -------------------------------------------------------------------------------- /src/content/blog/07-year-sorting-example/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Year sorting example" 3 | description: "Nano groups posts by year." 4 | date: "12/31/2023" 5 | --- 6 | 7 | This post is to demonstrate the year sorting capabilities. -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "compilerOptions": { 4 | "strictNullChecks": true, 5 | "baseUrl": ".", 6 | "paths": { 7 | "@*": ["./src/*"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /src/content/blog/06-mdx-syntax/component.astro: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | --- 4 | 5 | -------------------------------------------------------------------------------- /.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 | 17 | # environment variables 18 | .env 19 | .env.production 20 | 21 | # macOS-specific files 22 | .DS_Store 23 | -------------------------------------------------------------------------------- /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 | 6 | export default defineConfig({ 7 | site: "https://astro-nano-demo.vercel.app", 8 | integrations: [mdx(), sitemap(), tailwind()], 9 | }); 10 | -------------------------------------------------------------------------------- /src/components/FormattedDate.astro: -------------------------------------------------------------------------------- 1 | --- 2 | interface Props { 3 | date: Date; 4 | } 5 | 6 | const { date } = Astro.props; 7 | --- 8 | 9 | 18 | -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export type Site = { 2 | NAME: string; 3 | EMAIL: string; 4 | NUM_POSTS_ON_HOMEPAGE: number; 5 | NUM_WORKS_ON_HOMEPAGE: number; 6 | NUM_PROJECTS_ON_HOMEPAGE: number; 7 | }; 8 | 9 | export type Metadata = { 10 | TITLE: string; 11 | DESCRIPTION: string; 12 | }; 13 | 14 | export type Socials = { 15 | NAME: string; 16 | HREF: string; 17 | }[]; 18 | -------------------------------------------------------------------------------- /src/content/blog/08-draft-example/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Draft example" 3 | description: "Setting draft flag to true to hide this post." 4 | date: "12/31/2022" 5 | draft: false 6 | --- 7 | 8 | This post is to demonstrate the year sorting capabilities. 9 | 10 | If you are seeing this post, edit `src/content/08-draft-example` and enter `draft: true` in the metadata. 11 | 12 | -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /src/content/work/google.md: -------------------------------------------------------------------------------- 1 | --- 2 | company: "Google" 3 | role: "Staff Software Engineer" 4 | dateStart: "11/27/2022" 5 | dateEnd: "Current" 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. -------------------------------------------------------------------------------- /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 | }; -------------------------------------------------------------------------------- /tailwind.config.mjs: -------------------------------------------------------------------------------- 1 | import defaultTheme from "tailwindcss/defaultTheme"; 2 | 3 | /** @type {import('tailwindcss').Config} */ 4 | export default { 5 | darkMode: ["class"], 6 | content: [ 7 | "./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}", 8 | ], 9 | theme: { 10 | extend: { 11 | fontFamily: { 12 | sans: ["Inter", ...defaultTheme.fontFamily.sans], 13 | serif: ["Lora", ...defaultTheme.fontFamily.serif], 14 | }, 15 | }, 16 | }, 17 | plugins: [require("@tailwindcss/typography")], 18 | }; 19 | -------------------------------------------------------------------------------- /src/layouts/PageLayout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Head from "@components/Head.astro"; 3 | import Header from "@components/Header.astro"; 4 | import Footer from "@components/Footer.astro"; 5 | import { SITE } from "@consts"; 6 | 7 | type Props = { 8 | title: string; 9 | description: string; 10 | }; 11 | 12 | const { title, description } = Astro.props; 13 | --- 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 |
23 | 24 |
25 |