Skip to content

Creed1k3/site-optimizer

Repository files navigation

Site Optimizer v0.5.0

Site Optimizer — десктопное приложение на Tauri 2 + React для оптимизации сайтов из ZIP-архива или папки.

Приложение умеет:

  • открывать сайт из .zip или из папки
  • конвертировать png / jpg / jpeg / gif в webp, только если это реально выгодно по размеру
  • обновлять ссылки на изображения в коде
  • убирать srcset / imagesrcset / sizes, когда это нужно
  • показывать экран проверки перед экспортом
  • экспортировать результат в ZIP или в папку
  • запускать быструю пакетную оптимизацию для нескольких сайтов
  • включать и выключать пункты контекстного меню Windows из настроек приложения
  • предлагать обновление приложения через GitHub Releases

Возможности

  • Режимы входа:
    • ZIP-архив
    • Папка
  • Режимы экспорта:
    • ZIP-архив
    • Папка
  • Дополнительные опции очистки:
    • удаление неиспользуемых картинок
    • дедупликация одинаковых изображений по содержимому
  • Интерфейс:
    • Русский
    • English
  • Быстрый пакетный режим для нескольких сайтов
  • Встроенный updater с проверкой новой версии и прогрессом обновления

Как работает оптимизация

Поддерживаемые входные форматы:

  • png
  • jpg
  • jpeg
  • gif

Основные правила:

  • изображения переводятся в webp
  • если после конвертации файл получается больше, оригинал сохраняется
  • для анимированных gif действует та же безопасная проверка по размеру
  • подозрительные или динамические ссылки не переписываются вслепую
  • коллизии имен вроде image.png и image.jpg обрабатываются безопасно

Режимы работы

Обычный режим

  1. Выбирается ZIP или папка сайта.
  2. Приложение готовит рабочую копию.
  3. Изображения анализируются и оптимизируются.
  4. Пользователь проверяет результат.
  5. Результат экспортируется в ZIP или в папку.

Быстрый режим

  1. Выбирается сразу несколько сайтов.
  2. Приложение обрабатывает их автоматически по очереди.
  3. Результаты сохраняются рядом с исходниками.
  4. После завершения показывается экран итогов.

Контекстное меню Windows

Пункты контекстного меню для:

  • Оптимизировать сайт
  • Быстро оптимизировать сайт

настраиваются из самого приложения через кнопку с шестеренкой рядом с версией.

Автообновления

Приложение поддерживает обновление через GitHub Releases и Tauri Updater.

Для этого используются:

  • installer.exe
  • installer.exe.sig
  • latest.json

Важно:

  • приватный ключ подписи должен храниться только локально
  • публичный ключ находится в конфиге приложения
  • релизы для updater должны быть подписаны

Что нужно для сборки из исходного кода

Перед сборкой должны быть установлены:

  • Node.js
  • npm
  • Rust
  • Microsoft Visual Studio C++ Build Tools или Visual Studio с desktop C++ toolchain
  • WebView2

Рекомендуется:

  • Node.js 20+
  • актуальный Rust stable

Сборка из исходного кода

  1. Установить зависимости фронтенда:
npm install
  1. Собрать приложение:
npm.cmd run tauri build

Готовые сборки обычно появляются здесь:

  • src-tauri/target/release/bundle/nsis
  • src-tauri/target/release/bundle/msi

Подписанная сборка для автообновлений

Если нужен updater-релиз, перед сборкой нужно выставить переменные окружения:

$env:TAURI_SIGNING_PRIVATE_KEY = Get-Content .\src-tauri\signing\site-optimizer.key -Raw
$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD = "ваш-пароль"
npm.cmd run tauri build

После этого для релиза используются:

  • installer.exe
  • installer.exe.sig
  • latest.json

Важно по безопасности

Нельзя коммитить в репозиторий:

  • src-tauri/signing/site-optimizer.key
  • любые приватные ключи подписи
  • пароли от ключей

Папка src-tauri/signing/ должна оставаться вне git.

Результат работы приложения

Приложение создает:

  • <имя>_optimized.zip
  • <имя>_optimized/

Временная рабочая папка:

  • <имя>_optimizer_work/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors