Skip to content

brown-aleks/prodotnetmemory.github.io

Repository files navigation

📖 Pro .NET Memory Management

Это репозиторий электронной книги по управлению памятью в платформе .NET. Сайт представляет собой статический ресурс, генерируемый из Markdown-файлов с помощью MkDocs и современной темы Material for MkDocs.

🚀 Быстрый старт (Локальная разработка)

Проект полностью контейнеризирован, что позволяет запустить среду предварительного просмотра без установки Python или MkDocs в основную систему.

  1. Запуск сервера:

    docker-compose up -d
  2. Предпросмотр: Откройте браузер и перейдите по адресу: http://localhost:8000

  3. Остановка сервера:

    docker-compose down

🏗️ Архитектура проекта

В проекте реализован принцип SSoT (Single Source of Truth) — единственным источником истины является директория /docs. Всё, что находится вне этой папки (кроме конфигурационных файлов), не попадает на итоговый сайт.

Структура контента

  • /docs/chapters/ — Исходные тексты глав в формате Markdown.
  • /docs/assets/ — Глобальные ресурсы сайта:
    • /javascripts/ — Кастомные JS-скрипты.
    • /stylesheets/ — Пользовательские CSS-стили.
    • /images/ — Общие изображения (логотипы, иконки), используемые в разных разделах книги.
  • /docs/chapters/[глава]/img/ — Локальные ресурсы конкретной главы (схемы, скриншоты).

Правила работы с ресурсами:

  • Локальные изображения: Если картинка относится только к одной главе $\rightarrow$ поместите её в папку img этой главы. Путь в MD: ![](img/picture.png).
  • Глобальные изображения: Если ресурс используется в нескольких главах или на главной странице $\rightarrow$ поместите его в /docs/assets/images/. Путь в MD: ![](../../assets/images/picture.png) (в зависимости от вложенности).

🛠️ Технологический стек

  • Генератор: MkDocs
  • Тема: Material for MkDocs
  • Язык: Python 3.x
  • Среда исполнения: Docker / Docker Compose
  • Развертывание: GitHub Actions $\rightarrow$ GitHub Pages

🌐 Процесс развертывания (CI/CD)

Проект использует полностью автоматизированный конвейер сборки и публикации:

  1. Триггер: Любой push в ветку main.
  2. Сборка: GitHub Actions поднимает окружение, устанавливает зависимости из requirements.txt с использованием кэширования (pip cache) и собирает статический HTML.
  3. Деплой: Скомпилированный сайт автоматически публикуется на GitHub Pages.

Конфигурация пайплайна: .github/workflows/deploy.yml


📝 Примечания для контрибьюторов

  1. Версии зависимостей: Все библиотеки в requirements.txt зафиксированы по версиям (pinning). Не обновляйте их без предварительного тестирования локально через Docker.
  2. Чистота репозитория: Никогда не коммитьте папку /site/ (она находится в .gitignore). Результат сборки генерируется только на стороне сервера GitHub Actions.
  3. Ссылки: Используйте относительные пути для внутренних ссылок, чтобы сохранить переносимость контента.

Живая версия сайта:

👉 https://brown-aleks.github.io/prodotnetmemory.github.io/


Броун Александр: Хочу поблагодарить автора и всех тех кто приложил усилия к созданию этой книги. И очень жаль, что нету возможности приобрести оригинал этой книги на русском языке.

Публичное заявление:

  • Я ни в коем случае не претендую на авторство публикуемого материала. Я всего лишь стараюсь перевести изложенный материал в этой книги, как можно более точно с технической точки зрения.
  • Данный перевод существует с целью личного изучения, ознакомления, не для продажи и не для массового распространения.
  • Если перевод вам понравился и у вас начался приступ щедрости, всегда буду рад вашим благотворительным пожертвованиям на https://boosty.to/brown-aleks/donate

boosty

donationalerts


Releases

No releases published

Packages

 
 
 

Contributors