Как ИИ помог автоматизировать контент с помощью Pandoc, bash и пары утилит

от автора

Привет, на связи Влада, веб-специалист ЮMoney. Год назад я рассказывала на Хабре, как контент-менеджеру пригодятся терминал, Git и несколько десятков строк кода.

С тех пор многое изменилось. В работе появился ИИ — инструмент, снизивший порог входа в автоматизацию. Не потому, что пишет код вместо нас, а потому, что ускорил создание небольших утилит под наши процессы.

Расскажу, как из одного bash-скрипта вырос набор внутренних инструментов для контент-команды. Идеи пригодятся техническим писателям, контент-менеджерам и всем, кто регулярно работает с Markdown, XML и CMS.

Когда готовое решение перестало работать

Процесс текстовых публикаций стандартен: редактор пишет текст, веб-специалист оформляет с помощью языка разметки, проверяет и публикует на сайт.

Мы долго использовали онлайн-конвертер из DOCX в Markdown. Но зачем зависеть от стороннего сервиса, если конвертация документов — давно решённая задача?

Ответом стал Pandoc — консольный конвертер документов, поддерживающий десятки форматов. Базовая команда:

pandoc article.docx -o article.md

Но сама конвертация оказалась лишь малой частью процесса. После неё приходилось вручную:

  • удалять служебную разметку;

  • исправлять оформление ссылок;

  • прописывать пути к изображениям;

  • заменять двойные дефисы на длинное тире;

  • удалять лишние пустые строки;

  • считать время чтения статьи.

Каждая операция занимала пару минут, но при повторении несколько раз в неделю съедала рабочее время. Стало понятно: автоматизировать нужно весь процесс целиком.

Bash как редакторский инструмент

Вместо поиска очередного сервиса мы собрали собственный пайплайн. Скрипт проходит по всем DOCX-файлам в папке.

for file in *.docx; do  echo "📄 Обработка: $file"  pandoc "$file" \-o "${file%.docx}.md" \--wrap=none \--markdown-headings=atx \-t markdown-simple_tables+hard_line_breaksdone

Можно скачать пятьдесят документов, положить в одну папку и обработать одной командой. Pandoc справляется с преобразованием DOCX в Markdown, но после экспорта остаётся много служебной разметки. Например, конструкции .mark и .underline. Чтобы не удалять их вручную, добавили этап очистки.

perl -i -pe '  s/\[\[\[([^\]]+)\]{\.mark}-([^\]]+)\]{\.underline}\]\(([^)]+)\)/[$1-$2]($3)/g;  s/\[\[([^\]]+)\]{\.(?:mark|underline)}\]/[$1]/g;  s/\[\[([^\]]+)\]{\.underline}\]\(([^)]+)\)/[$1]($2)/g;  s/\[([^\]]+)\]{\.(?:underline|mark)}/$1/g;  s/\{\.mark\}//g;  s/\{\.underline\}//g;' "$file"

Следующая задача — замена абсолютных ссылок на относительные. Вместо ручной правки помогло регулярное выражение:

perl -i -pe 's{(\[[^\]]+\])\(https://yookassa\.ru(/[^)]+)\)}{$1($2)}g' "$file"

Скрипт также исправляет пути к изображениям, удаляет лишние пустые строки, заменяет двойные дефисы на длинное тире и оставляет только нужный фрагмент документа. Заодно автоматизировали расчёт времени чтения:

words=$(wc -w < "$file" | tr -d ' ')minutes=$(( (words + 119) / 120 ))echo -e "\n\n---\nВремя чтения: ~$minutes минут (≈ $words слов)" >> "$file"

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

Самым ценным оказался не Pandoc, а идея собирать повторяющиеся операции в небольшие инструменты. Как только первый доказал пользу, стало ясно — подобных процессов вокруг гораздо больше.

Когда один скрипт перестаёт быть исключением

Всё изменилось, когда первый скрипт начал жить своей жизнью. Его протестировали коллеги, он появился во внутренней Wiki, и постепенно стало нормой: нужно подготовить большую пачку материалов — запускаешь одну команду вместо двадцати повторений. Тогда мы поняли: похожих процессов гораздо больше.

Например, новости и исследования для портала публикуются в XML. Снова рутина: открыть документ, скопировать текст, привести структуру к нужному формату, сделать разметку, проверить. Логика знакомая: если процесс повторяется, его можно описать последовательностью действий и автоматизировать.

Так коллеги из команды написали bash-скрипт для преобразования DOCX в XML. Он использует стандартные инструменты macOS и приводит структуру документа к формату CMS. Веб-специалисту остаётся только разместить код и проверить результат.

Один скрипт редко остаётся одним

Следующий кандидат на автоматизацию — подготовка игровых SKU-витрин. Информацию от поставщиков редко удаётся загрузить без обработки: нужно структурировать описания, оформлять списки, исправлять системные требования, менять формат дат, проверять изображения. Для этого появился небольшой парсер, который автоматически:

  • разбивает описание на абзацы;

  • преобразует списки в маркированные и нумерованные;

  • приводит даты к нужному формату;

  • подставляет изображения и логотипы по наименованию;

  • заменяет сокращения и унифицирует текст;

  • учитывает особенности витрин разного типа.

Все эти инструменты работают по одному принципу: не принимают решений за человека и не публикуют материалы автоматически. Они выполняют только рутинные действия, где участие человека не требуется, а вероятность ошибки высока.

Где здесь ИИ?

Сами скрипты несложные: bash, Pandoc, Perl и регулярные выражения. Но ещё пару лет назад на их написание ушло бы гораздо больше времени. Теперь большинство задач решается в диалоге с ИИ: написать регулярное выражение, разобраться с параметрами Pandoc, доработать скрипт или проверить обработку на нестандартном документе.

Тот же подход помогает кастомизировать блоки Tilda: добавить функциональность на JavaScript или доработать CSS.

ИИ не заменяет разработку — код всё равно нужно придумать, протестировать и адаптировать. Но путь от идеи до рабочего инструмента стал заметно короче.

Что в итоге

Ни один из наших инструментов нельзя назвать сложным: Pandoc, bash-скрипты, регулярные выражения, небольшие парсеры и ИИ-помощник — по отдельности простые решения. Но вместе они изменили работу команды сильнее, чем мы ожидали.

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

Благодаря ИИ создавать инструменты под собственные задачи стало настолько просто, что автоматизация перестала быть прерогативой разработчиков. Даже если вы только начинаете автоматизировать процессы, ИИ-помощники, к примеру, GigaChat помогают быстрее разобраться с документацией, синтаксисом Bash и регулярными выражениями, снижая порог входа в такие задачи.


А вы автоматизировали рутинные задачи с помощью ИИ? Какие инструменты используете? Делитесь в комментариях!

ссылка на оригинал статьи https://habr.com/ru/articles/1060614/