Ckeditor greek characters и почему программист должен быть ленивым :-)

Люба х...ня

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

Итак, задача расширить стандартный набор спецсимволов ckeditora греческими сиволами. Ресурсы взяты из http://unicode-table.com/ru/sets/greek-symbols/. Ниже на фото, то что получилось.


ckeditor таблица спец символов

 

От задачи к практике. Сначала нужно поправить конфиг редактора, а именно настройки плагина specialchar. Я решил убрать лишние символы, которые можно набрать с клавиатуры и оставить только необходимые.

Открываем конфиг ckeditor "ckeditor/config.js" и правим:

config.specialChars = [
        '"', '&','<', '=', '>',"', '~',
        "€", "‘", "’", "“", "”", "–", "—", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "®", "¯", "°", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ŵ", "Ŷ", "ŵ", "ŷ", "‚", "‛", "„", "…", "™", "►", "•", "→", "⇒", "⇔", "♦", "≈
     ];

Далее нужно дописать в массив новые символы. Вручную вносить лень. Проанализировав страницу фаербагом, вижу что все необходимые мне теги обрамленные тегом с классом html-код.

ckeditor таблица спец символов

Это хорошо. Значит можно написать парсер. Открываем консоль и ваяем: 
$(document).ready(function(){ alert(1); });

Получили 1. Гут, значит магии jQuery достаточно. Тогда пару строчек кода:

$(document).ready(function(){
var a = [];    
$('.html-code').each(function(){
    var s = $(this).html).replace('&','&');
    a.push(s);
});
console.log(a);
});

на выходе получаем:

ckeditor исходная таблица спец символов

Остается только скопировать и добавить в конфиг новые символы.

 config.specialChars = ['"', '&','<', '=', '>',"', '~',
        "€", "‘", "’", "“", "”", "–", "—", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "®", "¯", "°", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ŵ", "Ŷ", "ŵ", "ŷ", "‚", "‛", "„", "…", "™", "►", "•", "→", "⇒", "⇔", "♦", "≈",
"Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ", "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ", "Φ", "Χ", "Ψ", "Ω", "α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "ς", "σ", "τ", "υ", "φ", "χ", "ψ", "ω"];

Как говорил Стив Джобс,  «Работать надо не 12 часов, а головой». Надеюсь вам пригодится.

Расскажите нам о своем проекте!