no matЛеонид Каганов, он же Lleo - большой затейник. Вообще-то он еще и хороший писатель, более того - член Союза Писателей России с 1998 года, на минуточку. Я прочел процентов 90 его произведений, не все рассказы понравились, а вот более крупные формы нравятся все, некоторые повести и романы перечитал по нескольку раз и буду продолжать перечитывать. В своем бложике поиском по слову "каганов" нашел 5 статей, в каждой из которых упоминается именно Леонид. Там и вхождения должны бы присутствовать, вот я и выяснил попутно, что почему-то ни в одном посте не упоминал Кагановича. Лазаря Моисеевича. Ах да, теперь уже упомянул.

Каганов без "ич" (впрочем, вру, он имеет свой "ич", или он не АлександровИЧ?) ведет один из старейших в Рунете сайтов и, будучи квалифицированным программистом вплоть до ассемблера (я до таких высот никогда не опускался), движок сделал сам, и все остальное тоже. Кроме домена и хостинга, разумеется, почему и пострадал в определенный момент от вмешательства дурных людей. Сменив домен .aha.ru на любимый мною .me, Леонид совсем распоясался и начал материться как сапожник в подавляющем большинстве своих стихов. (Я не упомянул, что он еще и поэт небесталанный?)

Лично я очень люблю вкраплять в свою речь пару-тройку соленых словечек на фразу. Ненавижу ханжей, борющихся за чистоту речи в том виде, в котором они ее видят. Я бы их, ...ных ...сосов, вы...л и еще бы ...дюлей навешал!

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

Код Lleo я переработал следующим образом: заэкранировал русские символы в строке матов для регулярного выражения, подсветил звездочки красным, сделал возможным возврат звездочек по повторному клику. Также теперь число звездочек соответствует числу закрываемых ими матерных букв (матерных букв, каково!?). А заодно я добавил кнопки выбора режима цензуры. Их три: жесткая цензура без возможности открыть мат под звездочками - для ханжей и пуритан; противоположный вариант - весь мат наружу - для матерщинников и просто раскрепощенных людей; ну и тот самый усовершенствованный вариант с блэкджеком и шлюхами подсветкой и кликами. В результате получилось вот это:

var e = document.getElementById('delmat');
var origTxt = e.innerHTML;
 
var mat = '\u043F\u043E\u0434\u044A\u0435\u0431|\u043F\u043E\u0434\u044A\u0451\u0431|\u0437\u0430\u0435\u0431|\u0437\u0430\u0451\u0431|\
\u043E\u0442\u044A\u0435\u0431|\u043E\u0442\u044A\u0451\u0431|\u0431\u043B\u044F|\u0431\u043B\u044F\u0434|\u0431\u043B\u044F\u0442|\
\u0432\u044A\u0435\u0431|\u0432\u044B\u0435\u0431|\u0434\u043E\u043B\u0431\u043E\u0435|\u0451\u0431|\u0435\u0431\u0430\u043B|\
\u0435\u0431\u0430\u043D|\u0435\u0431\u0435\u043D|\u0435\u0431\u043B|\u0435\u0431\u0443\u0449|\u0435\u0431\u0443\u0447|\
\u0437\u0430\u0435\u0431|\u043C\u0430\u043D\u0434|\u043C\u0443\u0434\u0430|\u043C\u0443\u0434\u0435|\u043C\u0443\u0434\u0438|\
\u043C\u0443\u0434\u043E|\u043F\u0438\u0434\u0430\u0440|\u043F\u0438\u0434\u043E\u0440|\u043F\u0438\u0437\u0434|\u0443\u0435\u0431|\
\u0445\u0443\u0435|\u0445\u0443\u0451|\u0445\u0443\u0439|\u0445\u0443\u044E|\u0445\u0443\u044F|\u0445\u0443\u0438|\
\u043F\u0438\u0437\u0436|\u0435\u0431\u0430\u0432';
var reg = new RegExp('(' + mat + ')', 'gi');
 
function updCenz(cenz){
  function toAster(s){
    return Array(s.length+1).join("*");
  }
  if (cenz == 0) e.innerHTML = origTxt;
  else if (cenz == 1) e.innerHTML = origTxt.replace(reg, function(s){return toAster(s)});
  else e.innerHTML = origTxt.replace(reg, function(s){
    var ast=toAster(s);
    return "<span style='cursor:pointer;color:red;' onclick=\"this.innerHTML=this.innerHTML=='"+ast+"'?'"+s+"':'"+ast+"'\">"+ast+"</span>";
  });
 
  e.innerHTML = e.innerHTML.replace(/delmatatyourchoice/g,
    '<input class="button subbutton btn btn-primary og-button" type="submit"\
       value="\u0426\u0435\u043D\u0437\u0443\u0440\u0430" name="Cenz" onclick="updCenz(1)"> &nbsp;\
     <input class="button subbutton btn btn-primary og-button" type="submit"\
       value="\u0421\u0432\u043E\u0431\u043E\u0434\u0430" name="noCenz" onclick="updCenz(0)"> &nbsp;\
     <input class="button subbutton btn btn-primary og-button" type="submit"\
       value="\u0421\u0430\u043C \u0440\u0435\u0448\u0430\u0439" name="yourCenz" onclick="updCenz()">');
}
 
updCenz();

Прикрутил этот код к данной статье. Из первой строчки скрипта следует, что все перетурбации будут происходить внутри блока с идентификатором "delmat". Итак, в порядке теста открываю блок <div id="delmat">, пишу в нем магическое слово delmatatyourchoice, каковое скрипт меняет на три вышеописанных кнопки, и ну матюгаться! Вхожу в зону комфорта, прием!

delmatatyourchoice

Блядь, хорошо-то как! Нихуя не нужно париться за маты, пиздец как опизденительно и охуительно! Нахуя дохуя нахуярили? Расхуяривайте нахуяренное нахуй! Я бля тут тащусь, как хуй в пизде! Ебануться просто, как невъебенно за тобой подчищают!

Дадим теперь слово мэтрам матерного жанра. Шнур первый:

Выборы, выборы! Кандидаты - пидоры!

Мыслей нет и денег нет,
Только хуй работает.
Хочется ему тепла,
Хоть одна бы мне дала.

Ну где же вы, бляди?
Выручайте дядю.

На лабутенах нах и в охуительных штанах

Там сразу без заминки
В партере «Мариинки»
Все поняли блондинки. Я прима, без пизды.

Ну чо, ни разу Шнур не матюгнулся, как не Шнур! Правда, кнопка "Свобода" махом выводит его на чистую воду. А хули бы? (Хули - не цензурируется, или стоит внести в кондуит? Равно как и нах.)

Ну чего уж там, давайте Маяковского уже!

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

Или вот это, романтическое:

Гордишься ты
Но ты не идеал
Сама себе ты набиваешь цену
Таких как ты я на хуй одевал
И видит бог не раз ещё одену.

Ну, может и не сам он это написал. Знаки препинания не проставлены, да еще это "одевал", когда на самом деле "на хуй НАдевал". Видите, как скрипт не дает сосредоточиться на хуе, а наоборот, на надевании одежды и одевании Надежды. Правильно написать так: "В таких, как ты, я хуй свой одевал" - и дальше по тексту.

А лепший враг Маяковского Есенин и вовсе хулиган был конкретный. Но как талантливо стихотворно хулиганил! (Нет, с "хули" надо что-то решать!):

Не тужи, дорогой, и не ахай,
Жизнь держи, как коня, за узду,
Посылай всех и каждого на хуй,
Чтоб тебя не послали в пизду!

Классика, бля! Философия, ёпть! Нихуя не поспоришь, так оно и есть, к чертям ебучим!

На сегодня хватит хуеты, выхожу из зоны матерного комфорта к ёбаной матери и напоследок желаю вам из нее не пиздануться от этой ебанутой жизни! Закрываем блок - </div>...

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

Ну и есть еще парочка идей - соответственно, есть к чему стремиться в плане усовершенствования как алгоритма, так и словаря. Займусь на досуге. Lleo подбросил классную тему для расслабона, спасибо ему и за это!

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

Работая с этим сайтом, вы даете свое согласие на использование файлов cookie, необходимых для сохранения выбранных вами настроек, а также для нормального функционирования сервисов Google.