Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры

Π—Π° Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ послал Π½Π°ΠΌ прСпроцСссоры? Π§Π΅ΠΌ ΠΌΡ‹ тСбя ΠΏΡ€ΠΎΠ³Π½Π΅Π²Π°Π»ΠΈ?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ прСпроцСссоры CSS ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹.

Π’ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π² КодС ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ простой CSS-ΠΊΠΎΠ΄. Он ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ понятный. Но Ρƒ нас малСнькиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… CSS-ΠΊΠΎΠ΄ разрастаСтся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ сопровоТдСниС становится ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ прСпроцСссоры.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ прСпроцСссоры

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ β€” инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Ρ‘Ρ‚ тСкст ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ получаСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ тСкст. Π’ случаС с CSS прСпроцСссоры ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ CSS-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π° основС Π±ΠΎΠ»Π΅Π΅ простого ΠΊΠΎΠ΄Π°.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ 30 Ρ€Π°Π·Π½Ρ‹Ρ… стилСй CSS-ΠΊΠ½ΠΎΠΏΠΎΠΊ. Они Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Π΄Π΅Π»: ΠΎΠ΄Π½ΠΈ опасныС, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ бСзопасныС, ΠΎΠ΄Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈ Ρ‚. Π΄. И Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ Ρ„ΠΎΡ€ΠΌΡ‹ Π²Π²ΠΎΠ΄Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсныС элСмСнты, внСшний Π²ΠΈΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прописан Π² CSS.

И Π²ΠΎΡ‚ Ρƒ всСх этих элСмСнтов сСйчас стоит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ border-radius: 7px, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ скруглСниС ΠΏΠΎ ΡƒΠ³Π»Π°ΠΌ β€” сСмь пиксСлСй. И Π²Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: «Всё ΠΏΡ€ΠΎΠΏΠ°Π»ΠΎ, ΡΡ‚Π°Π²ΡŒ скруглСниС 8 пиксСлСй!Β» Π’Ρ‹ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²ΠΎ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² CSS-Ρ„Π°ΠΉΠ» ΠΈ Π² 30 мСстах мСняСтС 7px Π½Π° 8px.

ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: «Миша, всё Π΅Ρ€ΡƒΠ½Π΄Π°, Π΄Π°Π²Π°ΠΉ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ 6 пиксСлСй». МоТно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° стулом, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСпроцСссор.

Π‘ прСпроцСссором Ρƒ вас 30 ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

border-radius: $defaultBorderRadius

А Π³Π΄Π΅-Ρ‚ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ мСстС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· написано:

$defaultBorderRadius: 7px;

И ΠΊΠΎΠ³Π΄Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ скруглСниС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…, Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π½Π΅ нанося тСлСсныС поврСТдСния Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρƒ.

КакиС Π±Ρ‹Π²Π°ΡŽΡ‚ прСпроцСссоры CSS

Sass. Появился Π² 2006 Π³ΠΎΠ΄Ρƒ ΠΊΠ°ΠΊ способ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с CSS ΠΈ сразу стал популярСн Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². НСкоторыС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ Sass нСвысокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ Sass Π΅ΡΡ‚ΡŒ Π΄Π²Π° синтаксиса:

LESS. Π’ 2009 Π³ΠΎΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ свою Π²Π΅Ρ€ΡΠΈΡŽ прСпроцСссора, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Sass. Они взяли Π·Π° основу чистый CSS-синтаксис ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π½Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π² Sass. ВСхничСски это интСрСснСС, Ρ‡Π΅ΠΌ простой Sass, Π½ΠΎ нСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это сильно ΠΊΡ€ΡƒΡ‡Π΅, Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ SCSS.

Stylus ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прСпроцСссоры β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΡ‚ ΠΆΠ΅ Stylus. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ синтаксис, Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ простой.

Какой Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

По сути всС ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅: ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с CSS-ΠΊΠΎΠ΄ΠΎΠΌ, поэтому это вопрос вкуса ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π΅ΠΊ. Если Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΌΡ‹ Π±Ρ‹ сдСлали Ρ‚Π°ΠΊ:

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСпроцСссоры

Если Ρƒ вас CSS-ΠΊΠΎΠ΄ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ большС ΠΎΠ΄Π½ΠΎΠΉ-Π΄Π²ΡƒΡ… страниц, Π½Π΅Ρ‚ смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСпроцСссоры: настройка ΠΈ описаниС ΠΊΠΎΠ΄Π° Π·Π°ΠΉΠΌΡ‘Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ сразу Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ. А Π²ΠΎΡ‚ Ссли Ρƒ вас большой сайт с Ρ€Π°Π·Π½Ρ‹ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ Π½Π° страницС ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ слоТная CSS-вёрстка, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ ΡƒΠΆΠ΅ пригодятся прСпроцСссоры.

ΠœΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ прСпроцСссоров Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ SCSS-синтаксиса. Для Π΄Ρ€ΡƒΠ³ΠΈΡ… прСпроцСссоров ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, отличия Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… символах.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ для ссылок, Ρ€Π°ΠΌΠΎΠΊ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ этот Ρ†Π²Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π—Π°Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ Ρ†Π²Π΅Ρ‚ элСмСнта:

ΠŸΡ€ΠΎΡΡ‚Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами. Когда ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ красивыС ссылки, Ρ‚ΠΎ Ρƒ нас Π±Ρ‹Π»Π° влоТСнная структура для элСмСнта Π°: ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ, Ρ†Π²Π΅Ρ‚ послС посСщСния ссылки, Ρ†Π²Π΅Ρ‚ Π΄ΠΎ посСщСния ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π΅:

ΠœΠΈΠΊΡΠΈΠ½Ρ‹. Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ Ρ€Π°Π· с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Новый ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ миксина. Ими ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ куски ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π»ΠΈΠ½ΡŒΡΠΆ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρƒ. Но для мСню Π½ΡƒΠΆΠ΅Π½ красный тСкст, Π² подсказках β€” Π±Π΅Π»Ρ‹ΠΉ Π½Π° Ρ‡Ρ‘Ρ€Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅, Π° основной тСкст ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ. Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

@mixin good-text <
font: <
family: Arial;
size: 20px;
weight: bold;
>
>
.page-text <
@include good-text;
color: #000000;
>
.menu-text <
@include good-text;
color: #ff0000;
>
.tip-text <
@include good-text;
color: #ffffff;
background-color: #000000;
>

.page-text <
font-family: Arial;
font-size: 20px;
font-weight: bold;
color: #000000;
>
.menu-text <
font-family: Arial;
font-size: 20px;
font-weight: bold;
color: #ff0000;
>
.tip-text <
font-family: Arial;
font-size: 20px;
font-weight: bold;
color: #ffffff;
background-color: #000000;
>

Π§Π΅ΠΌ большС ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² CSS-Ρ„Π°ΠΉΠ»Π΅, Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠ· этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ миксин.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹. Бильная сторона прСпроцСссоров β€” использованиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… вычислСний для получСния Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. НапримСр, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько Π²ΠΈΠ΄ΠΎΠ² ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° 4 ΠΏΡƒΠ½ΠΊΡ‚Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ экрана β€” Π±Π΅Ρ€ΠΈΡ‚Π΅ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки прСпроцСссоров

Π’Π°ΠΊ ΠΊΠ°ΠΊ всС CSS-прСпроцСссоры Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, Ρ‚ΠΎ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ слабыС стороны Ρƒ Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅:

✅ Π₯ΠΎΡ€ΠΎΡˆΠΎ подходят для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

✅ Бильно Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ возмоТности ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ CSS.

✅ Π£ΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

✅ ΠŸΡ€ΠΎΡ‰Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии.

✅ Π‘Ρ€Π°Π·Ρƒ Π²ΠΈΠ΄Π½Π° логичСская структура CSS, Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, ΠΈΠ· Ρ‡Π΅Π³ΠΎ состоит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт.

❌ НСт смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ простых страницах.

❌ На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ прСпроцСссора получаСтся CSS-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слоТно ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ.

❌ НуТно ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ самого CSS.

❌ Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прСпроцСссора свой синтаксис, ΠΈ Π½Π΅ получится быстро ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ

Sass β†’ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ sass-scss.ru, Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим прСпроцСссором. ДокумСнтация Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ подробная, Ρ‡Ρ‚ΠΎ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌ инструмСнтом.

LESS β†’ ΠŸΡƒΡ‚Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΏΠΎ CSS-прСпроцСссору Less. ΠŸΡ€ΠΎΡΡ‚ΠΎ, Π΄ΠΎΡ…ΠΎΠ΄Ρ‡ΠΈΠ²ΠΎ ΠΈ с ΠΊΡƒΡ‡Π΅ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Stylus β†’ Ссли Π·Π½Π°Π΅Ρ‚Π΅ английский, ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ β€” ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ использованию ΠΈ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ЯндСкс.ΠŸΠΎΡ‡Ρ‚Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ прСпроцСссор HTML?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎ прСпроцСссорС HTML ΠΈ рассмотрим прСпроцСссор, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для HTML. Как слСдуСт ΠΈΠ· названия, прСпроцСссор β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ этап всСго процСсса компиляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ макросов, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Ρ‚.Π΄. Когда ΠΌΡ‹ пишСм HTML ΠΈ CSS, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π·Π°Π΄Π°Ρ‡Π° нСсколько Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ нСэффСктивности. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Ρ„ΠΎΡ€ΠΌΡƒ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π΅ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² HTML ΠΈ CSS. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ сдСлан с Ρ†Π΅Π»ΡŒΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ совмСстимости Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° добавлСния прСпроцСссора ΡƒΠΊΠ°Π·Π°Π½Π° Π½ΠΈΠΆΠ΅:

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ HAML: Haml ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ абстракции HTML, созданный Π₯эмптоном ΠšΡΡ‚Π»ΠΈΠ½ΠΎΠΌ, ΠΈ СдинствСнная Ρ†Π΅Π»ΡŒ Π΅Π³ΠΎ создания β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ красивой. По сути, это прСпроцСссор Π½Π° основС Ruby, ΠΈ для Π΅Π³ΠΎ установки трСбуСтся Ruby. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ HTML Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ синтаксис HTML ΠΈΠ· синтаксиса прСпроцСссора. Он Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² синтаксисС чистого HTML. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Haml Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ написания встроСнного ΠΊΠΎΠ΄Π° для Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлаСт HTML Π±ΠΎΠ»Π΅Π΅ чистым, Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ динамичСский ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π² HTML. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСпроцСссоры β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ½ΠΈ всСгда ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках, поэтому Haml обрабатываСтся Π² HTML ΠΈ Sass. ΠœΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ HAML:

Для установки HAML:

Для прСобразования HAML Π² HTML:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Команда Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ находится индСксный Ρ„Π°ΠΉΠ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ просто создадим Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ HTML ΠΈ HAML. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ послС прСобразования ΠΈΠ· HTML Π² HAML с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСпроцСссоров.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Html прСпроцСссор nunjucks

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссор

HTML прСпроцСссор β€” это скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ языка Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ HTML. Π—Π°Ρ‡Π΅ΠΌ ΠΆΠ΅ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? Π§Π΅ΠΌ Π½Π΅ устраиваСт ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ html? Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” это ΡƒΠ΄ΠΎΠ±Π½ΠΎ, это ускоряСт процСсс вСрстки сайта.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС сайта ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ (Ρ…Π΅Π΄Π΅Ρ€, Ρ„ΡƒΡ‚Π΅Ρ€, сайтбар ΠΈ Π΄Ρ€). Π§Ρ‚ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ надпись, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ…Π΅Π΄Π΅Ρ€Π΅, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС сайта. HTML ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ позволяСт вынСсти всС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ элСмСнты Π² ΠΎΠ΄ΠΈΠ½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон. ΠŸΡ€ΠΈ этом ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ надпись Π² Ρ…Π΅Π΄Π΅Ρ€Π΅ Π½Π° всСм сайтС Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚.

Π’Π°ΠΊΠΆΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π½Π° страницС список ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ 10 ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ Ρ‚ΠΎΠ²Π°Ρ€Π°, ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ внСсти измСнСния. HTML прСпроцСссор позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² массивС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ список элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅. Π­Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ‡Π΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ HTML.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства использования HTML прСпроцСссоров:

Бписок html прСпроцСссоров:

Π’ΠΎΡ‚ список ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных HTML прСпроцСссоров:

Π¨Π°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ nunjucks

По сути, Nunjucks β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ для JavaScript. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ Π½Π° сторонС сСрвСра Node.js. Но Ρ‚Π°ΠΊΠΆΠ΅, Nunjucks ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для вСрстки сайтов.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ Nunjucks?

Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ html nunjucks (gulp nunjucks)

Для этого ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сборщик ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² gulp ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ gulp-nunjucks. Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π±ΡƒΠ΄Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ npm (для этого ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Node.js сСбС Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€).

Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ с консоли Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ npm:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ„Π°ΠΉΠ» package.json, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ всС зависимости ΠΈ настройки.

Π”Π°Π»Π΅Π΅ устанавливаСм gulp ΠΈ gulp-nunjucks:

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» gulpfile.js. Π’ Π½Π΅ΠΌ находятся Π½Π°Π±ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ для gulp. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для nunjucks:

Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹ Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ gulp глобально, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» package.json, Π² Ρ€Π°Π·Π΄Π΅Π» scripts добавляСм строчку:

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» package.json:

Π­Ρ‚ΠΎ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ настройки gulp для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ nunjucks. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с gulp, ΠΌΡ‹ рассмотрим Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ….

Π”Π°Π»Π΅Π΅ создадим Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠ°ΠΏΠΊΡƒ src ΠΈ dist. Π’ src находится исходники nunjucks. Gulp Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ html Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ dist.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ gulp, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС пишСм:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с nunjucks

И Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, настроили gulp, ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ nunjucks Π² Π΄Π΅Π»Π΅. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, возьмСм простой bootstrap шаблон, состоящий ΠΈΠ· 3-Ρ… страниц, написан Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ html, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ nunjucks.

НаслСдованиС шаблонов

Nunjucks Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ страницы сайта ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ созданным шаблонам. НаслСдованиС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· конструкции block ΠΈ extends.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры

ВсС страницы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ каркас (вСрхняя Ρ‡Π°ΡΡ‚ΡŒ, Ρ„ΡƒΡ‚Π΅Ρ€, сайтбар) ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. На страницС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ присутствуСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π² сайтбарС. Π’Π°ΠΊΠΆΠ΅ Π½Π° всСх страницах, ΠΊΡ€ΠΎΠΌΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ, Π΅ΡΡ‚ΡŒ навигационная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° (ΠΊ этому ΠΌΡ‹ вСрнСмся ΠΏΠΎΠ·ΠΆΠ΅).

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src ΠΏΠ°ΠΏΠΊΡƒ layouts. Π’ Π½Π΅ΠΉ создаСм Ρ„Π°ΠΉΠ» нашСго основного шаблона default.html. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚ΡƒΠ΄Π° всС ΠΎΠ±Ρ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° всСх страницах, Π° вмСсто измСняСмой части ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ block:

И Ρ‚Π°ΠΊ, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ <% block content %> <% endblock %>Π² Ρ‚ΠΎ мСсто, Π³Π΄Π΅ подставляСтся основная информация страницы. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ <% block aside %> <% endblock %>для Π²Ρ‹Π²ΠΎΠ΄Π° сайтбара, Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ‚Π΅Π³Π°ΠΌΠΈ вставили Π±Π»ΠΎΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ страницах ΠΎΠ½ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ.

Π’ ΠΏΠ°ΠΏΠΊΠ΅ src создаСм Ρ„Π°ΠΉΠ» index.html, Π² Π½Π΅ΠΌ наслСдуСм наш Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ content ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ содСрТимоС страницы сайта:

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ мСню ΠΈΠ»ΠΈ Ρ„ΡƒΡ‚Π΅Ρ€ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, ΠΈ измСнСния примСнятся Π½Π° всСм сайтС.

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ всС Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ страницы ΠΈ подставим Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° всСх страницах.

ВСрнСмся ΠΊ страницС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹. Помимо ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π½ΠΎΠΉ части, Π² Π½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сайтбар:

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ шаблона Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ (nunjucks include)

Nunjucks позволяСт Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ содСрТимоС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сдСлаСт наш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ простым Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. Вставка ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ осущСствляСтся конструкциСй include:

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° нашСм сайтС header, footer ΠΈ sitebar вынСсСм Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π’ ΠΏΠ°ΠΏΠΊΠ΅ src создадим ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ parts, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ всС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ части ΠΊΠΎΠ΄Π°.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ header.html, footer.html ΠΈ sidebar.html. Π‘ основного ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π²Ρ‹Ρ€Π΅Π·Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ части, Π° Π² мСсто Π½ΠΈΡ… прописываСм ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ include. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ» default.html Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’Π°ΠΊ ΠΆΠ΅, Π½Π° страницС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» sidebar.html, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ пСрСопрСдСляСм Π½Π° Π½Π΅ΠΉ сайтбар:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (nunjucks Variables)

ΠžΡ‡Π΅Π½ΡŒ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ выводятся Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах сайта. НапримСр, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ страниц ΠΈ Π΄Ρ€. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… Π² Π½ΡƒΠΆΠ½Ρ‹Ρ… участках ΠΊΠΎΠ΄Π°.

Π’ nunjucks ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ конструкциСй:

Π’Ρ‹Π²ΠΎΠ΄ содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° шаблон default.html. Π’ Π½Π΅ΠΌ title ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ страниц ТСстко прописаны Π² ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти значСния Ρ€Π°Π·Π½Ρ‹Π΅ Π½Π° всСх страницах. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС Π·Π°Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ title ΠΈ pageName ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΡ… Π² Π½Π°Ρ‡Π°Π»Π΅ страниц:

Π’ шаблонС Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ эти значСния:

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы свой title ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.

Nunjucks import

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ import позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π΅Π³ΠΎ экспортированным значСниям (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ миксинам).

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ посмотрим Π½Π° наш сайт. Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΈ Π² сайтбарС выводится контактная информация: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры

Π•Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Но эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ всСго сайта, Π° Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… страниц. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, создадим Ρ„Π°ΠΉΠ», Π³Π΄Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для всСго сайта ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² основном шаблонС. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡƒ data Π² src, Π² Π½Π΅ΠΉ Ρ„Π°ΠΉΠ» data.html. Π’ самом Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π° default.html прописываСм ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ import:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм значСниям Π² data.html Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ data.

Π’ data.html Π΄ΠΎΠ±Π°Π²ΠΈΠΌ 2 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ„Π°ΠΉΠ»Π°Ρ… header.html ΠΈ contact.html Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

Условия (Nunjucks if)

Π’ nunjucks, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ…, Π΅ΡΡ‚ΡŒ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if. If провСряСт условия ΠΈ позволяСт Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ содСрТимоС:

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ условия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкций elseif ΠΈ else:

ВСрнСмся ΠΊ тСстовому сайту. Как ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, навигационная Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ выводится Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС. Π”Π°Π²Π°ΠΉΡ‚Π΅ это исправим.

На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

Π­Ρ‚ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (ярлык) для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы.

Π”Π°Π»Π΅Π΅, Π² основном шаблонС Π·Π°Π΄Π°Π΅ΠΌ условиС для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ:

Если пСрСмСнная pageSlug Π½Π΅ Ρ€Π°Π²Π½Π° home, Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π±Π»ΠΎΠΊ с ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈ Π½Π° всСх страницах, ΠΊΡ€ΠΎΠΌΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ.

Π’Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (If Expression)

Π’Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€” конструкция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π² зависимости ΠΎΡ‚ логичСского выраТСния. НСчто ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΅ΡΡ‚ΡŒ ΠΈ Π² nunjucks:

Если условиС истинно, Ρ‚ΠΎ вывСдСтся home, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС default.

На нашСм тСстовом сайтС Π² навигациях Π½Π΅ опрСдСляСтся активная страница. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ„Π°ΠΉΠ» header.html, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ мСсто Π³Π΄Π΅ выводится мСню ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

Π’ΠΎΠΆΠ΅ самоС Π΄Π΅Π»Π°Π΅ΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ sidebar.html:

Π¦ΠΈΠΊΠ»Ρ‹

Π¦ΠΈΠΊΠ»Ρ‹ β€” это опСрация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ дСйствиС выполняСтся нСсколько Ρ€Π°Π·. Π’ nunjucks Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ конструкция для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ²:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСчислСны всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ name ΠΈ surname ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² массивС users.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ВСрнСмся ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, сСйчас ΠΎΠ½Π° Π·Π°Π΄Π°Π½Π° ТСстко Π² шаблонС ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π”Π°Π²Π°ΠΉ это исправим.

На страницах, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈ, Π·Π°Π΄Π°Π΄ΠΈΠΌ массив с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ элСмСнтами:

Π’ основном шаблонС Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ элСмСнты Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ:

Π’ Ρ†ΠΈΠΊΠ»Π΅ ΠΌΡ‹ провСряСм, Ссли элСмСнт массива послСдний, Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ.

Π’Π°ΠΊ ΠΆΠ΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ нашС мСню Π² Ρ†ΠΈΠΊΠ»Π΅. Для этого Π² Ρ„Π°ΠΉΠ»Π΅ data.html создадим массив с элСмСнтами Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ:

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ мСню Π² Ρ„Π°ΠΉΠ»Π΅ header.html:

Аналогично Π² Ρ„Π°ΠΉΠ»Π΅ sidebar.html:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ элСмСнты мСню Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ измСнСния примСнятся Π½Π° всСм сайтС, Π½Π° всСх страницах.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ (macro)

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π² любом шаблонС. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² языках программирования. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ синтаксиса макроса:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ макрос с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·:

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ isAdmin Π·Π°Π΄Π°Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с макросами Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. На Π³Π»Π°Π²Π½ΠΎΠΉ страницС ΠΈ страницС сСрвисы Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ со списком элСмСнтов, Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ содСрТимым: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ html прСпроцСссоры

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ этот Π±Π»ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² ΠΏΠ°ΠΏΠΊΠ΅ src ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ macro. Π’ Π½Π΅ΠΌ Ρ„Π°ΠΉΠ» macro.html, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС наши макросы. Как ΠΈ Π² случаС с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² основной шаблон:

Π”Π°Π»Π΅Π΅ создаСм наш макрос, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ ItemList, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся массив с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:

ПослС этого Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ макрос Π² Π½ΡƒΠΆΠ½Ρ‹Ρ… мСстах, пСрСдавая Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния. Π€Π°ΠΉΠ» index.html:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ макрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·, пСрСдавая Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ (Nunjucks filters)

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ β€” это конструкция, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° манипуляции Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ nunjucks Π΅ΡΡ‚ΡŒ большоС количСство встроСнных Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ abs Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° посмотрим Π½Π° нашСм сайтС. Π Π°Π½Π΅Π΅ ΠΌΡ‹ создали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ phone ΠΈ присвоили Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (123) 456-7890. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вывСсти Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ссылкой Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ всС лишниС символы ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа. Для этого ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ replace:

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ эту ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π°Ρ… header.html:

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

ΠœΡ‹ рассмотрСли основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ использования ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° nunjucks. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ создали нСбольшой сайт Π½Π° этом прСпроцСссорС. Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ изучСния ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ nunjucks.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹

ΠŸΡ€ΠΎΡ†Π΅ΡΡ написания HTML ΠΈ CSS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсколько ΠΈΠ·Π½ΡƒΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ мноТСства ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ снова ΠΈ снова. Π’Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π΅Π³ΠΎΠ² Π² HTML ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½Ρ‹ΠΉ просмотр ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ†Π²Π΅Ρ‚Π° Π² CSS.

Π’Π°ΠΊΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, нСбольшиС, Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, эти ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… нСэффСктивных Π·Π°Π΄Π°Ρ‡ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½Ρ‹ ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΈΠΌ бросили прСпроцСссоры.

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Π±Π΅Ρ€Ρ‘Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ случаС HTML ΠΈ CSS, ΠΎΠ΄Π½ΠΈ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных языков прСпроцСссора β€” это Haml ΠΈ Sass. Haml прСобразуСтся Π² HTML, Π° Sass прСобразуСтся Π² CSS.

ПослС своСго становлСния, ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Haml ΠΈ Sass нашли ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… способов для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй HTML ΠΈ CSS. НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚Ρ‘ΠΌ удалСния нСэффСктивных Π·Π°Π΄Π°Ρ‡, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ созданиСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сайтов ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ прСпроцСссорам Ρ‚Π°ΠΊΠΆΠ΅ принСсли Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚; ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных являСтся Compass.

Haml (HTML abstraction markup language, абстрактный язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ HTML) β€” это язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ с СдинствСнной Ρ†Π΅Π»ΡŒΡŽ β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ. Являясь собствСнным языком Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΠ΄, написанный Π½Π° Haml, ΠΏΠΎΠ·ΠΆΠ΅ прСобразуСтся Π² HTML. Haml ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Β«Π½Π΅ повторяйся» ΠΈ способствуСт Ρ…ΠΎΡ€ΠΎΡˆΠΎ структурированной Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, создавая приятный ΠΎΠΏΡ‹Ρ‚ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ Π΅Ρ‘ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Установка

Haml Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ruby для компиляции Π² HTML, поэтому ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг для Π΅Π³ΠΎ использования β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ установлСн Ruby. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Mac OS X, систСма поставляСтся с прСдустановлСнным Ruby, Π° Ρ‚Π΅, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° Windows, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ установщику Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ПослС установки Ruby Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Terminal ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π‘Π»Π΅ΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΎΠΉ

К соТалСнию, Haml Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ способ слСТСния Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π±Π΅Π· использования Π΄Ρ€ΡƒΠ³ΠΈΡ… зависимостСй.

Π’Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния Rails Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Haml ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Gemfile, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, автоматичСски компилируя Ρ„Π°ΠΉΠ»Ρ‹ Haml Π² HTML ΠΏΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… измСнСниях. Π•ΡΡ‚ΡŒ нСсколько Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, доступных для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Rails, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных являСтся CodeKit.

CodeKit Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прСпроцСссоры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ.

Π”ΠΎΠΊΡ‚Π°ΠΉΠΏ

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈ написании Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° Haml β€” это Π·Π½Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡ‚Π°ΠΉΠΏΠ° Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ основным Ρ‚ΠΈΠΏΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ HTML5. Π’ Haml Ρ‚ΠΈΠΏΡ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ трСмя Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ (. ), Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄Ρ‘Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈ нСобходимости.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄ΠΎΠΊΡ‚Π°ΠΉΠΏ Π² Haml β€” это HTML 1.0 Transitional. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ HTML5, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρƒ ΠΏΡΡ‚ΡŒ послС Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² (. 5).

ОбъявлСниС элСмСнтов

Одной ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… особСнностСй Haml являСтся Π΅Π³ΠΎ синтаксис ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΈ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ элСмСнты. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ HTML, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, содСрТат ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² элСмСнтах Haml Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ со Π·Π½Π°ΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° (%), Π° Π·Π°Ρ‚Π΅ΠΌ отступ опрСдСляСт Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. ΠžΡ‚ΡΡ‚ΡƒΠΏ Π² Haml ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ отступы ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Вабуляция ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ число табуляций ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π° протяТСнии всСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

УстранСниС нСобходимости Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ структура с отступами создаёт схСму, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅Π³ΠΊΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ. Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π΅Π³Π»ΠΎ просмотрСна ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π°.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкста

ВСкст Π² Haml ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт ΠΈΠ»ΠΈ с отступом Π½ΠΈΠΆΠ΅ элСмСнта. ВСкст Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт, ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅ Π½Π΅Π³ΠΎ; Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Атрибуты

Атрибуты, ΠΊΠ°ΠΊ ΠΈ элСмСнты, ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π² Haml. Атрибуты ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ нСпосрСдствСнно послС элСмСнта, Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис Ruby ΠΈΠ»ΠΈ HTML. Атрибуты Π² стилС Ruby Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный синтаксис Ρ…ΡΡˆΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ <>, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π² стилС HTML Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный синтаксис HTML Π²Π½ΡƒΡ‚Ρ€ΠΈ ().

ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ классы ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ нСсколько ΠΈΠ½Π°Ρ‡Π΅. ВмСсто пСрСчислСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² class ΠΈ id с ΠΈΡ… значСниями Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ нСпосрСдствСнно послС элСмСнта. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‡ΠΊΡƒ для классов, Π»ΠΈΠ±ΠΎ Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΡƒ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ сразу послС элСмСнта.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΌΠ΅ΡˆΠ°Π½Ρ‹, соСдиняясь вмСстС Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π½Π΅Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².

ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π²

Π’ случаС, Ссли класс ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²

ЛогичСскиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹

ЛогичСскиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ссли ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π² Ruby ΠΈΠ»ΠΈ Π² HTML, Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ синтаксиса.

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста

Одним ΠΈΠ· прСимущСств Haml являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ruby, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ всСгда ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ дСйствиС. ВСкст ΠΈ строки ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (\), Ρ‡Ρ‚ΠΎ позволяСт тСксту ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² явном Π²ΠΈΠ΄Π΅ Π±Π΅Π· выполнСния.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† = @author выполняСтся Ruby, получая имя Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· прилоТСния. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† начинаСтся с ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ тСкст, ΠΈ пСчатаСтся ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ Π±Π΅Π· выполнСния.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ экранирования тСкста

ВрСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ экранирования тСкста нСдостаточно ΠΈ Ruby Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для формирования ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Одним популярным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ для этого являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ сразу послС ссылки, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ тСкста ссылки. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Π½ΠΎΠ²ΠΎΠΉ строкС Π½Π΅ являСтся ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ класса, вызывая ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ экранируСт символ, ΠΎΠ΄Π½Π°ΠΊΠΎ поставит ΠΏΡ€ΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ послСдним словом ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½Π΅ производя ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π’ этих случаях пригодится ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Ruby. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для размСщСния Ρ‚ΠΎΡ‡ΠΊΠΈ нСпосрСдствСнно послС послСднСго слова, Π½ΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ тСкста ссылки.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Подобно элСмСнтам ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Haml ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Код ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ достаточно просто с использованиСм ΠΎΠ΄Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (/). ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ строки, Π° Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ.

УсловныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

УсловныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π² Haml. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ условный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ([]) Π²ΠΎΠΊΡ€ΡƒΠ³ условия. Π­Ρ‚ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ нСпосрСдствСнно послС косой Ρ‡Π΅Ρ€Ρ‚Ρ‹.

Π’ΠΈΡ…ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Haml Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ особыС Ρ‚ΠΈΡ…ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π’ΠΈΡ…ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ основных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² HTML Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ послС компиляции любоС содСрТаниС Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΈΡ…ΠΎΠ³ΠΎ коммСнтария ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удаляСтся с этой страницы ΠΈ Π½Π΅ отобраТаСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ…. Π’ΠΈΡ…ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с дСфиса, Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄Ρ‘Ρ‚ Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠ° (-#). Как ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ коммСнтариями, Ρ‚ΠΈΡ…ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для удалСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ влоТСнности.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹

Haml ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ нСсколько Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π²Π²ΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Haml. Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с двоСточия, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ΄Ρ‘Ρ‚ имя Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, :markdown, со всСм содСрТимым для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ влоТСния ΠΏΠΎΠ΄ Π½ΠΈΠΌ.

РаспространённыС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ распространённыС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ :css ΠΈ :javascript.

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Javascript

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ CSS ΠΈ Sass

Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ Ruby

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Haml ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ruby, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π° Ruby Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкста. Π’ этом случаС Ruby Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡƒΡ‚Ρ‘ΠΌ обёртывания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Ruby.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Ruby, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ интСрполируСтся ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ класса.

SCSS ΠΈ Sass

SCSS ΠΈ Sass β€” это языки прСпроцСссинга, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² CSS. НСмного Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ Haml ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ написаниС ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡ‰Π΅, прСдлагая для этого совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Ρ‹Ρ‡Π°Π³ΠΎΠ². По ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ SCSS ΠΈ Sass ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ происхоТдСниС, ΠΎΠ΄Π½Π°ΠΊΠΎ тСхничСски Ρƒ Π½ΠΈΡ… Ρ€Π°Π·Π½Ρ‹ΠΉ синтаксис.

Sass (Syntactically Awesome Stylesheets, синтаксичСски Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° стилСй) ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈ Ρƒ Π½Π΅Π³ΠΎ строгий синтаксис с отступами. Sassy CSS послСдовал вскорС послС этого, прСдлагая Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΎΠ³Π½Π΅Π²ΡƒΡŽ ΠΌΠΎΡ‰ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ Sass, Π½ΠΎ с Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ синтаксисом, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ простой CSS.

Установка

Как ΠΈ Haml, SCSS ΠΈ Sass ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ruby, поэтому Ruby Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн для создания Ρ„Π°ΠΉΠ»ΠΎΠ² CSS. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, слСдуйтС Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌ указаниям для установки ΠΈΠ»ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ruby ΡƒΠΆΠ΅ установлСн.

ПослС установки Ruby трСбуСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° gem install sass для установки SCSS ΠΈ Sass.

Команда Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Sass-Ρ„Π°ΠΉΠ» styles.sass ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» styles.css. Как ΠΈ с Haml, эти ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ путями ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° эти Ρ„Π°ΠΉΠ»Ρ‹ находятся Π² ΠΏΠ°ΠΏΠΊΠ΅, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°. Если Ρ„Π°ΠΉΠ»Ρ‹ находятся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠ°ΠΏΠΊΠΈ, Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ явно ΡƒΠΊΠ°Π·Π°Π½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Если измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ постоянно, Sass ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSS ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° происходит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Sass слСдил Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, вмСсто компиляции ΠΈΠ»ΠΈ слСТСниСм Π·Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, Sass способСн ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° всСй ΠΏΠ°ΠΏΠΊΠΎΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Sass ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² CSS, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½ΠΈΠΆΠ΅.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· SCSS Π² Sass ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚

Π£ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ SCSS ΠΈ Sass Π² CSS, Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· SCSS Π² Sass ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠΎΠΌΠ°Π½Π΄Π° sass, показанная Π½ΠΈΠΆΠ΅, для прСобразования Ρ„Π°ΠΉΠ»Π° SCSS Π² Sass, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Sass Π² SCSS, соотвСтствСнно.

Бинтаксис

Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, основноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ SCSS ΠΈ Sass Π² ΠΈΡ… синтаксисС ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° эта Π² дСталях. Бинтаксис SCSS Π½Π΅ сильно отличаСтся ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ CSS. На самом Π΄Π΅Π»Π΅, стандарт CSS Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ SCSS. Sass, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, являСтся довольно строгим ΠΈ любой отступ ΠΈΠ»ΠΈ ошибки символов запрСтят ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ стилСй. Sass опускаСт всС Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки (<>) ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой (;), ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° отступы ΠΈ сплошная строка разбиваСтся для форматирования.

SCSS ΠΏΡ€ΠΎΡ‚ΠΈΠ² Sass

ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” SCSS ΠΈΠ»ΠΈ Sass, сводится ΠΊ Π»ΠΈΡ‡Π½Ρ‹ΠΌ прСдпочтСниям ΠΈ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ принимаСтся Π½Π° основании Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ синтаксиса ΠΈ всС ΠΎΠ½ΠΈ справСдливы.

Π›ΠΈΡ‡Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ синтаксис Sass, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ мСньшС символов ΠΈ обСспСчиваСт, ΠΊΠ°ΠΊ я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Π±ΠΎΠ»Π΅Π΅ чистый синтаксис. Sass Π½Π΅ допускаСт прямой Π²Π²ΠΎΠ΄ CSS ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ SCSS ΠΈ Π½Π΅ станСт ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ с ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ошибками написания. Π£ Sass Ρ‡ΡƒΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ кривая обучСния, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π°, ΠΊΠ°ΠΊ я Π²ΠΈΠΆΡƒ, ΠΈΠ΄Ρ‘Ρ‚ Π·Π° счёт лёгкости управлСния стилями.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² этом ΡƒΡ€ΠΎΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Sass, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ всС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΈ Π½Π° SCSS.

ВлоТСния

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с синтаксисом Π²Ρ‹ΡˆΠ΅ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ сСлСкторы ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π° для создания комплСксных сСлСкторов. ВлоТСнности быстро ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ сСлСкторы, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρ‰ΠΈΡ‚ΡŒ. НС Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΠΉΡ‚Π΅ сСлСкторы Π±Π΅Π· Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΈΠ½Π°Ρ‡Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ сСлСктор ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Π’Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ сСлСкторы Π±Π΅Π· ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ спСцифичности.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ свойства

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ°-запросы

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Π΄ΠΈΠ°-запросы Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΡŒ сСлСктора, мСняя значСния свойств исходя ΠΈΠ· состояния носитСля.

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ сСлСктор

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ сСлСктор

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ сСлСктор Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ сСлСктора, добавляя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сСлСкторы для создания составных сСлСкторов. Π•ΡΡ‚ΡŒ мноТСство способов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ сСлСктор Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ, Π½ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… способов β€” Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ сСлСктора.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Бинтаксис для Ρ‚ΠΈΡ…ΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² β€” это Π΄Π²Π΅ косыС Ρ‡Π΅Ρ€Ρ‚Ρ‹ (//). Π›ΡŽΠ±ΠΎΠ΅ содСрТаниС Π½Π° этой строкС ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ Π½Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ· компиляции. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ строка // ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π΅ отобраТаСтся Π² скомпилированном CSS.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованных особСнностСй CSS, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Sass. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Sass ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² любом мСстС Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Sass. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, с Π½ΠΈΠΌΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ с использованиСм синтаксиса. Π•ΡΡ‚ΡŒ нСсколько случаСв, ΠΊΠΎΠ³Π΄Π° интСрполяция ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Π²Ρ€ΠΎΠ΄Π΅ использования Π² ΠΈΠΌΠ΅Π½Π°Ρ… классов, ΠΈΠΌΠ΅Π½Π°Ρ… свойств ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкста.

ВычислСния

Sass Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ вычислСния Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Расчёты ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ округлСния.

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π½Π°ΠΊΠ° плюс (+) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния. Когда это сдСлано с Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, ΠΎΠ½Π° связываСтся с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ числом Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ эта Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² вычислСнии значСния. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΄Π΅ΡΡΡ‚ΡŒ пиксСлСй плюс ΠΎΠ΄ΠΈΠ½ дюйм Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ 106 пиксСлям. Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ обрабатываСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ слоТСниС, Π½ΠΎ со Π·Π½Π°ΠΊΠΎΠΌ минус (-) вмСсто этого.

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΈ (*), ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· чисСл, Ссли ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния. ИспользованиС Π·Π½Π°ΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² (%) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ остаток ΠΎΡ‚ дСлСния Π΄Π²ΡƒΡ… чисСл, ΠΈ ΠΊΠ°ΠΊ с ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, допускаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния.

Π”Π΅Π»Π΅Π½ΠΈΠ΅

Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π² Sass происходит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. Для выполнСния дСлСния примСняСтся косая Ρ‡Π΅Ρ€Ρ‚Π° (/), которая ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… значСниях свойств CSS. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ мСсто, ΠΊΠΎΠ³Π΄Π° какая-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π² скобки ΠΈΠ»ΠΈ Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ уравнСния.

ΠŸΡ€ΠΈ использовании Π² Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ останСтся Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. ΠŸΡ€ΠΈ использовании Π΄Π²ΡƒΡ… Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π·Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹ΠΌ.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² дСталях

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Sass Ρ‚Π°ΠΊΠΆΠ΅ способСн ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ нСсколько матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Sass ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ скобок.

ЧисловыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Sass Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для манипулирования числовыми значСниями ΠΏΠΎ ТСланию.

Ѐункция percentage() ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹. Ѐункция round() округляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ округляСт Π²Π²Π΅Ρ€Ρ…, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Ѐункция ceil() округляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ… Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, Π° функция floor() округляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ· Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, функция abs() Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа.

Sass прСдоставляСт Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ, прСдлагая нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для измСнСния Ρ†Π²Π΅Ρ‚Π° ΠΈ манипуляций с Π½ΠΈΠΌ. Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Sass являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ RGBa.

ΠšΡ€ΠΎΠΌΠ΅ чисСл, ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ для Ρ†Π²Π΅Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΈ вычислСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ для красной, Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΈ синСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, мСняя ΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для вычислСний ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТно. Π’ этом случаС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ инвСрсии Ρ†Π²Π΅Ρ‚Π°, поиска ΠΊΠΎΠΌΠΏΠ»ΠΈΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ², смСшивания Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ поиска сСрого значСния Ρ†Π²Π΅Ρ‚Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с HSLa

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ Sass Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π’Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° манипуляции обСспСчиваСт наибольший ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройкой ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… свойств Ρ†Π²Π΅Ρ‚Π°. Π‘ этим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, поэтому манипуляции с Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ нСсколько Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стили Π±Π΅Π· явного повторСния ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ классы, прСдлагая ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ способ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. И элСмСнты ΠΈ классы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² качСствС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ сСлСктор-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ, построСнный ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.

Π’ Ρ†Π΅Π»ΠΎΠΌ, это Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π±Π΅Π· увСличСния вСса ΠΊΠΎΠ΄Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ приятно ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ с OOCSS ΠΈ SMACSS.

Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ сСлСктора элСмСнта

Как ΠΈ с классами, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со стандартными сСлСкторами элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅ΡΠΈ

ΠŸΡ€ΠΈΠΌΠ΅ΡΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ простой способ создания шаблонов свойств ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ сСлСкторами. ΠŸΡ€ΠΈΠΌΠ΅ΡΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ Ρƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ находятся фиксированныС значСния.

АргумСнты ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пСрСзаписаны ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

Когда ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ примСси ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ (. ). Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с Ρ‚Π΅Π½ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠΌΠ΅ΡΡŒ значСния, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ запятыми.

Π˜ΠΌΠΏΠΎΡ€Ρ‚

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° всС Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй Π²Π½ΡƒΡ‚Ρ€ΠΈ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ссылаСмся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Sass, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… всС Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° normalize.sass, _grid.sass ΠΈ typography.sass ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ». Π’ этом случаС, Ссли Ρ„Π°ΠΉΠ» Sass с ΠΈΠΌΠ΅Π½Π΅ΠΌ styles.sass ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ ΠΎΠ½ компилируСтся Π² styles.css, Ρ‚ΠΎ Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ слСдуСт ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° styles.css.

Π¦ΠΈΠΊΠ»Ρ‹ ΠΈ условныС выраТСния

Для Π±ΠΎΠ»Π΅Π΅ слоТной стилизации Sass ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ управлСния. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π½Π΅ для повсСднСвного стиля, Π° для создания ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… примСсСй ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ². МногиС ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ заимствованы ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

НСкоторыС Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ условныС выраТСния ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для опрСдСлСния ΠΈΡ… повСдСния. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ равСнства. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π΄Π²ΡƒΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ равСнства ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ равСнство ΠΈΠ»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Ѐункция if

Π¦ΠΈΠΊΠ» for

Π¦ΠΈΠΊΠ» each

Достаточно просто, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ @each Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ стили для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС. Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ нСсколько элСмСнтов, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… запятыми.

Π¦ΠΈΠΊΠ» while

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ @while постоянно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ стили, ΠΏΠΎΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ. Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ пСрСмСнная счётчика позволяСт Ρ‚ΠΎΠ½ΠΊΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Π°.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ прСпроцСссоры

Haml ΠΈ Sass Π½Π΅ СдинствСнныС доступныС прСпроцСссоры, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π°ΠΊΠΆΠ΅ прСпроцСссоры JavaScript. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ популярныС прСпроцСссоры: Jade, Slim, LESS, Stylus ΠΈ CoffeeScript.

Π Π°Π΄ΠΈ краткости Haml ΠΈ Sass Π±Ρ‹Π»ΠΈ СдинствСнными прСпроцСссоры, рассмотрСнныС Π² этом ΡƒΡ€ΠΎΠΊΠ΅. Они Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ построСны с использованиСм Ruby ΠΈ прямо подходят ΠΊ прилоТСниям Ruby on Rails. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сообщСства.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *