From 1dec4af1c6b3121da64dbc55d92a668317872f22 Mon Sep 17 00:00:00 2001 From: golovin Date: Wed, 31 Jul 2024 21:14:39 +0300 Subject: [PATCH] 2024-07-31 --- README.en.md | 42 ++++++++++++++++++++++++------------------ README.md | 38 ++++++++++++++++++++++---------------- 2 files changed, 46 insertions(+), 34 deletions(-) diff --git a/README.en.md b/README.en.md index 80e3fed..0493659 100644 --- a/README.en.md +++ b/README.en.md @@ -38,30 +38,36 @@ sudo gem install --local older-tomato-theme-1.0.1.gem The site can be built using the `jekyll build` command. After that, we get the `_site` folder with the generated pages and the `assets` subfolder from the theme. We move the contents of this subfolder back -to the `_site` folder — we get shorter links, that are used in the theme. Additionally, we copy from theme -the redirection file to the root of the site for all subdirectories, if they don't contain the `index.html` -file. After that we bypass HTML pages and optimize a number of tags also for shortness and for correctness. -The script is intended for this purpose. +to the `_site` folder — we get shorter links, that are used in the theme. After that we bypass HTML pages +and optimize a number of tags also for shortness and for correctness. Additionally, we copy from theme the +redirection file to the root of the site for all subdirectories, if they don't contain the `index.html` +file. The script is intended for this purpose. ```shell -echo "Optimization of gathered content." +echo "Optimizing gathered content." cd _site || exit cp -r assets/* . rm -r assets -find . -type d -print0 | xargs -I{} -0 -n 1 cp -n return.html {}/index.html +echo "Optimizing a number of tags." +function optimize_html { + echo "Optimize: $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-html 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|
|
|g' "$1" + sed -i 's|
|
|g' "$1" + sed -i 's|
|
|g' "$1" + sed -i -r 's|||g' "$1" + sed -i -r 's|||g' "$1" +} +export -f optimize_html +echo "Launching parallel processing of gathered pages and optimizing a number of tags." +find . -type f -name "*.html" -print0 | xargs -I{} -n1 -0 -P0 bash -c 'optimize_html "{}"' +echo "Transition page to the root of the site for directories without a main page." +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/ class="language-plaintext highlighter-rouge"//g' "$file" - sed -i 's/ class="language-java highlighter-rouge"//g' "$file" - sed -i 's/ class="language-html 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/
/
/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" - sed -i -r 's///g' "$file" -done ``` ### Directory structure diff --git a/README.md b/README.md index 4c878af..18dfd24 100644 --- a/README.md +++ b/README.md @@ -38,29 +38,35 @@ sudo gem install --local older-tomato-theme-1.0.1.gem Сборка сайта выполняется командой `jekyll build`. После этого мы получаем папку `_site` с собранными страницами и подпапку `assets` из темы. Перемещаем содержимое этой подпапки обратно в папку `_site` — -получаем короткие ссылки, которые используются в теме. Дополнительно копируем из темы файл перенаправления в -корень сайта для всех подкаталогов, если в них отсутствует файл `index.html`. После этого обходим страницы -HTML и оптимизируем ряд тегов также для краткости и для корректности. Скрипт предназначен для этой цели. +получаем короткие ссылки, которые используются в теме. После этого обходим страницы HTML и оптимизируем ряд +тегов также для краткости и для корректности. Дополнительно копируем из темы файл перенаправления в корень +сайта для всех подкаталогов, если в них отсутствует файл `index.html`. Скрипт предназначен для этой цели. ```shell echo "Оптимизация собранного контента." cd _site || exit cp -r assets/* . rm -r assets -find . -type d -print0 | xargs -I{} -0 -n 1 cp -n return.html {}/index.html +echo "Оптимизация ряда тегов." +function optimize_html { + echo "Оптимизация: $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-html 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|
|
|g' "$1" + sed -i 's|
|
|g' "$1" + sed -i 's|
|
|g' "$1" + sed -i -r '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/ class="language-plaintext highlighter-rouge"//g' "$file" - sed -i 's/ class="language-java highlighter-rouge"//g' "$file" - sed -i 's/ class="language-html 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/
/
/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" - sed -i -r 's///g' "$file" -done ``` ### Структура каталогов