| Comments: |
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 24th, 2008 - 11:58 am |
|---|
| | | (Link) |
|
Молодец!
Не решение, но прикол нормальный, хотя провоцирует дурацкие приколы исправлением сценарий.
Можешь выложить исходник как есть? (Его все могут сейчас прочитать, но чтобы он лежал не только на userscripts.)
Забавно, что отменять транслитерацию не нужно в его портянке: только в комментариях, как ты и прописал!
Смотрю, как бы это сделать в Опере, напишу последовательность действий, как получится.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 24th, 2008 - 01:58 pm |
|---|
| | | (Link) |
|
Что-то странно, не работает у меня (Опера 9.26). То есть, исполнять пытается, ругается даже на лишнюю запятую, на строчке 68, но не работает. Может какие настройки у меня плохие.
Обещает-то Опера работать с сценариями типа greasemonkey, если стоит расширение .user.js. По идее установка: сохранение файла с расширением .user.js, установка каталога со сценариями (не отдельного файла! загружены и выполнены будут все!) в настройки Яваскрипта (для всех сайтов) или в настройки веб-узла.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 24th, 2008 - 01:59 pm |
|---|
| | | (Link) |
|
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 24th, 2008 - 05:16 pm |
|---|
| | | (Link) |
|
В Огнелисе по инструкции работает как надо, вопросов нет. Но в Опере почему-то странности какие-то
Я Яваскрипта не знаю, так что, пока пытался исправить, узнал много нового (сценарий ketmar у меня вдруг в Опере заработал, хотя не сразу, но он для Оперы и делал).
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 24th, 2008 - 10:25 pm |
|---|
| | | (Link) |
|
я там отписался у себя. надо убрать BOM.
а делал я универсал -- Opera/Firefox. кстати, скрипт многоуважаемого phantom'а я обработал напильником и засунул туда же, в разворачиватель.
phantom, вы не против, надеюсь? кредиты проставлены, всё как полагается. %-)
не против (я игнорирую копирайт), я даже и кредитов не ставил бы. если хочется сохранить родословную, то таблицу символов я взял отсюда: http://userscripts.org/scripts/review/6565кстати, у тебя очень полезный скрипт. какой IDE ты используешь для JS? существует ли дебаггер для JS?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 01:11 am |
|---|
| | | (Link) |
|
>не против (я игнорирую копирайт), аналогично. но кредиты — это не копирайт, это дань уважения предыдущему автору. а так если есть возможность — я свой код обычно кидаю как public domain.
>кстати, у тебя очень полезный скрипт. tnx. я его делал для себя (как и почти все полезные вещи обычно делаются %-). теперь решил, что ещё кому-то пригодится. заодно попробовал заточку под Firefox (поскольку я тормозиллу не использую, было поучительно).
>какой IDE ты используешь для JS? ты будешь ржать: mcedit. или joe, в зависимости от настроения.
>существует ли дебаггер для JS? для Firefox — FireBug или Venkman. я ними не пользовался, не в курсе, насколько они хороши.
для Оперы — только Error Console. были потуги сделать нечто, похожее на дебагер (даже у меня были), но оно того не стоит. ибо идея — в препроцессинге js-кода и хитрых манипуляциях с ним. удолбище выходит.
в принципе, если ты мой скрипт почитаешь, найдёшь там закоментареные остатки логов (opr.postError).
зыж интересно, чей способ разбора строки шустрей: мой через регулярку или твой? я, честно говоря, нифига не понял, что ты там со строкой делаешь, потому тупо переписал. %-)
> FireBug или Venkman. я ними не пользовался, не в курсе, насколько они хороши.
я попробовал FireBug - очень хорош и функционален только не как дебаггер, а как DOM-explorer и т.п.
> ыж интересно, чей способ разбора строки шустрей: мой через регулярку или твой?
разбор строк вручную всегда должен быть быстрей. как правило, регулярки должны приближаться к этому, это, кроме прочего, сильно зависит от их реализации.
> я, честно говоря, нифига не понял, что ты там со строкой делаешь, потому тупо переписал. %-)
я просто JS не знаю, и чтобы не использовать высокоуровневых функций, сделал по-быстрому:
пробегаем по строке (цикл по i), для каждой позиции проверяем, входят ли 2 следующих символа в symbols, если да - это транслитерированная в две русская буква, если нет, это две различных переведенных русских буквы. я сразу обобщил на возможные длинные сочетания ("щ"), но по-простому двух достаточно (внутренний цикл по j). функция pick(s, i, j) = substring(s, i, j), просто substring у меня не заработал с ходу, и я переписал.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 02:31 am |
|---|
| | | (Link) |
|
>разбор строк вручную всегда должен быть быстрей. э, нет. зависит от реализации строк. в JS они immutable, поэтому, например, charAt() каждый раз создаёт новый объект «строка» из одного символа (как понимаешь, операция не шибко шустрая). так что регулярки могут быть шустрее в разы — у меня один replace. правда, я тоже со строкой манипулирую. лень бенчмарк писать. %-)
>я просто JS не знаю, и чтобы не использовать >высокоуровневых функций, сделал по-быстрому: не, я не настолько тупой, %-) я написал криво. надо было написать: «мне лом было разбираться в твоём коде». %-)
зыж гы. таки мой способ медленней. убрал одну регулярку — стал шустрей. переписал без регулярок, с двумя словарями — стало ОХЕРЕННО шустрей. тестировал на spidermonkey, для Оперы не проверял. %-)
твой: 16.67s user 0.49s system 82% cpu 20.781 total мой: 19.83s user 0.34s system 85% cpu 23.565 total мой без одной регулярки: 14.19s user 0.25s system 85% cpu 16.848 total мой без регулярок, с двумя словарями: js test_$num.js 4.10s user 0.08s system 83% cpu 5.013 total гы. %-)
невозбранно проапдейтил jsunfold.
так у меня неоптимизированно было. неважно что строки иммутабельны, аллокаторы обычно шустро работают.
вот от реализации регулярных выражений и будет зависеть скорость их работы: чтобы они действительно быстро работали они должны быть компилируемыми, а JS, как известно, интерпретатор, и всегда регулярные выражения будут медленнее, чем эквивалентный им строковый парсинг.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 02:17 pm |
|---|
| | | (Link) |
|
Значит там плохая библиотека регулярных выражений используется, либо очень неэффективно. Странно.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 02:14 pm |
|---|
| | | (Link) |
|
> я, честно говоря, нифига не понял, что ты там со строкой делаешь, потому тупо переписал. %-)А я понял! Я всё переписал, даже пытался ставить разнообразные closure, анонимные функции, addeventlistener и т.п. (всё, о чём прочитал вчера), делать всё одной функцией (с минимумом переменных), но в Опере всё равно не работало. Преобразование алгоритмически можно делать быстрее, конечно, но смысла нет (и не факт, что в Яваскрипте действительно будет быстрее, да и быстродействие с учётом размеров комментариев неважно) — сэкономить на попытке преобразовать пару символов, когда первый заведомо единственный. Короче говоря: язык интерпретируемый, без изысков библиотечные регулярные выражения должны работать быстрее, чем циклы и вообще последовательности команд (в особенности функция pick). Всё-таки регулярные выражения такого уровня — конечный автомат, который для поиска всех вхождений проходит по строке ровно один раз. Вот ketmar указал, что дело скорее всего в байтиках со значениями 128-255 — кодировка не UTF-8. Глюк Оперы, на мой взгляд. Но после перекодировки в UTF-8 (сначала я просто русский текст переписал: э,Э, утошга каледин, кря, — через \u
, потом табуляцию, потом автоматически обработал, чтобы CRLF) странное сообщение об ошибке исчезло, а работать всё равно не стало. Ну да ладно, посмотрю, как сделал ketmar, в Опере у него определённо должно было заработать, пойму, чего не хватало. Изучу на досуге Яваскрипт, штука в таком виде (пользовательском) полезная
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 02:36 pm |
|---|
| | | (Link) |
|
>язык интерпретируемый, без изысков библиотечные регулярные выражения >должны работать быстрее, чем циклы и вообще последовательности команда ни разу не факт, потому что все его компилируют в VM. что Опера, что Mozilla. >Всё-таки регулярные выражения такого уровня — конечный автомат, который >для поиска всех вхождений проходит по строке ровно один раз.это если они написаны именно так (лом лезть в исходники spidermonkey). >странное сообщение об ошибке исчезло, а работать всё равно не сталогы. а это потому, что сравнение со строкой «[b]kaledin[/b]». а Опера в данном случае выдаёт тэги в upper case. %-) проверь (давай уж на «ты», а? %-), увидишь. >посмотрю, как сделал ketmarвот так %-) (это примерно в 4 раза быстрее, чем оригинал). и заменил проверку на case insensetive. >Изучу на досуге Яваскрипт, штука в таком виде (пользовательском) >полезная…на самом деле язык убойный. с поддержкой замыканий, анонимных функций, run-time расширяемых классов с приватными данными и ты пы. только мало кто этот язык знает, хотя и много кто на нём пытается писать. %-) зыж а ещё в Опере есть свойство innerText (а в тормозилле нет, и поэтому они мудаки странные люди). то же, что innerHTML, только все тэги выкидывает нафиг.
>Изучу на досуге Яваскрипт, штука в таком виде (пользовательском) >полезная…
о, я бы не советовал, а порекомендовал бы что-нибудь более изысканное, кроме того, есть ли под JS инструментальная поддержка (дебаггер и т.п.) - вот в чём вопрос.
ну, может это я привык уже к комфорту, хотя, отутствие инструментов может тебе серьёзно затормозить процесс, как кажется
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 02:52 pm |
|---|
| | | (Link) |
|
Я за деньги на Яваскрипте помогал кому-то писать что-то, анализирующее синтаксис (типа калькулятора?), а также графику какую-то рисующее. Это не требовало знания вообще ничего. (Это было репетиторство.) Я ещё на Яве пару раз того же человека репетировал, но это было менее результативно и более порнографично. Никакой документации ни по Яве, ни по Яваскрипту я при этом не читал. По Яваскрипту впервые читал вчера, да и то не по самому языку, а по пользовательским сценариям для Оперы. Честно говоря, такой фрустрации, как с твоим сценарием, у меня в описанных ситуациях не было (я всё ещё не посмотрел, что кроме перекодировки сделал ketmar, чтобы твой сценарий работал в Опере).
я очень извиняюсь - почему-то моя радость от удачной пробы пера обернулась почему-то твоей фрустрацией, гм.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 03:46 pm |
|---|
| | | (Link) |
|
Так фрустрация вызвана-то не самим языком, а сложностями с его приложением к Опере: сначала в UTF-8 перекодируй, потом с регистрами воюй.
С самим языком пока фрустрации не было.
Ладно, сегодня, если успею (ну, или на неделе), попробую сделать кнопку для возвращения выделенному фрагменту или всему комментарию Каледина его албанско-молдавского (он иногда пишет на английском). Если опять выйдет фрустрация вместо результата, то ты прав: это не для меня.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 04:31 pm |
|---|
| | | (Link) |
|
>попробую сделать кнопку для возвращения выделенному фрагменту или всему >комментарию Каледина его албанско-молдавского кстати. невозбранно спёр идею. щас себе приделаю. %-)
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 10:04 pm |
|---|
| | | (Link) |
|
Узнал много нового. for-in не даются. У меня так:
function TranslitToRus (s) {
if (s == 'Date:') return '\u0414\u0430\u0442\u0430:'; // return s; is worse, because even kaledins may write " Date: "
var res = "", len = s.length;
for (var f = 0; f < len; f++) {
var n = s.charAt(f);
var rus = trTable[n], dif = trTableDif[n];
if (dif) {
var n1 = s.charAt(f+1);
rus1 = dif[n1];
if (rus1) { rus = rus1; f++; }
}
res += rus?rus:n;
}
return res;
}
function DeKaledin(evt)
{
evt.preventDefault();
if (loadingPages) return false;
var ec = evt.currentTarget; // comment or text ?br?
var i = ec.childNodes[0]; //
var t = ec.childNodes[1]; // comment or text
var w = ec.childNodes[2]; // if exists
var v = doc.createElement("img");
v.setAttribute("width","22");
v.setAttribute("height","20"); // if pictures are not loaded
var u,v;
if (t.nodeName == "#comment")
{
v.setAttribute("src","http://lj.rossia.org/img/btn_prev.gif");
u = doc.createTextNode(t.nodeValue);
}
else // #text
{
v.setAttribute("src","http://lj.rossia.org/img/btn_next.gif");
u = doc.createComment(t.nodeValue);
}
ec.appendChild(v);
ec.appendChild(u);
if (w)
{
ec.removeChild(w);
}
else
{
w = doc.createElement("br");
ec.appendChild(w);
}
ec.removeChild(t);
ec.removeChild(i);
return false;
}
function UntranslitNode (node) {
if (!node) return;
if (node.nodeName == "#text")
{
var s = node.nodeValue;
node.nodeValue = TranslitToRus(s);
var pn = node.parentNode;
var t;
t = doc.createElement("img");
t.setAttribute("src","http://lj.rossia.org/img/btn_next.gif");
t.setAttribute("width","22");
t.setAttribute("height","20"); // if pictures are not loaded
var original_kal = doc.createComment(s);
var dl = document.createElement("a");
dl.href = "#";
dl.appendChild(t);
dl.appendChild(original_kal);
dl.addEventListener("click", DeKaledin, false);
pn.insertBefore(dl,node);
}
else
{
if (node.hasChildNodes)
{
var nn = Array(); // childNodes is alive
var i = node.childNodes.length;
for (var f = 0; f < i; f++) // for-in does not work as I expect
nn.push(node.childNodes[f]);
for (var f = 0; f < nn.length; f++)
UntranslitNode(nn[f]);
}
}
}
да каледин, слава яйцам, один такой пока, ну ещё вторая утошга есть, да. но давай лучше что-нибудь более полезное захуярим, и не к ЛЖР, а вообще или к часто используемым сайтам.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 04:30 pm |
|---|
| | | (Link) |
|
>но наскучили мне си-подобные давно уж. он скорее scheme-подобный. %-)
зачем тогда с него начинать, если можно сначала изучить Схему? в ней больше поддерживается фич, и научиться гораздо большему.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 07:23 pm |
|---|
| | | (Link) |
|
дык я так понял, что Delphi уже того… так что всё равно моск попорчен.
да не, никогда не поздно исправиться, нужно только разум оставлять открытым для новых идей (open-minded) и ещё, конечно, постоянно и непрерывно учиться
а что за страсть к Опере?
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 02:40 pm |
|---|
| | | (Link) |
|
Привычно, нравятся плюсы, не слишком раздражают минусы. Я чуть не перескочил на Огнелиса недавно, но вот по советам ketmar установил бету Оперы, она пошустрее, к тому же новые непривычные глюки (Огнелиса) почти наверняка будут сильнее раздражать (см. переведённую тобой статью о привычном и удобном:)).
в сравнении с Оперой, в ФФ мне очень нравится инкрементальный поиск.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 05:18 pm |
|---|
| | | (Link) |
|
>в ФФ мне очень нравится >инкрементальный поиск. э… вообще-то мозилловцы и это тоже упёрли из оперы (как и все удачные «находки»).
а на каком шорткате в опере? что-то найти не могу, гм
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 06:36 pm |
|---|
| | | (Link) |
|
хер знает. вроде бы «/».
ctrl+f11→advanced→shortcuts→edit, quick search: «find inline», проверить. %-)
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 10:14 pm |
|---|
| | | (Link) |
|
Что это?
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 10:21 pm |
|---|
| | | (Link) |
|
Что-то с комментариями.
Что такое "инкрем. поиск"?
это если в опере нажать / (как я недавно выяснил)
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 28th, 2008 - 12:32 pm |
|---|
| | | (Link) |
|
Не пользовался.
А полезно, так как я часто ищу по неполным словам для последующего обзора выделений. (Листание страницы работает и при обычном поиске, и при этом, дедуктивном.)
подробней о включении юзер-скриптов в Опере (если кто инфу здесь искать будет)
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 03:58 pm |
|---|
| | | (Link) |
|
ketmar уже ответил, дело в посимвольном совпадении "<b>" в проверке имени "[b]kaledin[/b]": Опера посылает метки в верхнем регистре.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 03:59 pm |
|---|
| | | (Link) |
|
Я вчера эту хрень прочитал раза два
>> Можешь выложить исходник как есть?
конечно, только вот куда выложить? здесь индентация будет нарушена. и зачем, если он по ссылке доступен?
>> только в комментариях, как ты и прописал!
вон, я для утошги триглава заапдейтил уже, у него весь дневник перетрансличенный :)
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 03:10 am |
|---|
| | | (Link) |
|
>здесь индентация будет нарушена. а ты его в тэг pre оберни. %-)
благодарю
кстати, ты не пользуешься контролем версий для unfolder?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 11:39 am |
|---|
| | | (Link) |
|
да, пора бы уже git завести. щаз и сделаю.
а почему предпочитаешь git, а не svn?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 02:23 pm |
|---|
| | | (Link) |
|
я уже писал в другом ответе: svn со мной не дружит даже после упорного чтения man'ов, а git подружился с пол-пинка. к тому же организовать нормальную веб-морду для svn без опача я ниасилил, а для git — пожалуйста, в коробке лежит.
мне в данном случае насрать на «продвинутость» инструмента, если он делает то, что мне от него надо. git делает, к тому же обладает логикой, похожей на мою. а у svn марсианская какая-то. %-) как только мне перестанет хватать git — пойду искать что-то ещё. пока связка git+flyspray устраивает.
а я справился с svn мин за 15, правда я пользовал хороший RTFM, и все заработало, правда с https пришлось повозиться
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 04:16 pm |
|---|
| | | (Link) |
|
>а я справился с svn мин за 15 разница логик. %-) плюс -- мне оригинальный автор git сильно симпатичен. %-)
кстати, тебе, я думаю, был бы полезным скрипт, облегчающий вставку в комменты символов типа mdash, цитирования италиком.
а облегчение вставки гиперссылок, например, было бы полезным всем, как думаешь?
себе я пару скриптов слабаю ещё, пожалуй. например, быстрый гугл непонятного слова.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 01:20 am |
|---|
| | | (Link) |
|
>кстати, тебе, я думаю, был бы полезным >скрипт, облегчающий вставку в комменты >символов типа mdashhttp://clear.com.ua/projects/firefox/ctrl_enterили мой вариант, чисто для Оперы: http://ljunfold.ho.ua/rus_repl.js>цитирования италиком.а это вмонтировано в мой jsunfold. >а облегчение вставки гиперссылок, например, >было бы полезным всем, как думаешь?в смысле? движок LJ их сам опознаёт. вон, я тупо вставил адреса безо всяких тегов.
>http://clear.com.ua/projects/firefox/ctrl_enterо, спасибо, работает >>цитирования италиком. >а это вмонтировано в мой jsunfold.тоже доставляет >в смысле? движок LJ их сам опознаётя имею в виду вот такие ссылки не могу твой разворачиватель опробовать, он должен работать на тифарете, например? ( http://lj.rossia.org/users/tiphareth/1059330.html?nc=119&style=mine) в LJ я не очень ориентируюсь: на какой записи можно опробовать твой скрипт (я попробовал на одной навскидку, и кажется, он подвис)? кстати, я видел вроде бы на LJ ссылки Expand на некоторых блогах, и подумал, что это их относительно новая фича для платных аккаунтов. ты не в курсе?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 02:58 am |
|---|
| | | (Link) |
|
>я имею в виду вот такие ссылки доделаю кнопку. проблем-то. %-) точнее, есть проблема: в js нельзя делать формочки, а с DHTML играться лень. подумаю над этим.
>он должен работать на тифарете, например? да, но только на стиле S2. ибо format=light здесь очень кривой, пришлось на стиль «завязаться». надо будет прогнать его по разным стилям, но сейчас и лень, и времени на это нет.
>в LJ я не очень ориентируюсь: на какой записи >можно опробовать твой скрипт а вот на той, что ты привёл, и можно. я только что проверил — шуршит. просто чуть-чуть подождать надо, чтоб не скучно было я и приделал прогресс-бар сверху.
>кстати, я видел вроде бы на LJ ссылки Expand >на некоторых блогах, и подумал, что это их >относительно новая фича для платных аккаунтов. >ты не в курсе? в курсе. так и есть — для платников. к тому же у них нет фич «развернуть всё» и «развернуть всё на всех страницах». и сделано через iframe, что я считаю дебилизмом. %-)
>доделаю кнопку.думаю, стоит отказаться от гуи: удобней было бы для кнопок сразу вставлять по шаблону в текстбокс, переносить выделенное внутрь или устанавливать селект в место, где предполагается последующий ввод. для кнопки link можно брать href из клипбоарда (JS-security позволяет?), и тоже ставить селект между тагами. твой экспанд не экспандит полностью, а лишь на некоторую небольшую глубину, так задумано? сложно ли сделать полный? вот на этой записи у меня зависает unfolder
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 11:32 am |
|---|
| | | (Link) |
|
>удобней было бы для кнопок сразу >вставлять по шаблону в текстбокс, дык не всегда ясно, что вставлять. сейчас можно выбрать что-то на странице, тыцнуть link, и выбраное автоматом зачтётся как url (с возможностью правки).
>переносить выделенное внутрь или >устанавливать селект в место, где >предполагается последующий ввод. ломммм. %-)
>можно брать href >из клипбоарда (JS-security позволяет?) у Оперы даже метода такого нет --> фтопку.
>тоже ставить селект между тагами. ломм, непортабельно --> фтопку.
>твой экспанд не экспандит полностью, >а лишь на некоторую небольшую глубину, такого быть не должно. единственный вариант, когда он может обидеться — это если ответы идут на заскриненый/удалённый камент. тогда ему просто некуда прицепить ссылку «expand» (очень дебильно сделан S1, да). ветку мне, ветку, где не может.
>вот на этой записи >у меня зависает unfolder у мення нет. честно дописал «format=light», загрузил и всё развернул. проверено в Опере и Ff.
ты обновись на всякий случай на сегодняшнюю версию.
зыж патчи для «фтопку» принимаются. допиливание личными силами маловероятно. %-)
>дык не всегда ясно, что вставлять. сейчас можно выбрать что-то на >странице, тыцнуть link, и выбраное автоматом зачтётся как url (с >возможностью правки).
обычно происходит так: пользователь с другой страницы копирует ссылку (с помощью пр. кл. copy link..), вставляет в href, подписывает.
>>твой экспанд не экспандит полностью, >мне, ветку, где не может. вот, в принципе на тифарете не работает
>>вот на этой записи >>у меня зависает unfolder >у мення нет. честно дописал , загрузил и всё развернул. >проверено в Опере и Ff. гм «format=light» однако дописывает
>зыж патчи для «фтопку» принимаются. допиливание личными силами >маловероятно. %-) попробуем
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 12:24 pm |
|---|
| | | (Link) |
|
>обычно происходит так: пользователь >с другой страницы копирует ссылку >(с помощью пр. кл. copy link..), >вставляет в href, подписывает. именно поэтому я сейчас открываю окошко со строкой ввода. там можно тыцнуть ctrl+v, и всё. по-моему, достаточно приемлемый вариант.
>вот, в принципе на тифарете не работает работает. %-) обычно если осталось что-то неразвёрнутое — то это удалённый камент (он и не разворачивается ни во что, достаточно открыть его в новом окне, чтобы это увидеть).
>«format=light» однако дописывает я в другом каменте тебе сказал, отчего. слишком уж разнятся страницы стилей по структуре, нет универсальной «штучки», за которую можно зацепиться. %-(
>попробуем только сильно прошу соблюдать мой стиль кодинга, даже если он очень противен. %-) а то мне лениво переформатировать. ну, два пробела вместо таба, функции с большой буквы, переменные с маленькой и ты пы.
может, в ближайшие недели я открою для общего доступа git, могу туда тогда дать права на запись (если разберусь, как это сделать, пока я git использую только единолично %-).
>>вот на этой записи >>у меня зависает unfolder >у мення нет. честно дописал «format=light», загрузил и всё развернул. >проверено в Опере и Ff.
проверил в опере, работает. возможно, фф у меня замусорен.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 01:30 pm |
|---|
| | | (Link) |
|
>возможно, фф у меня замусорен. может быть. у меня практически чистый фокс (с парой расширений всего), и я ним не сёрфаю, только тестирую совместимость скрипта. так что может кто-то с кем-то и подрался, сказать не могу. а errro console чего кажет?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 01:31 pm |
|---|
| | | (Link) |
|
кстати, с третьим фоксом проблемы большие, надеюсь, у тебя не третий.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 02:55 pm |
|---|
| | | (Link) |
|
Да, я посмотрю, и пошлю ketmar-у патч. При десятипальцевой печати особого смысла в этих кнопках нет, только если и так рука отвлекалась на мышку, и тогда очень полезна система quote: автоматическая вставка выделенного текста.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 04:28 pm |
|---|
| | | (Link) |
|
кстати, я тормоз. надо прилепить шорткаты к кнопочкам. не забыть бы. %-)
с шорткатами получится быстрее. у меня основное время уходит на переключение раскладки рус-лат-рус.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 02:41 pm |
|---|
| | | (Link) |
|
Надо переключать одной клавишей. У меня двухклавишное переключение занимает много времени. Дома 18 дополнительных программируемых кнопок (причём макросы можно навешивать налету, без интерфейса, но я этого не делал), можно на них вешать переключение, но дома я чаще играю-смотрю фильмы и т.д., там неактуально.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 05:22 pm |
|---|
| | | (Link) |
|
>Надо переключать одной клавишей. плюсстотыщмильёнов. правый ctrl рулит. %-)
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 08:03 pm |
|---|
| | | (Link) |
|
Да и под Окнами можно. Только надо корячиться.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 08:24 pm |
|---|
| | | (Link) |
|
а у меня 5 программируемых, но лень изучать интерфейс.
конечно, одной клавишей легче, или двумя альтами, скажем, - мне всегда мешал ctrl+shift, путался с С+S+? шоркатами.
переключился вот на alt+shift. хотя для меня не так актульано, т.к. общаюсь всё-таки изредка, обычно программирую, а там русская раскладка не нужна.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 27th, 2008 - 08:07 pm |
|---|
| | | (Link) |
|
У меня проблема вызвана тем, что вероятность сбоя не так мала (из-за клавиатуры ли, из-за рук ли). У меня Альт-Шифт и есть.
На работе понтовую клавиатуру поставить можно, но на свои жалко, а выпрашивать стрёмновато: повод достаточно пустяковый.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 05:21 pm |
|---|
| | | (Link) |
|
>у меня основное время уходит на >переключение раскладки рус-лат-рус. а вот следует выкинуть в пень стандартную виндовую переключалку. ещё со времён доса я привык, что язык переключается правым ctrl, для чего в иксах настроил сразу, а для винды написал свой переключатель на асме. %-)
конечно, одной клавишей легче, или двумя альтами, скажем, - мне всегда мешал ctrl+shift, путался с С+S+? шоркатами.
переключился вот на alt+shift. хотя для меня не так актульано, т.к. общаюсь всё-таки изредка, обычно программирую, а там русская раскладка не нужна.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 27th, 2008 - 06:54 pm |
|---|
| | | (Link) |
|
переключения двумя кнопками — это охрененно «удачаное» дизайнерское решение. того, кто его придумал, надо подвесить за яйца на люстру. могу поискать и выложить свой yrzorg. x86-32 asm, 7 kb exe, no hooks, большой выбор кнопок для переключения (как стандартные виндовые, так и куча других), «максимальное время удержания», после которого держи-не держи, не переключит, возможность использования клавиши-переключалки (например, ctrl) по прямому назначению без переключения раскладки, индикаторы в виде надписи/флажка, опциональный «бамк» на переключение, возможность перекодировки clipboard (например, текста, yf,hfyjuj yt d njq hfcrkflrt %-). замена для стандартной переключалки. open source, public domain, как обычно. баги: плохо оттестирован режим «для каждого приложения совя раскладка», нерабочесть режима «для каждого своя раскадка» с консольными приложениями (с консолью работает, но раскладку в ней не запоминает). WinNT/2K/XP. собственно, вот. антивирь может заругаться — это false detect, он так реагирует на мой PE-компрессор «PUSH!». проект дохлый в связи с тем, что я больше не юзаю винду.
у меня на свисте думаю не запустится. мой первый учитель программирования как то сказал так: "программист вообще должне двумя пальцами программировать". а если пальцы обгоняют мысль, это плохо.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 29th, 2008 - 07:49 pm |
|---|
| | | (Link) |
|
>программист вообще >должне двумя пальцами программировать это те, кто сначала пишут, а потом проектируют. а бывает и наоборот — тогда всеми десятью отлично получается. %-)
тэкс, попробуем выложить исходник
// ==UserScript==
// @name untranslit kaledin
// @namespace http://userscripts.org/users/48278
// @description переводит утошгу каледина с молдавского на русский
// @include http://lj.rossia.org/*
// ==/UserScript==
var links=document.getElementsByTagName('a');
for (var i = 0; i < links.length; ++i) {
var change = "";
if (links[i].innerHTML == "kaledin")
change = "утошга каледин";
else if (links[i].innerHTML == "triglau")
change = "утошга триглав";
if (change != "") {
links[i].innerHTML = change;
var node = links[i];
while (node.id.substring(0, 5) != "ljcmt" && node.tagName != "BODY")
node = node.parentNode;
if (node) untranslitNode(node);
}
}
function untranslitNode(node) {
if (node.nodeName == "#text")
node.nodeValue = untranslit(node.nodeValue)
else
for (var i = 0; i < node.childNodes.length; ++i)
untranslitNode(node.childNodes[i]);
}
function untranslit(s) {
var symbols = {
'A': '\u0410', 'a': '\u0430',
'B': '\u0411', 'b': '\u0431',
'V': '\u0412', 'v': '\u0432',
'G': '\u0413', 'g': '\u0433',
'D': '\u0414', 'd': '\u0434',
'E': '\u0415', 'e': '\u0435',
'Yo': '\u0401', 'yo': '\u0451',
'Zz': '\u0416', 'zh': '\u0436',
'Z': '\u0417', 'z': '\u0437',
'I': '\u0418', 'i': '\u0438',
'J': '\u0419', 'j': '\u0439',
'K': '\u041A', 'k': '\u043A',
'L': '\u041B', 'l': '\u043B',
'M': '\u041C', 'm': '\u043C',
'N': '\u041D', 'n': '\u043D',
'O': '\u041E', 'o': '\u043E',
'P': '\u041F', 'p': '\u043F',
'R': '\u0420', 'r': '\u0440',
'S': '\u0421', 's': '\u0441',
'T': '\u0422', 't': '\u0442',
'U': '\u0423', 'u': '\u0443',
'F': '\u0424', 'f': '\u0444',
'X': '\u0425', 'H': '\u0425', 'x': '\u0445', 'h': '\u0445',
'C': '\u0426', 'Ts': '\u0426', 'c': '\u0446', 'ts': '\u0446',
'Ch': '\u0427', 'ch': '\u0447',
'Sh': '\u0428', 'sh': '\u0448',
'w': '\u0429', 'w': '\u0449',
'""': '\u042A', "''": '\u044A',
'Y': '\u042B', 'y': '\u044B',
// '"': '\u042C', "'": '\u044C',
'Je': '\u042D', 'je': '\u044D',
'Ju': '\u042E', 'Yu': '\u042E', 'ju': '\u044E', 'yu': '\u044E',
'Ja': '\u042F', 'Ya': '\u042F', 'ja': '\u044F', 'ya': '\u044F',
'Tz': '\u0426', 'tz': '\u0446',
"'": '\u044C',
'Eh': 'Э', 'eh': 'э',
'Kh': '\u0425',
'kh': '\u0445',
'?': ' кря?!',
};
var v = '';
var i = 0;
while (i < s.length) {
var translated = false;
var j = 2;
while (j > 0 && !translated) {
var letter = pick(s, i, j);
var t = symbols[letter];
if (t) {
v += t;
translated = true;
i += j;
}
--j;
}
if (!translated) {
v += s[i];
++i;
}
}
var s = "";
while (s != v) {
if (s == "") s = v;
v = s;
s = s.replace('бла ', 'кря ');
s = s.replace(' бла', ' кря');
}
return s;
}
function pick(s, i, j) {
var v = s[i];
for (var k = 1; k < j; ++k)
v += s[i + k];
return v;
}
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 11:38 am |
|---|
| | | (Link) |
|
добавлю ещё свой вариант untranslit: var trTableDif = {
Y: { O: '\u0401', o: '\u0401', U: '\u042E', u: '\u042E', A: '\u042F', a: '\u042F' },
y: { O: '\u0451', o: '\u0451', U: '\u044E', u: '\u044E', A: '\u044F', a: '\u044F' },
J: { E: '\u042D', e: '\u042D', U: '\u042E', u: '\u042E', A: '\u042F', a: '\u042F' },
j: { E: '\u044D', e: '\u044D', U: '\u044E', u: '\u044E', A: '\u044F', a: '\u044F' },
Z: { H: '\u0416', h: '\u0416' },
z: { H: '\u0436', h: '\u0436' },
T: { S: '\u0426', s: '\u0426' },
t: { S: '\u0446', s: '\u0446' },
C: { H: '\u0427', h: '\u0427' },
c: { H: '\u0447', h: '\u0447' },
S: { H: '\u0428', h: '\u0428' },
s: { H: '\u0448', h: '\u0448' },
E: { H: '\u042D', h: '\u042D' },
e: { H: '\u044D', h: '\u044D' },
K: { H: '\u0425', h: '\u0425' },
k: { H: '\u0445', h: '\u0445' },
'"': { '"': '\u042A' },
"'": { "'": '\u044A' }
};
var trTable = {
A: '\u0410', a: '\u0430',
B: '\u0411', b: '\u0431',
V: '\u0412', v: '\u0432',
G: '\u0413', g: '\u0433',
D: '\u0414', d: '\u0434',
E: '\u0415', e: '\u0435',
Z: '\u0417', z: '\u0437',
I: '\u0418', i: '\u0438',
J: '\u0419', j: '\u0439',
K: '\u041A', k: '\u043A',
L: '\u041B', l: '\u043B',
M: '\u041C', m: '\u043C',
N: '\u041D', n: '\u043D',
O: '\u041E', o: '\u043E',
P: '\u041F', p: '\u043F',
R: '\u0420', r: '\u0440',
S: '\u0421', s: '\u0441',
T: '\u0422', t: '\u0442',
U: '\u0423', u: '\u0443',
F: '\u0424', f: '\u0444',
X: '\u0425', x: '\u0445',
H: '\u0425', h: '\u0445',
C: '\u0426', c: '\u0446',
w: '\u0429', w: '\u0449',
Y: '\u042B', y: '\u044B',
"'": '\u044C',
//'"': '\u044C',
};
function untranslit (s) {
var res = "", len = s.length;
for (var f = 0; f < len; f++) {
var n = s.charAt(f);
var rus = trTable[n], dif = trTableDif[n];
if (dif) {
var n1 = s.charAt(f+1);
rus1 = dif[n1];
if (rus1) { rus = rus1; f++; }
}
res += rus?rus:n;
}
return res;
}
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | March 25th, 2008 - 02:45 pm |
|---|
| | | (Link) |
|
йопт! var rus1, естественно.
![[User Picture]](http://lj.rossia.org/userpic/42280/9559) | | From: | ppkk |
| Date: | March 25th, 2008 - 02:29 pm |
|---|
| | | (Link) |
|
Отлично выглядит, мне он не нужен (так как я уже сохранял его у себя и ковырялся), но просто ЛЖР позволяет выкладывать текст, а исходник — текст. Так что я сообщил тебе о такой возможности.
| |