From 7e9b229c3dd2663a53075567fd76a434d23fec18 Mon Sep 17 00:00:00 2001 From: ada Date: Fri, 22 Aug 2025 12:19:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B2=20markdown-=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=D1=85,=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=B2=20=D0=BA=D0=B0=D0=B2?= =?UTF-8?q?=D1=8B=D1=87=D0=BA=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D0=B2?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=82=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Как Дима сервер домашний поднимал.md | 2 +- _notes/HomeServer/Коробочки-коробочки.md | 2 +- _notes/HomeServer/Новое начало.md | 2 +- _notes/IT-School/Additional/SLI, SLO, SLA.md | 2 +- ...казоустойчивость VS Высокая доступность.md | 2 +- ...оматизация в программной инфраструктуре.md | 2 +- .../Lecture/Базовые сетевые службы.md | 2 +- .../Lecture/Введение в виртуализацию.md | 2 +- .../Инфраструктура на уровне железа.md | 2 +- .../IT-School/Lecture/Системы мониторинга.md | 2 +- .../Системы резервного копирования (СРК).md | 2 +- .../Lecture/Что такое IT-инфраструктура.md | 2 +- _pages/homeserver_hub.md | 2 +- _pages/index.md | 2 +- _pages/notes.md | 2 +- _pages/projects.md | 96 +++++++++++++++++++ _pages/sysengine.md | 2 +- _plugins/wikilinks.rb | 29 +++--- 18 files changed, 127 insertions(+), 30 deletions(-) diff --git a/_notes/HomeServer/Как Дима сервер домашний поднимал.md b/_notes/HomeServer/Как Дима сервер домашний поднимал.md index 3dae3d7..4468c3a 100644 --- a/_notes/HomeServer/Как Дима сервер домашний поднимал.md +++ b/_notes/HomeServer/Как Дима сервер домашний поднимал.md @@ -1,6 +1,6 @@ --- created: 04.08.2025 -title: Как Дима сервер домашний поднимал... +title: "Как Дима сервер домашний поднимал..." layout: single --- Как я и обещал, запускаю небольшой цикл постов о моём маленьком проекте: "Домашняя виртуализация на базе мини-ПК" diff --git a/_notes/HomeServer/Коробочки-коробочки.md b/_notes/HomeServer/Коробочки-коробочки.md index edbe6a4..ff3164a 100644 --- a/_notes/HomeServer/Коробочки-коробочки.md +++ b/_notes/HomeServer/Коробочки-коробочки.md @@ -1,5 +1,5 @@ --- -title: Коробочки-коробочки... +title: "Коробочки-коробочки..." layout: single --- Мы возвращаемся к нашей эпопее с домашним сервером, напомню, мы в прошлый раз обсуждали, что такое *виртуализация* - это технология, с помощью которой мы можем на одном устройстве (сервере, ПК и т.д.) разместить множество "виртуальных устройств". diff --git a/_notes/HomeServer/Новое начало.md b/_notes/HomeServer/Новое начало.md index 049d385..6581491 100644 --- a/_notes/HomeServer/Новое начало.md +++ b/_notes/HomeServer/Новое начало.md @@ -1,5 +1,5 @@ --- -title: Новое начало +title: "Новое начало" layout: single --- diff --git a/_notes/IT-School/Additional/SLI, SLO, SLA.md b/_notes/IT-School/Additional/SLI, SLO, SLA.md index 9576266..e54b2fd 100644 --- a/_notes/IT-School/Additional/SLI, SLO, SLA.md +++ b/_notes/IT-School/Additional/SLI, SLO, SLA.md @@ -1,5 +1,5 @@ --- -title: SLI, SLO, SLA +title: "SLI, SLO, SLA" --- ## ✅ SLI — Service Level Indicator diff --git a/_notes/IT-School/Additional/Отказоустойчивость VS Высокая доступность.md b/_notes/IT-School/Additional/Отказоустойчивость VS Высокая доступность.md index a147282..aea7499 100644 --- a/_notes/IT-School/Additional/Отказоустойчивость VS Высокая доступность.md +++ b/_notes/IT-School/Additional/Отказоустойчивость VS Высокая доступность.md @@ -1,5 +1,5 @@ --- -title: Отказоустойчивость VS Высокая доступность +title: "Отказоустойчивость VS Высокая доступность" --- В мире ИТ надёжность систем — критически важная задача. Часто используют два термина: **отказоустойчивость** и **высокая доступность**. Несмотря на схожесть целей, это разные подходы. diff --git a/_notes/IT-School/Lecture/Автоматизация в программной инфраструктуре.md b/_notes/IT-School/Lecture/Автоматизация в программной инфраструктуре.md index 39d9f70..ac80407 100644 --- a/_notes/IT-School/Lecture/Автоматизация в программной инфраструктуре.md +++ b/_notes/IT-School/Lecture/Автоматизация в программной инфраструктуре.md @@ -1,5 +1,5 @@ --- -title: Автоматизация в программной инфраструктуре +title: "Автоматизация в программной инфраструктуре" --- > 👨‍🏫 Лектор: *Дмитрий Ширяев* — старший системный инженер (CROC) diff --git a/_notes/IT-School/Lecture/Базовые сетевые службы.md b/_notes/IT-School/Lecture/Базовые сетевые службы.md index 48c39d8..efd905f 100644 --- a/_notes/IT-School/Lecture/Базовые сетевые службы.md +++ b/_notes/IT-School/Lecture/Базовые сетевые службы.md @@ -1,5 +1,5 @@ --- -title: Базовые сетевые службы +title: "Базовые сетевые службы" --- 👨‍🏫 *Лектор: Никита Ефимов* diff --git a/_notes/IT-School/Lecture/Введение в виртуализацию.md b/_notes/IT-School/Lecture/Введение в виртуализацию.md index 5ce1fbb..c99bf82 100644 --- a/_notes/IT-School/Lecture/Введение в виртуализацию.md +++ b/_notes/IT-School/Lecture/Введение в виртуализацию.md @@ -1,5 +1,5 @@ --- -title: Введение в виртуализацию +title: "Введение в виртуализацию" --- > Лектор: Артур Марцинкевич - Системный инженер Департамента инфраструктурных решений и сервисов diff --git a/_notes/IT-School/Lecture/Инфраструктура на уровне железа.md b/_notes/IT-School/Lecture/Инфраструктура на уровне железа.md index 724880a..0863596 100644 --- a/_notes/IT-School/Lecture/Инфраструктура на уровне железа.md +++ b/_notes/IT-School/Lecture/Инфраструктура на уровне железа.md @@ -1,5 +1,5 @@ --- -title: Инфраструктура на уровне железа +title: "Инфраструктура на уровне железа" --- 👨‍🏫 *Антон Иванов* diff --git a/_notes/IT-School/Lecture/Системы мониторинга.md b/_notes/IT-School/Lecture/Системы мониторинга.md index 8353574..e748f34 100644 --- a/_notes/IT-School/Lecture/Системы мониторинга.md +++ b/_notes/IT-School/Lecture/Системы мониторинга.md @@ -1,5 +1,5 @@ --- -title: Системы мониторинга +title: "Системы мониторинга" --- **Зачем нужен мониторинг:** diff --git a/_notes/IT-School/Lecture/Системы резервного копирования (СРК).md b/_notes/IT-School/Lecture/Системы резервного копирования (СРК).md index 9e9b680..35705c7 100644 --- a/_notes/IT-School/Lecture/Системы резервного копирования (СРК).md +++ b/_notes/IT-School/Lecture/Системы резервного копирования (СРК).md @@ -1,5 +1,5 @@ --- -title: Системы резервного копирования (СРК) +title: "Системы резервного копирования (СРК)" --- **Источник:** Летняя Школа «System-инженер» diff --git a/_notes/IT-School/Lecture/Что такое IT-инфраструктура.md b/_notes/IT-School/Lecture/Что такое IT-инфраструктура.md index 7576d97..4af58ba 100644 --- a/_notes/IT-School/Lecture/Что такое IT-инфраструктура.md +++ b/_notes/IT-School/Lecture/Что такое IT-инфраструктура.md @@ -1,5 +1,5 @@ --- -title: Что такое IT-инфраструктура +title: "Что такое IT-инфраструктура" --- diff --git a/_pages/homeserver_hub.md b/_pages/homeserver_hub.md index 72cfa88..4b9d3e7 100644 --- a/_pages/homeserver_hub.md +++ b/_pages/homeserver_hub.md @@ -1,5 +1,5 @@ --- -title: Домашняя лаборатория — хаб +title: "Домашняя лаборатория — хаб" layout: single permalink: /homelab/ description: Центральная страница проекта по домашнему серверу: цели, оглавление, дорожная карта и быстрые ссылки. diff --git a/_pages/index.md b/_pages/index.md index a5dfa0a..cb5abc3 100644 --- a/_pages/index.md +++ b/_pages/index.md @@ -1,5 +1,5 @@ --- -title: Домашняя страница +title: "Домашняя страница" layout: home classes: wide author_profile: true diff --git a/_pages/notes.md b/_pages/notes.md index a7a0242..86c1ff5 100644 --- a/_pages/notes.md +++ b/_pages/notes.md @@ -1,6 +1,6 @@ --- layout: single -title: Все заметки +title: "Все заметки" permalink: /notes/ --- diff --git a/_pages/projects.md b/_pages/projects.md index e69de29..e535d4d 100644 --- a/_pages/projects.md +++ b/_pages/projects.md @@ -0,0 +1,96 @@ +--- +title: "Проекты" +layout: single +permalink: /projects/ +description: Подборка моих активных проектов: Домашняя лаборатория (Homelab) и конспекты Летней IT‑школы КРОК. +--- + +# Проекты + +Ниже — мои текущие живые проекты. Это не статичные статьи, а развивающиеся хабы с практикой, конспектами и дорожной картой. + + + +
+ +
+

🏠 Домашняя лаборатория (Homelab)

+
+ Proxmox VE + KVM/LXC + WireGuard + VPS + Reverse‑proxy +
+

+ Практический цикл о мини‑ПК и Proxmox: виртуалки и контейнеры, публикация сервисов через туннели и VPS, + инфраструктурные принципы и безопасность. Внутри — обзор, быстрые ссылки и дорожная карта. +

+ +
+ +
+

📘 Летняя IT‑школа КРОК (Системная инженерия)

+
+ Виртуализация + Сети + Мониторинг + Бэкапы +
+

+ Конспекты и практические заметки по курсу системной инженерии: основы инфраструктуры, автоматизация, + виртуализация, базовые сетевые службы, СРК и мониторинг. Постепенно пополняется. +

+ +
+ +
+ +--- + +Подобные страницы‑хабы помогают отслеживать прогресс и быстро переходить к нужным разделам. Если видите неточности — дайте знать, поправлю. \ No newline at end of file diff --git a/_pages/sysengine.md b/_pages/sysengine.md index b50ec60..b4949aa 100644 --- a/_pages/sysengine.md +++ b/_pages/sysengine.md @@ -1,5 +1,5 @@ --- -title: Летняя IT-школа КРОК +title: "Летняя IT-школа КРОК" layout: single permalink: /system-engineer/ --- diff --git a/_plugins/wikilinks.rb b/_plugins/wikilinks.rb index 53fef98..f37dccc 100644 --- a/_plugins/wikilinks.rb +++ b/_plugins/wikilinks.rb @@ -1,42 +1,43 @@ # _plugins/wikilinks.rb -# Автоконвертация [[wikilinks]] -> [label](url) по коллекции _notes (и др. коллекциям, если надо) +# Конвертирует [[wikilinks]] и [[slug|Текст]] в обычные markdown-ссылки +# Ищет цели по коллекции `notes` (title и basename). module Wikilinks def self.build_index(site) - # Возьмём все документы из коллекции notes - notes = site.collections['notes']&.docs || [] - index = {} + col = site.collections['notes'] + docs = col ? col.docs : [] + idx = {} - notes.each do |d| - # ключи для поиска: title и basename без расширения + docs.each do |d| title = (d.data['title'] || File.basename(d.basename, '.*')).to_s slug = File.basename(d.basename, '.*').to_s [title, slug].each do |k| + k = k.to_s.downcase.strip next if k.empty? - index[k.downcase] = d.url + idx[k] = d.url end end - index + idx end def self.convert(content, site) + return content if content.nil? || content.empty? + idx = build_index(site) - content.gsub(/\[\[([^\]|#]+)(?:\|([^\]]+))?\]\]/) do + content.gsub(/\[\[([^\]|#]+?)(?:\|([^\]]+))?\]\]/) do key = Regexp.last_match(1).strip label = (Regexp.last_match(2) || key).strip url = idx[key.downcase] - # если нашли — заменяем, иначе оставляем как есть url ? "[#{label}](#{site.baseurl}#{url})" : Regexp.last_match(0) end end end -# Прогоним через фильтр все страницы/посты/доки до рендера -Jekyll::Hooks.register [:pages, :posts, :documents], :pre_render do |doc, payload| - site = payload['site'] - doc.content = Wikilinks.convert(doc.content, site) +# Важно: используем doc.site, а не payload['site'] +Jekyll::Hooks.register [:pages, :posts, :documents], :pre_render do |doc| + doc.content = Wikilinks.convert(doc.content, doc.site) end