From ecba06df98f26a2839d67fb0534d9bcd353d772e Mon Sep 17 00:00:00 2001 From: golovin Date: Wed, 31 Jul 2024 21:11:54 +0300 Subject: [PATCH] 2024-07-31 --- build.sh | 75 +++++++++++++++++++++++++++++------------------------- package.sh | 2 +- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/build.sh b/build.sh index 235cb55..189dda6 100755 --- a/build.sh +++ b/build.sh @@ -1,31 +1,32 @@ #!/bin/bash echo "Сборка сайта в двух помидорных темах и оптимизация результатов." -currentTimeMillis=$(date '+%s%3N') +time_ms="$(date '+%s%3N')" +echo "Удаление каталогов предыдущей сборки." rm -rf _site rm -rf _site_older rm -rf _site_color -echo "Сборка старого помидора." -mkdir -p _site_older -cp -r jekyll_site/ru _site_older -cp -r jekyll_site/en _site_older -cp -r jekyll_site/ru/index.md _site_older -cp -r jekyll_site/_config_older.yml _site_older/_config.yml -cp -r jekyll_site/Gemfile_older _site_older/Gemfile -cd _site_older || exit -jekyll build --disable-disk-cache -cp -r _site .. -cd .. -echo "Сборка цветного помидора." -mkdir -p _site_color -cp -r jekyll_site/ru _site_color -cp -r jekyll_site/en _site_color -cp -r jekyll_site/ru/index.md _site_color -cp -r jekyll_site/_config_color.yml _site_color/_config.yml -cp -r jekyll_site/Gemfile_color _site_color/Gemfile -cd _site_color || exit -jekyll build --disable-disk-cache -cp -r _site ../_site/color -cd .. +echo "Сборка сайта в двух помидорных темах." +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 +echo "Запуск параллельной сборки сайта в двух помидорных темах." +printf '%s\0' {older,color} | xargs -I{} -n1 -0 -P0 bash -c 'jekyll_build "{}"' +echo "Объединение двух сборок." +cp -r _site_older/_site . +cp -r _site_color/_site ./_site/color echo "Копирование без сборки." cp -r jekyll_site/img _site cp -r jekyll_site/robots.txt _site @@ -38,15 +39,21 @@ cp -r color/assets/* . rm -r color/assets rm -r color/404.html rm -r color/return.html -find . -type d -print0 | xargs -I{} -0 -n 1 cp -n return.html {}/index.html +echo "Оптимизация ряда тегов." +function optimize_html { + echo "Оптимизация: $1" + sed -i 's|layout-padding=""|layout-padding|g' "$1" + sed -i 's| class="language-plaintext highlighter-rouge"||g' "$1" + sed -i 's| class="language-java highlighter-rouge"||g' "$1" + sed -i 's|
|
|g' "$1" + sed -i 's|
|
|g' "$1" + sed -i 's|
|
|g' "$1" + sed -i -r 's|||g' "$1" +} +export -f optimize_html +echo "Запуск параллельной обработки собранных страниц и оптимизации ряда тегов." +find . -type f -name "*.html" -print0 | xargs -I{} -n1 -0 -P0 bash -c 'optimize_html "{}"' +echo "Страница перехода в корень сайта для каталогов без заглавной страницы." +find . -type d -print0 | xargs -I{} -n1 -0 -P0 cp -n return.html {}/index.html rm -r return.html -find . -type f -name '*.html' | sort -r | while read -r file; do - sed -i 's/layout-padding=""/layout-padding/g' "$file" - sed -i 's/ class="language-plaintext highlighter-rouge"//g' "$file" - sed -i 's/ class="language-java highlighter-rouge"//g' "$file" - sed -i 's/
/
/g' "$file"
-  sed -i 's/<\/code><\/pre><\/div><\/div>/<\/code><\/pre><\/div>/g' "$file"
-  sed -i 's/
/
/g' "$file" - sed -i -r 's///g' "$file" -done -echo "Время выполнения сборки: $(("$(date '+%s%3N')" - "$currentTimeMillis")) мс." +echo "Общее время выполнения: $(("$(date '+%s%3N')" - "$time_ms")) мс." diff --git a/package.sh b/package.sh index f03a493..674c9da 100755 --- a/package.sh +++ b/package.sh @@ -2,4 +2,4 @@ echo "Подготовка архива для последующего развёртывания." cd _site || exit rm -rf ../pomodoro2.zip -7z a ../pomodoro2.zip ./* +7z a ../pomodoro2.zip .