mirror of
https://github.com/sergeyyarkov/yarkov.tech.git
synced 2026-10-11 18:39:14 +03:00
refactor: moved pages to templates
This commit is contained in:
parent
381ff9f822
commit
37cb82ccd5
@ -1,10 +1,5 @@
|
||||
---
|
||||
import PageLayout from '@layouts/default.astro'
|
||||
import NotFound from '@root/templates/NotFound.astro';
|
||||
---
|
||||
|
||||
<PageLayout title="404" showPageHeading={false}>
|
||||
<div class="container">
|
||||
<h1 style="font-size:var(--font-size-5xl);">404</h1>
|
||||
<p>Страницу которую вы пытаетесь найти не существует.</p>
|
||||
</div>
|
||||
</PageLayout>
|
||||
<NotFound />
|
||||
|
||||
@ -1,24 +1,5 @@
|
||||
---
|
||||
import { SITE_METADATA } from '@root/config';
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import SkillsList from '@components/SkillsList';
|
||||
import SkillsBlock from '@components/SkillsBlock';
|
||||
|
||||
// TODO: import content based on user ui language
|
||||
import * as data from '../../content/about/ru/index.md';
|
||||
import ArticleContent from '@components/ArticleContent';
|
||||
|
||||
const { skills } = SITE_METADATA;
|
||||
const { Content } = data;
|
||||
import About from '@root/templates/About.astro';
|
||||
---
|
||||
|
||||
<PageLayout title="Обо мне">
|
||||
<section>
|
||||
<ArticleContent>
|
||||
<Content />
|
||||
</ArticleContent>
|
||||
<SkillsList>
|
||||
{skills.map((block) => <SkillsBlock data={block} />)}
|
||||
</SkillsList>
|
||||
</section>
|
||||
</PageLayout>
|
||||
<About />
|
||||
|
||||
@ -1,24 +1,5 @@
|
||||
---
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import ArticlesList from '@components/ArticlesList';
|
||||
import { transformArticles, formatToArticleBlocks } from '@utils/articles';
|
||||
|
||||
const articles = await Astro.glob<ArticleType>('../../content/articles/**/*.md');
|
||||
const tags = new Set(articles.map((article) => article.frontmatter.tags).flat());
|
||||
import Articles from '@root/templates/Articles.astro';
|
||||
---
|
||||
|
||||
<PageLayout
|
||||
title='Статьи'
|
||||
description='Технические статьи, туториалы и различные справочные материалы которые связаны с IT тематикой находятся здесь.'
|
||||
>
|
||||
<section>
|
||||
<ArticlesList
|
||||
client:load
|
||||
data={{
|
||||
articles: formatToArticleBlocks(transformArticles(articles)),
|
||||
tags: [...tags],
|
||||
}}
|
||||
emptyPlaceholder='Не найдено ни одной статьи...'
|
||||
/>
|
||||
</section>
|
||||
</PageLayout>
|
||||
<Articles />
|
||||
|
||||
@ -1,12 +1,5 @@
|
||||
---
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import ContactForm from '@components/ContactForm';
|
||||
import ContactsList from '@components/ContactsList';
|
||||
import Contacts from '@root/templates/Contacts.astro';
|
||||
---
|
||||
|
||||
<PageLayout title='Контакты' description='Воспользуйтесь формой обратной связи или напишите мне в социальные сети.'>
|
||||
<section>
|
||||
<ContactForm client:idle />
|
||||
<ContactsList />
|
||||
</section>
|
||||
</PageLayout>
|
||||
<Contacts />
|
||||
|
||||
@ -1,26 +1,5 @@
|
||||
---
|
||||
import * as utils from '@utils/index';
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import RecentArticles from '@components/RecentArticles';
|
||||
import { Splash, SplashHeading, SplashLinks, Link } from '@components/Splash';
|
||||
|
||||
const data = await Astro.glob<ArticleType>('../../content/articles/**/*.md');
|
||||
const articles = utils.transformArticles(data);
|
||||
import Home from '@root/templates/Home.astro';
|
||||
---
|
||||
|
||||
<PageLayout showPageHeading={false}>
|
||||
<Splash>
|
||||
<SplashHeading>
|
||||
<hgroup>
|
||||
<h1>Hello, I'am Sergey</h1>
|
||||
<h2>Fullstack <b>web-developer</b> & <b>freelancer</b></h2>
|
||||
</hgroup>
|
||||
<p>Я занимаюсь разработкой веб-сайтов и веб-приложений разной сложности, а также публикую различные статьи и туториалы на разные IT темы.</p>
|
||||
</SplashHeading>
|
||||
<SplashLinks>
|
||||
<Link icon="information" href="/about">обо мне</Link>
|
||||
<Link icon="email_filled" href="/contacts">написать мне</Link>
|
||||
</SplashLinks>
|
||||
</Splash>
|
||||
<RecentArticles articles={articles} length={4} />
|
||||
</PageLayout>
|
||||
<Home />
|
||||
|
||||
@ -1,16 +1,5 @@
|
||||
---
|
||||
import { SITE_METADATA } from '@root/config';
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import ProjectsList from '@components/ProjectsList';
|
||||
import ProjectItem from '@components/ProjectItem';
|
||||
|
||||
const { projects } = SITE_METADATA;
|
||||
import Projects from '@root/templates/Projects.astro';
|
||||
---
|
||||
|
||||
<PageLayout title='Проекты' description='Несколько моих основных проектов которые были разработаны и выложены в открытый доступ.'>
|
||||
<section>
|
||||
<ProjectsList>
|
||||
{projects.map((project) => <ProjectItem data={project} />)}
|
||||
</ProjectsList>
|
||||
</section>
|
||||
</PageLayout>
|
||||
<Projects />
|
||||
|
||||
24
src/templates/About.astro
Normal file
24
src/templates/About.astro
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
import { SITE_METADATA } from '@root/config';
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import SkillsList from '@components/SkillsList';
|
||||
import SkillsBlock from '@components/SkillsBlock';
|
||||
|
||||
// TODO: import content based on user ui language
|
||||
import * as data from '../../content/about/ru/index.md';
|
||||
import ArticleContent from '@components/ArticleContent';
|
||||
|
||||
const { skills } = SITE_METADATA;
|
||||
const { Content } = data;
|
||||
---
|
||||
|
||||
<PageLayout title="Обо мне">
|
||||
<section>
|
||||
<ArticleContent>
|
||||
<Content />
|
||||
</ArticleContent>
|
||||
<SkillsList>
|
||||
{skills.map((block) => <SkillsBlock data={block} />)}
|
||||
</SkillsList>
|
||||
</section>
|
||||
</PageLayout>
|
||||
24
src/templates/Articles.astro
Normal file
24
src/templates/Articles.astro
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import ArticlesList from '@components/ArticlesList';
|
||||
import { transformArticles, formatToArticleBlocks } from '@utils/articles';
|
||||
|
||||
const articles = await Astro.glob<ArticleType>('../../content/articles/**/*.md');
|
||||
const tags = new Set(articles.map((article) => article.frontmatter.tags).flat());
|
||||
---
|
||||
|
||||
<PageLayout
|
||||
title="Статьи"
|
||||
description="Технические статьи, туториалы и различные справочные материалы которые связаны с IT тематикой находятся здесь."
|
||||
>
|
||||
<section>
|
||||
<ArticlesList
|
||||
client:load
|
||||
data={{
|
||||
articles: formatToArticleBlocks(transformArticles(articles)),
|
||||
tags: [...tags],
|
||||
}}
|
||||
emptyPlaceholder="Не найдено ни одной статьи..."
|
||||
/>
|
||||
</section>
|
||||
</PageLayout>
|
||||
12
src/templates/Contacts.astro
Normal file
12
src/templates/Contacts.astro
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import ContactForm from '@components/ContactForm';
|
||||
import ContactsList from '@components/ContactsList';
|
||||
---
|
||||
|
||||
<PageLayout title="Контакты" description="Воспользуйтесь формой обратной связи или напишите мне в социальные сети.">
|
||||
<section>
|
||||
<ContactForm client:idle />
|
||||
<ContactsList />
|
||||
</section>
|
||||
</PageLayout>
|
||||
26
src/templates/Home.astro
Normal file
26
src/templates/Home.astro
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
import * as utils from '@utils/index';
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import RecentArticles from '@components/RecentArticles';
|
||||
import { Splash, SplashHeading, SplashLinks, Link } from '@components/Splash';
|
||||
|
||||
const data = await Astro.glob<ArticleType>('../../content/articles/**/*.md');
|
||||
const articles = utils.transformArticles(data);
|
||||
---
|
||||
|
||||
<PageLayout showPageHeading={false}>
|
||||
<Splash>
|
||||
<SplashHeading>
|
||||
<hgroup>
|
||||
<h1>Hello, I'am Sergey</h1>
|
||||
<h2>Fullstack <b>web-developer</b> & <b>freelancer</b></h2>
|
||||
</hgroup>
|
||||
<p>Я занимаюсь разработкой веб-сайтов и веб-приложений разной сложности, а также публикую различные статьи и туториалы на разные IT темы.</p>
|
||||
</SplashHeading>
|
||||
<SplashLinks>
|
||||
<Link icon="information" href="/about">обо мне</Link>
|
||||
<Link icon="email_filled" href="/contacts">написать мне</Link>
|
||||
</SplashLinks>
|
||||
</Splash>
|
||||
<RecentArticles articles={articles} length={4} />
|
||||
</PageLayout>
|
||||
10
src/templates/NotFound.astro
Normal file
10
src/templates/NotFound.astro
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
---
|
||||
|
||||
<PageLayout title="404" showPageHeading={false}>
|
||||
<div class="container">
|
||||
<h1 style="font-size:var(--font-size-5xl);">404</h1>
|
||||
<p>Страницу которую вы пытаетесь найти не существует.</p>
|
||||
</div>
|
||||
</PageLayout>
|
||||
16
src/templates/Projects.astro
Normal file
16
src/templates/Projects.astro
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
import { SITE_METADATA } from '@root/config';
|
||||
import PageLayout from '@layouts/default.astro';
|
||||
import ProjectsList from '@components/ProjectsList';
|
||||
import ProjectItem from '@components/ProjectItem';
|
||||
|
||||
const { projects } = SITE_METADATA;
|
||||
---
|
||||
|
||||
<PageLayout title="Проекты" description="Несколько моих основных проектов которые были разработаны и выложены в открытый доступ.">
|
||||
<section>
|
||||
<ProjectsList>
|
||||
{projects.map((project) => <ProjectItem data={project} />)}
|
||||
</ProjectsList>
|
||||
</section>
|
||||
</PageLayout>
|
||||
Loading…
x
Reference in New Issue
Block a user