В первой части мы узнали о возможностях Emmet и о том, как он может ускорить ваш рабочий процесс. В этой части мы узнаем, как установить и использовать Emmet.
Emmet доступен для очень многих текстовых редакторов, но я буду использовать SublimeText , очень популярный и многофункциональный текстовый редактор. Если вы используете другой текстовый редактор, проверьте документацию по адресу http://emmet.io/download/ .
Установка Emmet в SublimeText
Для установки Emmet в SublimeText необходимо выполнить два шага. Сначала я установлю Package Control для SublimeText, а затем я установлю плагин Emmet.
Шаг 1. Установите пакет управления
			 С SublimeText Package Control мы можем легко установить новые плагины.  После установки SublimeText зайдите на сайт https://sublime.wbond.net/installation, чтобы скопировать код для SublimeText2 или SublimeText3 — какую бы версию вы не использовали — нажмите ctrl+` или перейдите в« View > Show Console .  После открытия вставьте соответствующий код для вашей версии SublimeText в консоль.  После завершения установки перезапустите SublimeText. 
Шаг 2: Установите плагин Emmet
  После перезапуска SublimeText перейдите в « Preferences > package Control и введите « install package .  В появившемся окне введите / найдите Emmet и выберите, чтобы установить его.  После завершения установки перезапустите SublimeText, чтобы изменения вступили в силу. 
Начало работы с Эмметом
  Если вы никогда не использовали Emmet, вы знаете, что написание HTML-кода занимает много времени.  Давайте предположим, что вы создаете новый HTML-файл и вам нужны некоторые необходимые теги html, head, title, body с HTML5 doctype , например: 
 <!doctype HTML> <HTML Lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </HTML> 
  У вас может быть шаблон по умолчанию для начала, или, возможно, вы сохраняете код и просто копируете и вставляете код каждый раз.  Если вы делаете это, вы тратите свое драгоценное время.  С Emmet создание кода выше займет около двух или трех секунд.  Создайте новый файл и сохраните его как .html (например, index.html) и введите html:5 или !  и нажмите tab , или ctrl+e или любую другую клавишу триггера в текстовом редакторе, чтобы развернуть аббревиатуру, и у вас будет HTML5 doctype и несколько необходимых тегов. 
  В SublimeText Tab есть ключ, используемый для расширения аббревиатур.  Давайте начнем с некоторых основ, а позже мы узнаем о более сложных примерах.  Создайте новый файл с SublimeText, сохраните его как emmet.html или index.html.  Теперь введите HTML:5 или !  и нажмите Tab и вы получите базовый HTML-код для нашей страницы. 
Некоторые полезные ярлыки HTML
Есть так много ярлыков для HTML и CSS, вот некоторые из наиболее широко используемых.
1: Основная разметка с HTML5 Doctype
!илиhtml:5
расширяется до
 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html> 
2: скрипт с источником
 script:src 
расширяется до
 <script src=""></script> 
3: X-UA-совместимый метатег
 meta:compat 
расширяется до
 <meta http-equiv="X-UA-Compatible" content="IE=7"> 
4: мета-порт viwe
 meta:vp 
расширяется до
 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 
5: стиль CSS
 style 
расширяется до
 <style></style> 
6: Связывание favicon
 link:favicon 
расширяется до
 <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> 
7: Ссылка для RSS
 link:rss 
расширяется до
 <link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml"> 
8: ссылка для атома
 link:atom 
расширяется до
 <link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml"> 
9: тег привязки
 a 
расширяется до
 <a href=""></a> 
10: ссылка со значением по умолчанию
 a:link 
расширяется до
 <a href="http://"></a> 
11: почта для ссылки
 a:mail 
расширяется до
 <a href="mailto:"></a> 
12: изображение
 img 
расширяется до
 <img src="" alt=""> 
13: Форма с методом get
 form:get 
расширяется до
 <form action="" method="get"></form> 
14: Форма с методом сообщения
 form:post 
расширяется до
 <form action="" method="post"></form> 
15: ввод по умолчанию
 input 
расширяется до
 <input type="text"> 
16: вход скрыт
 input:hidden 
расширяется до
 <input type="hidden" name=""> 
17: кнопка
 btn 
расширяется до
 <button></button> 
18: кнопка отправки
 btn:s 
расширяется до
 <button type="submit"></button> 
19: Необходимая таблица разметки
 table+ 
расширяется до
 <table> <tr> <td></td> </tr> </table> 
20: Слепой Элемент
 select+ 
расширяется до
 <select name="" id=""> <option value=""></option> </select> 
21: условные стили для IE6
 cc:ie6 
расширяется до
 <!--[if lte IE 6]> <![endif]--> 
22: условные стили для IE
 cc:ie 
расширяется до
 <!--[if IE]> <![endif]--> 
23: условные стили для браузеров без IE
 cc:noie 
расширяется до
 <!--[if !IE]><!--> <!--<![endif]--> 
Эммет Шпаргалка
Это всего лишь несколько тегов, которые часто используются веб-разработчиками. Вы можете просмотреть полный список поддерживаемых синтаксисов по адресу http://docs.emmet.io/cheat-sheet/ .
Таблицы стилей CSS
  Вы можете легко добавить CSS по умолчанию или печатать таблицы стилей.  Просто введите link для базовой ссылки, link:CSS для файла style.css по умолчанию и link:print для таблицы стилей печати.  Вы можете переопределить значения атрибутов по умолчанию и добавить новые.  Дочерние элементы также могут быть добавлены. 
1. Базовая ссылка CSS
Link 
  преобразуется в следующий код с табуляцией внутри пустого атрибута href="" . 
	<link rel="stylesheet" href=""> 
2. Связывание ссылки по умолчанию style.css
Link:css 
превратится в следующий код
 <link rel="stylesheet" href="style.css"> 
3. Связывание таблицы стилей печати
Link:print 
превратится в.
 <link rel="stylesheet" href="print.css" media="print"> 
4. Переопределение атрибута по умолчанию
 link[rel=prefetch title="Hello world"] 
расширяется до
 <link rel="prefetch" href="" title="Hello world"> 
5. Добавление дочерних элементов
link>xsl:apply-templates 
расширяется до
 <link rel="stylesheet" href=""> <xsl:apply-templates></xsl:apply-templates> </link> 
Понимание CSS-подобных сокращений
Сокращения в Emmet делают написание утомительного кода разметки быстрым. Сокращения оптимизированы для генерации HTML и XML, но не ограничиваются ими. Синтаксис аббревиатур выглядит как селекторы CSS, поэтому вам не составит труда выучить его, если вы знакомы с CSS.
Давайте использовать сокращения для создания некоторой базовой разметки HTML для нашей веб-страницы с заголовками, разделами основного и нижнего колонтитула с необходимыми классами.
Давайте начнем с очень простого примера. просто введите
 header#site-header 
и ты увидишь
 <header id="site-header"></header> 
Если вы печатаете
 header#site-header>h1.logo>a{site name} 
и нажмите Tab, он расширится до
 <header id="site-header"> <h1 class="logo"><a href="">site name</a></h1> </header> 
Основная разметка для страницы
Чтобы создать веб-страницу с необходимой основной разметкой, введите следующий код и нажмите клавишу Tab или Ctrl + E в редакторе.
 header#site-header^div.container#main>.primary+aside#sidebar^footer#site-footer 
  Вышеуказанное сокращение создаст следующую разметку.  Как вы видите, у нас есть три раздела для нашей страницы: сначала у нас есть header с идентификатором site-header , затем у нас есть основной div с классом .container и id main , а затем у нас есть раздел нижнего колонтитула с Идентификатор site-footer .  Вы можете применять идентификаторы и классы к любым элементам, как я применил к нашему <div class="container" id="main"> 
 <header id="site-header"></header> <div class="container" id="main"> <div class="primary"></div> <aside id="sidebar"></aside> </div> <footer id="site-footer"></footer> 
Более сложный пример : в приведенном выше примере я создал разделы (верхний, основной, основной, боковой, нижний колонтитул) для нашей веб-страницы, но теперь я собираюсь добавить дополнительную информацию и разметку в наших разделах. Emmet очень мощный, и вы можете генерировать очень сложный код. В следующем примере я собираюсь создать разметку для всей веб-страницы. Посмотрите на это, и тогда я определю это.
 (header#site-header>h1.logo>a[href=#]{site name})^div.container#main>(.primary>h1.post-title{post title here}+img.featured-img+p{post text here})+(aside#sidebar>#widget>h2.widget-title+p{widget text})^footer.#site-footer>.col-4.widget*3>h2.widget-title+p.widget-text 
Приведенный выше код сгенерирует следующую разметку HTML:
<header id="site-header"> <h1 class="logo"><a href="#">site name</a></h1> </header> <div class="container" id="main"> <div class="primary"> <h1 class="post-title">post title here</h1> <img src="" alt="" class="featured-img"> <p>post text here</p> </div> <aside id="sidebar"> <div id="widget"> <h2 class="widget-title"></h2> <p>widget text</p> </div> </aside> </div> <footer class="" id="site-footer"> <div class="col-4 widget"> <h2 class="widget-title"></h2> <p class="widget-text"></p> </div> <div class="col-4 widget"> <h2 class="widget-title"></h2> <p class="widget-text"></p> </div> <div class="col-4 widget"> <h2 class="widget-title"></h2> <p class="widget-text"></p> </div> </footer>в<header id="site-header"> <h1 class="logo"><a href="#">site name</a></h1> </header> <div class="container" id="main"> <div class="primary"> <h1 class="post-title">post title here</h1> <img src="" alt="" class="featured-img"> <p>post text here</p> </div> <aside id="sidebar"> <div id="widget"> <h2 class="widget-title"></h2> <p>widget text</p> </div> </aside> </div> <footer class="" id="site-footer"> <div class="col-4 widget"> <h2 class="widget-title"></h2> <p class="widget-text"></p> </div> <div class="col-4 widget"> <h2 class="widget-title"></h2> <p class="widget-text"></p> </div> <div class="col-4 widget"> <h2 class="widget-title"></h2> <p class="widget-text"></p> </div> </footer>
  Теперь внимательно посмотрите на приведенный выше код и обратите внимание на функции и символы, которые я использовал для генерации приведенного выше кода.  Я использовал скобки () для группировки секции заголовка, затем я использовал ^ чтобы подняться на одну секцию вверх, чтобы отделить заголовок и контейнер #main.  Чтобы сделать вышеупомянутое длинное сокращение более простым, давайте разберем его на три части. 
Эта аббревиатура будет генерировать разметку для раздела заголовка:
 (header#site-header>h1.logo>a[href=#]{site name})^ 
Эта аббревиатура будет генерировать разметку для основного раздела:
 div.container#main>(.primary>h1.post-title{post title here}+img.featured-img+p{post text here})+(aside#sidebar>#widget>h2.widget-title+p{widget text})^ 
Эта аббревиатура будет генерировать разметку для раздела нижнего колонтитула:
 footer.#site-footer>.col-4.widget*3>h2.widget-title+p.widget-text 
  Вы можете видеть, что я использовал () и ^ несколько раз, чтобы разделить разделы и создать более сложный код. 
В третьей части я расскажу о синтаксисе и функциях.