Профессиональный онлайн-минификатор HTML, CSS и JavaScript с продвинутой обработкой кода
- Корректная обработка строк в двойных/одинарных кавычках
- Поддержка вложенных template literals с
${} - Умное распознавание регулярных выражений с character classes
- Сохранение escape-последовательностей и специальных символов
- Защита conditional comments для IE
- HTML: удаление комментариев, пустых атрибутов, type="text/javascript"
- JavaScript: минификация с сохранением функциональности
- CSS: сокращение цветов (#ffffff → #fff), удаление единиц у нуля (0px → 0)
- Inline контент: автоматическая минификация встроенных скриптов и стилей
- Размер до и после сжатия
- Процент экономии
- Сохранённые байты
- Новое: Время обработки в миллисекундах
- Визуальные индикаторы прогресса
- Адаптивный дизайн для всех устройств
- Тёмная тема с градиентами и анимациями
- Интерактивные элементы управления
- Всплывающие подсказки
- Работает полностью в браузере
- Нет серверных запросов
- Новое: Валидация кода перед обработкой
- Новое: Пакетная обработка файлов
- Работает без интернета
- Локальное кэширование
Просто откройте демо версию в браузере.
git clone https://github.com/Rianvy/CodeSqueeze.git
cd CodeSqueezeОткройте index.html в браузере — всё работает без сервера!
- Выберите тип кода: HTML или JavaScript
- Вставьте код в левое окно (или нажмите кнопку "Пример")
- Настройте опции минификации
- Нажмите "⚡ Минифицировать"
- Скопируйте результат из правого окна
| Комбинация | Действие |
|---|---|
Ctrl/Cmd + Enter |
Минифицировать |
Ctrl/Cmd + Shift + F |
Форматировать |
Ctrl/Cmd + Shift + C |
Копировать результат |
Ctrl/Cmd + Shift + V |
Вставить из буфера |
| Опция | Описание | По умолчанию |
|---|---|---|
| Удалить комментарии | Удаляет HTML <!-- -->, JS // и /* */, CSS /* */ комментарии |
✅ Вкл |
| Удалить пробелы | Схлопывает множественные пробелы, удаляет переносы строк | ✅ Вкл |
| Минифицировать inline JS | Сжимает JavaScript внутри <script> тегов |
✅ Вкл |
| Минифицировать inline CSS | Сжимает стили внутри <style> тегов |
✅ Вкл |
CodeSqueeze/
├── index.html
├── features.html
├── docs.html
├── privacy.html
├── stats.html
├── terms.html
├── css/
│ └── styles.css # Кастомные стили
├── js/
│ ├── app.js # Главный модуль приложения
│ ├── config.js # Конфигурация
│ ├── tailwind.standalone.js
│ ├── tailwind-config.js
│ └── modules/
│ ├── minifier.js # Минификатор
│ ├── beautifier.js # Форматирование кода
│ ├── validator.js # Валидация кода
│ ├── stats.js # Статистика
│ ├── ui.js # Управление интерфейсом
│ ├── utils.js # Вспомогательные функции
│ ├── storage.js # Локальное хранилище
│ ├── fullscreen.js # Полноэкранный режим для редакторов
│ ├── tooltips.js # Глобальные tooltips
│ └── notifications.js # Уведомления
Посимвольный парсинг для точной обработки:
- Обнаружение контекста: строка, регулярное выражение, комментарий
- Сохранение важного: escape-последовательности, специальные символы
- Удаление лишнего: комментарии, пробелы, пустые атрибуты
- Оптимизация: сокращение CSS, удаление точек с запятой перед
} - Валидация: проверка корректности результата
✅ Строки: "...", '...', `...`
✅ Template literals: `Hello ${name}!`
✅ Регулярные выражения: /pattern/gi, /[a-z]/
✅ Комментарии: // и /* */
✅ Операторы: все стандартные операторы JS
✅ Ключевые слова: return, typeof, void, delete, throw, new, etc.
✅ Селекторы: классы, ID, атрибуты, псевдо-классы
✅ Свойства: все стандартные CSS свойства
✅ Значения: цвета, размеры, URL
✅ Функции: url(), calc(), rgba(), etc.
✅ At-rules: @media, @keyframes, @import
✅ Теги: все стандартные HTML5 теги
✅ Атрибуты: сохранение значений, удаление пустых
✅ Inline контент: <script>, <style>, <pre>, <textarea>
✅ Комментарии: условные комментарии IE сохраняются
✅ DOCTYPE: сохраняется корректно
Входной код (2,847 байт):
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Пример страницы</title>
<style>
/* Основные стили */
body {
margin: 0;
padding: 20px;
font-family: Arial, sans-serif;
background-color: #ffffff;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
</style>
</head>
<body>
<!-- Основной контент -->
<div class="container">
<h1>Добро пожаловать!</h1>
<p>Это пример HTML страницы для минификации.</p>
</div>
<script>
// Конфигурация приложения
const config = {
apiUrl: 'https://api.example.com',
timeout: 3000,
debug: true
};
// Инициализация
function init() {
console.log('Приложение запущено');
console.log('Config:', config);
}
// Запуск при загрузке
document.addEventListener('DOMContentLoaded', init);
</script>
</body>
</html>Результат (523 байт) — экономия 81.6%:
<!DOCTYPE html><html lang="ru"><head><meta charset="UTF-8"><title>Пример страницы</title><style>body{margin:0;padding:20px;font-family:Arial,sans-serif;background-color:#fff}.container{max-width:1200px;margin:0 auto}</style></head><body><div class="container"><h1>Добро пожаловать!</h1><p>Это пример HTML страницы для минификации.</p></div><script>const config={apiUrl:'https://api.example.com',timeout:3000,debug:true};function init(){console.log('Приложение запущено');console.log('Config:',config)}document.addEventListener('DOMContentLoaded',init)</script></body></html>Входной код (456 байт):
// Email валидатор
function validateEmail(email) {
// Регулярное выражение для проверки email
const pattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!pattern.test(email)) {
return false;
}
return true;
}
// Генератор приветствия
function greet(name, time = 'день') {
const message = `Добрый ${time}, ${name}!`;
console.log(message);
return message;
}
// Использование
const isValid = validateEmail('[email protected]');
const greeting = greet('Иван', 'вечер');Результат (267 байт) — экономия 41.4%:
function validateEmail(email){const pattern=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!pattern.test(email)){return false}return true}function greet(name,time='день'){const message=`Добрый ${time}, ${name}!`;console.log(message);return message}const isValid=validateEmail('[email protected]');const greeting=greet('Иван','вечер');Входной код (389 байт):
/* Цвета и размеры */
.button {
background-color: #ffffff;
color: #000000;
padding: 0px 20px;
margin: 0px auto;
border-radius: 0px;
}
.card {
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
background: #f0f0f0;
}Результат (126 байт) — экономия 67.6%:
.button{background-color:#fff;color:#000;padding:0 20px;margin:0 auto;border-radius:0}.card{box-shadow:0 0 10px rgba(0,0,0,0.1);background:#f0f0f0}// Импорт (если используется как модуль)
const { Minifier } = window;
// Минификация JavaScript
const jsCode = 'const x = 1; // comment';
const minifiedJS = Minifier.minifyJS(jsCode);
console.log(minifiedJS); // 'const x=1'
// Минификация CSS
const cssCode = 'body { margin: 0px; }';
const minifiedCSS = Minifier.minifyCSS(cssCode);
console.log(minifiedCSS); // 'body{margin:0}'
// Минификация HTML
const htmlCode = '<html> <body> </body> </html>';
const minifiedHTML = Minifier.minifyHTML(htmlCode);
console.log(minifiedHTML); // '<html><body></body></html>'
// Универсальная функция
const result = Minifier.minify(code, 'html'); // 'html', 'js', или 'css'// Установка опций
Minifier.setOptions({
removeComments: true,
removeWhitespace: true,
minifyInlineJS: true,
minifyInlineCSS: true,
preserveLineBreaks: false,
collapseWhitespace: true,
removeEmptyAttributes: true
});
// Получение текущих опций
const options = Minifier.getOptions();
console.log(options);// Минификация с автоматическим подсчётом статистики
const result = Minifier.minify(code, 'html');
// Получение детальной статистики
const stats = Minifier.getStats();
console.log(stats);
// {
// originalSize: 1500,
// minifiedSize: 800,
// savedBytes: 700,
// savedPercent: "46.67",
// processingTime: "2.34" // 🆕 в миллисекундах
// }
// Сброс статистики
Minifier.resetStats();// 🆕 Проверка кода перед минификацией
const validation = Minifier.validate(code, 'html');
if (!validation.valid) {
console.warn('Предупреждения:', validation.errors);
// ['Возможно несбалансированные теги']
}
// Всё равно можно минифицировать
const result = Minifier.minify(code, 'html');// 🆕 Обработка нескольких файлов
const files = [
{ name: 'app.js', type: 'js', content: '...' },
{ name: 'styles.css', type: 'css', content: '...' },
{ name: 'index.html', type: 'html', content: '...' }
];
const batchResult = Minifier.minifyBatch(files);
console.log(batchResult.totalSaved); // Общая экономия в байтах
console.log(batchResult.totalTime); // Общее время обработки
batchResult.results.forEach(result => {
console.log(`${result.name}: ${result.stats.savedPercent}% сэкономлено`);
});// Доступ к функциям приложения
const app = window.CodeSqueeze;
// Версия приложения
console.log(app.version);
// Прямой доступ к минификатору
console.log(app.minifier); // Minifier объект
// Быстрое получение статистики
const stats = app.getStats();
// Сброс статистики
app.resetStats();
// Валидация
const validation = app.validate(code, 'html');
// Текущие опции
const options = app.getCurrentOptions();# Открыть index.html
# В консоли браузера (F12):
// Тест минификации JS
CodeSqueeze.minifier.minifyJS('const x = 1; // test');
// Тест валидации
CodeSqueeze.validate('<html></html>', 'html');
// Тест производительности
const largeCode = 'x'.repeat(100000);
console.time('minify');
CodeSqueeze.minifier.minify(largeCode, 'js');
console.timeEnd('minify');- Откройте DevTools (F12)
- Network → поставьте галку "Offline"
- Обновите страницу (Ctrl+R)
- Всё должно работать ✅
Contributions приветствуются!
- Fork репозиторий
- Создайте feature branch:
git checkout -b feature/amazing-feature - Commit изменения:
git commit -m 'Add: amazing feature' - Push в branch:
git push origin feature/amazing-feature - Откройте Pull Request
- Следуйте существующему стилю кода
- Добавляйте комментарии к сложной логике
- Тестируйте изменения перед PR
- Обновляйте документацию при необходимости
- Поддержка TypeScript минификации
- Более продвинутая CSS оптимизация
- Drag & drop файлов
- История минификаций
- Экспорт/импорт настроек
- Vanilla JavaScript — без фреймворков
- Tailwind CSS — для стилизации
- Local Storage — для сохранения настроек
- Clipboard API — для копирования/вставки
| Метрика | Значение |
|---|---|
| Размер приложения | ~120 KB (с Tailwind) |
| Время загрузки | < 1 секунда |
| Скорость минификации | ~2-5 мс на 1 KB кода |
| Поддержка файлов | До 10 MB |
| Браузеры | Chrome 90+, Firefox 88+, Safari 14+, Edge 90+ |
- ✨ Новый минификатор с улучшенной обработкой regex и template literals
- 📊 Статистика времени обработки в миллисекундах
- 🔍 Валидация кода перед минификацией
- 📦 Пакетная обработка файлов
- 🌐 Офлайн поддержка
- 🎨 Оптимизация CSS: сокращение цветов, удаление единиц у нуля
- ⚡ Улучшенная производительность парсера
- 🔧 Расширенный API для разработчиков
- 🎯 Горячие клавиши для быстрой работы
- 🎉 Первый публичный релиз
- HTML/JavaScript/CSS минификация
- Безопасная обработка строк
- Статистика сжатия
- Форматирование кода
- Адаптивный дизайн
- 🐛 Нашли баг? → Создайте Issue
- 💡 Есть идея? → Откройте Discussion
- 💬 Telegram: @cyber_way
MIT License — используйте свободно в коммерческих и некоммерческих проектах!
Copyright (c) 2026 Rianvy
Rianvy
Сделано с ❤️ для разработчиков
- GitHub: @Rianvy
- Website: 0x69.online
Спасибо всем, кто использует CodeSqueeze и помогает его улучшать!
⭐ Если проект полезен — поставьте звезду на GitHub!