mirror of
https://github.com/SantaSpeen/santaspeen.ru-blog.git
synced 2026-10-28 07:00:05 +00:00
MVP for hosting
This commit is contained in:
1 parent
fec5db6efd
commit
9f26a11327
173 files changed
+93
-3626
No files matched your search
@@ -1,70 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from 'clsx';
|
||||
import styles from './styles.module.css';
|
||||
|
||||
type FeatureItem = {
|
||||
title: string;
|
||||
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
|
||||
description: JSX.Element;
|
||||
};
|
||||
|
||||
const FeatureList: FeatureItem[] = [
|
||||
{
|
||||
title: 'Easy to Use',
|
||||
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
|
||||
description: (
|
||||
<>
|
||||
Docusaurus was designed from the ground up to be easily installed and
|
||||
used to get your website up and running quickly.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Focus on What Matters',
|
||||
Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
|
||||
description: (
|
||||
<>
|
||||
Docusaurus lets you focus on your docs, and we'll do the chores. Go
|
||||
ahead and move your docs into the <code>docs</code> directory.
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'Powered by React',
|
||||
Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
|
||||
description: (
|
||||
<>
|
||||
Extend or customize your website layout by reusing React. Docusaurus can
|
||||
be extended while reusing the same header and footer.
|
||||
</>
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
function Feature({title, Svg, description}: FeatureItem) {
|
||||
return (
|
||||
<div className={clsx('col col--4')}>
|
||||
<div className="text--center">
|
||||
<Svg className={styles.featureSvg} role="img" />
|
||||
</div>
|
||||
<div className="text--center padding-horiz--md">
|
||||
<h3>{title}</h3>
|
||||
<p>{description}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default function HomepageFeatures(): JSX.Element {
|
||||
return (
|
||||
<section className={styles.features}>
|
||||
<div className="container">
|
||||
<div className="row">
|
||||
{FeatureList.map((props, idx) => (
|
||||
<Feature key={idx} {...props} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
.features {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 2rem 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.featureSvg {
|
||||
height: 200px;
|
||||
width: 200px;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from "clsx";
|
||||
import styles from './Styles.module.scss';
|
||||
|
||||
const consept = [
|
||||
'Скорость (загрузка страниц не более 1 сек)',
|
||||
'Надежность (минимальные требования к серверу, легко устанавливать и переносить)',
|
||||
'Минимализм (без лишних скриптов, рекламы и т.п.)',
|
||||
'Отсутствие базы данных (упростит хранение и обслуживание)',
|
||||
'Редактор Markdown (Записи в формате \'.md\', \'.mdx\')',
|
||||
'Адаптивная верстка (автоматическая подстройка под мобильные устройства)',
|
||||
'Без погружения в web-разработку (html, css и js)',
|
||||
'Автоматическое заполнение минимальных SEO полей',
|
||||
]
|
||||
|
||||
export default function AboutSite() {
|
||||
return (
|
||||
<header className={clsx('hero hero--primary')} >
|
||||
<div className="container">
|
||||
<h3> Концепция сайта </h3>
|
||||
<ul className={styles.list}>
|
||||
{consept.map((use, index) => (
|
||||
<li key={index} className={styles.listItem}>
|
||||
{use}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
{/* <div class="alert alert--secondary margin-top--lg" role="alert">
|
||||
Цель - сделать <strong>быстрый</strong>, <strong>простой</strong> и <strong>надежный</strong> сайт для своих заметок.
|
||||
</div> */}
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
};
|
||||
@@ -1,33 +0,0 @@
|
||||
import React from 'react';
|
||||
import clsx from "clsx";
|
||||
import styles from './Styles.module.scss';
|
||||
import Link from '@docusaurus/Link';
|
||||
|
||||
|
||||
export default function HomeHeader() {
|
||||
return (
|
||||
<header className={clsx('hero hero--primary')} >
|
||||
<div className="container">
|
||||
<div className="margin-top--lg">
|
||||
<div className="row">
|
||||
<div className="col col--6">
|
||||
<h1>Добро пожаловать</h1>
|
||||
<h2> Назначение сайта</h2>
|
||||
<p> Личный блог для хранения полезной информации, заметок, часто используемых команд, возможно некоторая информация может оказаться полезной или интересной и другим людям. Кроме этого постараюсь размещать инструкции, полезные программы, обзоры и другие записи по IT теме</p>
|
||||
</div>
|
||||
<div className={clsx("col col--5", styles.avatarContainer)}>
|
||||
<div className={styles.avatar}>
|
||||
<img
|
||||
alt="hero logo"
|
||||
// className={styles.avatar}
|
||||
src="/img/hero.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
};
|
||||
@@ -1,24 +0,0 @@
|
||||
/* stylelint-disable docusaurus/copyright-header */
|
||||
|
||||
.landing-section {
|
||||
padding: 26pt 0;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
|
||||
.landing-section:first-child {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
.landing-section:nth-child(even) {
|
||||
background-color: #1b1b1d;
|
||||
border-top: 1px solid #eee;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.landing-section:last-child {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
.client-icon {
|
||||
display: block;
|
||||
max-width: 11rem;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.client-icon > svg {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
color: white;
|
||||
max-width: 11rem;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 45px;
|
||||
margin-bottom: 45px;
|
||||
}
|
||||
|
||||
.avatarContainer {
|
||||
margin-left: 2rem;
|
||||
|
||||
@media screen and (max-width: 996px) {
|
||||
.avatarContainer {
|
||||
margin: 2rem 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$avatar-size: 500px;
|
||||
|
||||
.avatar {
|
||||
display: block;
|
||||
max-width: $avatar-size;
|
||||
max-height: $avatar-size;
|
||||
}
|
||||
// img,
|
||||
// &>div {
|
||||
// border-radius: 999px;
|
||||
// max-height: $avatar-size;
|
||||
// }
|
||||
|
||||
// @include small-size {
|
||||
// margin: 0 auto;
|
||||
// }
|
||||
// }
|
||||
|
||||
.list {
|
||||
list-style-type: disclosure-closed;
|
||||
margin: 0 0 2rem 0;
|
||||
// padding: 0;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.3rem;
|
||||
}
|
||||
|
||||
.listItem {
|
||||
color: #000000;
|
||||
font-size: var(--font-size-normal);
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
import Link from '@docusaurus/Link';
|
||||
import clsx from 'clsx';
|
||||
import React from 'react';
|
||||
import {
|
||||
Docker, Linux, Python, Kubernetes, Googlecolab, Googlehome
|
||||
} from '@icons-pack/react-simple-icons';
|
||||
import Icon from '@mdi/react';
|
||||
import { mdiAccessPointNetwork } from '@mdi/js';
|
||||
|
||||
import styles from './Styles.module.scss';
|
||||
import landingSectionStyles from './LandingSection.module.scss';
|
||||
|
||||
|
||||
export default function ClientSection() {
|
||||
return (
|
||||
<section className={clsx(landingSectionStyles['landing-section'])}>
|
||||
<div className='container text--center'>
|
||||
<div className='row row--center'>
|
||||
<div className='col margin-top--lg'>
|
||||
<h2>Основные темы</h2>
|
||||
<p>
|
||||
Записи в блоге по тэгам
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className='row row--center'>
|
||||
<Link
|
||||
to='/blog/tags/linux'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Linux color='#ffffff' size={48} />
|
||||
<div className='margin-top--sm'>Linux</div>
|
||||
</Link>
|
||||
<Link
|
||||
to='/blog/tags/python'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Python color='#ffffff' size={48} />
|
||||
<div className='margin-top--sm'>Python</div>
|
||||
</Link>
|
||||
<Link
|
||||
to='/blog/tags/devops'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Googlecolab color='#ffffff' size={48} />
|
||||
<div className='margin-top--sm'>DevOps</div>
|
||||
</Link>
|
||||
<Link
|
||||
to='/blog/tags/kubernetes'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Kubernetes color='#ffffff' size={48} />
|
||||
<div className='margin-top--sm'>Kuberneters</div>
|
||||
</Link>
|
||||
<Link
|
||||
to='/blog/tags/docker'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Docker color='#ffffff' size={48} />
|
||||
<div className='margin-top--sm'>Docker</div>
|
||||
</Link>
|
||||
<Link
|
||||
to='/blog/tags/homelab'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Googlehome color='#ffffff' size={48} />
|
||||
<div className='margin-top--sm'>Homelab</div>
|
||||
</Link>
|
||||
<Link
|
||||
to='/blog/tags/networks'
|
||||
className={clsx('col', 'fill--white', styles['client-icon'], 'margin-top--md')}
|
||||
>
|
||||
<Icon path={mdiAccessPointNetwork} size='48px' className='fill-white' />
|
||||
<div className='margin-top--sm'>Networks</div>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.buttons}>
|
||||
<Link
|
||||
className="button button--secondary button--lg"
|
||||
to="/blog">
|
||||
Все записи
|
||||
</Link>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
+19
-38
@@ -17,39 +17,30 @@ export const Highlight = ({children, color}) => (
|
||||
|
||||
# О себе
|
||||
|
||||
## Акмалов Артур
|
||||
### Инженер по разработке и сопровождению сервисов
|
||||
## Имя
|
||||
### Что делаешь
|
||||
|
||||
В IT с 2014 года, нравится учиться и получать новые знания в данной области.
|
||||
В свободное время пишу простейшие программы и скрипты для оптимизации и автоматизации однообразных или рутинных задач.
|
||||
Стараюсь писать инструкции, полезные заметки, интересные статьи у себя на сайте и сторонних ресурсах.
|
||||
(Кратко о себе)
|
||||
|
||||
Изучаю инструменты и методологии <Highlight color="#339665">DevOps</Highlight> и программирование на <Highlight color="#306998">Python</Highlight>.
|
||||
|
||||
Интересные для меня направления:
|
||||
- Системы управления конфигурациями: Ansible, Terraform, Salt
|
||||
- Оркестрация/контейнеризация: Kubernetes, Docker
|
||||
- Мониторинг: Prometheus, Grafana
|
||||
- Базы данных: PostgreSQL, MongoDB
|
||||
- Системы виртуализации: Proxmox
|
||||
- Облачная платформа: Yandex.Cloud, Timeweb
|
||||
- Язык программирования: Python
|
||||
- CI/CD: Gitlab
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
- 7
|
||||
- 8
|
||||
|
||||
|
||||
Также есть своя домашняя серверная (homelab), где я провожу эксперименты, разрабатываю и изучаю различные OpenSource проекты
|
||||
|
||||
|
||||
<!--
|
||||
:::tip
|
||||
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
||||
:::
|
||||
-->
|
||||
(И что-нибудь на последок)
|
||||
|
||||
<br/>
|
||||
|
||||
#### 📊 Моя страница на [GitHub](https://github.com/akmalovaa)
|
||||
| <a href="https://github.com/akmalovaa"><img align="center" src="https://github.akmalov.com/api?username=akmalovaa&theme=tokyonight&count_private=true&show_icons=true" alt="Akmalov github stats" /></a> | <a href="https://github.com/akmalovaa"><img align="center" src="https://github.akmalov.com/api/top-langs/?theme=tokyonight&count_private=true&show_icons=true&layout=compact" /></a>
|
||||
#### 📊 Моя страница на [GitHub](https://github.com/SantaSpeen)
|
||||
| <a href="https://github.com/SantaSpeen"><img align="center" src="https://github-readme-stats.vercel.app/api?username=santaspeen&show_icons=true&hide_border=true&layout=compact&theme=tokyonight" alt="SantaSpeen github stats" /></a> | <a href="https://github.com/akmalovaa"><img align="center" src="https://github-readme-stats.vercel.app/api/top-langs/?username=santaspeen&hide_border=true&layout=compact&theme=tokyonight" /></a>
|
||||
| ------------- | ------------- |
|
||||
|
||||
|
||||
@@ -57,14 +48,11 @@ Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
||||
#### ⤵️ Контакты
|
||||
|
||||
<div>
|
||||
<a href="https://www.linkedin.com/in/akmalov-artur/" alt="Linkedin">
|
||||
<img src="https://img.shields.io/badge/-Linkedin-0e76a8?style=for-the-badge&logo=Linkedin&logoColor=white" />
|
||||
</a>
|
||||
<a href="mailto:akmalov.mail@gmail.com" alt="Gmail">
|
||||
<img src="https://img.shields.io/badge/-Gmail-d93025?style=for-the-badge&labelColor=d93025&logo=gmail&logoColor=white" />
|
||||
</a>
|
||||
<a href="https://t.me/AAkmalov" alt="Telegram">
|
||||
<img src="https://img.shields.io/badge/-Telegram-2ca5e0?style=for-the-badge&labelColor=2ca5e0&logo=telegram&logoColor=white" />
|
||||
<a href="https://t.me/SantaSpeen" alt="Telegram">
|
||||
<img src="https://img.shields.io/badge/@telegram-blue" />
|
||||
</a> <span> </span>
|
||||
<a href="mailto:santaspeen@yandex.ru" alt="Gmail">
|
||||
<img src="https://img.shields.io/badge/@yandex-yellow" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -73,10 +61,3 @@ Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
||||
|
||||
#### 📄 Сертификаты
|
||||
|
||||
- <a href="./certs/MTCNA.pdf" target="_blank">MTCNA</a> - MikroTik Certified Network Associate
|
||||
- <a href="./certs/MTCRE.pdf" target="_blank">MTCRE</a> - MikroTik Certified Routing Engineer (Маршрутизация)
|
||||
- <a href="./certs/MTCTCE.pdf" target="_blank">MTCTCE</a> - MikroTik Certified Traffic Control Engineer (Управление трафиком)
|
||||
- <a href="./certs/MTCSE.pdf" target="_blank">MTCSE</a> - MikroTik Certified Security Engineer (Безопасность сети)
|
||||
- <a href="./certs/MTCSWE.pdf" target="_blank">MTCSWE</a> - MikroTik Certified Switching Engineer (Коммутация)
|
||||
- <a href="./certs/cisco.pdf" target="_blank">Cisco</a> - Routing
|
||||
|
||||
+5
-30
@@ -9,39 +9,14 @@ import AboutSite from "../components/home/AboutSite";
|
||||
|
||||
import styles from './index.module.css';
|
||||
|
||||
function HomepageHeader() {
|
||||
const {siteConfig} = useDocusaurusContext();
|
||||
return (
|
||||
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
||||
<div className="container">
|
||||
<h1 className="hero__title">{siteConfig.title}</h1>
|
||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
||||
{/* <div className={styles.buttons}>
|
||||
<Link
|
||||
className="button button--secondary button--lg"
|
||||
to="/docs/intro">
|
||||
Docusaurus Tutorial - 5min ⏱️
|
||||
</Link>
|
||||
</div> */}
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
|
||||
export default function Home(): JSX.Element {
|
||||
const {siteConfig} = useDocusaurusContext();
|
||||
return (
|
||||
<Layout
|
||||
title={`Personal Blog ${siteConfig.title}`}
|
||||
description="Акмалов Артур - личный блог для записей по темам Devops, Python, Linux, Homelab, k8s">
|
||||
{/* <HomepageHeader /> */}
|
||||
<HomeHeader />
|
||||
{/* <main> */}
|
||||
{/* <HomepageFeatures /> */}
|
||||
|
||||
{/* </main> */}
|
||||
<TopicsSection />
|
||||
<AboutSite />
|
||||
<Layout title={`Personal Blog ${siteConfig.title}`}>
|
||||
<div style={{textAlign: "center"}}>
|
||||
<h1>Скорее всего вы тут оказались случайно!</h1>
|
||||
<a href='/blog' style={{color: 'blue'}}>Перейдите в блог по этой ссылке</a>
|
||||
</div>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
@@ -14,10 +14,10 @@ export default function BlogPostItemWrapper(props) {
|
||||
{(
|
||||
<div className="docusaurus-blog-comments">
|
||||
<Giscus
|
||||
repo="akmalovaa/akmalov.com"
|
||||
repoId="R_kgDOI0gPCg"
|
||||
repo="SantaSpeen/santaspeen.ru-blog"
|
||||
repoId="R_kgDOK6Fd_Q"
|
||||
category="General"
|
||||
categoryId="DIC_kwDOI0gPCs4CXR_A"
|
||||
categoryId="DIC_kwDOK6Fd_c4Cbwpe"
|
||||
mapping="pathname"
|
||||
reactionsEnabled="1"
|
||||
emitMetadata="0"
|
||||
|
||||
Reference in new issue
Block a user