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}>
|
<NotFound />
|
||||||
<div class="container">
|
|
||||||
<h1 style="font-size:var(--font-size-5xl);">404</h1>
|
|
||||||
<p>Страницу которую вы пытаетесь найти не существует.</p>
|
|
||||||
</div>
|
|
||||||
</PageLayout>
|
|
||||||
|
|||||||
@ -1,24 +1,5 @@
|
|||||||
---
|
---
|
||||||
import { SITE_METADATA } from '@root/config';
|
import About from '@root/templates/About.astro';
|
||||||
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="Обо мне">
|
<About />
|
||||||
<section>
|
|
||||||
<ArticleContent>
|
|
||||||
<Content />
|
|
||||||
</ArticleContent>
|
|
||||||
<SkillsList>
|
|
||||||
{skills.map((block) => <SkillsBlock data={block} />)}
|
|
||||||
</SkillsList>
|
|
||||||
</section>
|
|
||||||
</PageLayout>
|
|
||||||
|
|||||||
@ -1,24 +1,5 @@
|
|||||||
---
|
---
|
||||||
import PageLayout from '@layouts/default.astro';
|
import Articles from '@root/templates/Articles.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
|
<Articles />
|
||||||
title='Статьи'
|
|
||||||
description='Технические статьи, туториалы и различные справочные материалы которые связаны с IT тематикой находятся здесь.'
|
|
||||||
>
|
|
||||||
<section>
|
|
||||||
<ArticlesList
|
|
||||||
client:load
|
|
||||||
data={{
|
|
||||||
articles: formatToArticleBlocks(transformArticles(articles)),
|
|
||||||
tags: [...tags],
|
|
||||||
}}
|
|
||||||
emptyPlaceholder='Не найдено ни одной статьи...'
|
|
||||||
/>
|
|
||||||
</section>
|
|
||||||
</PageLayout>
|
|
||||||
|
|||||||
@ -1,12 +1,5 @@
|
|||||||
---
|
---
|
||||||
import PageLayout from '@layouts/default.astro';
|
import Contacts from '@root/templates/Contacts.astro';
|
||||||
import ContactForm from '@components/ContactForm';
|
|
||||||
import ContactsList from '@components/ContactsList';
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<PageLayout title='Контакты' description='Воспользуйтесь формой обратной связи или напишите мне в социальные сети.'>
|
<Contacts />
|
||||||
<section>
|
|
||||||
<ContactForm client:idle />
|
|
||||||
<ContactsList />
|
|
||||||
</section>
|
|
||||||
</PageLayout>
|
|
||||||
|
|||||||
@ -1,26 +1,5 @@
|
|||||||
---
|
---
|
||||||
import * as utils from '@utils/index';
|
import Home from '@root/templates/Home.astro';
|
||||||
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}>
|
<Home />
|
||||||
<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>
|
|
||||||
|
|||||||
@ -1,16 +1,5 @@
|
|||||||
---
|
---
|
||||||
import { SITE_METADATA } from '@root/config';
|
import Projects from '@root/templates/Projects.astro';
|
||||||
import PageLayout from '@layouts/default.astro';
|
|
||||||
import ProjectsList from '@components/ProjectsList';
|
|
||||||
import ProjectItem from '@components/ProjectItem';
|
|
||||||
|
|
||||||
const { projects } = SITE_METADATA;
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<PageLayout title='Проекты' description='Несколько моих основных проектов которые были разработаны и выложены в открытый доступ.'>
|
<Projects />
|
||||||
<section>
|
|
||||||
<ProjectsList>
|
|
||||||
{projects.map((project) => <ProjectItem data={project} />)}
|
|
||||||
</ProjectsList>
|
|
||||||
</section>
|
|
||||||
</PageLayout>
|
|
||||||
|
|||||||
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