16.09.2010

Haml and Sass 3.1 are Released

Original on nex-3.com

Адным з найболей распаўсюджаных праблем выкарыстання людзьмі  Sass з’яўляецца інтэграцыя з існымі прыладамі. У прыватнасці, шматлікія людзі (уключаючы мяне) выкарыстоўваць Firebug і жадаюць, каб яна лепш узаемадзейнічала з  Sass.

У цэлым,  з тых часоў, як Sass кампілюецца ў стандартнай CSS, Firebug маглі добра зладзіцца з ёй. Адна  з самых прыемных асаблівасцей Firebug пры выкананні працы CSS складаецца ў магчымасці паказаць вам, дзе ўсе стылі для элементаў вызначаюцца ў CSS.

Пры выкарыстанні Sass, гэта функцыя галоўным чынам не працуе. Яна кажа вам, дзе стыль былі вызначаны ў CSS … што насамрэч не дапаможа вам высвятліць, дзе ён быў у арыгінале Sass.

Firebug without FireSass

FireSass

У пятніцу я ўсе гэта так надакучыла, што я  вырашыў выправіць гэта раз і назаўжды. Плён маіх высілкаў з’яўляецца пашырэннем FireSass для  Firebug. У спалучэнні з новай магчымасцю выйсця  ў адладку Сасс, FireSass можа паведаміць карыстачу Sass імя файла і нумар радка для ўсіх стыляў Sass.

Firebug with FireSass

З яго дапамогай

Па-першае,  паптрэбна ўсталяваць пашырэнне FireSass для сябе,  але спачатку пераканаецеся, што вы таксама атрымалі  і FireBug усталяваным. Да пашырэння атрымліваецца  больш аглядаў і правярак рэдактарамі Mozilla,  усе гэта будзе пералічана ў якасці эксперыментальнага. кода, даступнага  на GitHub, калі Вы жадаецепераканацца, што ён не злодзей(гэта сапраўды так).

Пасля таго, як  пашырэнне ўсталёўвана, вам спатрэбіцца свежая версія развіцця у Sass. Самы просты спосаб атрымаць яе – гэта ўсталяваць Haml edge gem, запусціўшы усталёўку Haml edge gem. Вы таксама можаце ўсталяваць яго ў якасці haml gem, загрузіўшы яго з GitHub і запусціўшы make install у каталозе haml.

Далей, вам трэба наладзіць Sass  і сабраць неабходную інфармацыю для  адладкі. Гэта як раз  дапамагае стварэнню:debug_info варыянта. Калі вы выкарыстоўваеце Sass з вэб framework Ruby, вы, верагодна, жадаеце зрабіць

Sass::Plugin.options[:debug_info] = true

Калі вы выкарыстоўваеце Sass з каманднага радка, проста перайдзіце ў –debug-info сцяг.

Нарэшце, выдаліце ўсе існыя файлы CSS, каб пераканацца, што яны будуць  адроджаны, і добрай вам  дарогі!

Як гэта працуе

Першапачаткова я дадаў :line_numbers для Sass у надзеі зрабіць убудову, яктыкія, якія маглі б чытаць нумары і імёны, паказваць іх замест звычайных ліній Firebug і іменаў файлавай інфармацыі. Нажаль, высвятлілася, што ў аналізе файла CSS, усё інфармацыю, якая тычыцца каментараў, выкінуць.

Далей, я гуляў з праходзілай у інфармацыю карыстацкіх уласцівасцяў. -sass-line-number і -sass-filename у ўласцівасцях было прыгожае рашэнне, але, нажаль браўзара адкідае ўсе невядомыя ўласцівасці гэтак жа таранна, як робіць заўвагі.

Я рабіў гэта за паўтара гады даапісаных вышэй падзей. Я быў вельмі засмучаны ў сувязі з адсутнасцю падтрымкі Firebug,  #Haml на Freenode,  пагэтаму я вырашыў яшчэ раз зірнуць на гэту праблему. І я сутыкнуўся з жудаснай, абыходная, але ў выніку функцыянальнай халтурай.

Хітрасць складаецца ў заявах  сродкаў масавай інфармацыі. Калі заява для сродкаў масавай інфармацыі невядомага тыпу выкарыстоўваецца,  то ўсе правілы гэтай заявы ігнаруюцца, але яны ўсё яшчэ з’яўляецца  даступнай  праз Javascript. Такім чынам, я сабраў усю адладкавую інфармацыю для кожнага правіла ў заявах сродкаў масавай інфармацыі, накшталт наступнага:

@media -sass-debug-info {... }

Нават пасля гэтага, ёсць яшчэ істотныя складанасці, калі вам цікава, я прапаную вам прачытаць Sass і FireSass код. Вынік, аднак, складаецца ў тым, што дадзеныя ёсць, і FireSass можа  іхпрачытаць.

Вядома, дадаўшы дадатковыя @media дэкларацыі для кожнага правіла, вы  створыце мноства стыляў. Такім чынам :debug_info аўтаматычна адключаецца пры выкарыстанні :compressed выснова стыляў, якія заўсёды павінны быць уключаны ў вытворчасць.

Comments are closed.