LINUX.ORG.RU

LORCode Tools: панель тегов и цитирование выделенного

 


21

29

Скрипт добавляет панель тегов над формами ответа/треда/профиля/etc.
Кроме тегов на панели есть специальные функции:

  • «brs» добавляет [br] к переводам строк;
  • «fix», а-ля викификация: превращает (c) в ©, (f) в £, " - " в " — " и еще много;
  • «deltags-in» снимает крайнее (внешнее) обрамления тегами в выделенном.

Добавляет ссылки сверху постов:

  • «блок-цитата» вставляет выделенный текст (или все сообщение) в тегах [quote];
  • «цитата» вставляет текст, добавляя в начало каждой строки стрелочки цитирования (>);
  • «юзер» вставляет обращение через тег [user] к автору соответствующего поста.

Для установки скрипта в Firefox вам необходимо расширение Greasemonkey, по ссылке на скрипт будет предложено установить его.
В Opera смотрите настройки для сайта >> скрипты, где задается папка JavaScript, в которую и должен быть сохранен скрипт.

Обновления:

  • 03.11.2011: v. 0.1
  • 04.11.2011: v. 0.11
  • 13.11.2011: v. 0.12
  • 14.12.2011: v. 0.13
  • 02.01.2012: v. 0.2
  • 14.04.2012: v. 0.21

Форки:

Официально поддерживается только тема black. Форки любого рода приветствуются.

При обновлениях обновляется все тот же файл, а равно ссылка не меняется (по крайней мере пока). Об обновлениях создаются соответствующие посты в треде, ChangeLog ведется на официальной странице. Рекомендую подписаться на тред.

Скрипт базируется на MultiCodePanel 2 (тоже мой проект) и распространяется на условиях лицензии Creative Commons Attribution 3.0 Unported.

Спасибо за помощь Yareg, спасибо авторам статей «Range, TextRange и Selection», «Учимся писать userscript'ы», «Textarea и управление им с помощью javascript», без вас у меня ничего бы не вышло.

Ответ на: комментарий от moscwich

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

Уговорил =) Я всё равно собирался свой ФФ освежевать ;)

VirRaa ★★★ ()

Хех. Поставил 8-й Firefox, а толку? При нажатии на кнопку «цитировать», я получаю ошибку:

Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLTextAreaElement.setSelectionRange]

VirRaa ★★★ ()

Просьба модераторам дать мне права на редактирование заглавного поста этой темы по истечение часа, если это возможно.

По истечению часа можно редактировать только прикрепленные сообщения (и еще неподтвержденные новости, но это не тот случай). Так что если надо что-то поправить, то поймай кого-нибудь из модераторов в jabber'е и попроси кратковременно прикрепить тему. Пока лучшего решения нет.

maxcom ★★★★★ ()
Ответ на: комментарий от moscwich

Ты вниметельнее посмотри.

  • Если окно с textarea не открытро - получаем ошибку
  • Жму цитировать на тебя, цитирует тебя, затем жму цитировать кёрнел-паника, а цитирует всё равно тебя
VirRaa ★★★ ()
Ответ на: комментарий от moscwich

Ты текст не выделяешь.

Причём здесь текст? Если я жму кнопку «цитировать», я сразу подразумеваю, что процитирую ВЕСЬ ТЕКСТ именно ЭТОГО ПОЛЬЗОВАТЕЛЯ.

У тебя ни текст не выделяется, ни пользователь правильно не подставляется.

VirRaa ★★★ ()
Ответ на: комментарий от Xenesz

Плохой, негодный капитан.

Мальчик, побудь в интернетах с моё, и тебя не будет это удивлять. Если текст не выделен, то значит мне надо процитировать весь.

VirRaa ★★★ ()

Сейчас немного поменял цвета для http://userstyles.org/styles/17836/lor-grey и всплыл баг:

Лучше поменять строки 59-62 на следующее, иначе к ним не применяется стиль ссылок.

<strong><a href=\'javascript:intag ("strong");\' title="Жирный">[b]</a></strong>\
<em><a href=\'javascript:intag ("em");\' title="Курсив">[i]</a></em>\
<s><a href=\'javascript:intag ("s");\' title="Зачеркнутый">[s]</a></s>\
<u><a href=\'javascript:intag ("u");\' title="Подчеркнутый">[u]</a></u>\

Shtsh ★★★★ ()
Ответ на: комментарий от moscwich

Просто кнопка "цитировать" ведет себя немного не так как ожидаешь. Когда окно ответа открыто - кнопка работает как ожидается. Но если нажать на кнопку до "Ответить на это сообщение" - ничего не происходит, а ожидается, что откроется окно ответа с вставленной цитатой. Можно просто показывать кнопку "цитировать" только при открытой форме для ответа на сообщение, а при обычном просмотре темы - ее спрятать.
Объяснил как смог. )

vadik ★★ ()
Ответ на: комментарий от moscwich

Кстати, возник вопрос: Как лучше всего заменить надпись «linux.org.ru - русская информация...».

Я делаю при помощи document.getElementById(«sitetitle»).childNodes[0].textContent=«L.O.R.»;

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

Shtsh ★★★★ ()
Ответ на: комментарий от vadik

vadik

Можно просто показывать кнопку «цитировать» только при открытой форме для ответа на сообщение, а при обычном просмотре темы - ее спрятать.

Это ваще сложно. Открывать ответ по ней тоже сложно. Сложно, в смысле я без понятия как, потому я быдлокодер, JS знаю хреново, JSP не знаю вообще, и хитрожопые структуры движка не изучал, а то что панелька к форме вставляется в любом случае - чистое везение и чистая случайность для меня.

moscwich ()
Ответ на: комментарий от moscwich

Тогда может ее переместить в строку с кнопками?
Я вообще далекий от всего этого, поэтому могу только предлагать.:(
А за дополнение - спасибо огроменное. Работает (у меня) под последними ФФ, Оперой и Хромиумом.

vadik ★★ ()
Ответ на: комментарий от vadik

vadik

Тогда может ее переместить в строку с кнопками?

А этого делать не буду, потому что можно цитировать не только из того поста, на который отвечаешь. Хотел сначала рядом с «Ответить на это сообщение» поставить, но тогда по неведомым мне причинам раскрывающаяся форма ответа перестает быть раскрывающейся (работает как ссылка на add_comment.jsp).

moscwich ()
Ответ на: комментарий от moscwich

Ясно, в любом случае та разраб - тебе видней. Может быть тогда в стартовом сообщении стоит указать, что кнопка "цитировать" работает только в форме ответа?

vadik ★★ ()
Ответ на: комментарий от moscwich

но тогда по неведомым мне причинам раскрывающаяся форма ответа перестает быть раскрывающейся (работает как ссылка на add_comment.jsp).

окошко для ответа и сейчас не раскрывается при клике по ссылке «цитировать».

nyash ()
Ответ на: комментарий от nyash

nyash

окошко для ответа и сейчас не раскрывается при клике по ссылке «цитировать».

Вы достали уже. И не должно. А в том случая она не раскрывается даже по ссылке «Ответить на это сообщение», эта ссылка тогда работает как ссылка на отделенную страницу ответа.

moscwich ()
Ответ на: комментарий от moscwich

как вариант можно вот это добавить

var commendId = msg.id;[br]
commendId = commendId.replace("comment-","");[br]
sh(1,commendId);
в вашу функцию q();

А вот с разворачиванием окна для ответа на первый пост придётся повозится (разворачивается то функцией sh(0,0), но вот отследить нажатие по ссылке с «comment-message.jsp» без jquery, для меня , проблема :()
тут addComments.js посмотрите как оно реализовано (оформлено ужасно)

nyash ()
Ответ на: комментарий от nyash

точнее вот так (чтобы не было «ложных» срабатываний, если текст не выделен)

if(seltxt != "") {
  var commendId = msg.id;
  commendId = commendId.replace("comment-","");
  sh(1,commendId);
  obj.wrtSel(addbr("[quote=" + msg.getElementsByClassName ("sign")[0].getElementsByTagName ("a")[0].innerHTML + "]" + seltxt.toString () + "[/quote]"));
}

nyash ()
Ответ на: комментарий от nyash

Круто, конечно, твой код работает: форма открыта, цитирую выделенное: форма сворачивается. (Opera)

nyash

А вот с разворачиванием окна для ответа на первый пост придётся повозится (разворачивается то функцией sh(0,0), но вот отследить нажатие по ссылке с «comment-message.jsp» без jquery, для меня , проблема :()

На JQuery я может и перепишу, но не скоро (эдак v. 0.3). Сейчас просто чтобы сумбур не мешать... ну ты понял.

moscwich ()