2025-03-31

This commit is contained in:
Gennadiy 2025-03-31 19:57:16 +03:00
parent 141de24849
commit 3d39f7b6a2
4 changed files with 53 additions and 46 deletions

1
.gitignore vendored
View file

@ -1,5 +1,6 @@
.idea
*.iml
*.zip
_profile
_site*
.repo_*

View file

@ -1,47 +1,47 @@
## Дерево каталогов
<pre>
<a href='.'>.</a>
├─ <a href='jekyll_site'>jekyll_site</a>
│ ├─ <a href='jekyll_site/css'>css</a>/<a href='jekyll_site/css/pomodoro5.css'>pomodoro5.css</a>
│ ├─ <a href='jekyll_site/en'>en</a>
│ │ ├─ <a href='jekyll_site/en/2023'>2023</a>
│ │ │ ├─ <a href='jekyll_site/en/2023/01'>01</a>/<a href='jekyll_site/en/2023/01/04'>04</a>/<a href='jekyll_site/en/2023/01/04/drawing-simple-captcha.md'>drawing-simple-captcha.md</a>
│ │ │ ├─ <a href='jekyll_site/en/2023/02'>02</a>/<a href='jekyll_site/en/2023/02/06'>06</a>/<a href='jekyll_site/en/2023/02/06/function-graph-in-console.md'>function-graph-in-console.md</a>
│ │ │ ├─ <a href='jekyll_site/en/2023/03'>03</a>/<a href='jekyll_site/en/2023/03/08'>08</a>/<a href='jekyll_site/en/2023/03/08/drawing-heart-in-console.md'>drawing-heart-in-console.md</a>
│ │ │ ├─ <a href='jekyll_site/en/2023/06'>06</a>/<a href='jekyll_site/en/2023/06/20'>20</a>/<a href='jekyll_site/en/2023/06/20/password-generator.md'>password-generator.md</a>
│ │ │ └─ <a href='jekyll_site/en/2023/08'>08</a>/<a href='jekyll_site/en/2023/08/04'>04</a>/<a href='jekyll_site/en/2023/08/04/directory-tree.md'>directory-tree.md</a>
│ │ └─ <a href='jekyll_site/en/index.md'>index.md</a>
│ ├─ <a href='jekyll_site/img'>img</a>
│ │ ├─ <a href='jekyll_site/img/captcha.png'>captcha.png</a>
│ │ ├─ <a href='jekyll_site/img/circumference-equation.svg'>circumference-equation.svg</a>
│ │ ├─ <a href='jekyll_site/img/heart-graph.png'>heart-graph.png</a>
│ │ ├─ <a href='jekyll_site/img/heart-monospaced-plain-22.bmp'>heart-monospaced-plain-22.bmp</a>
│ │ ├─ <a href='jekyll_site/img/rhombus-equation.svg'>rhombus-equation.svg</a>
│ │ └─ <a href='jekyll_site/img/square-equations.svg'>square-equations.svg</a>
│ ├─ <a href='jekyll_site/js'>js</a>/<a href='jekyll_site/js/password-generator.js'>password-generator.js</a>
│ ├─ <a href='jekyll_site/ru'>ru</a>
│ │ ├─ <a href='jekyll_site/ru/2023'>2023</a>
│ │ │ ├─ <a href='jekyll_site/ru/2023/01'>01</a>/<a href='jekyll_site/ru/2023/01/03'>03</a>/<a href='jekyll_site/ru/2023/01/03/drawing-simple-captcha.md'>drawing-simple-captcha.md</a>
│ │ │ ├─ <a href='jekyll_site/ru/2023/02'>02</a>/<a href='jekyll_site/ru/2023/02/05'>05</a>/<a href='jekyll_site/ru/2023/02/05/function-graph-in-console.md'>function-graph-in-console.md</a>
│ │ │ ├─ <a href='jekyll_site/ru/2023/03'>03</a>/<a href='jekyll_site/ru/2023/03/08'>08</a>/<a href='jekyll_site/ru/2023/03/08/drawing-heart-in-console.md'>drawing-heart-in-console.md</a>
│ │ │ ├─ <a href='jekyll_site/ru/2023/06'>06</a>/<a href='jekyll_site/ru/2023/06/19'>19</a>/<a href='jekyll_site/ru/2023/06/19/password-generator.md'>password-generator.md</a>
│ │ │ └─ <a href='jekyll_site/ru/2023/08'>08</a>/<a href='jekyll_site/ru/2023/08/03'>03</a>/<a href='jekyll_site/ru/2023/08/03/directory-tree.md'>directory-tree.md</a>
│ │ └─ <a href='jekyll_site/ru/index.md'>index.md</a>
│ ├─ <a href='jekyll_site/Gemfile_color'>Gemfile_color</a>
│ ├─ <a href='jekyll_site/Gemfile_older'>Gemfile_older</a>
│ ├─ <a href='jekyll_site/_config_color.yml'>_config_color.yml</a>
│ ├─ <a href='jekyll_site/_config_older.yml'>_config_older.yml</a>
│ └─ <a href='jekyll_site/robots.txt'>robots.txt</a>
├─ <a href='.gitattributes'>.gitattributes</a>
├─ <a href='.gitignore'>.gitignore</a>
├─ <a href='CONTRIBUTING.md'>CONTRIBUTING.md</a>
├─ <a href='DIRECTORY_TREE.md'>DIRECTORY_TREE.md</a>
├─ <a href='LICENSE.md'>LICENSE.md</a>
├─ <a href='OPEN_LICENSE.txt'>OPEN_LICENSE.txt</a>
├─ <a href='README.md'>README.md</a>
├─ <a href='WIKI.md'>WIKI.md</a>
├─ <a href='build.sh'>build.sh</a>
├─ <a href='package.sh'>package.sh</a>
└─ <a href='serve.sh'>serve.sh</a>
<a href=".">.</a>
├─ <a href="jekyll_site">jekyll_site</a>
│ ├─ <a href="jekyll_site/css">css</a>/<a href="jekyll_site/css/pomodoro5.css">pomodoro5.css</a><small>&nbsp;88</small>
│ ├─ <a href="jekyll_site/en">en</a>
│ │ ├─ <a href="jekyll_site/en/2023">2023</a>
│ │ │ ├─ <a href="jekyll_site/en/2023/01">01</a>/<a href="jekyll_site/en/2023/01/04">04</a>/<a href="jekyll_site/en/2023/01/04/drawing-simple-captcha.md">drawing-simple-captcha.md</a><small>&nbsp;10K</small>
│ │ │ ├─ <a href="jekyll_site/en/2023/02">02</a>/<a href="jekyll_site/en/2023/02/06">06</a>/<a href="jekyll_site/en/2023/02/06/function-graph-in-console.md">function-graph-in-console.md</a><small>&nbsp;6,3K</small>
│ │ │ ├─ <a href="jekyll_site/en/2023/03">03</a>/<a href="jekyll_site/en/2023/03/08">08</a>/<a href="jekyll_site/en/2023/03/08/drawing-heart-in-console.md">drawing-heart-in-console.md</a><small>&nbsp;12K</small>
│ │ │ ├─ <a href="jekyll_site/en/2023/06">06</a>/<a href="jekyll_site/en/2023/06/20">20</a>/<a href="jekyll_site/en/2023/06/20/password-generator.md">password-generator.md</a><small>&nbsp;3,8K</small>
│ │ │ └─ <a href="jekyll_site/en/2023/08">08</a>/<a href="jekyll_site/en/2023/08/04">04</a>/<a href="jekyll_site/en/2023/08/04/directory-tree.md">directory-tree.md</a><small>&nbsp;3,1K</small>
│ │ └─ <a href="jekyll_site/en/index.md">index.md</a><small>&nbsp;4,1K</small>
│ ├─ <a href="jekyll_site/img">img</a>
│ │ ├─ <a href="jekyll_site/img/captcha.png">captcha.png</a><small>&nbsp;6,6K</small>
│ │ ├─ <a href="jekyll_site/img/circumference-equation.svg">circumference-equation.svg</a><small>&nbsp;11K</small>
│ │ ├─ <a href="jekyll_site/img/heart-graph.png">heart-graph.png</a><small>&nbsp;22K</small>
│ │ ├─ <a href="jekyll_site/img/heart-monospaced-plain-22.bmp">heart-monospaced-plain-22.bmp</a><small>&nbsp;170</small>
│ │ ├─ <a href="jekyll_site/img/rhombus-equation.svg">rhombus-equation.svg</a><small>&nbsp;9,2K</small>
│ │ └─ <a href="jekyll_site/img/square-equations.svg">square-equations.svg</a><small>&nbsp;18K</small>
│ ├─ <a href="jekyll_site/js">js</a>/<a href="jekyll_site/js/password-generator.js">password-generator.js</a><small>&nbsp;1,4K</small>
│ ├─ <a href="jekyll_site/ru">ru</a>
│ │ ├─ <a href="jekyll_site/ru/2023">2023</a>
│ │ │ ├─ <a href="jekyll_site/ru/2023/01">01</a>/<a href="jekyll_site/ru/2023/01/03">03</a>/<a href="jekyll_site/ru/2023/01/03/drawing-simple-captcha.md">drawing-simple-captcha.md</a><small>&nbsp;15K</small>
│ │ │ ├─ <a href="jekyll_site/ru/2023/02">02</a>/<a href="jekyll_site/ru/2023/02/05">05</a>/<a href="jekyll_site/ru/2023/02/05/function-graph-in-console.md">function-graph-in-console.md</a><small>&nbsp;8,1K</small>
│ │ │ ├─ <a href="jekyll_site/ru/2023/03">03</a>/<a href="jekyll_site/ru/2023/03/08">08</a>/<a href="jekyll_site/ru/2023/03/08/drawing-heart-in-console.md">drawing-heart-in-console.md</a><small>&nbsp;15K</small>
│ │ │ ├─ <a href="jekyll_site/ru/2023/06">06</a>/<a href="jekyll_site/ru/2023/06/19">19</a>/<a href="jekyll_site/ru/2023/06/19/password-generator.md">password-generator.md</a><small>&nbsp;4,8K</small>
│ │ │ └─ <a href="jekyll_site/ru/2023/08">08</a>/<a href="jekyll_site/ru/2023/08/03">03</a>/<a href="jekyll_site/ru/2023/08/03/directory-tree.md">directory-tree.md</a><small>&nbsp;4,3K</small>
│ │ └─ <a href="jekyll_site/ru/index.md">index.md</a><small>&nbsp;6,0K</small>
│ ├─ <a href="jekyll_site/Gemfile_color">Gemfile_color</a><small>&nbsp;68</small>
│ ├─ <a href="jekyll_site/Gemfile_older">Gemfile_older</a><small>&nbsp;68</small>
│ ├─ <a href="jekyll_site/_config_color.yml">_config_color.yml</a><small>&nbsp;1,5K</small>
│ ├─ <a href="jekyll_site/_config_older.yml">_config_older.yml</a><small>&nbsp;1,5K</small>
│ └─ <a href="jekyll_site/robots.txt">robots.txt</a><small>&nbsp;178</small>
├─ <a href=".gitattributes">.gitattributes</a><small>&nbsp;508</small>
├─ <a href=".gitignore">.gitignore</a><small>&nbsp;42</small>
├─ <a href="CONTRIBUTING.md">CONTRIBUTING.md</a><small>&nbsp;557</small>
├─ <a href="DIRECTORY_TREE.md">DIRECTORY_TREE.md</a><small>&nbsp;4,8K</small>
├─ <a href="LICENSE.md">LICENSE.md</a><small>&nbsp;955</small>
├─ <a href="OPEN_LICENSE.txt">OPEN_LICENSE.txt</a><small>&nbsp;25K</small>
├─ <a href="README.md">README.md</a><small>&nbsp;275</small>
├─ <a href="WIKI.md">WIKI.md</a><small>&nbsp;1,3K</small>
├─ <a href="build.sh">build.sh</a><small>&nbsp;2,8K</small>
├─ <a href="package.sh">package.sh</a><small>&nbsp;189</small>
└─ <a href="serve.sh">serve.sh</a><small>&nbsp;267</small>
</pre>

View file

@ -44,7 +44,10 @@ function directory_tree {
# prefix of current element, collapse singletons into one line
[ "$4" == "one" ] && printf '%s' "/" || printf '\n%s' "$head"
# current element of the tree — relative hyperlink
printf '%s' "<a href='${path#*/}'>${path##*/}</a>"
printf '<a href="%s">%s</a>' "${path#*/}" "${path##*/}"
# suffix of current element — file size in smaller font
[ -f "$path" ] && printf '<small>&nbsp;%s</small>' \
"$(stat -c %s "$path" | numfmt --to=iec --round=nearest)"
# recursive calls for subdirectories
if [ -d "$path" ]; then
local i # counter

View file

@ -43,7 +43,10 @@ function directory_tree {
# префикс текущего элемента, сворачивать синглтоны в одну строку
[ "$4" == "one" ] && printf '%s' "/" || printf '\n%s' "$head"
# текущий элемент дерева — относительная гиперссылка
printf '%s' "<a href='${path#*/}'>${path##*/}</a>"
printf '<a href="%s">%s</a>' "${path#*/}" "${path##*/}"
# суффикс текущего элемента — размер файла меньшим шрифтом
[ -f "$path" ] && printf '<small>&nbsp;%s</small>' \
"$(stat -c %s "$path" | numfmt --to=iec --round=nearest)"
# рекурсивные вызовы для подкаталогов
if [ -d "$path" ]; then
local i # счётчик
@ -60,7 +63,7 @@ function directory_tree {
}
# строка исключений для "ls" из списка неотслеживаемых файлов ".gitignore"
exclusions="-I'.git' $(sed -E "s|^(.*)$|-I'\1'|" .gitignore | tr '\n' ' ')"
# помещаем дерево в контейнер, добавляем заголовок и выводим в файл
# поместить дерево в контейнер, добавить заголовок и вывести в файл
printf '%s\n' "## Дерево каталогов" "" "<pre>" \
"$(directory_tree . | grep '\S')" "</pre>" >DIRECTORY_TREE.md
```