- BrainTools - https://www.braintools.ru -

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

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

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

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

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

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

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

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

pandoc article.docx -o article.md [2]

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

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

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

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

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

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

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

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

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_breaks
done

Можно скачать пятьдесят документов, положить в одну папку и обработать одной командой. 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 "nn---nВремя чтения: ~$minutes минут (≈ $words слов)" >> "$file"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Где здесь ИИ?

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

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

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

Что в итоге

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

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

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


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

Автор: zusmanzus

Источник [6]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/33234

URLs in this post:

[1] рассказывала на Хабре: https://habr.com/ru/companies/yoomoney/articles/881500/

[2] article.md: http://article.md

[3] повторении: http://www.braintools.ru/article/4012

[4] Логика: http://www.braintools.ru/article/7640

[5] ошибки: http://www.braintools.ru/article/4192

[6] Источник: https://habr.com/ru/companies/yoomoney/articles/1060614/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1060614

www.BrainTools.ru

Rambler's Top100