Если бы вы только знали, насколько это жизненно…

Пару дней назад я окончательно докодил все, что собирался докодить в Darkstar Site Manager перед выводом ее в релиз-кандидат. Даркстар теперь официально имеет версию 1.0, пусть пока и с суффиксом —rc2, но тем не менее.

Darkstar Site Manager, прежде Darkstar CMS, годы разработки — 2008-2022! S.T.A.L.K.E.R. отдыхает!

Разумеется, как я и предполагал несколько лет назад, в 2008-м году я допустил ошибку в концепции и неправильно распределил майлстоуны, в результате чего буквальное следование родмапу проекта 2008 года привело бы к созданию непригодного для использования сайта. Потому я следовал ему не буквально, а добавляя майлстоуны для компенсации издержек планирования в 2008-м году. В частности, в родмапе буквально не было магазина (вообще), не было редактора меню, не было никак прописано определения «гибридных страниц», не было интеграции с CPG и всяких ништяков с подсайтов, и еще кучи всего не было, зато была зачем-то личка на сайте, которая нафиг там не нужна. Как бы то ни было, теперь в даркстаре есть почти все, что надо для релиза. Почти. Остальное допилю в скором времени в связи с имеющимся у меня подозрением о глобальной взаимосвязи событий. А еще я запилил парочку новых крутых фич, достойных живого сайта, а не музейного экспоната. Ни о чем не жалею!

Также, за время страдания всякой фигней в связи с данным музеем я решил-таки переверстать фронты (фронтэнды) сайтов.

Ну, как «решил»… меня к этому подтолкнули обстоятельства, в курсе которых я в 2008-м году не был. А именно — я, следуя моде времени, выбрал сериализацию XHTML вместо HTML, но упустил важный нюанс, что браузеры обрабатывают сериализацию в соответствии с заголовком Content-Type, и если этот заголовок указывает на XHTML, то браузеры обрабатывают его XML-движком вместо SGML-движка, а он значительно более строгий. И если на ошибки в валидаторе W3C можно забить, поскольку туда все равно никто не смотрит, то XML-движок браузера, увидев ошибку в XHTML, просто покажет огромное сообщение об ошибке вместо хоть какого-нибудь контента. А ведь там еще AJAX используется, что лишь добавляет веселья.

Но, поскольку за прошедшее время я сверстал еще очень много всякой фигни, то на сей раз это оказалось сделать проще пареной репки, даже под строгий XML-парсер, и оба фронта подсайтов банд были сверстаны с нуля буквально за день. Ибо фронт подсайта эванов был табличным (см. картинку выше), ведь в далеком 2008-м году я банально не знал, как сделать блочную верстку в колонках, особенно если колонки сложные и замороченные, а мои попытки применения float упирались в развал всех врапперов — про clear-то я не знал и применять его не умел. А тут еще вдобавок оказалось, что этого недостаточно, а надо еще и хак с отрицательным марджином применять, поскольку колонки не просто есть, а еще и сложные — их надо растягивать на всю высоту, иначе дизайн ломается. Ну а фронта слипов вообще не было, ибо я тогда с трудом осилил доверстать фронт эванов (который у меня позаимствовали), а на слипов не хватило сил (потому заимствовать оказалось нечего, из-за чего раздел слипов и закрыли, видимо smile.gif). И совершенно внезапно выяснилось, что для всех трех сайтов можно применять практически единый набор верстки — меняется только кусок корневого враппера, ну и внешний контент (CSS и графика) и более ничего. Так что на всех трех сайтах в итоге получился буквально одинаковый набор шаблонов (верстки) с разницей в единственном шаблоне.

Осталась последняя проблема. Великий и ужасный, к счастью давным-давно мертвый и похороненный, Internet Explorer 6.

Как следует из картинки выше, именно IE сжирает около 50% времени, уходящего на фронтэнд. Картинка была создана в 2006-м году и была актуальна в наших реалиях по состоянию на 2008-й и даже 2010-й год. Затем доля Windows XP быстро упала, а более свежие версии ишака, хоть и доставляли проблемы, не были столь ужасными, как 6 и ниже.

Казалось бы, на дворе сейчас 2022-й год, и незачем заморачиваться поддержкой давно почившего браузера. Но есть нюанс. Это ведь музейный экспонат, верно? А музейный экспонат должен быть целостным. Так-то и PHP 4 сдох очень давно, едва ли не раньше, чем IE 6, но ведь в концепте-то заморожено время и состояние окружения, иначе какой это нафиг музей? Значит, сайт должен работать нормально в IE 6, Firefox 2.x и Opera 9. Если он при этом не будет работать на 100% корректно в современных браузерах — не страшно, хотя и неприятно. Это музей, в конце концов. Так что поморочиться с адаптацией для IE 6 мне еще предстоит. Благо, там осталось совсем немного — пара моментов с JS и пара моментов в CSS. Даже ролловеры почти сразу заработали там нормально после переверстки, пришлось лишь смещения добавить.

А один из моментов в работе IE 6 с JS заключался в том, что IE 6 игнорирует скрипт целиком, если в нем стоит лишняя запятая в списке объекта. Это единственное расхождение с картинкой выше — там дополнительный пробел не переварил Firefox, а в реальности это оказался ишак, гы. Стоило только убрать лишнюю запятую, как AJAX в IE заработал нормально. Ну, ладно, почти нормально.

Теперь насчет ранее упомянутой глобальной взаимосвязи событий. Мой личный кризис осени 2008 года связан с проектом эв-слип и ему предшествовала война в регионе. Как только эв-слип вернулся ко мне, случилась война в регионе и дальнейший глобальный кризис неизбежен. Оба раза я оказался во главе проекта. И теперь мне аж интересно, есть ли в этом какая-то взаимосвязь, или это просто совпадение? Моя первая каденция началась 30 октября 2007 года и закончилась 27 (или 26?) сентября 2008 года, после войны и в разгар глобального кризиса, породив мой личный кризис. Что если попробовать завершить все работы и, так сказать, исполнить мгновение (если вы понимаете, о чем я) до 30 октября сего года? Аж интересно, что из этого выйдет, если это получится и мне хватит на это ресурсов. Попробуем. smile.gif