Pull to refresh

Comments 112

Простые сокращения мгновенно расширяются в сложные фрагменты кода, Emmet превратит вас в более продуктивного разработчика.
Google Translate превратил вас в более продуктивного переводчика?
Использовался не только Google Translate, а и словари и другие системы перевода, к тому же я работаю над изучением английского языка.
Если у Вас есть лучший вариант перевода — напишите в ПП.
Проблема не в том, насколько хорошо или плохо вы знаете английский язык. Это влияет только на степень вашего мучения при переводе. Проблема в том, что у вас пока нет внутреннего главного редактора, который бы еще раз вычитывал созданное предолжение. Неважно, переводите вы с английского, французского или латинского. Вы прочитали предложение в оригинале? Перевели ее гугл-транслейтом? Поняли, что означает каждое слово? И в конце концов поняли, что означает предложение целиком? Теперь выбросите полученный набор слов и нормальным русским языком напишите, что написал бы автор оригинала, если бы писал на русском.

Вот эти фразы никогда-никогда не могут выйти из-под пера русскоговорящего человека —

«К вложенности сокращений, вы можете построить целую страницу»
«Во-первых, ребенку оператора, в лице >, позволяет вкладывать элементы.» (Это что вообще? Пословный перевод?)
«Наконец, новый подъем вверх-оператора» (no comments)
«CSS3 удивительный, но те приставки браузеров — реальная боль для всех нас.»
«Ну, не больше — у Emmet есть сокращения...»

Ну и можно еще несколько мест процитировать на предмет менее вопиющих ошибок —

Этот революционный плагин, назывался Zen Coding…
Чтобы эффективно использовать вложения не превращая их…
Пиксель не единственная доступная единица.
Что, если вы не хотите все те приставки?
Вы можете определить какие браузеры поддерживать.
Забудьте о тех сторонних сервисах, (англиский торчит из лишнего слова «тех»).

Ложка мёда — ни одной грамматической ошибки :-)
Эту статью перевели еще неделю назад! пруф
Думаю вы не правильно поняли смысла этого предложения.

Я так понимаю смысл быт таков: «Теперь вы сможете сократить время написания кода, и увеличить производительность»
Я так понял, этот плагин является развитием Zen Coding, или от сторонних авторов?

Радует, что плагин есть для большого количества редакторов. :)
Верно. Zen Coding превратился в Emmet.
Автор плагина прокомментировал это так:
С новым названием проект получил новую жизнь и новые возможности.
Чушь. Очень некрасиво Сергей Чикуенок поступил с оригинальным автором идеи и первыми реализациями — Вадимом Макеевым. Хотя бы в раздел благодарностей вписал.

Хотя, безусловно, это никак не умаляет заслуг Сергея.
Хотя бы в раздел благодарностей вписал.

В Благодарности вписаны только те, кто помогал разработке проекта.

И я вам открою один маленький секрет: к первым реализациям (именно реализациям) Вадим Макеев не имеет абсолютно никакого отношения. Ради интереса можете прошерстить историю обновлений проекта. А то, что находится по указанной вами ссылке — всего лишь описание идеи, но никак не реализация.
Без идеи не было бы и реализации.
Первая реализация Zen Coding, если так можно это назвать, была сделана Вадимом где-то в промежутке 2004-2008 для автодоплнения аббревиатур в TopStyle 2. В этом редакторе были готовые аббревиатуры, но по мнению Вадима неправильные.
А откуда взялась библиотека CSS- и HTML-снипетов, Сергей? Это мой код, ты его не на улице нашёл.
Во-первых, это не код, а сниппеты в виде вики-страницы, которые как были в Zen Coding, так там и остались. И я никогда не скрывал, что ты являешься автором идеи Zen Coding.

Во-вторых, в Emmet эти сниппеты сильно переработаны.

В-третьих, я очень сильно сомневаюсь, что люди пользуются Zen Coding/Emmet только потому, что там такие классные сниппеты.

И наконец, вместо того, чтобы постоянно проситься на страницу благодарностей, лучше сделать что-то, за что люди будут благодарны именно тебе.
То есть снипеты взяты, переработаны, но я здесь совсем не причём. Окей. История про Zen Coding и Emmet напоминает провод денег через офшоры: пара-тройка манипуляций и я уже не причём.

Я уже не стремлюсь попасть в «Благодарности», поскольку вижу, что ты не благодарен.
Вадим, мы уже неоднократно говорили на эту тему. Я понимаю, что тебе она не дает покоя, но пора бы уже успокоиться и закрыть ее.

Ты можешь спокойно развивать и разрабатывать Zen Coding (если можешь, конечно), разве тебе кто-то не дает это делать?
С тобой мы уже во всём разобрались и мне всё понятно. Я просто пояснил исторический контекст.
Я вот впервые слышу всю эту историю.
И услышал паралельно от двух разных сторон.
И cбоку действительно выглядит словно chikuyonok нагло присвоил идею pepelsbey
Думаю плюсы/минусы к комментариям показывают, что не я один имею такое впечатление.
UFO just landed and posted this here
А в какой момент идея становится реализацией? Когда я написал в блоге первые размышления о ней? Когда я написал первый набросок? Когда написал полный проект?
Ваше мнение скорее следует читать не как «Идея без реализации ничего не стоит», а как «Реализация без маркетинга»
UFO just landed and posted this here
Статья не в тему. Одна сторона иметь идею, которая возможно никогда не будет реализована. Другая сторона иметь идею, которую развили и присвоили.
UFO just landed and posted this here
в этом смысле хабр поражает. Человек, который реально СДЕЛАЛ, внес огромный вклад в развитие не одного человека, в развитие рынка оказался заминусованным в посте про плагин собственной разработки. Разработчики! плагин для вас делался — за что ж вы человека минусуете?
Но всё же часть.
UFO just landed and posted this here
Реализация без идеи тоже ничего не стоит. Так как её не будет.

Идея CSS-selector-like HTML-сниппетов — то, из-за чего вообще Zen Coding обрёл популярность. Вадим не просто предложил идею, а довольно подробно её описал. И, прямо в описании, предложил кому-нибудь стать соавтором.

Вне зависимости от того, как проект дальше развивался и какие были отношения между автором идеи и тем, кто её реализовал, независимо от того какой сложный в итоге получился код и сколько всего было наверчено поверх, обсуждаемая идея — основополагающая штука, которая была в Зен Кодинге, и без неё Эммет не стал бы столь же популярным.

Вообще, опенсорс и большинство свободных лицензий строится именно на сохранении авторства.

Это то, что лежит в основе — взаимоуважение и послание людям: «сообщество уважает вас и ваши идеи, не бойтесь их выражать, их подхватят другие и разовьют». Сохранение авторства — та штука, которая может мотивировать людей придумывать новое, не класть идеи в стол.
UFO just landed and posted this here
«Присвоить» — нельзя. «Не упомянуть» — можно (но не нужно).

Я за то, чтобы авторство оригинальной идеи стояло наравне с остальными контрибьюторами. Если человек пишет ишью с фичреквестом — надо хотя бы в ченджлоге сказать спасибо такому человеку. Хотя сам он ни строчки кода не написал. Но я бы и на страницу описания фичи в документации писал благодарность этому человеку — он помог проекту стать лучше.

А если чья-то идея легла в основу твоего проекта, это тем более важно. Да, иногда про это можно забыть, это может потеряться и часто не узнаешь откуда та или иная идея пошла. Но сейчас не такой случай, конечно.
Ну так тогда и меня надо указывать, CSS Live Templates для IDEA были придуманы и реализованы в Яндексе раньше Zen Coding, но не были вынесены в Open Source.
Надо, на странице про CSS-сниппеты.

Жаль, что live templates не были вынесены в Open Source. Мне долгое время казалось, что где-то в ярушке был пост про них, но не смог найти. Я хотел на него сослаться когда буду делать нормальный сайт для Хаяку, т.к. далеко в основе лежат live templates с Zen CSS наравне. Никаких внешний артефактов точно не сохранилось? Куда ссылку ставить? :)
О, точно. Спасибо.
следуя этой логике Сергей забыл упомянуть первого изобретателя транзистора.
Что за притянутые за уши сравнения?
На сколько помню из других статей на Emmet — «Zen Coding» чья-то торговая марка
UFO just landed and posted this here
Вам удобен редактор MC? Я на вим всегда сразу переключаю.
UFO just landed and posted this here
UFO just landed and posted this here
Такие же, как у яблока перед апельсином.
Не, такие же как у яблока перед гантелей!
Emmet: пишешь мало, но читать много.
Haml/Slim: пишешь мало и читать тоже мало.

* С каких пор за вопросы ставят минусы? Или вопрос глупый? С радостью выслушаю обоснованный ответ.
Emmet — расширение, ускоряющее процесс написания чистых html и css. Haml/Slim — препроцессоры, которые дают html на выходе.
У них принципиально разное назначение.

Препроцессоры используются в контексте веб-приложения. Они решают проблему удобства написания фронтэнда, за которым стоит какой-то язык программирования или веб-фреймворк.

Emmet же, образно, — большой набор сниппетов. Нужна некоторая html или css конструкция — напечатал несколько символов, ткнул tab, и, о чудо, она у тебя перед глазами. Всё. Ни о каких компиляторах и языках программирования здесь речи не идет. Вёрстка, как она есть, ни больше ни меньше.

Если препроцессоры нравятся настолько, что приятнее использовать связку slim + sass + compass независимо от целей и затем компилировать всё это дело — пожалуйста, никто не запрещает. Но сравнивать эти вещи некорректно.
Плагин к Notepad++ (v6.1.6) поставился, но работать не хочет.
как я понял там не tab нажимать нужно, а ctrl+alt+enter
Да, но на странице плагина на Github есть инструкция, как на Tab изменить.
+ в старых файлах почему-то не работает, в новом пустом всё ок.
Перестаёт корректно работать, если в строках до текущей есть non-latin символы.
Посмотрите, может, у вас похожая проблема: github.com/emmetio/emmet/issues/185
Там же, внизу, есть новая версия плагина, которая может решить эти проблемы.

И если у вас возникают проблемы с использованием плагина, напишите об этом, пожалуйста, в трэкере проекта.
воо) Даже по ctrl + E заработало) спасибо за ссыль)
А если работает, то жутко глючит в документах 50+ строк. Приходится открывать новую вкладку, вводить туда что-нибудь в стиле ul>li.item$*3, копировать, переключаться обратно и там вставлять.
По-моему как раз в написании подобного кода проблем нету. Ну, скажем, с префиксами браузеров. Проблема с поддержкой. Когда каждый transform занимает в 5 раз больше места. А эту проблему ни ZC ни сабж не решают
Спасибо, я знаю ) Less как раз и использую
Compass же ,) и с трансформом не будет проблем
Стоит посочувствовать людям, которые пишут чистый HTML (сюда же JSP, JSF, Velocity, FreeMarker, ERB, ASP и прочие шаблонизаторы на базе HTML), пусть и со вспомогательными генераторами; в IDE или с помощью плагинов a'la сабж не важно. Дальнейшее редактирование грозит превратиться в ад.

Куда удобнее развитая шаблонизация (haml, slim, jade). Всё руки не доходят портировать skim (тот же slim, только для js/coffee — client-side шаблонизация) на новую версию slim'а. :(
View helper-ы в Ruby on Rails c haml, в качестве основного языка разметки, дают похожую результативность. Скрипач не нужен (ц)
%a{href: 'foo/bar'}
%ul.superclass#superID
%li.class
=link_to :root, root_path
итп
%a{href: 'foo/bar'}
%ul.superclass#superID
%li.class
=link_to :root, root_path


Неужели это кому то нравится? Хуже перла.
Миллионы мух не могут ошибаться. Ага.
Это сомнительная метафора, по-вашему, может служит неоспоримым аргументом?
Я бы с большим удовольствием обсудил сомнительную необходимость смешивать представление с логикой приложения.
Мне показалось что haml реализует логику приложения. Извиняюсь. =) (сам просто впервые вижу эту технологию не сразу понял что это шаблонизатор)
«Миллиарды мух не могут ошибаться»

Уже написали выше. Когда здесь появится кнопка «удалить комментарий»?
Вы так говорите perl, как будто это что-то плохое.

А Haml очень просто и понятен.
У HAML есть особенность: он применим исключительно к блочным тегам.

Писать на нём что-то типа
<i>Адрес</i>, который вы можете найти по <a href="http://blah...">ссылке</a>, и т. п.

превращается в ад:
%i> Адрес
, который вы можете найти по
= succeed "," do
  %a{:href => "http://blah..."} ссылке
и т. п.
chriseppstein.github.io/blog/2010/02/08/haml-sucks-for-content/

:plain – Simply passes the filtered text through to the generated HTML.
:cdata – Surrounds the filtered text with a CDATA escape.
:escaped – Works the same as :plain, but HTML-escapes the text before placing it in the document.
:erb – Parses the filtered text with ERB – the Rails default template engine.
:textile – Parses the filtered text with Textile. Only works if RedCloth is installed.
:markdown – Parses the filtered text with Markdown. Only works if RDiscount, RPeg-Markdown, Maruku, or BlueCloth are installed
:maruku – Parses the filtered text with Maruku, which has some non-standard extensions to M
UFO just landed and posted this here
Кто замутит нетормозной Emmet для Netbeans — топу спасибо!
А по какой причине не добавили ссылку на плагин со страницы проекта?
Он пока не доведён до нужного мне состояния. Это влияет на то, как вы сможете расширять Emmet. В остальном он работает как надо.

Разработчики Netbeans обещали ответить на мои вопросы, но пока молчат. Наверно, скоро «официально» выпущу этот плагин.
может подскажет кто решение проблемы:

Только что поставил последний Emmet на ST2, OS Win 7

Expand (развертывание кода) работает только по сочетанию Ctrl + E (в мануале вообще по нажатию TAB, но у меня это не работает, видимо только под Mac)

как переназначить развертывание кода на нажатие одной клавиши, или более удобного сочетания, вместо Ctrl + E, что, согласитесь совсем неудобно.
Разворачивание по клавише Tab работает только для определённых синтаксисов, чтобы не конфликтовать с нативными сниппетами.

Убедитесь, что синтаксис текущего документа выставлен, например, в HTML или CSS.
Оказывается развертывание по TAB работает с синтаксисом CSS

Сейчас выставлен HTML, значит изменить сочетания по своему усмотрению нельзя?
спасибо ) поддержка от разработчика на высшем уровне )
UFO just landed and posted this here
Скоро будет готов плагин для ReSharper
Очень хочется такой плагин для IntelliJ IDEA, а то каждый раз переключаться в Sublime для html и css неудобно. Надеюсь, авторы доберутся и до этой IDE.
Дык есть же. Может слегка отстает от оригинальной версии по срокам реализации, т.к. портируют сами, но точно есть. Посмотрите в «Live templates»
Эта штука помогает только писать код, а не редактировать его или читать. Как же идея, что написание кода занимает только 10 % времени у хорошего программиста, а остальное время занимает его поддержка? Подход Haml/Slim тут гораздо лучше.
Всё это всё равно остаётся «костылём» (проблема чтения не решена, куча кода в редакторе, различные спец. действия для редактирования, которые нужно помнить в голове) — нужно решать основную проблему — избыточность и неудобность HTML-нотации. Решать её нужно удобным и неизбыточным синтаксисом.
Лично я проблему чтения решаю другими инструментами вроде Code Outline в своём IDE. И «читаемость» в данном случае — довольно субъективное понятие, у того же HAML тоже есть проблемы с удобством редактирования, особенно на глубокой вложенности.

И я не совсем понимаю, как синтаксис решает проблему редактирования? Например, если мне нужно быстро выделить определённый семантический элемент, или завернуть контент в новую обёртку, или удалить ненужный элемент, сохранив правильные отступы, как новый синтаксис поможет это сделать?
Проблема читаемости HTMД в том, что у него низкая информационная плотность — куча дублей тегов, нельзя использовать нотация.

Редактирование проще, так как меньше символов и они все на разных строках с отступами. Про выделение я не понял. Про завернуть — добавить новую строчку с новым тегом, выделить нужное дерево, что должно быть внутри и добавить отступ. Для удаления обратная процедура — удаляете строчку, уменьшаете отступ (всё как в обычном программировании).

Я снова хочу обратить ваше внимание на главный вопрос — зачем вообще в HTML нужен Emmet? Изъян в самом HTML, что нельзя вместо <div class«a»> писать .a, что все теги нужно закрывать (то есть дублировать информацию). Emmet скрывает проблему, не решая её полностью.
UFO just landed and posted this here
Насчет нестандартные не все так однозначно. Классы, идентификаторы и прочие атрибуты вполне определяются с помощью двух видов стандартных селекторов — CSS и XPath. Второй извращение, конечно использовать, но вот первый вполне нормален, по-моему.
UFO just landed and posted this here
Вот и использовать синтаксис селекторов. Вместо <div class="a" id="b">...</div> что-то вроде div.a#b {...}
UFO just landed and posted this here
На вкус и цвет… А вообще, я думал, разговор о замене HTML.
UFO just landed and posted this here
А бог его знает. Я же не стандарт в W3C отправляю.
С другой стороны, haml-подобные языки вносит свои проблемы. Во-первых, их нужно изучить. Во-вторых, их нужно компилировать перед деплоем или просто тестовым прогоном. В-третьих, есть риск рассинхронизации haml и html кода — кто-то не поймет, что html автогенерированный и внесет в него изменения, которые потом затрутся.
Обучение требуется и для Зен-кодинга. Рассинхронизация невозможна, они же на уровне шаблонов веб-движка. Со сложностью компилицяи — согласен. Но у нас либо сложный плагин в текстовом редакторе, либо плагин в фреймворке (для большинства языков есть поддержка Haml, для многих — Slim).
В случае Зен оно требуется только тому, кто код набирает, личная фишка. В случае haml — всем в проекте. Если на уровне шаблонов движка, то, да, просто ещё один шаблонизатор, правда тут другая проблема всплывает — верстальщики обычно на html верстку сдают и тут уже нужно будет синхронизировать ручками, VCS автомерж вряд ли сделает корректно.
Да, я согласен, что Зен — это быстрое решение, которое уменьшает симптомы, но не решает проблему. Но лично я считаю, что на новых проектах надо использовать Slim — обучение идёт очень быстро, зато куча проблем решается.

Про верстальщиков это вообще больная тема. Я полностью согласен с этой проблемой. Но тут я бы сказал, что проблема скорее в том, как верстальщики организуют свою работу. С ними такая же огромная проблема при внедрении Sass. В итоге в нашей фирме мы пришли к выводу, что верстальщик который верстает где-то в стороне и потом присылает готовые нечитаемые html/css — это ад, который слишком дорого стоит. HTML всё равно надо оживлять шаблонами — вёрстка начинает расходиться с теми файлами, которые у верстальщика и всё равно начинается ад. Так что мы работаем только с фронтами, которые и JS пишут и имеют настроенный запущенный проект и интегрированы в задачи и разработку.
UFO just landed and posted this here
Кучу времени пытаюсь установить emmet в notepad++… в итоге в списке плагинов нет emmet, а в списке установленных — есть… смог через admin plugin установить zen coding, но при экспанде пишет not found python script. Его тоже в списке установленных… что не так делаю?
Sign up to leave a comment.

Articles