Gulp src - маска на выбираемые элементы
Всем доброго времени суток. Использую сайт на jekyll. Есть одна загвоздка. При создании поста в папке _posts также создаю подпапку _temp, где хранятся не обработанные изображения. После того, как пост готов, нужно вручную копировать необходимые изображения из подпапки _temp в images/cat/:year/:name. Логично, что этот процесс лишний и его надо засунуть в таскер. Я использую Gulp.
Хочется с помощью Gulp выбирать изображения подходящие под маску, например, ("0-9"||"0-9thumb")+".jpg||.png||.mp4||.webp", т.е. имя медиа может быть 1thumb.jpg или 3.mp4, и перемещать их в нужную папку.
Прошу помочь разобраться как лучше сделать, возможно уже есть готовые решения. В документации Gulp.src не нашел фильтров по маске.
Возможно есть готовый инструмент в jekyll ?
Спасибо.
Ответы (1 шт):
Решения в интернете не нашел, посему пришлось думать как это обойти. И идея пришла следующая - объединить Gulp таскер с питоном (python).
Весь скрипт написал на Python, используя библиотеку import os. Туда же засунул обработку изображений, добавление вотермарка и в gulpfile.js добавил новый таск - запуска скрипта из питона. Для этого из npm пакета скачал и установил run (npm i gulp-run) и вызвал скрипт:
gulp.task('copy-images', function(){
return run('python _main.py').exec();
});
Файл _main.py разместил на один уровень с gulpfile.js
Описывать как реализовывал в питоне скрипт фильтрации думаю смысла нет. Библиотекой os реализовал навигацию, с помощью re.match и регулярок взял необходимые файли и с помощью shutil скопировал в нужное место. Если distanation не существовал, то кэчил его и создавал с помощью os.makedirs(..)
done