Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/content_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,6 @@ body:
attributes:
label: Чеклист Контрибьютора
options:
- label: Я буду редактировать контент в docs/, а не в сгенерированном content/
- label: Я буду редактировать контент в docs/ и пересоберу content manifest
- label: Я запущу prepare:content и validate:content перед открытием PR
- label: Я добавлю author metadata, если это уместно
7 changes: 7 additions & 0 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ jobs:
- name: Prepare generated content
run: npm run prepare:content

- name: Upload content report
if: always()
uses: actions/upload-artifact@v4
with:
name: content-report-json
path: .cache/content-report.json

- name: Validate markdown links and content references
run: npm run validate:content

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ pnpm-debug.log*

# Build artifacts
*.tsbuildinfo
.cache/

# Python
__pycache__/
Expand Down
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@
Основные директории:

- `docs/` - исходные материалы, которые редактируются вручную
- `content/` - синхронизированный слой, который использует приложение
- `.cache/content-manifest.json` - build-time manifest, который используют приложение, поиск и валидатор
- `resources/` - датасеты и дополнительные артефакты
- `public/` - публичные ассеты, включая `search-index.json`
- `scripts/` - синхронизация контента, валидация и сборка поискового индекса
- `scripts/` - сборка content manifest, валидация и сборка поискового индекса
- `.github/workflows/` - CI и деплой

## Локальный Запуск
Expand All @@ -54,7 +54,7 @@ npm run dev

1. Сделайте fork репозитория и создайте ветку от `main`.
2. Вносите изменения с понятной и ограниченной областью.
3. Если меняете документацию, редактируйте `docs/`, а не сгенерированный `content/`.
3. Если меняете документацию, редактируйте `docs/`; manifest пересобирается командой `prepare:content`.
4. Запустите нужные проверки локально.
5. Откройте pull request с понятным описанием и результатами проверки.

Expand All @@ -78,8 +78,8 @@ npm run validate:content
Пайплайн проекта устроен так:

1. `docs/` является редактируемым источником
2. `npm run content:sync` переносит материалы в `content/`
3. `npm run search:build` пересобирает `public/search-index.json`
2. `npm run content:manifest` собирает `.cache/content-manifest.json`
3. `npm run search:build` пересобирает `public/search-index.json` из manifest
4. `npm run prepare:content` выполняет оба шага

## Изменения В Коде
Expand Down Expand Up @@ -122,7 +122,7 @@ npm run validate:content

- сохраняйте понятную и воспроизводимую структуру
- отдавайте предпочтение практическим и проверяемым примерам
- добавляйте frontmatter-поля `title`, `description`, `order` и `author`, где это уместно
- добавляйте frontmatter-поля `title`, `description`, `author` и один из `order` / `sidebar_position` для каждой страницы
- указывайте язык в code fence
- проверяйте ссылки, якоря и файловые ссылки
- не добавляйте непроверенный или потенциально небезопасный внешний контент
Expand Down
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ Production URL: https://minkinad.github.io/StackMIREA/

Актуально на 4 апреля 2026 года.

- 19 учебных треков в `content/`.
- 19 учебных треков в едином content manifest.
- 68 исходных Markdown/MDX-файлов в `docs/`.
- 71 синхронизированная Markdown/MDX-страница.
- 71 Markdown/MDX-страница в `.cache/content-manifest.json`.
- 52 отдельных учебных материала без учёта индексных страниц разделов.
- Крупнейшие треки: `java` (26 страниц), `ai` (9), `bigdata` (9), `python` (6), `procedural-programming` (6).
- Два workflow в CI/CD: `PR Checks` и `Deploy Docs to GitHub Pages`.
Expand All @@ -39,16 +39,16 @@ Production URL: https://minkinad.github.io/StackMIREA/
## Как устроен контент

- `docs/` - исходные материалы, которые редактируются вручную.
- `content/` - синхронизированный слой, который использует приложение.
- `.cache/content-manifest.json` - единый build-time manifest, который используют приложение, поиск и валидатор.
- `resources/` - дополнительные файлы, датасеты и артефакты практик.
- `scripts/` - генерация контента, поискового индекса и валидация ссылок.
- `scripts/` - сборка content manifest, поискового индекса и валидация ссылок.
- `public/search-index.json` - локальный поисковый индекс для страницы `/ask`.

Основной pipeline:

1. Материалы редактируются в `docs/`.
2. `npm run content:sync` переносит их в `content/`.
3. `npm run search:build` собирает поисковый индекс.
2. `npm run content:manifest` собирает `.cache/content-manifest.json` с slug, frontmatter, author, toc, preview, topics и hash.
3. `npm run search:build` собирает поисковый индекс из manifest.
4. `npm run prepare:content` объединяет оба шага.
5. `npm run build` запускает `prepare:content` автоматически через `prebuild`.

Expand Down Expand Up @@ -92,8 +92,11 @@ npm run dev
- `npm run start` - локальный запуск собранной статической версии на `:3000`.
- `npm run lint` - проверка ESLint.
- `npm run typecheck` - проверка TypeScript.
- `npm run prepare:content` - синхронизация контента и сборка поискового индекса.
- `npm run content:sync` - перенос `docs/` -> `content/`.
- `npm run prepare:content` - сборка content manifest и поискового индекса.
- `npm run content:manifest` - генерация `.cache/content-manifest.json` из `docs/`.
- `npm run prepare:content:warning` - сборка manifest в warning-режиме без падения по content issues.
- `npm run prepare:content:report` - генерация `content-report.json` с autofix suggestions.
- `npm run content:sync` - compatibility alias для `content:manifest`.
- `npm run search:build` - генерация `public/search-index.json`.
- `npm run validate:content` - проверка markdown-ссылок, якорей и репозиторных ссылок в code fence.
- `npm run export` - информационный скрипт: static export выполняется внутри `next build`.
Expand All @@ -103,7 +106,6 @@ npm run dev
```text
app/
components/
content/
docs/
lib/
public/
Expand Down Expand Up @@ -136,17 +138,16 @@ SUPPORT.md
## Как вносить изменения

1. Добавьте или обновите материал в `docs/<track>/...`.
2. Запустите `npm run content:sync` или сразу `npm run prepare:content`.
2. Запустите `npm run content:manifest` или сразу `npm run prepare:content`.
3. Проверьте контент командой `npm run validate:content`.
4. Проверьте проект командами `npm run lint` и `npm run typecheck`.
5. Откройте Pull Request.

Для автора материала можно указать поле `author` во frontmatter: GitHub login или ссылку на профиль.
Для каждого материала требуется поле `author` во frontmatter: GitHub login или ссылка на профиль.

Для более подробного процесса контрибуции см. [CONTRIBUTING.md](./CONTRIBUTING.md).

## Лицензии

- Код проекта распространяется по лицензии MIT. См. [LICENSE](./LICENSE).
- Контент сайта, статьи и учебные материалы - CC BY-NC-SA 4.0. См. [CC-BY-NC-SA-4.0](./CC-BY-NC-SA-4.0).

4 changes: 2 additions & 2 deletions app/docs/[...slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export default async function DocPage({ params }: DocPageProps) {
const buildInfo = getBuildInfo();
const sidebarGroups = getSidebarGroups();
const pagination = getDocPagination(params.slug);
const { content, toc } = await compileDocMdx(doc.body);
const { content } = await compileDocMdx(doc.body, { collectToc: false });
const editUrl = doc.editPath ? `${GITHUB_EDIT_ROOT}/${doc.editPath}` : null;

return (
Expand Down Expand Up @@ -91,7 +91,7 @@ export default async function DocPage({ params }: DocPageProps) {
<Pagination prev={pagination.prev} next={pagination.next} />
</article>

<Toc items={toc} />
<Toc items={doc.toc} />
</div>
</>
);
Expand Down
2 changes: 1 addition & 1 deletion components/search/AskStackMirea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ export function AskStackMirea() {
<section className="rounded-3xl border border-border/70 bg-card/70 p-5">
<p className="text-sm font-semibold tracking-tight">Как это работает</p>
<ul className="mt-4 space-y-3 text-sm leading-6 text-muted-foreground">
<li>Индекс собирается на build-time из `content/` и остаётся совместимым с GitHub Pages.</li>
<li>Индекс собирается на build-time из content manifest и остаётся совместимым с GitHub Pages.</li>
<li>Поиск учитывает title, description, секцию, чанки контента и словарь тематических синонимов.</li>
<li>Результаты ранжируются так, чтобы сверху были страницы с самым близким фрагментом по смыслу.</li>
</ul>
Expand Down
1 change: 1 addition & 0 deletions docs/ai/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "AI"
description: "Рабочие тетради по искусственному интеллекту в формате MDX."
order: 1
author: minkinad
---

# AI - обзор
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-01-python-basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 1 — Основа Python"
sidebar_position: 2
description: "Типы данных, условия, циклы и старт работы с NumPy."
slug: "/ai/notebook-01-python-basics"
author: minkinad
---

**Основа Python. Библиотеки.**
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-02-numpy-pandas.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 2 — NumPy и pandas"
sidebar_position: 3
description: "Базовые операции с массивами и таблицами, масштабирование данных."
slug: "/ai/notebook-02-numpy-pandas"
author: minkinad
---

**NumPy и pandas**
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-03-metrics-and-knn.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 3 — Метрики и KNN"
sidebar_position: 4
description: "Метрики качества, расстояния и классификация K ближайших соседей."
slug: "/ai/notebook-03-metrics-and-knn"
author: minkinad
---

**1.1. Теоретический материал – Функции Python**
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-04-regression.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 4 — Регрессия"
sidebar_position: 5
description: "Линейные модели, аппроксимация и визуализация регрессионных зависимостей."
slug: "/ai/notebook-04-regression"
author: minkinad
---

Дата - 22.04.2023
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-05-decision-trees.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 5 — Деревья решений"
sidebar_position: 6
description: "Деревья решений и базовые техники интерпретации классификаторов."
slug: "/ai/notebook-05-decision-trees"
author: minkinad
---

**Теоретический материал – Деревья принятия решений**
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-06-genetic-and-annealing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 6 — Генетические и эволюционные
sidebar_position: 7
description: "Оптимизация: эволюционные стратегии и имитация отжига."
slug: "/ai/notebook-06-genetic-and-annealing"
author: minkinad
---

**Теоретический материал – Эволюционные методы**
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-07-neural-networks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 7 — Нейронные сети"
sidebar_position: 8
description: "Персептрон, MLP и базовый цикл обучения нейросети."
slug: "/ai/notebook-07-neural-networks"
author: minkinad
---

**1.1. Теоретический материал – Нейронные сети**
Expand Down
1 change: 1 addition & 0 deletions docs/ai/notebook-08-clustering.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: "AI Notebook 8 — Кластеризация"
sidebar_position: 9
description: "Неподконтрольное обучение и методы группировки данных."
slug: "/ai/notebook-08-clustering"
author: minkinad
---

**Теоретический материал - Кластеризация**
Expand Down
44 changes: 44 additions & 0 deletions docs/algorithms/getting-started.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: Введение
description: Навигация по учебной документации проекта StackMIREA.
order: 2
slug: /algorithms/getting-started
author: minkinad
---

# StackMIREA Docs

Этот сайт собирает практики в формате учебных модулей.

Что внутри:

- раздел `Python` с практиками по ООП/ФВП и отдельным блоком AI-ноутбуков;
- раздел `Java` с 24 задачами: от основ до паттернов проектирования;
- унифицированная структура каждой практики: задание, решение, описание, важные моменты и вывод.

## Как пользоваться

1. Выберите трек: `Python` или `Java`.
2. Откройте нужную практику по номеру.
3. Сначала прочитайте задание, затем разберите пример кода.
4. Сопоставьте материал с исходниками в репозитории.

:::tip
Используйте правый блок **On this page** для быстрого перехода по большим документам.
:::

## Формат MDX

Поддерживаются callout-блоки, fenced code и кастомный рендеринг через Shiki:

```tsx filename="example.mdx"
:::info
Этот блок будет отрисован как `<Callout type="info" />`.
:::
```

## Исходники

- Python: `pr_Python/`
- Java: `docs/java/` и `content/java/`
- GitHub: [minkinad/StackMIREA](https://github.com/minkinad/StackMIREA)
12 changes: 12 additions & 0 deletions docs/algorithms/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Algorithms
description: Вводные и вспомогательные материалы StackMIREA Docs.
order: 1
author: minkinad
---

## Что внутри

- Введение и навигация по проекту
- MDX-структура и правила оформления
- Связь с Python и Java треками
1 change: 1 addition & 0 deletions docs/bigdata/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: BigData
description: Практики по анализу больших данных, ML, классификации и кластеризации.
order: 1
author: minkinad
---

# BigData - обзор
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-01-introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 1. Введение в BigData
description: Базовые операции и знакомство с форматом работы.
order: 2
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-02-data-analysis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 2. Аналитика данных
description: Обработка данных и исследовательский анализ в Jupyter Notebook.
order: 3
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-03-regression-and-datasets.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 3. Регрессия и наборы данных
description: Работа с несколькими датасетами и построение моделей.
order: 4
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-04-insurance-analysis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 4. Анализ данных страхования
description: Практика с датасетом по страхованию и подготовкой признаков.
order: 5
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-05-classification.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 5. Классификация
description: Построение и оценка моделей классификации.
order: 6
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-06-clustering.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 6. Кластеризация
description: Неподконтрольное обучение и анализ кластеров.
order: 7
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-07-ensemble-learning.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 7. Ансамблевое обучение
description: Комбинирование моделей для повышения качества предсказаний.
order: 8
author: minkinad
---

## Wiki-версия
Expand Down
1 change: 1 addition & 0 deletions docs/bigdata/practice-08-final-report.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Практика 8. Итоговая работа
description: Финальный отчет и итоговые материалы по модулю BigData.
order: 9
author: minkinad
---

## Wiki-версия - требуется доработка
Expand Down
1 change: 1 addition & 0 deletions docs/business-process-modeling/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Моделирование бизнес процессов
description: Подходы и инструменты для анализа и моделирования бизнес-процессов.
order: 1
author: minkinad
---

## О разделе
Expand Down
1 change: 1 addition & 0 deletions docs/configuration-management/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Конфигурационное управление
description: Практики по управлению конфигурацией, версиям и средам разработки.
order: 1
author: minkinad
---

## О разделе
Expand Down
1 change: 1 addition & 0 deletions docs/data-structures-and-algorithms-part-1/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Структуры и алгоритмы обработки данных (часть 1)
description: Базовые структуры данных и алгоритмы обработки данных, часть 1.
order: 1
author: minkinad
---

## О разделе
Expand Down
Loading
Loading