diff options
Diffstat (limited to 'examples/portfolio')
-rw-r--r-- | examples/portfolio/src/components/PortfolioPreview.astro | 7 | ||||
-rw-r--r-- | examples/portfolio/src/layouts/project.astro | 7 | ||||
-rw-r--r-- | examples/portfolio/src/pages/index.astro | 5 | ||||
-rw-r--r-- | examples/portfolio/src/pages/projects.astro | 3 | ||||
-rw-r--r-- | examples/portfolio/src/types.ts | 8 |
5 files changed, 26 insertions, 4 deletions
diff --git a/examples/portfolio/src/components/PortfolioPreview.astro b/examples/portfolio/src/components/PortfolioPreview.astro index 3d0a91522..bf59f100f 100644 --- a/examples/portfolio/src/components/PortfolioPreview.astro +++ b/examples/portfolio/src/components/PortfolioPreview.astro @@ -1,4 +1,11 @@ --- +import type { MarkdownInstance } from 'astro'; +import type { Project } from '../types'; + +interface Props { + project: MarkdownInstance<Project> +} + const { frontmatter, url } = Astro.props.project; --- diff --git a/examples/portfolio/src/layouts/project.astro b/examples/portfolio/src/layouts/project.astro index f02f89c74..c4025dc39 100644 --- a/examples/portfolio/src/layouts/project.astro +++ b/examples/portfolio/src/layouts/project.astro @@ -2,11 +2,16 @@ import MainHead from '../components/MainHead.astro'; import Footer from '../components/Footer.astro'; import Nav from '../components/Nav.astro'; +import type { Project } from '../types'; + +interface Props { + content: Project; +} const { content } = Astro.props; --- -<html lang={content.lang || 'en'}> +<html lang="en"> <head> <MainHead title={content.title} description={content.description} /> <style> diff --git a/examples/portfolio/src/pages/index.astro b/examples/portfolio/src/pages/index.astro index 3521f923a..d17170827 100644 --- a/examples/portfolio/src/pages/index.astro +++ b/examples/portfolio/src/pages/index.astro @@ -4,10 +4,11 @@ import MainHead from '../components/MainHead.astro'; import Nav from '../components/Nav.astro'; import Footer from '../components/Footer.astro'; import PortfolioPreview from '../components/PortfolioPreview.astro'; +import type { Project } from '../types'; // Data Fetching: List all Markdown posts in the repo. -const projects = await Astro.glob('./project/**/*.md'); -const featuredProject = projects[0]; +const projects = await Astro.glob<Project>('./project/**/*.md'); +const featuredProject = projects[0]!; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/examples/portfolio/src/pages/projects.astro b/examples/portfolio/src/pages/projects.astro index 415e7aeeb..1f89dabf0 100644 --- a/examples/portfolio/src/pages/projects.astro +++ b/examples/portfolio/src/pages/projects.astro @@ -3,8 +3,9 @@ import MainHead from '../components/MainHead.astro'; import Footer from '../components/Footer.astro'; import Nav from '../components/Nav.astro'; import PortfolioPreview from '../components/PortfolioPreview.astro'; +import type { Project } from '../types'; -const projects = (await Astro.glob('./project/**/*.md')) +const projects = (await Astro.glob<Project>('./project/**/*.md')) .filter(({ frontmatter }) => !!frontmatter.publishDate) .sort( (a, b) => diff --git a/examples/portfolio/src/types.ts b/examples/portfolio/src/types.ts new file mode 100644 index 000000000..e701099a7 --- /dev/null +++ b/examples/portfolio/src/types.ts @@ -0,0 +1,8 @@ +export interface Project { + title: string; + client: string; + description: string; + publishDate: string; + tags: string[]; + img: string; +} |