#!/bin/bash echo "Сборка сайта в двух помидорных темах и оптимизация результатов." time_ms="$(date '+%s%3N')" # удаление каталогов предыдущей сборки, если таковые имеются find . -maxdepth 1 -type d -name "_site*" -exec rm -rf {} \; # сборка сайта в двух помидорных темах function jekyll_build { case "$1" in "older") echo "Сборка старого помидора." ;; "color") echo "Сборка цветного помидора." ;; *) return ;; # две помидорные темы оформления esac mkdir -p "_site_$1" cp -r "jekyll_site/ru" "_site_$1" cp -r "jekyll_site/en" "_site_$1" cp -r "jekyll_site/ru/index.md" "_site_$1" cp -r "jekyll_site/_config_$1.yml" "_site_$1/_config.yml" cp -r "jekyll_site/Gemfile_$1" "_site_$1/Gemfile" cd "_site_$1" || return jekyll build --disable-disk-cache --quiet } export -f jekyll_build # запуск параллельной сборки сайта в двух помидорных темах оформления printf 'jekyll_build "%s"\0' {older,color} | xargs -n1 -0 -P0 bash -c # объединение двух сборок cp -r _site_older/_site . cp -r _site_color/_site ./_site/color # копирование без сборки cp -r jekyll_site/css _site cp -r jekyll_site/img _site cp -r jekyll_site/js _site cp -r jekyll_site/robots.txt _site # оптимизация собранного контента cd _site || exit cp -r assets/* . rm -r assets rm -r color/assets/favicon.ico cp -r color/assets/* . rm -r color/assets rm -r color/404.html rm -r color/return.html # шаблоны для оптимизации ряда тегов expr+=('s|layout-padding=""|layout-padding|g') expr+=('s| class="language-plaintext highlighter-rouge"||g') expr+=('s| class="language-java highlighter-rouge"||g') expr+=('s| class="language-js highlighter-rouge"||g') expr+=('s| class="language-bash highlighter-rouge"||g') expr+=('s|
|
|g') expr+=('s|
|
|g') expr+=('s|
|
|g') expr+=('s|||g') expr+=('s|||g') # запуск параллельной обработки собранных страниц и оптимизация ряда тегов find . -type f -name "*.html" -printf '%p\0' | xargs -I{} -n1 -0 -P0 bash -c \ "echo 'Оптимизация: {}' && sed -i -E $(printf " -e '%s'" "${expr[@]}") '{}'" # переход в корень сайта для каталогов без заглавной страницы find . -type d -exec cp -n return.html {}/index.html \; rm -r return.html echo "Общее время выполнения: $(($(date '+%s%3N') - time_ms)) мс."