Очередной релиз(1.7) системы, включающий оптимизацию трафика и объема всех страниц, +наконец-то добавлена поддержка произвольных адресов задач, разделов и исходников.
В релиз вошли:
1. ЧеловекоПонятныеУрлы для разделов, задач и исходников
Пути, адреса теперь выглядят понятным для человека образом*.
Разделы: /cat/<имя>/ либо /c/<имя>/ (сокращенная форма),
пример: http://codelab.ru/cat/sort/ либо http://codelab.ru/c/sort/
Задачи: /task/<имя>/, сокращенная форма: /t/<имя>,
пример: http://codelab.ru/task/quick_sort_benchmarks/, либо http://codelab.ru/t/quick_sort_benchmarks/
Исходники: /source/<язык>/<имя>, сокращенная форма: /s/<язык>/<имя>/,
пример: http://codelab.ru/source/cpp/binsearch:opt/, либо http://codelab.ru/s/cpp/binsearch:opt/
,где <язык> - название(идентификатор) языка программирования, используемый при отображении реализаций задачи (/t/binsearch/csharp/ - C# реализации двоичного поиска)
* - слеш в конце не имеет значения, т.е.: http://codelab.ru/c/sort, http://codelab.ru/t/quick_sort_benchmarks и http://codelab.ru/s/cpp/binsearch:opt - в конце необязателен.
2. Подключение gzip-сжатия всех страниц сайта
Исходники могут идти какого угодно размера, что приводит к очень большим объемам html-кода, выводящих их подстветку. Соответственно, gzip здесь более чем уместен: в таких случаях сильно повторяющегося html-я подсветки - результирующий объем иногда уменьшается почти в 10 раз(более 90% сжатие).
3. Оптимизация, css-ция подсветки
До этого html подсветка генерилась как есть, т.е. для каждой лексической единицы исходного кода - хардкодились повторяющиеся стили с цветами, шрифтами, оформлением и т.д., в результате дублирование достигало невообразимых размеров. Теперь в html-е подсветки выводятся только css-классы соответсвующих фрагментов лексических единиц. css-классы же, соответсвенно, определены в едином css файле, который скачивается браузером лишь единожды (далее из кеша).
Т.е. еще одно значительное сокращение трафика.
здесь >>