В далеком 2006-м, Джон Резиг, создавая очередную JavaScript библиотеку jQuery, возможно и не предполагал, что она станет настолько популярна. Одной из ее "килл-фич" была система плагинов. Трюк, который прокатил с Мозилой и прокатывает с Хромом: делаем средний продукт, но с отличным API для создания расширений для него.

Идея не нова, до этого в 2005-м, мир узнал Prototype Сэма Стефенсона. Параллельно с jQuery развивался Mootools  Валерио Проетти. К слову второй зародился, как плагин для первого.

Да сам JavaScript со своим своеобразным ООП реализует наследование, по идеологии плагинов, а не родителей. Пишем класс, создаем его экземпляр, подключаем к prototype полю другого объекта, и вот оно - наследование. Второй объект использует все плюшки первого.

Качественным отличием jQuery на этом фоне стало удобство. Сравните код создания расширения для Prototype, Mootools и jQuery (код для первых двух взят из Википедии).

Prototype

var FirstClass = Class.create( {
    initialize: function () {
        this.data = "Hello World";
    }
});

 Mootools

var Animal = new Class({
    initialize: function(name) {
        this.name = name;
    }
});
 
var Cat = new Class({
    Extends: Animal,
    talk: function() {
        return 'Meow!';
    }
});

Vanila JavaScript

var a = function(){
	this.hi = function( name ) {
		alert('Hello World and '+name)
	}
}
var b = function(){};
b.prototype = new a;
(new b).hi('Valeriy');

И jQuery

$.fn.hi = function( ){
 alert( this[0].tagName )
}
$('body').hi();// BODY

Удобство наглядное и бесспорное. Первые два фреймворка заставляют окунуться в дебри ООП и требуют от программиста определенной квалификации. jQuery же "порог вхождения" понизила до уровня школьного Бейсика.

Результат не заставил себя ждать. Плагины плодились тысячами. Их уровень варьировался от плохих до очень плохих. Все это дело оседало на plugins.jquery.com

Залить туда плагин мог любой желающий. Никаких модераторов. Демократия. Стоит ли говорить, через ни так много времени сайт превратился в свалку. Мой первый плагин тоже там побывал. 

У ребят из команды jQuery руки растут оттуда, откуда надо. Они эту лавочку прикрыли. Включили режим "Только чтение" и приступили к созданию нового ресурса.

13 Декабря 2011 на свет появился новый сайт. С иной системой публикации. Плагины не заливаются непосредственно на ресурс. Делать на самом plugins.jquery.com вообще ничего не надо ( Вот это поворот=) ). Вместо этого дело сводится к колдовству с git репозиторием и его хостингом.

О том, как писать плагины для jQuery написано уже достаточно постов. Предположим плагин у Вас уже есть. Осталось его опубликовать. Сделать это - та еще задача. Автор этих строк осилил не с первого раза. О том, как это делать и будет рассказано ниже. 

Первое, что нужно сделать - это подобрать имя. Что нам пишут на официальном сайте

  1. Выберите имя, которое является коротким, но в то же время достаточно описательным
  2. Имя Вашего плагина должно быть таким же, как и название файла: плагин foo должен находиться в файле jquery.foo.js
  3. Проверьте на сайте, используя поиск, что имя еще не занято, чтобы не было мучительно больно...  

 

Продвижение сайтов в поисковых системах

По опыту вам скажу, что имя надо подбирать максимально броское и отражающее суть вашего творения. Искать и находить его будут именно по нему. Поисковое продвижение плагина - это тема отдельной статьи. 

Не делайте глупых сокращений. Когда писался datetimepicker возник вопрос, как его назвать. На голову приходило: xdpicker, dtpicker, dptp и т.д.

Можете себе представить, чтобы человек вбил в поисковике эти сочетания букв?

Расчет оказался верным. 99% заходов на страницу плагина по поисковым запросам: datetime picker, timepicker, datepicker

Никакой СЕО не потребуется, если название плагина будет отражать всю суть.  

Когда имя подобрано и плагин написан, следующее что необходимо сделать это залить его на какой-нибудь git хостинг. К примеру на github, или на bitbucket.  Как это сделать читайте в следующей статье

Оставлять комментарии могут только зарегистрированные пользователи

Комментарии  

Елена76
# Елена76 14.08.2014 18:31
Давно не мог найти статью по jquery.plugins.com