Автоматизація документів

Каталог медобладнання як код — Markdown у PDF

📅2026
1 тиждень
👥1 розробник
31-uzd-a650.md1---2title: УЗД-система A6503brand: MedTech4category: ultrasound5photo: a650.jpg6specs:7 - Монітор 21.5" LCD8 - 4 порти датчиків9 - Елегантна панель10---11Опис системи для12експертної діагностики…$ npm run build✓ 78 products → 52 pages PDF (48s)УЗД-СИСТЕМИРозділ 05 · стор. 31УЗД-система A650MedTech— 31 —1 позиція = 1 Markdown-файл
78
позицій у каталозі
52
сторінки A4
1
команда збірки

Задача

У дистриб'ютора медичного обладнання каталог жив як дизайнерський PDF: кожна нова позиція чи правка ціни — через верстальника, довго й дорого. Асортимент активно росте з брошур виробників, і каталог хронічно відставав від реального прайсу.

Що реалізовано

Каталог перетворено на «джерело правди» в коді: кожна позиція — Markdown-файл з YAML-шапкою, розділи — YAML-конфіг, дизайн — HTML/CSS-шаблон, а Chromium друкує з цього фінальний PDF. Додавання позиції звелося до «файл + фото → одна команда збірки».

1

Одна позиція = один Markdown-файл з YAML-шапкою (характеристики, бренд, ціна); розділи з акцентними кольорами описані в categories.yml.

2

HTML→PDF через Playwright/Chromium: точна типографіка, A4 landscape, автоматичні зміст, колонтитули й нумерація сторінок.

3

Витяг контенту зі старого PDF і брошур виробників скриптами на PyMuPDF

тексти й фото діставались автоматично, без ручного передруку.

4

Фото-пайплайн: продуктові фото на чорному фоні автоматично конвертуються в білий фон flood-fill алгоритмом від країв (numpy BFS).

5

Авто-галерея: додаткові фото підхоплюються за суфіксами імені файлу, замалі зображення відсіюються автоматично.

6

Дві палітри шаблону

яскрава v1 і стримана v2; логотипи брендів підставляються з мапи автоматично.

7

Воркфлоу поповнення: сирі PDF/DOCX/фото складаються в _inbox, розбираються в картки

і каталог перезбирається однією командою.

Результат

Каталог виріс з 41 до 78 позицій у 13 розділах — без жодної години верстальника. Нова позиція тепер — це Markdown-файл і фото; повний 52-сторінковий PDF перезбирається однією командою за хвилину і завжди відповідає актуальному асортименту.

Технології

Node.jsNunjucksPlaywright (Chromium)PythonPyMuPDFnumpy

Маєте схожу задачу?

Обговорити проєкт

Наступний кейс

Розробка системи

TMS-платформа для вантажної компанії