2024-07-31

This commit is contained in:
Gennadiy 2024-07-31 21:11:54 +03:00
parent 25fd0a8d5a
commit ecba06df98
2 changed files with 42 additions and 35 deletions

View file

@ -1,31 +1,32 @@
#!/bin/bash #!/bin/bash
echo "Сборка сайта в двух помидорных темах и оптимизация результатов." echo "Сборка сайта в двух помидорных темах и оптимизация результатов."
currentTimeMillis=$(date '+%s%3N') time_ms="$(date '+%s%3N')"
echo "Удаление каталогов предыдущей сборки."
rm -rf _site rm -rf _site
rm -rf _site_older rm -rf _site_older
rm -rf _site_color rm -rf _site_color
echo "Сборка старого помидора." echo "Сборка сайта в двух помидорных темах."
mkdir -p _site_older function jekyll_build {
cp -r jekyll_site/ru _site_older case "$1" in
cp -r jekyll_site/en _site_older "older") echo "Сборка старого помидора." ;;
cp -r jekyll_site/ru/index.md _site_older "color") echo "Сборка цветного помидора." ;;
cp -r jekyll_site/_config_older.yml _site_older/_config.yml *) return ;; # две помидорные темы оформления
cp -r jekyll_site/Gemfile_older _site_older/Gemfile esac
cd _site_older || exit mkdir -p "_site_$1"
jekyll build --disable-disk-cache cp -r "jekyll_site/ru" "_site_$1"
cp -r _site .. cp -r "jekyll_site/en" "_site_$1"
cd .. cp -r "jekyll_site/ru/index.md" "_site_$1"
echo "Сборка цветного помидора." cp -r "jekyll_site/_config_$1.yml" "_site_$1/_config.yml"
mkdir -p _site_color cp -r "jekyll_site/Gemfile_$1" "_site_$1/Gemfile"
cp -r jekyll_site/ru _site_color cd "_site_$1" || return
cp -r jekyll_site/en _site_color jekyll build --disable-disk-cache --quiet
cp -r jekyll_site/ru/index.md _site_color }
cp -r jekyll_site/_config_color.yml _site_color/_config.yml export -f jekyll_build
cp -r jekyll_site/Gemfile_color _site_color/Gemfile echo "Запуск параллельной сборки сайта в двух помидорных темах."
cd _site_color || exit printf '%s\0' {older,color} | xargs -I{} -n1 -0 -P0 bash -c 'jekyll_build "{}"'
jekyll build --disable-disk-cache echo "Объединение двух сборок."
cp -r _site ../_site/color cp -r _site_older/_site .
cd .. cp -r _site_color/_site ./_site/color
echo "Копирование без сборки." echo "Копирование без сборки."
cp -r jekyll_site/img _site cp -r jekyll_site/img _site
cp -r jekyll_site/robots.txt _site cp -r jekyll_site/robots.txt _site
@ -38,15 +39,21 @@ cp -r color/assets/* .
rm -r color/assets rm -r color/assets
rm -r color/404.html rm -r color/404.html
rm -r color/return.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|<div><div class="highlight">|<div class="highlight">|g' "$1"
sed -i 's|</pre></div></div>|</pre></div>|g' "$1"
sed -i 's|<hr />|<hr>|g' "$1"
sed -i -r 's|<img(.+) />|<img\1>|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 rm -r return.html
find . -type f -name '*.html' | sort -r | while read -r file; do echo "Общее время выполнения: $(("$(date '+%s%3N')" - "$time_ms")) мс."
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/<div><div class="highlight"><pre class="highlight">/<div class="highlight"><pre class="highlight">/g' "$file"
sed -i 's/<\/code><\/pre><\/div><\/div>/<\/code><\/pre><\/div>/g' "$file"
sed -i 's/<hr \/>/<hr>/g' "$file"
sed -i -r 's/<img(.+) \/>/<img\1>/g' "$file"
done
echo "Время выполнения сборки: $(("$(date '+%s%3N')" - "$currentTimeMillis")) мс."

View file

@ -2,4 +2,4 @@
echo "Подготовка архива для последующего развёртывания." echo "Подготовка архива для последующего развёртывания."
cd _site || exit cd _site || exit
rm -rf ../pomodoro2.zip rm -rf ../pomodoro2.zip
7z a ../pomodoro2.zip ./* 7z a ../pomodoro2.zip .