Перейти к основному содержимому

Каталог примеров кода (IT Code Examples)

Разработчику

Энциклопедия Вселенная IT не может бесконечно раздувать HTML и JS-бандл тысячами длинных листингов, тяжёлых React-демо и растровых иллюстраций. Для этого есть три открытых сервиса:

СервисURLЧто выносим
IT Code Examplescode.spirzen.ruДлинные листинги, мультифайловые практикумы (Astro + Shiki)
IT Playplay.spirzen.ruИнтерактивные симуляторы и визуализации (Astro + React)
IT Encyclopedia Mediaassets.spirzen.ruИллюстрации, скриншоты, экспорт диаграмм (статика на GitHub Pages)

В статье остаётся объяснение; код и интерактив подгружаются через iframe, картинки — по URL с assets. Это пилот многоуровневой архитектуры: spirzen.ru — текст и SEO, code — код, play — интерактив, assets — медиа.

Трёхуровневая архитектура "Вселенная IT" — spirzen.ru (хаб), code.spirzen.ru (код), play.spirzen.ru (интерактив) и слой интеграции

Исходник схемы — info/it-universe-three-tier.drawio; полная экосистема — О проекте → архитектура.


Зачем выносить код и демо отдельно

Проблема в энциклопедииРешение
Длинные листинги раздувают HTML статейКод в it-code-examples
Тяжёлые React-демо раздувают JS-бандл (~4000 файлов)Демо в it-play
Мультифайловые практикумы тяжело читать в markdownВкладки файлов, подсветка на сборке
Лимит GitHub Pages (~1 GB)Отдельные репозитории — отдельные лимиты
Сотни скриншотов и иллюстраций в репозитории энциклопедииРепозиторий it-encyclopedia-mediaassets.spirzen.ru

Короткие фрагменты (3–15 строк) и лёгкие inline-виджеты по-прежнему уместны прямо в markdown. Всё длиннее ~30 строк, мультифайловое или интерактивное с состоянием — в отдельные сервисы. Растровые иллюстрации — на assets.spirzen.ru (путь в репозитории повторяет путь статьи).


Пример иллюстрации (IT Encyclopedia Media)

Пилотная картинка лежит в it-encyclopedia-media и раздаётся без участия билда энциклопедии:

Пилот assets.spirzen.ru — тестовая иллюстрация для статьи о каталоге примеров кода

Исходник в репозитории: it-encyclopedia-media/.../617/media-pilot-test.png.


Пример кода (IT Code Examples)

Ниже — живой пример Python — Hello World из каталога. Блок подстраивает высоту под содержимое; ссылка внизу открывает полную страницу примера.

Код ITЗагрузка примера кода…

Исходники: it-code-examples/examples/python/hello-world/.


Пример интерактива (IT Play)

Конструктор блоков — соберите вложенную структуру кода из строк и фигурных скобок. Демо живёт в it-play и подгружается так же через iframe с авто-высотой и синхронизацией темы.

Play ITЗагрузка интерактивного демо…

Исходники: it-play/plays/code-basics/block-builder/.


Для авторов статей

Код (code.spirzen.ru)


import ExternalCodeEmbed from '@site/src/components/ExternalCodeEmbed';

<ExternalCodeEmbed example="python/hello-world" title="Python — Hello World" />
ПропНазначение
exampleSlug вида python/hello-world/e/embed/python/hello-world/
titleЗаголовок iframe (доступность)
srcПолный URL embed (override)
minHeightМинимальная высота, по умолчанию 200

Интерактив (play.spirzen.ru)


import ExternalPlayEmbed from '@site/src/components/ExternalPlayEmbed';

<ExternalPlayEmbed example="code-basics/block-builder" title="Конструктор блоков" />
ПропНазначение
exampleSlug вида code-basics/block-builder/p/embed/code-basics/block-builder/
titleЗаголовок iframe
srcПолный URL embed (override)
minHeightМинимальная высота, по умолчанию 320

Правило для новых материалов: текст → it-knowledge-base, код → it-code-examples, интерактив → it-play, иллюстрации → it-encyclopedia-media.

Локально — энциклопедия npm start (:3000), code npm run dev (:4321), play npm run dev (:4322). URL подставляются автоматически.


Связанные материалы