diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 8bfb1f6..079a30f 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -7,7 +7,8 @@ name: deploy-preland # Заливаются файлы репозитория (git ls-files), кроме служебных (.gitea/, README.md, AGENTS.md, CLAUDE.md, .gitignore) и тех, что живут # только на хостинге: requisites.html (реквизиты заполняют на месте — пустой файл из git их бы затёр). # Рабочий config.json единственный и версионируется: он должен попадать в каждую доставку. -# На хостинге ничего не удаляется: удалённое из репозитория убирать вручную. +# Единственное контролируемое удаление — завершённая миграция legacy images/demo* после +# smoke новых корневых наборов /1, /2. Прочие файлы на хостинге не удаляются. on: push: @@ -146,10 +147,34 @@ jobs: echo "$api" case "$api" in *'zoomzilla.ru\/api\/images\/public\/create'*) ;; *) echo "на странице нет адреса загрузки Zoomzilla"; exit 1 ;; esac printf '%s' "$page" | grep -q 'claim?key=' || { echo "переход не на claim"; exit 1; } - curl -fsS --max-time 30 "$PRELAND_URL/images/demo/1/source.avif" -o /dev/null || { echo "не опубликован первый набор примеров"; exit 1; } - curl -fsS --max-time 30 "$PRELAND_URL/images/demo-2/1/source.avif" -o /dev/null || { echo "не опубликован второй набор примеров"; exit 1; } + curl -fsS --max-time 30 "$PRELAND_URL/1/01_desk_1-source.avif" -o /dev/null || { echo "не опубликован первый набор примеров"; exit 1; } + curl -fsS --max-time 30 "$PRELAND_URL/2/01_desk_1-source.avif" -o /dev/null || { echo "не опубликован второй набор примеров"; exit 1; } page2=$(curl -fsS --max-time 30 "$PRELAND_URL/?indpic=2&nc=$(date +%s)") - printf '%s' "$page2" | grep -q 'images/demo-2/1/source_mob.avif' || { echo "indpic=2 не использует второй набор примеров"; exit 1; } + printf '%s' "$page2" | grep -q '2/01_mob_1-source.avif' || { echo "indpic=2 не использует второй набор примеров"; exit 1; } + + - name: Remove obsolete demo directories + env: + SFTP_HOST: ${{ secrets.ZOOMPIXEL_SFTP_HOST }} + SFTP_USER: ${{ secrets.ZOOMPIXEL_SFTP_USER }} + SFTP_PASS: ${{ secrets.ZOOMPIXEL_SFTP_PASS }} + SFTP_KNOWN_HOSTS: ${{ secrets.ZOOMPIXEL_SFTP_KNOWN_HOSTS }} + run: | + set -eu + umask 077 + known_hosts=$(mktemp) + batch=$(mktemp) + trap 'rm -f "$known_hosts" "$batch"' EXIT + printf '%s\n' "$SFTP_KNOWN_HOSTS" > "$known_hosts" + for set in demo demo-2; do + for example in 1 2 3 4 5; do + for file in source.avif source.jpg source.webp result.avif result.jpg result.webp thumb.avif thumb.jpg thumb.webp source_mob.avif result_mob.avif thumb_mob.avif; do + printf '%s\n' "-rm $REMOTE_DIR/images/$set/$example/$file" >> "$batch" + done + printf '%s\n' "-rmdir $REMOTE_DIR/images/$set/$example" >> "$batch" + done + printf '%s\n' "-rmdir $REMOTE_DIR/images/$set" >> "$batch" + done + SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" "$SFTP_USER@$SFTP_HOST" < "$batch" deploy-zoompixel-production: name: deploy ${{ matrix.name }} diff --git a/images/demo-2/1/source.avif b/1/01_desk_1-source.avif similarity index 100% rename from images/demo-2/1/source.avif rename to 1/01_desk_1-source.avif diff --git a/images/demo-2/1/source.jpg b/1/01_desk_1-source.jpg similarity index 100% rename from images/demo-2/1/source.jpg rename to 1/01_desk_1-source.jpg diff --git a/images/demo-2/1/source.webp b/1/01_desk_1-source.webp similarity index 100% rename from images/demo-2/1/source.webp rename to 1/01_desk_1-source.webp diff --git a/images/demo-2/1/result.avif b/1/01_desk_2-result.avif similarity index 100% rename from images/demo-2/1/result.avif rename to 1/01_desk_2-result.avif diff --git a/images/demo-2/1/result.jpg b/1/01_desk_2-result.jpg similarity index 100% rename from images/demo-2/1/result.jpg rename to 1/01_desk_2-result.jpg diff --git a/images/demo-2/1/result.webp b/1/01_desk_2-result.webp similarity index 100% rename from images/demo-2/1/result.webp rename to 1/01_desk_2-result.webp diff --git a/images/demo-2/1/thumb.avif b/1/01_desk_3-thumb.avif similarity index 100% rename from images/demo-2/1/thumb.avif rename to 1/01_desk_3-thumb.avif diff --git a/images/demo-2/1/thumb.jpg b/1/01_desk_3-thumb.jpg similarity index 100% rename from images/demo-2/1/thumb.jpg rename to 1/01_desk_3-thumb.jpg diff --git a/images/demo-2/1/thumb.webp b/1/01_desk_3-thumb.webp similarity index 100% rename from images/demo-2/1/thumb.webp rename to 1/01_desk_3-thumb.webp diff --git a/images/demo/1/source_mob.avif b/1/01_mob_1-source.avif similarity index 100% rename from images/demo/1/source_mob.avif rename to 1/01_mob_1-source.avif diff --git a/1/01_mob_1-source.jpg b/1/01_mob_1-source.jpg new file mode 100644 index 0000000..116c6d1 Binary files /dev/null and b/1/01_mob_1-source.jpg differ diff --git a/1/01_mob_1-source.webp b/1/01_mob_1-source.webp new file mode 100644 index 0000000..5fc75e4 Binary files /dev/null and b/1/01_mob_1-source.webp differ diff --git a/images/demo/1/result_mob.avif b/1/01_mob_2-result.avif similarity index 100% rename from images/demo/1/result_mob.avif rename to 1/01_mob_2-result.avif diff --git a/1/01_mob_2-result.jpg b/1/01_mob_2-result.jpg new file mode 100644 index 0000000..8967dea Binary files /dev/null and b/1/01_mob_2-result.jpg differ diff --git a/1/01_mob_2-result.webp b/1/01_mob_2-result.webp new file mode 100644 index 0000000..d5f5693 Binary files /dev/null and b/1/01_mob_2-result.webp differ diff --git a/images/demo/1/thumb_mob.avif b/1/01_mob_3-thumb.avif similarity index 100% rename from images/demo/1/thumb_mob.avif rename to 1/01_mob_3-thumb.avif diff --git a/1/01_mob_3-thumb.jpg b/1/01_mob_3-thumb.jpg new file mode 100644 index 0000000..fa2bb0f Binary files /dev/null and b/1/01_mob_3-thumb.jpg differ diff --git a/1/01_mob_3-thumb.webp b/1/01_mob_3-thumb.webp new file mode 100644 index 0000000..5868359 Binary files /dev/null and b/1/01_mob_3-thumb.webp differ diff --git a/images/demo-2/3/source.avif b/1/02_desk_1-source.avif similarity index 100% rename from images/demo-2/3/source.avif rename to 1/02_desk_1-source.avif diff --git a/images/demo-2/3/source.jpg b/1/02_desk_1-source.jpg similarity index 100% rename from images/demo-2/3/source.jpg rename to 1/02_desk_1-source.jpg diff --git a/images/demo-2/3/source.webp b/1/02_desk_1-source.webp similarity index 100% rename from images/demo-2/3/source.webp rename to 1/02_desk_1-source.webp diff --git a/1/02_desk_2-result.avif b/1/02_desk_2-result.avif new file mode 100644 index 0000000..4585b89 Binary files /dev/null and b/1/02_desk_2-result.avif differ diff --git a/1/02_desk_2-result.jpg b/1/02_desk_2-result.jpg new file mode 100644 index 0000000..5876e8e Binary files /dev/null and b/1/02_desk_2-result.jpg differ diff --git a/1/02_desk_2-result.webp b/1/02_desk_2-result.webp new file mode 100644 index 0000000..77cf42c Binary files /dev/null and b/1/02_desk_2-result.webp differ diff --git a/images/demo-2/3/thumb.avif b/1/02_desk_3-thumb.avif similarity index 100% rename from images/demo-2/3/thumb.avif rename to 1/02_desk_3-thumb.avif diff --git a/images/demo-2/3/thumb.jpg b/1/02_desk_3-thumb.jpg similarity index 100% rename from images/demo-2/3/thumb.jpg rename to 1/02_desk_3-thumb.jpg diff --git a/images/demo-2/3/thumb.webp b/1/02_desk_3-thumb.webp similarity index 100% rename from images/demo-2/3/thumb.webp rename to 1/02_desk_3-thumb.webp diff --git a/images/demo-2/3/source_mob.avif b/1/02_mob_1-source.avif similarity index 100% rename from images/demo-2/3/source_mob.avif rename to 1/02_mob_1-source.avif diff --git a/1/02_mob_1-source.jpg b/1/02_mob_1-source.jpg new file mode 100644 index 0000000..bc7b973 Binary files /dev/null and b/1/02_mob_1-source.jpg differ diff --git a/1/02_mob_1-source.webp b/1/02_mob_1-source.webp new file mode 100644 index 0000000..9bcc457 Binary files /dev/null and b/1/02_mob_1-source.webp differ diff --git a/images/demo-2/3/result_mob.avif b/1/02_mob_2-result.avif similarity index 100% rename from images/demo-2/3/result_mob.avif rename to 1/02_mob_2-result.avif diff --git a/1/02_mob_2-result.jpg b/1/02_mob_2-result.jpg new file mode 100644 index 0000000..87c6b21 Binary files /dev/null and b/1/02_mob_2-result.jpg differ diff --git a/1/02_mob_2-result.webp b/1/02_mob_2-result.webp new file mode 100644 index 0000000..c058a7f Binary files /dev/null and b/1/02_mob_2-result.webp differ diff --git a/images/demo/2/thumb_mob.avif b/1/02_mob_3-thumb.avif similarity index 100% rename from images/demo/2/thumb_mob.avif rename to 1/02_mob_3-thumb.avif diff --git a/1/02_mob_3-thumb.jpg b/1/02_mob_3-thumb.jpg new file mode 100644 index 0000000..aca0d35 Binary files /dev/null and b/1/02_mob_3-thumb.jpg differ diff --git a/1/02_mob_3-thumb.webp b/1/02_mob_3-thumb.webp new file mode 100644 index 0000000..61a725e Binary files /dev/null and b/1/02_mob_3-thumb.webp differ diff --git a/images/demo-2/5/source.avif b/1/03_desk_1-source.avif similarity index 100% rename from images/demo-2/5/source.avif rename to 1/03_desk_1-source.avif diff --git a/images/demo-2/5/source.jpg b/1/03_desk_1-source.jpg similarity index 100% rename from images/demo-2/5/source.jpg rename to 1/03_desk_1-source.jpg diff --git a/images/demo-2/5/source.webp b/1/03_desk_1-source.webp similarity index 100% rename from images/demo-2/5/source.webp rename to 1/03_desk_1-source.webp diff --git a/1/03_desk_2-result.avif b/1/03_desk_2-result.avif new file mode 100644 index 0000000..47633c5 Binary files /dev/null and b/1/03_desk_2-result.avif differ diff --git a/1/03_desk_2-result.jpg b/1/03_desk_2-result.jpg new file mode 100644 index 0000000..fadd012 Binary files /dev/null and b/1/03_desk_2-result.jpg differ diff --git a/1/03_desk_2-result.webp b/1/03_desk_2-result.webp new file mode 100644 index 0000000..412a0d7 Binary files /dev/null and b/1/03_desk_2-result.webp differ diff --git a/images/demo-2/5/thumb.avif b/1/03_desk_3-thumb.avif similarity index 100% rename from images/demo-2/5/thumb.avif rename to 1/03_desk_3-thumb.avif diff --git a/images/demo-2/5/thumb.jpg b/1/03_desk_3-thumb.jpg similarity index 100% rename from images/demo-2/5/thumb.jpg rename to 1/03_desk_3-thumb.jpg diff --git a/images/demo-2/5/thumb.webp b/1/03_desk_3-thumb.webp similarity index 100% rename from images/demo-2/5/thumb.webp rename to 1/03_desk_3-thumb.webp diff --git a/images/demo-2/5/source_mob.avif b/1/03_mob_1-source.avif similarity index 100% rename from images/demo-2/5/source_mob.avif rename to 1/03_mob_1-source.avif diff --git a/1/03_mob_1-source.jpg b/1/03_mob_1-source.jpg new file mode 100644 index 0000000..fdfe341 Binary files /dev/null and b/1/03_mob_1-source.jpg differ diff --git a/1/03_mob_1-source.webp b/1/03_mob_1-source.webp new file mode 100644 index 0000000..a9edefc Binary files /dev/null and b/1/03_mob_1-source.webp differ diff --git a/images/demo-2/5/result_mob.avif b/1/03_mob_2-result.avif similarity index 100% rename from images/demo-2/5/result_mob.avif rename to 1/03_mob_2-result.avif diff --git a/1/03_mob_2-result.jpg b/1/03_mob_2-result.jpg new file mode 100644 index 0000000..1fcc5c6 Binary files /dev/null and b/1/03_mob_2-result.jpg differ diff --git a/1/03_mob_2-result.webp b/1/03_mob_2-result.webp new file mode 100644 index 0000000..ba1ff2f Binary files /dev/null and b/1/03_mob_2-result.webp differ diff --git a/images/demo/3/thumb_mob.avif b/1/03_mob_3-thumb.avif similarity index 100% rename from images/demo/3/thumb_mob.avif rename to 1/03_mob_3-thumb.avif diff --git a/1/03_mob_3-thumb.jpg b/1/03_mob_3-thumb.jpg new file mode 100644 index 0000000..5e17478 Binary files /dev/null and b/1/03_mob_3-thumb.jpg differ diff --git a/1/03_mob_3-thumb.webp b/1/03_mob_3-thumb.webp new file mode 100644 index 0000000..ee65f1d Binary files /dev/null and b/1/03_mob_3-thumb.webp differ diff --git a/images/demo-2/2/source.avif b/1/04_desk_1-source.avif similarity index 100% rename from images/demo-2/2/source.avif rename to 1/04_desk_1-source.avif diff --git a/images/demo-2/2/source.jpg b/1/04_desk_1-source.jpg similarity index 100% rename from images/demo-2/2/source.jpg rename to 1/04_desk_1-source.jpg diff --git a/images/demo-2/2/source.webp b/1/04_desk_1-source.webp similarity index 100% rename from images/demo-2/2/source.webp rename to 1/04_desk_1-source.webp diff --git a/1/04_desk_2-result.avif b/1/04_desk_2-result.avif new file mode 100644 index 0000000..16eec51 Binary files /dev/null and b/1/04_desk_2-result.avif differ diff --git a/1/04_desk_2-result.jpg b/1/04_desk_2-result.jpg new file mode 100644 index 0000000..031c183 Binary files /dev/null and b/1/04_desk_2-result.jpg differ diff --git a/1/04_desk_2-result.webp b/1/04_desk_2-result.webp new file mode 100644 index 0000000..56a1ad1 Binary files /dev/null and b/1/04_desk_2-result.webp differ diff --git a/images/demo-2/2/thumb.avif b/1/04_desk_3-thumb.avif similarity index 100% rename from images/demo-2/2/thumb.avif rename to 1/04_desk_3-thumb.avif diff --git a/images/demo-2/2/thumb.jpg b/1/04_desk_3-thumb.jpg similarity index 100% rename from images/demo-2/2/thumb.jpg rename to 1/04_desk_3-thumb.jpg diff --git a/images/demo-2/2/thumb.webp b/1/04_desk_3-thumb.webp similarity index 100% rename from images/demo-2/2/thumb.webp rename to 1/04_desk_3-thumb.webp diff --git a/images/demo-2/2/source_mob.avif b/1/04_mob_1-source.avif similarity index 100% rename from images/demo-2/2/source_mob.avif rename to 1/04_mob_1-source.avif diff --git a/1/04_mob_1-source.jpg b/1/04_mob_1-source.jpg new file mode 100644 index 0000000..9efcb6a Binary files /dev/null and b/1/04_mob_1-source.jpg differ diff --git a/1/04_mob_1-source.webp b/1/04_mob_1-source.webp new file mode 100644 index 0000000..f89d2ac Binary files /dev/null and b/1/04_mob_1-source.webp differ diff --git a/images/demo-2/2/result_mob.avif b/1/04_mob_2-result.avif similarity index 100% rename from images/demo-2/2/result_mob.avif rename to 1/04_mob_2-result.avif diff --git a/1/04_mob_2-result.jpg b/1/04_mob_2-result.jpg new file mode 100644 index 0000000..6ae4fe5 Binary files /dev/null and b/1/04_mob_2-result.jpg differ diff --git a/1/04_mob_2-result.webp b/1/04_mob_2-result.webp new file mode 100644 index 0000000..c9b69ad Binary files /dev/null and b/1/04_mob_2-result.webp differ diff --git a/images/demo/4/thumb_mob.avif b/1/04_mob_3-thumb.avif similarity index 100% rename from images/demo/4/thumb_mob.avif rename to 1/04_mob_3-thumb.avif diff --git a/1/04_mob_3-thumb.jpg b/1/04_mob_3-thumb.jpg new file mode 100644 index 0000000..43845e3 Binary files /dev/null and b/1/04_mob_3-thumb.jpg differ diff --git a/1/04_mob_3-thumb.webp b/1/04_mob_3-thumb.webp new file mode 100644 index 0000000..d1140d9 Binary files /dev/null and b/1/04_mob_3-thumb.webp differ diff --git a/images/demo-2/4/source.avif b/1/05_desk_1-source.avif similarity index 100% rename from images/demo-2/4/source.avif rename to 1/05_desk_1-source.avif diff --git a/images/demo-2/4/source.jpg b/1/05_desk_1-source.jpg similarity index 100% rename from images/demo-2/4/source.jpg rename to 1/05_desk_1-source.jpg diff --git a/1/05_desk_1-source.webp b/1/05_desk_1-source.webp new file mode 100644 index 0000000..c448f58 Binary files /dev/null and b/1/05_desk_1-source.webp differ diff --git a/1/05_desk_2-result.avif b/1/05_desk_2-result.avif new file mode 100644 index 0000000..a4154f1 Binary files /dev/null and b/1/05_desk_2-result.avif differ diff --git a/1/05_desk_2-result.jpg b/1/05_desk_2-result.jpg new file mode 100644 index 0000000..84e9705 Binary files /dev/null and b/1/05_desk_2-result.jpg differ diff --git a/1/05_desk_2-result.webp b/1/05_desk_2-result.webp new file mode 100644 index 0000000..461ea4b Binary files /dev/null and b/1/05_desk_2-result.webp differ diff --git a/images/demo-2/4/thumb.avif b/1/05_desk_3-thumb.avif similarity index 100% rename from images/demo-2/4/thumb.avif rename to 1/05_desk_3-thumb.avif diff --git a/images/demo-2/4/thumb.jpg b/1/05_desk_3-thumb.jpg similarity index 100% rename from images/demo-2/4/thumb.jpg rename to 1/05_desk_3-thumb.jpg diff --git a/images/demo-2/4/thumb.webp b/1/05_desk_3-thumb.webp similarity index 100% rename from images/demo-2/4/thumb.webp rename to 1/05_desk_3-thumb.webp diff --git a/images/demo-2/4/source_mob.avif b/1/05_mob_1-source.avif similarity index 100% rename from images/demo-2/4/source_mob.avif rename to 1/05_mob_1-source.avif diff --git a/1/05_mob_1-source.jpg b/1/05_mob_1-source.jpg new file mode 100644 index 0000000..7b7087b Binary files /dev/null and b/1/05_mob_1-source.jpg differ diff --git a/1/05_mob_1-source.webp b/1/05_mob_1-source.webp new file mode 100644 index 0000000..b6b4a19 Binary files /dev/null and b/1/05_mob_1-source.webp differ diff --git a/images/demo-2/4/result_mob.avif b/1/05_mob_2-result.avif similarity index 100% rename from images/demo-2/4/result_mob.avif rename to 1/05_mob_2-result.avif diff --git a/1/05_mob_2-result.jpg b/1/05_mob_2-result.jpg new file mode 100644 index 0000000..284fbdb Binary files /dev/null and b/1/05_mob_2-result.jpg differ diff --git a/1/05_mob_2-result.webp b/1/05_mob_2-result.webp new file mode 100644 index 0000000..501ec3e Binary files /dev/null and b/1/05_mob_2-result.webp differ diff --git a/images/demo/5/thumb_mob.avif b/1/05_mob_3-thumb.avif similarity index 100% rename from images/demo/5/thumb_mob.avif rename to 1/05_mob_3-thumb.avif diff --git a/1/05_mob_3-thumb.jpg b/1/05_mob_3-thumb.jpg new file mode 100644 index 0000000..c142d85 Binary files /dev/null and b/1/05_mob_3-thumb.jpg differ diff --git a/1/05_mob_3-thumb.webp b/1/05_mob_3-thumb.webp new file mode 100644 index 0000000..357cb5d Binary files /dev/null and b/1/05_mob_3-thumb.webp differ diff --git a/images/demo/1/source.avif b/2/01_desk_1-source.avif similarity index 100% rename from images/demo/1/source.avif rename to 2/01_desk_1-source.avif diff --git a/images/demo/1/source.jpg b/2/01_desk_1-source.jpg similarity index 100% rename from images/demo/1/source.jpg rename to 2/01_desk_1-source.jpg diff --git a/images/demo/1/source.webp b/2/01_desk_1-source.webp similarity index 100% rename from images/demo/1/source.webp rename to 2/01_desk_1-source.webp diff --git a/images/demo/1/result.avif b/2/01_desk_2-result.avif similarity index 100% rename from images/demo/1/result.avif rename to 2/01_desk_2-result.avif diff --git a/images/demo/1/result.jpg b/2/01_desk_2-result.jpg similarity index 100% rename from images/demo/1/result.jpg rename to 2/01_desk_2-result.jpg diff --git a/images/demo/1/result.webp b/2/01_desk_2-result.webp similarity index 100% rename from images/demo/1/result.webp rename to 2/01_desk_2-result.webp diff --git a/images/demo/1/thumb.avif b/2/01_desk_3-thumb.avif similarity index 100% rename from images/demo/1/thumb.avif rename to 2/01_desk_3-thumb.avif diff --git a/images/demo/1/thumb.jpg b/2/01_desk_3-thumb.jpg similarity index 100% rename from images/demo/1/thumb.jpg rename to 2/01_desk_3-thumb.jpg diff --git a/images/demo/1/thumb.webp b/2/01_desk_3-thumb.webp similarity index 100% rename from images/demo/1/thumb.webp rename to 2/01_desk_3-thumb.webp diff --git a/images/demo-2/1/source_mob.avif b/2/01_mob_1-source.avif similarity index 100% rename from images/demo-2/1/source_mob.avif rename to 2/01_mob_1-source.avif diff --git a/images/demo-2/1/result_mob.avif b/2/01_mob_2-result.avif similarity index 100% rename from images/demo-2/1/result_mob.avif rename to 2/01_mob_2-result.avif diff --git a/images/demo-2/1/thumb_mob.avif b/2/01_mob_3-thumb.avif similarity index 100% rename from images/demo-2/1/thumb_mob.avif rename to 2/01_mob_3-thumb.avif diff --git a/images/demo/4/source.avif b/2/02_desk_1-source.avif similarity index 100% rename from images/demo/4/source.avif rename to 2/02_desk_1-source.avif diff --git a/images/demo/4/source.jpg b/2/02_desk_1-source.jpg similarity index 100% rename from images/demo/4/source.jpg rename to 2/02_desk_1-source.jpg diff --git a/images/demo/4/source.webp b/2/02_desk_1-source.webp similarity index 100% rename from images/demo/4/source.webp rename to 2/02_desk_1-source.webp diff --git a/images/demo-2/2/result.avif b/2/02_desk_2-result.avif similarity index 100% rename from images/demo-2/2/result.avif rename to 2/02_desk_2-result.avif diff --git a/images/demo-2/2/result.jpg b/2/02_desk_2-result.jpg similarity index 100% rename from images/demo-2/2/result.jpg rename to 2/02_desk_2-result.jpg diff --git a/images/demo-2/2/result.webp b/2/02_desk_2-result.webp similarity index 100% rename from images/demo-2/2/result.webp rename to 2/02_desk_2-result.webp diff --git a/images/demo/4/thumb.avif b/2/02_desk_3-thumb.avif similarity index 100% rename from images/demo/4/thumb.avif rename to 2/02_desk_3-thumb.avif diff --git a/images/demo/4/thumb.jpg b/2/02_desk_3-thumb.jpg similarity index 100% rename from images/demo/4/thumb.jpg rename to 2/02_desk_3-thumb.jpg diff --git a/images/demo/4/thumb.webp b/2/02_desk_3-thumb.webp similarity index 100% rename from images/demo/4/thumb.webp rename to 2/02_desk_3-thumb.webp diff --git a/images/demo/4/source_mob.avif b/2/02_mob_1-source.avif similarity index 100% rename from images/demo/4/source_mob.avif rename to 2/02_mob_1-source.avif diff --git a/images/demo/4/result_mob.avif b/2/02_mob_2-result.avif similarity index 100% rename from images/demo/4/result_mob.avif rename to 2/02_mob_2-result.avif diff --git a/images/demo-2/2/thumb_mob.avif b/2/02_mob_3-thumb.avif similarity index 100% rename from images/demo-2/2/thumb_mob.avif rename to 2/02_mob_3-thumb.avif diff --git a/images/demo/2/source.avif b/2/03_desk_1-source.avif similarity index 100% rename from images/demo/2/source.avif rename to 2/03_desk_1-source.avif diff --git a/images/demo/2/source.jpg b/2/03_desk_1-source.jpg similarity index 100% rename from images/demo/2/source.jpg rename to 2/03_desk_1-source.jpg diff --git a/images/demo/2/source.webp b/2/03_desk_1-source.webp similarity index 100% rename from images/demo/2/source.webp rename to 2/03_desk_1-source.webp diff --git a/images/demo-2/3/result.avif b/2/03_desk_2-result.avif similarity index 100% rename from images/demo-2/3/result.avif rename to 2/03_desk_2-result.avif diff --git a/images/demo-2/3/result.jpg b/2/03_desk_2-result.jpg similarity index 100% rename from images/demo-2/3/result.jpg rename to 2/03_desk_2-result.jpg diff --git a/images/demo-2/3/result.webp b/2/03_desk_2-result.webp similarity index 100% rename from images/demo-2/3/result.webp rename to 2/03_desk_2-result.webp diff --git a/images/demo/2/thumb.avif b/2/03_desk_3-thumb.avif similarity index 100% rename from images/demo/2/thumb.avif rename to 2/03_desk_3-thumb.avif diff --git a/images/demo/2/thumb.jpg b/2/03_desk_3-thumb.jpg similarity index 100% rename from images/demo/2/thumb.jpg rename to 2/03_desk_3-thumb.jpg diff --git a/images/demo/2/thumb.webp b/2/03_desk_3-thumb.webp similarity index 100% rename from images/demo/2/thumb.webp rename to 2/03_desk_3-thumb.webp diff --git a/images/demo/2/source_mob.avif b/2/03_mob_1-source.avif similarity index 100% rename from images/demo/2/source_mob.avif rename to 2/03_mob_1-source.avif diff --git a/images/demo/2/result_mob.avif b/2/03_mob_2-result.avif similarity index 100% rename from images/demo/2/result_mob.avif rename to 2/03_mob_2-result.avif diff --git a/images/demo-2/3/thumb_mob.avif b/2/03_mob_3-thumb.avif similarity index 100% rename from images/demo-2/3/thumb_mob.avif rename to 2/03_mob_3-thumb.avif diff --git a/images/demo/5/source.avif b/2/04_desk_1-source.avif similarity index 100% rename from images/demo/5/source.avif rename to 2/04_desk_1-source.avif diff --git a/images/demo/5/source.jpg b/2/04_desk_1-source.jpg similarity index 100% rename from images/demo/5/source.jpg rename to 2/04_desk_1-source.jpg diff --git a/images/demo-2/4/source.webp b/2/04_desk_1-source.webp similarity index 100% rename from images/demo-2/4/source.webp rename to 2/04_desk_1-source.webp diff --git a/images/demo-2/4/result.avif b/2/04_desk_2-result.avif similarity index 100% rename from images/demo-2/4/result.avif rename to 2/04_desk_2-result.avif diff --git a/images/demo-2/4/result.jpg b/2/04_desk_2-result.jpg similarity index 100% rename from images/demo-2/4/result.jpg rename to 2/04_desk_2-result.jpg diff --git a/images/demo-2/4/result.webp b/2/04_desk_2-result.webp similarity index 100% rename from images/demo-2/4/result.webp rename to 2/04_desk_2-result.webp diff --git a/images/demo/5/thumb.avif b/2/04_desk_3-thumb.avif similarity index 100% rename from images/demo/5/thumb.avif rename to 2/04_desk_3-thumb.avif diff --git a/images/demo/5/thumb.jpg b/2/04_desk_3-thumb.jpg similarity index 100% rename from images/demo/5/thumb.jpg rename to 2/04_desk_3-thumb.jpg diff --git a/images/demo/5/thumb.webp b/2/04_desk_3-thumb.webp similarity index 100% rename from images/demo/5/thumb.webp rename to 2/04_desk_3-thumb.webp diff --git a/images/demo/5/source_mob.avif b/2/04_mob_1-source.avif similarity index 100% rename from images/demo/5/source_mob.avif rename to 2/04_mob_1-source.avif diff --git a/images/demo/5/result_mob.avif b/2/04_mob_2-result.avif similarity index 100% rename from images/demo/5/result_mob.avif rename to 2/04_mob_2-result.avif diff --git a/images/demo-2/4/thumb_mob.avif b/2/04_mob_3-thumb.avif similarity index 100% rename from images/demo-2/4/thumb_mob.avif rename to 2/04_mob_3-thumb.avif diff --git a/images/demo/3/source.avif b/2/05_desk_1-source.avif similarity index 100% rename from images/demo/3/source.avif rename to 2/05_desk_1-source.avif diff --git a/images/demo/3/source.jpg b/2/05_desk_1-source.jpg similarity index 100% rename from images/demo/3/source.jpg rename to 2/05_desk_1-source.jpg diff --git a/images/demo/3/source.webp b/2/05_desk_1-source.webp similarity index 100% rename from images/demo/3/source.webp rename to 2/05_desk_1-source.webp diff --git a/images/demo-2/5/result.avif b/2/05_desk_2-result.avif similarity index 100% rename from images/demo-2/5/result.avif rename to 2/05_desk_2-result.avif diff --git a/images/demo-2/5/result.jpg b/2/05_desk_2-result.jpg similarity index 100% rename from images/demo-2/5/result.jpg rename to 2/05_desk_2-result.jpg diff --git a/images/demo-2/5/result.webp b/2/05_desk_2-result.webp similarity index 100% rename from images/demo-2/5/result.webp rename to 2/05_desk_2-result.webp diff --git a/images/demo/3/thumb.avif b/2/05_desk_3-thumb.avif similarity index 100% rename from images/demo/3/thumb.avif rename to 2/05_desk_3-thumb.avif diff --git a/images/demo/3/thumb.jpg b/2/05_desk_3-thumb.jpg similarity index 100% rename from images/demo/3/thumb.jpg rename to 2/05_desk_3-thumb.jpg diff --git a/images/demo/3/thumb.webp b/2/05_desk_3-thumb.webp similarity index 100% rename from images/demo/3/thumb.webp rename to 2/05_desk_3-thumb.webp diff --git a/images/demo/3/source_mob.avif b/2/05_mob_1-source.avif similarity index 100% rename from images/demo/3/source_mob.avif rename to 2/05_mob_1-source.avif diff --git a/images/demo/3/result_mob.avif b/2/05_mob_2-result.avif similarity index 100% rename from images/demo/3/result_mob.avif rename to 2/05_mob_2-result.avif diff --git a/images/demo-2/5/thumb_mob.avif b/2/05_mob_3-thumb.avif similarity index 100% rename from images/demo-2/5/thumb_mob.avif rename to 2/05_mob_3-thumb.avif diff --git a/README.md b/README.md index e26cdf1..0863f00 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Preland всегда формирует полный resolved-набор сво | Метка | Что задаёт | Где | |---|---|---| -| `indpic` | картинка-пример на преленде | `images/demo/` для `1`, `images/demo-N/` для `N > 1` | +| `indpic` | картинка-пример на преленде | корневой каталог сета `/1/`, `/2/` и т. д. | | `theme` | `light` / `dark` | преленд и сайт | | `degr` | пресет ухудшения превью «До» | сайт (#42) | | `registration` | `before` — PIN до оплаты, `after` — после | сайт, страница результата | @@ -85,16 +85,22 @@ Preland хранит наборы ровно как Index, поэтому их перекладывания файлов: ```text -images/demo/1/{source,result,thumb}.{jpg,webp,avif} -images/demo/1/{source,result,thumb}_mob.avif +1/01_desk_1-source.{jpg,webp,avif} +1/01_desk_2-result.{jpg,webp,avif} +1/01_desk_3-thumb.{jpg,webp,avif} +1/01_mob_1-source.{jpg,webp,avif} +1/01_mob_2-result.{jpg,webp,avif} +1/01_mob_3-thumb.{jpg,webp,avif} ... -images/demo/5/... -images/demo-2/1/... +1/05_... +2/01_... ... -images/demo-N/5/... +N/05_... ``` -`indpic=1` выбирает `images/demo/`, а `indpic=N` (`N > 1`) — `images/demo-N/`. +`indpic=N` выбирает корневой каталог `/N/`. Набор копируется с Index в корень +домена целиком: без переименования, вложения в `images/` и промежуточных +каталогов. Устаревшие `images/demo*` не являются частью поставки. ## Деплой на произвольный домен diff --git a/components/examples.php b/components/examples.php index 68dfa39..7c9d739 100644 --- a/components/examples.php +++ b/components/examples.php @@ -1,10 +1,10 @@ @@ -49,15 +49,15 @@ $resultOrig = $getAssetUrl('1/result.avif');
" - data-result="" - data-source-mob="" - data-result-mob=""> + data-source="" + data-result="" + data-source-mob="" + data-result-mob="">
diff --git a/images/demo/2/result.avif b/images/demo/2/result.avif deleted file mode 100644 index 6db27fc..0000000 Binary files a/images/demo/2/result.avif and /dev/null differ diff --git a/images/demo/2/result.jpg b/images/demo/2/result.jpg deleted file mode 100644 index 2b61cfc..0000000 Binary files a/images/demo/2/result.jpg and /dev/null differ diff --git a/images/demo/2/result.webp b/images/demo/2/result.webp deleted file mode 100644 index 3ec12c9..0000000 Binary files a/images/demo/2/result.webp and /dev/null differ diff --git a/images/demo/3/result.avif b/images/demo/3/result.avif deleted file mode 100644 index 1f69663..0000000 Binary files a/images/demo/3/result.avif and /dev/null differ diff --git a/images/demo/3/result.jpg b/images/demo/3/result.jpg deleted file mode 100644 index 42fd4f3..0000000 Binary files a/images/demo/3/result.jpg and /dev/null differ diff --git a/images/demo/3/result.webp b/images/demo/3/result.webp deleted file mode 100644 index c303afc..0000000 Binary files a/images/demo/3/result.webp and /dev/null differ diff --git a/images/demo/4/result.avif b/images/demo/4/result.avif deleted file mode 100644 index 5aff98a..0000000 Binary files a/images/demo/4/result.avif and /dev/null differ diff --git a/images/demo/4/result.jpg b/images/demo/4/result.jpg deleted file mode 100644 index 422d45a..0000000 Binary files a/images/demo/4/result.jpg and /dev/null differ diff --git a/images/demo/4/result.webp b/images/demo/4/result.webp deleted file mode 100644 index 8064dbd..0000000 Binary files a/images/demo/4/result.webp and /dev/null differ diff --git a/images/demo/5/result.avif b/images/demo/5/result.avif deleted file mode 100644 index 2f6a605..0000000 Binary files a/images/demo/5/result.avif and /dev/null differ diff --git a/images/demo/5/result.jpg b/images/demo/5/result.jpg deleted file mode 100644 index 1788ec8..0000000 Binary files a/images/demo/5/result.jpg and /dev/null differ diff --git a/images/demo/5/result.webp b/images/demo/5/result.webp deleted file mode 100644 index ef1ee08..0000000 Binary files a/images/demo/5/result.webp and /dev/null differ diff --git a/images/demo/5/source.webp b/images/demo/5/source.webp deleted file mode 100644 index 250eb71..0000000 Binary files a/images/demo/5/source.webp and /dev/null differ diff --git a/template.php b/template.php index b2e79dd..503ed65 100644 --- a/template.php +++ b/template.php @@ -20,24 +20,25 @@ diff --git a/tests/check-demo-layout.php b/tests/check-demo-layout.php index dd7a2b4..56f88e0 100644 --- a/tests/check-demo-layout.php +++ b/tests/check-demo-layout.php @@ -1,8 +1,8 @@ / и images/demo-N/<пример>/. + * Наборы примеров копируются из Index без переименования и переложения: + * в корне домена лежит `<номер-сета>/`, а в нём flat-файлы Index. */ declare(strict_types=1); @@ -11,12 +11,14 @@ $root = dirname(__DIR__); $failures = []; foreach ([ - 'images/demo/1/source.avif', - 'images/demo/1/result.avif', - 'images/demo/1/thumb.avif', - 'images/demo/5/source_mob.avif', - 'images/demo-2/1/source.avif', - 'images/demo-2/5/result_mob.avif', + '1/01_desk_1-source.avif', + '1/01_desk_2-result.avif', + '1/01_desk_3-thumb.avif', + '1/05_mob_1-source.avif', + '1/05_mob_2-result.avif', + '1/05_mob_3-thumb.avif', + '2/01_desk_1-source.avif', + '2/05_mob_2-result.avif', ] as $relativePath) { if (!is_file($root . '/' . $relativePath)) { $failures[] = "Отсутствует Index-совместимый asset {$relativePath}."; @@ -24,29 +26,34 @@ foreach ([ } foreach ([ - 'images/demo/1/1', - 'images/demo/2/1', -] as $legacyPath) { - if (is_dir($root . '/' . $legacyPath)) { - $failures[] = "Не должна оставаться промежуточная группировка {$legacyPath}."; + 'images/demo', + 'images/demo-2', +] as $obsoletePath) { + if (is_dir($root . '/' . $obsoletePath)) { + $failures[] = "Устаревший каталог {$obsoletePath} не должен оставаться в репозитории."; } } $template = (string) file_get_contents($root . '/template.php'); $examples = (string) file_get_contents($root . '/components/examples.php'); -$pathBuilder = "\$demoDirName = 'demo' . (\$indpic === '1' ? '' : '-' . \$indpic);"; -if (!str_contains($template, $pathBuilder) - || !str_contains($examples, $pathBuilder) - || !str_contains($template, '"/images/{$demoDirName}/1"') - || !str_contains($examples, '"/images/{$demoDirName}"')) { - $failures[] = 'Template и examples должны строить путь из Index-совместимого имени demo/demo-N.'; +foreach ([ + [$template, '"/{$indpic}"'], + [$template, '01_desk_1-source.avif'], + [$examples, "sprintf('%02d', \$number)"], + [$examples, "'desk', '1-source'"], + [$examples, "'mob', '3-thumb'"], +] as [$source, $expected]) { + if (!str_contains($source, $expected)) { + $failures[] = "Путь примеров должен использовать корневой flat-формат Index ({$expected})."; + } } $workflow = (string) file_get_contents($root . '/.gitea/workflows/deploy.yml'); foreach ([ - '"$PRELAND_URL/images/demo/1/source.avif"', - '"$PRELAND_URL/images/demo-2/1/source.avif"', - '"$PRELAND_URL/?indpic=2&nc=$(date +%s)"', + '"$PRELAND_URL/1/01_desk_1-source.avif"', + '"$PRELAND_URL/2/01_desk_1-source.avif"', + '2/01_mob_1-source.avif', + 'Remove obsolete demo directories', ] as $requiredStageSmokeCheck) { if (!str_contains($workflow, $requiredStageSmokeCheck)) { $failures[] = "Stage-деплой обязан проверять публикацию {$requiredStageSmokeCheck}."; @@ -62,4 +69,4 @@ if ($failures !== []) { exit(1); } -fwrite(STDOUT, "OK: Preland demo layout matches Index\n"); +fwrite(STDOUT, "OK: Preland root sets match Index layout\n");