Технические презентации отличаются частыми переключениями между слайдами, терминалом и интегрированной средой разработки. Например, при объяснении развертывания Kubernetes начинаешь со слайдов архитектуры, для демонстрации команд kubectl переключаешься на терминал, для объяснения YAML переходишь к VS Code, затем для объяснения следующей темы возвращаешься к слайдам. В итоге постоянным переключением контекста убивается демонстрационный процесс, теряется время.

Эта проблема решается терминальными презентациями: здесь все делается в одном месте:

  • Запускается интерактивный демокод.
  • Показываются выводы команд.
  • Отображается ASCII-графика.
  • Все хранится в терминале.

Предварительные условия и настройка

Для создания терминальных презентаций понадобится:

  1. Слайды  —  интерфейс командной строки презентации, которым в терминале отображается разметка.
  2. Средство запуска команд, которым организуются задачи презентации.
  3. Инструмент командной строки для GitHub.
  4. Готовый шаблон для начала работы, используя который вы быстро создадите собственный репозиторий с технической презентацией.

Быстрый запуск

Клонируем шаблон и создаем репозиторий презентации:

gh repo create --template piotr1215/terminal-slides-template --private your-slides-repo --clone

Делаем файлы презентации исполняемыми:

chmod +x slides.md justfile

Дополнительные графические инструменты

Для ASCII-графики устанавливаем также:

  • PlantUML для диаграмм последовательностей;
  • Graph::Easy для диаграмм компонентов.

Первая презентация

Разберемся с самими терминальными презентациями. Каждая состоит из двух основных частей:

Титульные элементы YAML

С них начинается каждая презентация:

---
theme: theme.json
author: Your Name
date: MMMM dd, YYYY
paging: Slide %d / %d
---

Файлом theme.json управляется стилевое оформление презентации  —  аналогично CSS для веб-страниц.

Слайды с содержимым

Оптимальные технические презентации не «рассказывают», а «показывают». Интерактивные демо эффектнее тысячи слайдов Powerpoint.

Слайды пишутся на языке разметки, разделяются тройным тире:

# Первый слайд

Some content

---

# Второй слайд

More content

Наведем внешний лоск

Элементы ниже необязательны, но с ними презентации привлекательнее и интереснее для аудитории.

Интерактивные команды

Код и терминальные команды выполняются на слайдах, и выходные данные видны сразу.

## Выполняем код на слайдах

> Чтобы выполнился приведенный ниже блок кода, жмем «Ctrl + e»

```bash
ls -lah --color=always
```
---
Вывод команды «ls» на слайдах

Графические заголовки в ASCII и стилизованные вступления

Инструментами Figlet и Toilet обычный текст превращается в привлекательную ASCII-графику. Дополняем эффектами рамок и фигур из утилиты Boxes:

```bash
~~~только вступление «Title with Figlet»
Так отобразится название презентации.
~~~
```

---

```bash
~~~«Alternative Title with Toilet» только с «intro_toilet»
Так отобразится название презентации.
~~~
```

---
Название с использованием figlet и boxes
Название с использованием toilet и boxes

ASCII-графика

Инструментами PlantUML и graph-easy добавляем в презентации диаграммы и нагляднее объясняем важные концепции.

Вывод диаграммы последовательностей plantuml
~~~https-рукопожатие только диграфом
Здесь отображается графическое представление HTTPS-рукопожатия.
~~~
Простой графовый вывод в терминале

Пользовательская тема

JSON-файлом темы настраивается вид презентации в целом:

  • Цвета, шрифты и внешние отступы для соответствия фирменному оформлению или личным предпочтениям.
  • Примеры тем  —  в репозитории.

Так, этот фрагмент:

- Zsh Line Editor: *`man zshzle`*
- Moreutils (sponge): *”The Power of Moreutils: 8 Advanced Linux Command Line Tools”*
- Pattern Matching: *`man zshexpn`*
- Widget System: *`man zshcontrib`*

отобразится в виде:

Пользовательский рендеринг

Благодаря этим настройкам в theme.json:

"emph": {
"color": "#f1fa8c",
"bold": true,
"italic": false,
"prefix": " <----- ",
"suffix": " "
},

Заключение

Технические презентации в основном посвящены запуску выполнения кода, команд или демонстрации того, как реализуется задача.

Хотя на освоение терминальных презентаций требуется немного времени, преимущества с точки зрения качества презентации и удобства для ее составителя существенны. Особенно оценит возможность увидеть реальное применение концепций техническая аудитория.

Помните, что цель  —  эффективно донести свои идеи, продемонстрировать опыт и знания. Терминальные презентации являются мощным инструментом ее достижения, особенно в технических темах, где важна практическая сторона презентации.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Piotr: Terminal-Based Presentations

Предыдущая статьяРекомендации по Go: выделение памяти с new
Следующая статьяStreamForge: настраиваемый дашборд мониторинга метрик Kafka