Page 1 of 2

Редактирование html кода

Posted: Wed Oct 01, 2014 8:54 am
by Nizaury
Подскажите, какие-либо скрипты(плагины) для быстрой вставки HTML тэгов до и после выделенного текста.

Posted: Wed Oct 01, 2014 9:13 am
by Cuprum
Nizaury

insertTag.js

Posted: Wed Oct 01, 2014 10:46 am
by Nizaury
С одной стороны конечно удобно, что тэги открытия приходится вводить вручную, но больше интересует подобие плагина BBCode, где уже присутствует базвый набор тэгов+возможность добавить их самому как в контекстное меню, так и на панель инструментов.

При работе скрипта insertTag.js наблюдаются существенная ошибка - Неправильное распознавание последовательности из 2 тегов.

Например:

1) Если ввести в качестве открытия <p><b>, то в качестве закрытия он предложит </p><b>
2) Если ввести в качестве открытия <input type='button' class="splLink" value='Show'><div class="splCont"> , то вместо </div> он предложит </input>

Posted: Wed Oct 01, 2014 11:31 am
by Skif_off
Nizaury
Можно ещё посмотреть Insert в ContextMenu plugin.

Posted: Wed Oct 01, 2014 2:22 pm
by Lenchik
Я назабивал в хоткеи через соответствующий плагин требующиеся комбинации, например

Code: Select all

Insert("<mark class=\[0022]filename\[0022]>\s</mark>", 1)
А так-то с автором InsertTag наверняка можно списаться и предложить доработать.

Posted: Wed Oct 01, 2014 2:48 pm
by Skif_off
Lenchik
\[0022] - это аналог позиции каретки $[] в coder-файлах?

Posted: Wed Oct 01, 2014 3:07 pm
by Infocatcher
Nizaury wrote:insertTag.js
...
1) Если ввести в качестве открытия <p><b>, то в качестве закрытия он предложит </p><b>
2) Если ввести в качестве открытия <input type='button' class="splLink" value='Show'><div class="splCont"> , то вместо </div> он предложит </input>
На данный момент поддерживается ввод только одного тэга за раз.
По п. 2) с <input> и ему подобными надо иметь список тэгов, которые не надо закрывать, да еще и распознать тип документа, чтобы в случае необходимости вставить <input/>. Это все нетривиально и усложнит логику.
Закрытие всего, что было открыто, можно попробовать сделать, но, опять же, без проверок на вложение уже закрытых тэгов.

Posted: Wed Oct 01, 2014 5:50 pm
by Lenchik
Skif_off
Это код символа

Code: Select all

"

Posted: Wed Oct 01, 2014 11:14 pm
by Skif_off
Lenchik
С телефона сложно :)

Posted: Thu Oct 02, 2014 5:53 am
by Nizaury
Infocatcher wrote:На данный момент поддерживается ввод только одного тэга за раз.
По п. 2) с <input> и ему подобными надо иметь список тэгов, которые не надо закрывать, да еще и распознать тип документа, чтобы в случае необходимости вставить <input/>. Это все нетривиально и усложнит логику.
Закрытие всего, что было открыто, можно попробовать сделать, но, опять же, без проверок на вложение уже закрытых тэгов.
Если уж и вводить вручную вместо выбора из списка тегов, то главным плюсом сглаживающим необходимость ручного ввода, имхо должна быть правильно распознанная мультитэговость. Ну пока можно добавить закрытие всего открытого, затем список исключений, а после уже и глубину проверки открытых тэгов.
___________________________________________________________
Предположу идеальный скрипт(плагин) для работы с HTML тэгами:

1) Пункт в контекстном меню наподобие BBCode, где можно из списка выбрать необходимый тэг.
2) Возможность добавления новых тэгов в список
3) Возможность создания списка исключения тэгов, которые не должны добавляться после каретки.
4) Подпункт в меню при нажатии которого можно ввести открывающие тэги самостоятельно, как вариант - доработанный insertTag.js с грамотным распознаванием вложенных тегов, и работающий со списком исключений, указанном в пункте 3.

Posted: Thu Oct 02, 2014 6:29 am
by Infocatcher
Nizaury
Любые пункты меню можно сделать через плагин ContextMenu.

Posted: Thu Oct 02, 2014 3:07 pm
by Lenchik
Nizaury
А вы не пробовали Autocomplete фичу плагина Coder? Доработали бы имеющиеся дополнения нужными вам комбинациями и вызывали бы их набором записанных символов. Может быть потом вошло бы в основной обновляемый html.coder.

Posted: Fri Oct 03, 2014 5:09 am
by Nizaury
Меню с пунктами часто используемых тэгов и вызовом скрипта insertTag.js создал - это не проблема. Осталось дождаться доработки указанного скрипта - для полноценного его использования. Надо будет еще добавить кнопки на панель инструментов. Однако каждый раз после переустановки программы / Windows заново создавать с нуля все иконки и пункты меню... :x
Lenchik wrote:Nizaury
А вы не пробовали Autocomplete фичу плагина Coder? Доработали бы имеющиеся дополнения нужными вам комбинациями и вызывали бы их набором записанных символов. Может быть потом вошло бы в основной обновляемый html.coder.
Так у Autocomplete в Coder примерно тот же принцип действий, что и у insertTag.js, только проще говоря моменты предугадывания вставляемого текста разные.
insertTag.js - требует начальный тэг и подбирает сам конечный.
Autocomplete - требует начать ввод тэга и сам его дописывает, плюс вроде бы не работает с позицией текста относительно каретки.
Имхо, insertTag.js немного удобней хоть и не доработан.

Posted: Fri Oct 03, 2014 7:28 am
by Infocatcher
Nizaury
Немного доработал: https://github.com/Infocatcher/AkelPad_ ... c2981891ac
Теперь должно закрывать все открытые тэги типа

Code: Select all

<div><pre><em><ins><strong>
=> <div><pre><em><ins><strong></strong></ins></em></pre></div>
или

Code: Select all

<div id="d"><pre class="p"><em><ins class="i"><a rel="x">
=> <div id="d"><pre class="p"><em><ins class="i"><a rel="x"></a></ins></em></pre></div>

Posted: Fri Oct 03, 2014 9:39 am
by opk44
Nizaury wrote:... Однако каждый раз после переустановки программы / Windows заново создавать с нуля все иконки и пункты меню... :x
Зачем с нуля? Я бы обратил внимание на "первоисточники":
http://akelpad.sourceforge.net/files/pl ... in-Rus.txt
http://akelpad.sourceforge.net/files/pl ... in-Eng.txt
Ничего не мешает руководствоваться теми же принципами "на месте". Сохраните свои настроенные меню и пусть лежат в сторонке.
Кстати и с тулбаром аналогично.