Compare commits
6 Commits
7bc4d0f536
...
c979c0db81
Author | SHA1 | Date | |
---|---|---|---|
c979c0db81 | |||
a863ce2f9d | |||
b9caa21536 | |||
06bcbd063d | |||
69b78a41a2 | |||
ea24b3547b |
16
.env.example
@ -2,14 +2,12 @@ ALGOLIA_APP_ID=
|
|||||||
ALGOLIA_API_KEY=
|
ALGOLIA_API_KEY=
|
||||||
ALGOLIA_INDEX_NAME=
|
ALGOLIA_INDEX_NAME=
|
||||||
|
|
||||||
GISCUS_DISCUSSION_CATEGORY=
|
COUNTER_GOOGLE=
|
||||||
GISCUS_DISCUSSION_CATEGORY_ID=
|
COUNTER_YANDEX=
|
||||||
GISCUS_PROJECT_ID=
|
|
||||||
|
|
||||||
GOOGLE_ANALYTICS_TAG_ID=
|
|
||||||
|
|
||||||
ORGANIZATION_NAME=
|
|
||||||
REPOSITORY_NAME=
|
|
||||||
|
|
||||||
SITE_TITLE=
|
|
||||||
SITE_URL=
|
SITE_URL=
|
||||||
|
SITE_TITLE=
|
||||||
|
SITE_ORANIZATION_NAME=
|
||||||
|
SITE_PROJECT_NAME=
|
||||||
|
|
||||||
|
# GISCUS settings in /src/theme/BlogPostItem.jsx
|
||||||
|
1
blog/blog-setup/assets/algolia.svg
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
blog/blog-setup/assets/blog.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
blog/blog-setup/assets/cloudflare.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
1
blog/blog-setup/assets/docusaurus.svg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
blog/blog-setup/assets/logo.psd
Normal file
BIN
blog/blog-setup/assets/nginx.png
Normal file
After Width: | Height: | Size: 21 KiB |
@ -15,34 +15,177 @@ date: 2023-12-15
|
|||||||
|
|
||||||
## Введение
|
## Введение
|
||||||
|
|
||||||
[Зачем это вообще надо и кому нужен блог]
|
Блог DevOps программиста (меня) – это не просто место для записей о технических деталях, это своеобразная платформа для обмена опытом, решением трудностей и создания сообщества профессионалов в области разработки и операций. Давайте разберемся, почему блог DevOps программиста может стать неотъемлемой частью вашей профессиональной деятельности.
|
||||||
|
|
||||||
|
### Зачем это вообще нужно?
|
||||||
|
|
||||||
|
#### 1. Обмен опытом
|
||||||
|
|
||||||
|
DevOps – это область, где опыт имеет огромное значение. Через блог вы можете делиться своими наработками, лучшими практиками и решениями, с которыми вы сталкиваетесь в ходе своей работы.
|
||||||
|
|
||||||
|
#### 2. Инструменты и технологии
|
||||||
|
|
||||||
|
В мире DevOps постоянно появляются новые инструменты и технологии. Блогирование поможет вам оставаться в курсе последних трендов, а также делиться своим опытом использования различных инструментов.
|
||||||
|
|
||||||
|
#### 3. Сообщество
|
||||||
|
|
||||||
|
Блог DevOps программиста – это место, где вы можете объединиться с другими специалистами, обсудить актуальные вопросы, получить обратную связь и даже решить технические проблемы вместе.
|
||||||
|
|
||||||
|
### Кому нужен блог?
|
||||||
|
|
||||||
|
#### 1. Стартапы и компании
|
||||||
|
|
||||||
|
DevOps является ключевым элементом успешного развертывания и управления IT-инфраструктурой. Ваш блог может быть полезным ресурсом для стартапов и компаний, которые стремятся оптимизировать свои процессы.
|
||||||
|
|
||||||
|
#### 2. Новички в сфере DevOps
|
||||||
|
|
||||||
|
Для тех, кто только начинает свой путь в DevOps, ваш блог станет ценным ресурсом для обучения и понимания основных принципов и практик.
|
||||||
|
|
||||||
|
#### 3. Специалисты по технологиям и разработке
|
||||||
|
|
||||||
|
Блог DevOps программиста может привлечь внимание специалистов в области технологий и разработки, помогая им лучше понять взаимосвязь между разработкой и операциями.
|
||||||
|
|
||||||
|
По мере продвижения в этом блоге мы рассмотрим шаги по созданию и установке вашего собственного блога DevOps программиста на вашем веб-сайте.
|
||||||
|
|
||||||
## Настройка сайта
|
## Настройка сайта
|
||||||
- <p style={{fontSize: '12px', margin: "0"}}>Если сайт уже есть, то пеерходите сразу к <a href="#установка-блога">установке блога</a></p>
|
- <p style={{fontSize: '12px', margin: "0"}}>Если сайт уже есть, то пеерходите сразу к <a href="#установка-блога">установке блога</a></p>
|
||||||
|
|
||||||
### Покупка домена
|
### Покупка домена
|
||||||
|
|
||||||
[Идём на регистратор и покупаем]
|
Первым шагом к созданию собственного блога является приобретение уникального доменного имени.\
|
||||||
|
Выберите короткое, запоминающееся и отражающее суть вашего блога имя. После выбора, зарегистрируйте домен у одного из регистраторов доменных имен.\
|
||||||
|
Лично я выбрал свой ник в качестве домена.
|
||||||
|
|
||||||
|
На данные момент популярны такие сервисы для регистрации доменов в РФ:
|
||||||
|
1. [РЕГ.РУ](https://reg.ru) (за `.ru` 119/р в первый год, 999/р последующие года)
|
||||||
|
2. [RU-CENTER (NIC)](https://nic.ru) (за `.ru` 189/р в первый год, 999/р последующие года)
|
||||||
|
|
||||||
|
**Для регистрации обязателен паспорт**
|
||||||
|
|
||||||
### Настройка DNS
|
### Настройка DNS
|
||||||
|
|
||||||
[Находим бесплатный DNS сервер и писхаем туда ip]
|
После приобретения домена переходите к настройке DNS. Найдите бесплатный DNS-сервер и настройте записи, указывающие на IP-адрес вашего хостинга. Это обеспечит корректное направление запросов к вашему сайту.\
|
||||||
|
Или можно привязать к сайт [CloudFlare](https://dash.cloudflare.com/), в целом бесплатно + SSL + есть защита от аттак\
|
||||||
|
**Так же подразумевается, что хост с белым IP уже есть.**
|
||||||
|
|
||||||
### Настройка WEB сервера
|
### Настройка WEB сервера
|
||||||
|
|
||||||
[Тут будет как настроить nginx на выдачу index.html + certbot]
|
Теперь приступим к настройке вашего веб-сервера. В данном случае, рассмотрим пример с использованием Nginx и получением SSL-сертификата с помощью Certbot.
|
||||||
|
|
||||||
|
Установка Nginx:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install nginx snap
|
||||||
|
```
|
||||||
|
|
||||||
|
Настройка Nginx для сайта:
|
||||||
|
В файле конфигурации Nginx (`/etc/nginx/sites-available/default`) добавьте следующие строки:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name santaspeen.ru;
|
||||||
|
|
||||||
|
root /var/www/blog/;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
add_header Cache-Control no-cache;
|
||||||
|
expires 0;
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Media: images, icons, video, audio, HTC
|
||||||
|
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|mp3|ogg|ogv|webm|htc)$ {
|
||||||
|
expires 1M;
|
||||||
|
access_log off;
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Javascript and CSS files
|
||||||
|
location ~* \.(?:css|js)$ {
|
||||||
|
expires 1y;
|
||||||
|
access_log off;
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Any route containing a file extension (e.g. /devicesfile.js)
|
||||||
|
location ~ ^.+\..+$ {
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Не забудьте изменить `santaspeen.ru` и `/var/www/blog/` под свои данные.
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Если не использовать cloudflare, то SSL аертификаты нужно получить на хосте\
|
||||||
|
Установим Certbot для получения SSL-сертификата:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo snap install --classic certbot
|
||||||
|
sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
||||||
|
```
|
||||||
|
|
||||||
|
С помощью этой комнды автоматически будет настроено SSL шифрование трафика\
|
||||||
|
`certbot` спросит все нужные ему данные: домен, почту и т.д.
|
||||||
|
```bash
|
||||||
|
sudo certbot --nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
Теперь, после всего что мы сделали, У нас будет доступ по https: https://santaspeen.ru/
|
||||||
|
|
||||||
|
|
||||||
## Установка блога
|
## Установка блога
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Настройку / Написание текста / Проверку - советую делать на компе, а затем после `npm build` загружать на хостинг.
|
||||||
|
:::
|
||||||
|
|
||||||
### Качаем
|
### Загрузка
|
||||||
|
|
||||||
[тут гит клон]
|
Давайте начнем с загрузки необходимых файлов для вашего блога. Вы можете воспользоваться командой git clone для получения исходного кода блога:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/SantaSpeen/santaspeen.ru-blog.git -b v1-ready
|
||||||
|
```
|
||||||
|
|
||||||
|
### Установка зависимостей
|
||||||
|
|
||||||
|
Убедитесь, что вы используете Node.js версии 20. Вы можете загрузить и установить ее с официального сайта Node.js: [Node20](https://nodejs.org/download/release/latest-v20.x/)
|
||||||
|
Перейдите в директорию вашего блога и выполните команду `npm install`, чтобы установить все необходимые зависимости:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd santaspeen.ru-blog
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Запуск
|
||||||
|
|
||||||
|
1. **Настройка статических файлов:**
|
||||||
|
- Проверьте и отредактируйте файлы в папке `static`:
|
||||||
|
- `static/CNAME`: Укажите ваш домен в этом файле.
|
||||||
|
- `static/robots.txt`: При необходимости настройте файл robots.txt.
|
||||||
|
- `static/img/favicon.ico`: Замените иконку на свою.
|
||||||
|
|
||||||
|
2. **Настройка переменных окружения:**
|
||||||
|
- Отредактируйте файл `.env`, указав необходимые параметры.
|
||||||
|
|
||||||
|
3. **Настройка конфигурации:**
|
||||||
|
- При необходимости внесите изменения в файл `.aligoria_config.json` в соответствии с вашими предпочтениями.
|
||||||
|
|
||||||
|
4. **Запуск:**
|
||||||
|
- Выполните команду `npm start` для запуска дебаг сервер блогом (при редактировании файлов, содержимое сразу будет обновлено и на сайте).
|
||||||
|
|
||||||
|
## Настройка блога
|
||||||
|
|
||||||
### Общая структура
|
### Общая структура
|
||||||
|
|
||||||
Вот так сейчас выглядит структура файлов блога:
|
Вот так сейчас выглядит структура файлов блога и доков:
|
||||||
|
|
||||||
```plain
|
```plain
|
||||||
...
|
...
|
||||||
| -- blog
|
| -- blog
|
||||||
@ -62,13 +205,18 @@ date: 2023-12-15
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
[Тут надо рассказать про основные файлы]
|
### Основные файлы
|
||||||
|
|
||||||
|
- **`blog/_template/index.md`:** Главная страница блога.
|
||||||
|
- **`blog/_template/logo.png`:** Логотип блога.
|
||||||
|
- **`docs/_template/_category_.json`:** Файл категории для организации документации.
|
||||||
|
- **`docs/_template/doc1.md` и `docs/_template/doc2.md`:** Примеры документации.
|
||||||
|
- **`docs/intro.md`:** Введение в документацию.
|
||||||
|
|
||||||
### Cтруктура блогов
|
### Cтруктура блогов
|
||||||
|
|
||||||
[Несколько слов про то, или инное, рассмотрим на примере blog._template]
|
Приведем пример для блога `_template`:
|
||||||
|
|
||||||
[Стандартная структура 1 блога]
|
|
||||||
```plain
|
```plain
|
||||||
| -- blog
|
| -- blog
|
||||||
| ` -- _template
|
| ` -- _template
|
||||||
@ -76,12 +224,13 @@ date: 2023-12-15
|
|||||||
| ` -- logo.png
|
| ` -- logo.png
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Заголовок у блога
|
##### Пример заголовка блога (`blog/_template/index.md`):
|
||||||
|
|
||||||
```md
|
```md
|
||||||
---
|
---
|
||||||
slug: template
|
slug: template
|
||||||
title: title
|
title: Заголовок блога
|
||||||
description: Описание
|
description: Описание блога
|
||||||
image: ./logo.png
|
image: ./logo.png
|
||||||
tags: [docker, linux, networks]
|
tags: [docker, linux, networks]
|
||||||
keywords: [docker, linux]
|
keywords: [docker, linux]
|
||||||
@ -90,26 +239,25 @@ date: 2023-11-29
|
|||||||
|
|
||||||
Описание для предварительного просмотра на главной странице
|
Описание для предварительного просмотра на главной странице
|
||||||
|
|
||||||
[](/blog/_template)
|
[](/blog/_template)
|
||||||
<!--truncate-->
|
<!--truncate-->
|
||||||
|
|
||||||
|
Этот текст будет только в блоге, его не видно в превью
|
||||||
```
|
```
|
||||||
|
|
||||||
`slug` - [Это..]\
|
- `slug`: уникальный идентификатор блога.
|
||||||
`title` - [Это..]\
|
- `title`: заголовок блога.
|
||||||
`description` - [Это..]\
|
- `description`: описание блога.
|
||||||
`image` - [Это..]\
|
- `image`: путь к логотипу блога.
|
||||||
`keywords` - [Это..]\
|
- `tags`: теги блога.
|
||||||
`date` - [Это...]\
|
- `keywords`: ключевые слова для поисковых систем.
|
||||||
\
|
- `date`: дата публикации блога.
|
||||||
`<!--truncate-->` - [Это...]
|
- `<!--truncate-->`: разделитель для превью.
|
||||||
|
|
||||||
|
### Структура документации
|
||||||
|
|
||||||
### Структура доков
|
Приведем пример для документации `_template`:
|
||||||
|
|
||||||
[Несколько слов про то, или инное, рассмотрим на примере docs._template]
|
|
||||||
|
|
||||||
|
|
||||||
[Стандартная структура 1 дока]
|
|
||||||
```plain
|
```plain
|
||||||
| -- docs
|
| -- docs
|
||||||
| | -- _template
|
| | -- _template
|
||||||
@ -119,51 +267,41 @@ date: 2023-11-29
|
|||||||
| ` -- intro.md
|
| ` -- intro.md
|
||||||
```
|
```
|
||||||
|
|
||||||
[_category_.json Обязателен, рассказать что в нём]
|
##### Содержимое `_category_.json` в `docs/_template/_category_.json`:
|
||||||
|
|
||||||
Содержимое \<theme>/_category_.json
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"label": "Template",
|
"label": "Template",
|
||||||
"position": 1,
|
"position": 1,
|
||||||
"link": {
|
"link": {
|
||||||
"type": "generated-index",
|
"type": "generated-index",
|
||||||
"description": "Template description"
|
"description": "Описание шаблона"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
`label` - [Это..]\
|
- `label`: название категории.
|
||||||
`position` - [Это..]\
|
- `position`: позиция в навигации.
|
||||||
`link` - [Это..]\
|
- `link.type`: тип ссылки (здесь генерируется индекс).
|
||||||
`link.type` - [Это..]\
|
- `link.description`: описание ссылки.
|
||||||
`link.description` - []
|
|
||||||
|
|
||||||
##### Заголовок у доков
|
##### Пример заголовка документа (`docs/_template/doc1.md`):
|
||||||
[У каждого файла должен быть заголовок... Зачем? Почему?]
|
|
||||||
|
|
||||||
Заголовок doc1.md
|
|
||||||
```md
|
```md
|
||||||
---
|
---
|
||||||
sidebar_position: 1
|
sidebar_position: 1
|
||||||
title: Template title 1
|
title: Заголовок документа 1
|
||||||
---
|
---
|
||||||
|
|
||||||
Template text
|
Текст документа
|
||||||
```
|
```
|
||||||
|
|
||||||
в doc2.md соответсвенно будет
|
- `sidebar_position`: позиция в боковой панели.
|
||||||
```md
|
- `title`: заголовок документа.
|
||||||
---
|
|
||||||
sidebar_position: 2
|
|
||||||
title: Template title 2
|
|
||||||
---
|
|
||||||
|
|
||||||
Template text
|
Аналогично, для `doc2.md` будет другой `sidebar_position` и `title`.
|
||||||
```
|
|
||||||
|
|
||||||
`sidebar_position` - [Это..]\
|
При настройке блога и документации учтите указанные параметры для создания структуры и корректного отображения контента.
|
||||||
`title` - [Это...]
|
|
||||||
|
|
||||||
### Настройка стилей
|
### Настройка стилей
|
||||||
|
|
||||||
@ -173,10 +311,11 @@ Template text
|
|||||||
|
|
||||||
```css
|
```css
|
||||||
/* src/css/custom.css */
|
/* src/css/custom.css */
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--footer-padding: 0.5em;
|
--footer-padding: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||||
[data-theme='light'] {
|
[data-theme='light'] {
|
||||||
--ifm-color-primary: #7c538bfd;
|
--ifm-color-primary: #7c538bfd;
|
||||||
--ifm-color-primary-dark: #21af90;
|
--ifm-color-primary-dark: #21af90;
|
||||||
@ -189,6 +328,7 @@ Template text
|
|||||||
--footer-color: #000;
|
--footer-color: #000;
|
||||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme='dark'] {
|
[data-theme='dark'] {
|
||||||
--ifm-color-primary: #c4c0c5fd;
|
--ifm-color-primary: #c4c0c5fd;
|
||||||
--ifm-color-primary-dark: #21af90;
|
--ifm-color-primary-dark: #21af90;
|
||||||
@ -201,26 +341,34 @@ Template text
|
|||||||
--footer-color: #ebedf0;
|
--footer-color: #ebedf0;
|
||||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
--ifm-footer-background-color: var(--footer-background-color);
|
--ifm-footer-background-color: var(--footer-background-color);
|
||||||
--ifm-footer-color: var(--footer-color);
|
--ifm-footer-color: var(--footer-color);
|
||||||
padding: var(--footer-padding)
|
padding: var(--footer-padding)
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-github-link:hover {
|
.header-github-link:hover {
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-github-link::before {
|
.header-github-link::before {
|
||||||
content: '';
|
content: '';
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme='light'] .header-github-link {
|
||||||
background: url("/img/github.svg") 0 center / 25px 25px no-repeat;
|
background: url("/img/github.svg") 0 center / 25px 25px no-repeat;
|
||||||
}
|
}
|
||||||
h2 {
|
|
||||||
--ifm-heading-vertical-rhythm-bottom: 0;
|
[data-theme='dark'] .header-github-link {
|
||||||
|
background: url("/img/githubL.svg") 0 center / 25px 25px no-repeat;
|
||||||
}
|
}
|
||||||
p a {
|
|
||||||
|
.markdown li a, .markdown p a {
|
||||||
text-decoration: underline dotted;
|
text-decoration: underline dotted;
|
||||||
}
|
}
|
||||||
```
|
|
||||||
|
|
||||||
|
```
|
||||||
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 175 KiB |
@ -4,7 +4,7 @@ sidebar_position: 1
|
|||||||
|
|
||||||
# Мои заметки
|
# Мои заметки
|
||||||
|
|
||||||
Мои заметки с Obsidian в формате документации по категориям
|
Мои заметки в формате документации по категориям
|
||||||
|
|
||||||
Здесь можно найти:
|
Здесь можно найти:
|
||||||
|
|
||||||
@ -15,13 +15,3 @@ sidebar_position: 1
|
|||||||
- ❓ Вопросы и ответы
|
- ❓ Вопросы и ответы
|
||||||
- 📂 И прочие записи которые я зачем-то решил сохранить
|
- 📂 И прочие записи которые я зачем-то решил сохранить
|
||||||
|
|
||||||
<br></br>
|
|
||||||
<br></br>
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
Некоторые категории не стал выносить в основное меню и находяться в **[Misc](/docs/category/misc)**
|
|
||||||
|
|
||||||
Еще проще, что-то найти, воспользоваться кнопкой поиска
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
@ -8,15 +8,14 @@ const darkTheme = themes.dracula;
|
|||||||
|
|
||||||
/** @type {import('@docusaurus/types').Config} */
|
/** @type {import('@docusaurus/types').Config} */
|
||||||
const config = {
|
const config = {
|
||||||
title: 'SantaSpeen',
|
title: process.env.SITE_TITLE,
|
||||||
tagline: 'Personal Blog',
|
tagline: 'Personal Blog',
|
||||||
favicon: 'img/favicon.ico',
|
favicon: 'img/favicon.ico',
|
||||||
url: 'https://santaspeen.ru',
|
url: process.env.SITE_URL,
|
||||||
baseUrl: '/',
|
baseUrl: '/',
|
||||||
organizationName: 'santaspeen',
|
organizationName: process.env.SITE_ORANIZATION_NAME,
|
||||||
projectName: 'santaspeen.ru',
|
projectName: process.env.SITE_PROJECT_NAME,
|
||||||
trailingSlash: false,
|
trailingSlash: false,
|
||||||
deploymentBranch: 'gh-pages',
|
|
||||||
onBrokenLinks: 'throw',
|
onBrokenLinks: 'throw',
|
||||||
onBrokenMarkdownLinks: 'warn',
|
onBrokenMarkdownLinks: 'warn',
|
||||||
i18n: {
|
i18n: {
|
||||||
@ -51,10 +50,10 @@ const config = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// gtag: {
|
gtag: {
|
||||||
// trackingID: process.env.GOOGLE_ANALYTICS_TAG_ID,
|
trackingID: process.env.COUNTER_GOOGLE,
|
||||||
// anonymizeIP: true,
|
anonymizeIP: true,
|
||||||
// },
|
},
|
||||||
theme: {
|
theme: {
|
||||||
customCss: require.resolve('./src/css/custom.css'),
|
customCss: require.resolve('./src/css/custom.css'),
|
||||||
},
|
},
|
||||||
@ -92,12 +91,6 @@ const config = {
|
|||||||
style: 'dark',
|
style: 'dark',
|
||||||
copyright: `Copyright © ${new Date().getFullYear()} SantaSpeen`,
|
copyright: `Copyright © ${new Date().getFullYear()} SantaSpeen`,
|
||||||
},
|
},
|
||||||
// algolia: {
|
|
||||||
// appId: process.env.ALGOLIA_APP_ID,
|
|
||||||
// apiKey: process.env.ALGOLIA_API_KEY,
|
|
||||||
// indexName: process.env.ALGOLIA_INDEX_NAME,
|
|
||||||
// searchParameters: {},
|
|
||||||
// },
|
|
||||||
prism: {
|
prism: {
|
||||||
additionalLanguages: ['bash', 'diff', 'json'],
|
additionalLanguages: ['bash', 'diff', 'json'],
|
||||||
darkTheme: darkTheme,
|
darkTheme: darkTheme,
|
||||||
@ -108,6 +101,12 @@ const config = {
|
|||||||
disableSwitch: false,
|
disableSwitch: false,
|
||||||
respectPrefersColorScheme: false,
|
respectPrefersColorScheme: false,
|
||||||
},
|
},
|
||||||
|
algolia: {
|
||||||
|
appId: process.env.ALGOLIA_APP_ID,
|
||||||
|
apiKey: process.env.ALGOLIA_API_KEY,
|
||||||
|
indexName: process.env.ALGOLIA_INDEX_NAME,
|
||||||
|
searchParameters: {},
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
plugins: [
|
plugins: [
|
||||||
[
|
[
|
||||||
@ -115,6 +114,9 @@ const config = {
|
|||||||
/** @type {import('docusaurus-plugin-sass').Options} */
|
/** @type {import('docusaurus-plugin-sass').Options} */
|
||||||
{}
|
{}
|
||||||
],
|
],
|
||||||
|
['docusaurus-plugin-yandex-metrica', {
|
||||||
|
counterID: process.env.COUNTER_YANDEX,
|
||||||
|
}],
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
17076
package-lock.json
generated
@ -27,6 +27,7 @@
|
|||||||
"@svgr/webpack": "8.0.1",
|
"@svgr/webpack": "8.0.1",
|
||||||
"clsx": "^1.2.1",
|
"clsx": "^1.2.1",
|
||||||
"docusaurus-plugin-sass": "^0.2.3",
|
"docusaurus-plugin-sass": "^0.2.3",
|
||||||
|
"docusaurus-plugin-yandex-metrica": "^1.1.0",
|
||||||
"file-loader": "6.2.0",
|
"file-loader": "6.2.0",
|
||||||
"prism-react-renderer": "^2.1.0",
|
"prism-react-renderer": "^2.1.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
|
@ -63,12 +63,16 @@
|
|||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme='light'] .header-github-link {
|
||||||
background: url("/img/github.svg") 0 center / 25px 25px no-repeat;
|
background: url("/img/github.svg") 0 center / 25px 25px no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
p a {
|
[data-theme='dark'] .header-github-link {
|
||||||
--ifm-heading-vertical-rhythm-bottom: 0;
|
background: url("/img/githubL.svg") 0 center / 25px 25px no-repeat;
|
||||||
text-decoration: underline dotted;
|
}
|
||||||
font-size: '10px';
|
|
||||||
margin: "0"
|
.markdown li a, .markdown p a {
|
||||||
|
text-decoration: underline dotted;
|
||||||
}
|
}
|
@ -5,19 +5,26 @@ import Giscus from "@giscus/react";
|
|||||||
|
|
||||||
export default function BlogPostItemWrapper(props) {
|
export default function BlogPostItemWrapper(props) {
|
||||||
const { isBlogPostPage } = useBlogPost();
|
const { isBlogPostPage } = useBlogPost();
|
||||||
|
|
||||||
if (!isBlogPostPage) {
|
if (!isBlogPostPage) {
|
||||||
return <BlogPostItem {...props} />;
|
return <BlogPostItem {...props} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const repo = "SantaSpeen/santaspeen.ru-blog"
|
||||||
|
const repoId = "R_kgDOK6Fd_Q"
|
||||||
|
const category = "General"
|
||||||
|
const categoryId = "DIC_kwDOK6Fd_c4Cbwpe"
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<BlogPostItem {...props} />
|
<BlogPostItem {...props} />
|
||||||
{(
|
{(
|
||||||
<div className="docusaurus-blog-comments">
|
<div className="docusaurus-blog-comments">
|
||||||
<Giscus
|
<Giscus
|
||||||
repo="SantaSpeen/santaspeen.ru-blog"
|
repo={repo}
|
||||||
repoId="R_kgDOK6Fd_Q"
|
repoId={repoId}
|
||||||
category="General"
|
category={category}
|
||||||
categoryId="DIC_kwDOK6Fd_c4Cbwpe"
|
categoryId={categoryId}
|
||||||
mapping="pathname"
|
mapping="pathname"
|
||||||
reactionsEnabled="1"
|
reactionsEnabled="1"
|
||||||
emitMetadata="0"
|
emitMetadata="0"
|
||||||
|
@ -3,5 +3,7 @@
|
|||||||
<svg width="800px" height="800px" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="800px" height="800px" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
||||||
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
<g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.49936 0.850006C3.82767 0.850006 0.849976 3.8273 0.849976 7.50023C0.849976 10.4379 2.75523 12.9306 5.39775 13.8104C5.73047 13.8712 5.85171 13.6658 5.85171 13.4895C5.85171 13.3315 5.846 12.9135 5.84273 12.3587C3.99301 12.7604 3.60273 11.4671 3.60273 11.4671C3.30022 10.6988 2.86423 10.4942 2.86423 10.4942C2.26044 10.0819 2.90995 10.0901 2.90995 10.0901C3.57742 10.137 3.9285 10.7755 3.9285 10.7755C4.52167 11.7916 5.48512 11.4981 5.86396 11.3279C5.92438 10.8984 6.09625 10.6053 6.28608 10.4391C4.80948 10.2709 3.25695 9.70063 3.25695 7.15241C3.25695 6.42615 3.51618 5.83298 3.94157 5.368C3.87299 5.1998 3.64478 4.52375 4.00689 3.60807C4.00689 3.60807 4.56494 3.42926 5.83538 4.28941C6.36568 4.14204 6.93477 4.06856 7.50018 4.0657C8.06518 4.06856 8.63386 4.14204 9.16498 4.28941C10.4346 3.42926 10.9918 3.60807 10.9918 3.60807C11.3548 4.52375 11.1266 5.1998 11.0584 5.368C11.4846 5.83298 11.7418 6.42615 11.7418 7.15241C11.7418 9.70716 10.1868 10.2693 8.70571 10.4338C8.94412 10.6392 9.15681 11.045 9.15681 11.6655C9.15681 12.5542 9.14865 13.2715 9.14865 13.4895C9.14865 13.6675 9.26867 13.8745 9.60588 13.8095C12.2464 12.9282 14.15 10.4375 14.15 7.50023C14.15 3.8273 11.1723 0.850006 7.49936 0.850006Z" fill="#ffffff"/> </g>
|
<g id="SVGRepo_iconCarrier">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.49936 0.850006C3.82767 0.850006 0.849976 3.8273 0.849976 7.50023C0.849976 10.4379 2.75523 12.9306 5.39775 13.8104C5.73047 13.8712 5.85171 13.6658 5.85171 13.4895C5.85171 13.3315 5.846 12.9135 5.84273 12.3587C3.99301 12.7604 3.60273 11.4671 3.60273 11.4671C3.30022 10.6988 2.86423 10.4942 2.86423 10.4942C2.26044 10.0819 2.90995 10.0901 2.90995 10.0901C3.57742 10.137 3.9285 10.7755 3.9285 10.7755C4.52167 11.7916 5.48512 11.4981 5.86396 11.3279C5.92438 10.8984 6.09625 10.6053 6.28608 10.4391C4.80948 10.2709 3.25695 9.70063 3.25695 7.15241C3.25695 6.42615 3.51618 5.83298 3.94157 5.368C3.87299 5.1998 3.64478 4.52375 4.00689 3.60807C4.00689 3.60807 4.56494 3.42926 5.83538 4.28941C6.36568 4.14204 6.93477 4.06856 7.50018 4.0657C8.06518 4.06856 8.63386 4.14204 9.16498 4.28941C10.4346 3.42926 10.9918 3.60807 10.9918 3.60807C11.3548 4.52375 11.1266 5.1998 11.0584 5.368C11.4846 5.83298 11.7418 6.42615 11.7418 7.15241C11.7418 9.70716 10.1868 10.2693 8.70571 10.4338C8.94412 10.6392 9.15681 11.045 9.15681 11.6655C9.15681 12.5542 9.14865 13.2715 9.14865 13.4895C9.14865 13.6675 9.26867 13.8745 9.60588 13.8095C12.2464 12.9282 14.15 10.4375 14.15 7.50023C14.15 3.8273 11.1723 0.850006 7.49936 0.850006Z" fill="#1c1e21"/>
|
||||||
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
9
static/img/githubL.svg
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
|
||||||
|
<svg width="800px" height="800px" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
||||||
|
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<g id="SVGRepo_iconCarrier">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.49936 0.850006C3.82767 0.850006 0.849976 3.8273 0.849976 7.50023C0.849976 10.4379 2.75523 12.9306 5.39775 13.8104C5.73047 13.8712 5.85171 13.6658 5.85171 13.4895C5.85171 13.3315 5.846 12.9135 5.84273 12.3587C3.99301 12.7604 3.60273 11.4671 3.60273 11.4671C3.30022 10.6988 2.86423 10.4942 2.86423 10.4942C2.26044 10.0819 2.90995 10.0901 2.90995 10.0901C3.57742 10.137 3.9285 10.7755 3.9285 10.7755C4.52167 11.7916 5.48512 11.4981 5.86396 11.3279C5.92438 10.8984 6.09625 10.6053 6.28608 10.4391C4.80948 10.2709 3.25695 9.70063 3.25695 7.15241C3.25695 6.42615 3.51618 5.83298 3.94157 5.368C3.87299 5.1998 3.64478 4.52375 4.00689 3.60807C4.00689 3.60807 4.56494 3.42926 5.83538 4.28941C6.36568 4.14204 6.93477 4.06856 7.50018 4.0657C8.06518 4.06856 8.63386 4.14204 9.16498 4.28941C10.4346 3.42926 10.9918 3.60807 10.9918 3.60807C11.3548 4.52375 11.1266 5.1998 11.0584 5.368C11.4846 5.83298 11.7418 6.42615 11.7418 7.15241C11.7418 9.70716 10.1868 10.2693 8.70571 10.4338C8.94412 10.6392 9.15681 11.045 9.15681 11.6655C9.15681 12.5542 9.14865 13.2715 9.14865 13.4895C9.14865 13.6675 9.26867 13.8745 9.60588 13.8095C12.2464 12.9282 14.15 10.4375 14.15 7.50023C14.15 3.8273 11.1723 0.850006 7.49936 0.850006Z" fill="#fff"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |