2024-07-31
This commit is contained in:
parent
b75f7ae9fe
commit
d3c319c876
4 changed files with 47 additions and 39 deletions
80
build.sh
80
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/css _site
|
||||
cp -r jekyll_site/img _site
|
||||
|
@ -40,17 +41,24 @@ 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| class="language-js highlighter-rouge"||g' "$1"
|
||||
sed -i 's| class="language-bash 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|<input(.+) />|<input\1>|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
|
||||
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/ class="language-js highlighter-rouge"//g' "$file"
|
||||
sed -i 's/ class="language-bash 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")) мс."
|
||||
echo "Общее время выполнения: $(("$(date '+%s%3N')" - "$time_ms")) мс."
|
||||
|
|
|
@ -62,7 +62,7 @@ function directory_tree {
|
|||
done
|
||||
fi
|
||||
}
|
||||
# line of exclusions for 'ls' from '.gitignore' list — the untracked files
|
||||
# line of exclusions for "ls" from ".gitignore" list — the untracked files
|
||||
exclusions="-I \".git\" $(sed 's/^/ -I "/;s/$/"/' .gitignore | tr -d '\n')"
|
||||
# put the tree in a container, add a title and output to a file
|
||||
{
|
||||
|
|
|
@ -61,7 +61,7 @@ function directory_tree {
|
|||
done
|
||||
fi
|
||||
}
|
||||
# строка исключений для 'ls' из списка '.gitignore' — неотслеживаемые файлы
|
||||
# строка исключений для "ls" из списка ".gitignore" — неотслеживаемые файлы
|
||||
exclusions="-I \".git\" $(sed 's/^/ -I "/;s/$/"/' .gitignore | tr -d '\n')"
|
||||
# помещаем дерево в контейнер, добавляем заголовок и выводим в файл
|
||||
{
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
echo "Подготовка архива для последующего развёртывания."
|
||||
cd _site || exit
|
||||
rm -rf ../pomodoro5.zip
|
||||
7z a ../pomodoro5.zip ./*
|
||||
7z a ../pomodoro5.zip .
|
||||
|
|
Loading…
Add table
Reference in a new issue