AkelPad для чайников

Russian main discussion
  • Author
  • Message
Offline
Posts: 1
Joined: Thu Feb 09, 2023 4:41 pm

Post by ChildrenofkoRn »

Вечер, можно ли как-то понять почему не отрабатывает скрипт?
Может можно как-то лог получить с ошибками.

Не работают почему-то DateFormat.js или InsertDate.js
Не важно как запускаю, через скрипты или через плагин Hotkeys, скрипты на месте, остальное всё работает.

Вот например в хоткеях прописано:

Code: Select all

Date | Call("Scripts::Main", 1, "InsertDate.js", `"dd.MM.yyyy tt hh:mm tt"`, 0) | Ctrl+ Shift + D
Просто ничего не происходит.

InsertDateFromCalendar.js вот попробовал нормально работает.

Akelpad 4.9.7 x64, Win 10 Pro 12H2
Раньше когда-то работали тогда стояла правда Win7, не знаю может ли это быть связано с этим.

Update:
Думал может конфликт какой плагинов/скриптов, но оказалась всё банальные, действительно DateFormat.js и InsertDate.js просто не работают, return в скрипте возвращают пустоту, видимо системный вызов времени там какой-то устаревший.

Зато обнаружил, что вставка даты давно есть в самом Akelpad, перебиндил её Command(4183) на Ctrl+Shift+D, тк по Ctrl+D стоит дублировать строку.
А сам формат можно настроить в ini файле конфига.

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

ChildrenofkoRn
Не знаю, что там со старыми скриптами, которые идут в комплекте. Эти рабочие -DateFormat.js + DateInsert.js.

Скрипты нужны, если форматов для вставки Вы используете несколько, т.к. не будешь же постоянно корректировать ini-файл.

Offline
Posts: 8
Joined: Mon Jun 14, 2021 10:09 pm

Re: AkelPad для чайников

Post by Colourban »

В очередной раз прошу помочь старому чайнику.
Задача такая: автоматизировать хотя бы минимально поиск в тексте (в заготовке электронной книги) ссылок, расшифровывающих встречающиеся слова и понятия. Сама расшифровка каждой ссылки находится в конце текста. Тут проблем нет. А в самом тексте только номера ссылок, размещённые следующим образом (к примеру):
силу1.
понимаешь?2
службе3
местный4,
генерация…20
сделка»21
восторг!22<
коммерция“23;
апробация24:
То есть ссылки обозначены просто цифрами (числами), которые вплотную примыкают справа к словам или к знакам препинания, включая кавычки. А справа уже от этих ссылок (чисел) могут быть пробел, знак препинания или знак < (это, знак открывающий тот или иной тег в тексте).
Как правило, справа от ссылок могут оказаться знаки препинания: точка, запятая, точка с запятой, двоеточие. А слева все остальные знаки препинания.
Чаще всего слева от ссылок расположены именно слова.
Часто справа от ссылки именно пробел.
Задача попытаться автоматически (не полноценными скриптами, я этого точно не сумею, а с помощью регулярных выражений и Esc-последовательностей в AkelPad) привести эти числа (обозначающие будущие ссылки) к следующему виду:
<sup>[24]</sup> (то есть «апробация<sup>[24]</sup>:»)
или хотя бы просто автоматически поместить все эти числа в квадратные скобки:
[24] (то есть «апробация[24]:»)
Возможно произвести такую операцию, пускай даже в несколько шагов?

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Re: AkelPad для чайников

Post by VladSh »

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

Offline
Posts: 8
Joined: Mon Jun 14, 2021 10:09 pm

Re: AkelPad для чайников

Post by Colourban »

Вот несколько кусков текста:
<p>Выбор нового главы для одного города мог тянуться годами, а для трех городов — еще дольше. Теперь всем главам также грозили проверки, и, если в ходе их выяснится, что они преступили хоть один закон гильдии, их лишат правления одним мановением руки. Только в эти дни они поняли, что сами себя загнали в ловушку: клятвы, данные на крови много лет назад, убили бы их, пойди они против судьи. К тому же их дочери, заложницы этой резиденции, не могли быть освобождены и вернуться в свои кланы, поскольку были женами правителя гильдии и должны были разделить его участь2.</p>
-------
<p>— Доказательства обвинения господина Сяо на этом суде добыты незаконно, — уверенно продолжил Лю Синь. — Господин Сяо является не просто жителем вольного города — он также западный князь. Отношения вольных городов и империи хоть и можно назвать напряженными, однако они не объявляли друг другу войну. Господина Сяо по закону можно считать послом от империи, поскольку он не был лишен своего титула. Обыск такой высокопоставленной персоны возможен только при наличии особого распоряжения, подписанного главой Яотина, и должен проводиться исключительно линьши3. Но поскольку господин Дун сейчас отсутствует, а у вас как у временного заместителя на этом посту нет на это полномочий, то, полагаю, ваши гвардейцы не имели никакого права вламываться в дом господина Сяо в поисках того, в чем его можно было бы обвинить?</p>
-------
<p>— Да, она пишет, что ты мудила, из которого я должен выбить все дерьмо, — пропел Шуя Ганъюн, сплевывая на пол кровавую слюну. — Ой, смотрите-ка, тут даже пара уток-мандаринок5 с подписью: «Для моего дорогого А’Юна».</p>
-------
<p>— Вы не боитесь ни неба, ни земли7, раз позволяете себе применять пытки к невиновному человеку! Он ничего не сделал, чтобы заслужить столь жестокое обращение!</p>
-------
<p>— Если простолюдин наносит оскорбление чиновнику первого ранга, коим я и являюсь, то за такое полагается два года каторги. Меньшей мерой наказания являются сорок ударов розгами. Ты думаешь, я несправедливо обхожусь с твоим учеником, Сяо Фэн?8</p>
-------
<p>— А’Мин, это потрясающе! Это Сюань У?12 — Лю Синь вновь задрал голову, восхищаясь статуей.</p>
-------
<p>— Я готовлю отличные жареные овощные рулетики, дисаньсянь15 и шаобины16. Идем!</p>
-------
<p><emphasis>Вокруг меня царит великолепие</emphasis>22,</p>
-------
<p>«Я что, Гуань Инь?»23</p>

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Re: AkelPad для чайников

Post by VladSh »

Я не сильно соображаю в регулярках, но вот что-то типа того:

Code: Select all

var pSelText = AkelPad.GetSelText();

if (pSelText) {
	pSelText = pSelText.replace(/(\D+)(\d+)/g, "$1<sup>[$2]</sup>");
	AkelPad.ReplaceSel(pSelText, false);
}

Offline
Posts: 8
Joined: Mon Jun 14, 2021 10:09 pm

Re: AkelPad для чайников

Post by Colourban »

VladSh, искренне благодарю за попытку помочь, но я не из кокетства указал, что являюсь «старым чайником». То, что Вы привели, похоже на скрипт, а что с ним делать я не знаю. Мне бы, извиняюсь, на пальцах:
1) где поставить галочку: «Регулярные выражения» или «Esc-последовательности»?
2) что (какое выражение) указать в поле: «Найти далее: Что»?
3) что (какое выражение) указать в поле: «Заменить всё: Чем»?
Если за одну итерацию замену произвести невозможно, то последовательно несколько раз: «Что» и «Чем».
Прошу извинить за явную тупость, но я хоть и технарь (отработал всю жизнь инженером, последние десятилетия даже главным инженером), однако от IT моя специализация очень далека. Я никогда не учился ни на каких курсах компьютерной грамотности. Сам компьютер очень более-менее освоил «методом тыка» и с помощью советов от добрых людей. Правда, начал «осваивать» ещё в первой половине 90-х, за счёт чего, возможно, иногда произвожу впечатление не полного «чайника», но на самом деле я являюсь именно «полным чайником», которому под семьдесят, и, следовательно, состояние мозгов и памяти не позволяют уже с нуля попытаться освоить какой-нибудь язык программирования пускай даже самого высокого уровня. Предпринимал попытки, не продрался.
Ещё раз огромное Вам спасибо за попытку помочь!

Offline
Posts: 3243
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Re: AkelPad для чайников

Post by VladSh »

Colourban
Вот описание как пользоваться скриптами.

Настройка.
Вышеуказанный скрипт сохраняете по пути, указанном в п.7 описания по ссылке выше, с именем, к примеру FramingLinksNumbers.js.
C пунктов 3 по 6 написано как открыть диалог скриптов. Я бы ещё поставил галку на Scripts::Main, чтобы плагин загружался автоматически при каждом открытии программы.
В диалоге скриптов находим наш скрипт, и устанавливаем ему нужную комбинацию клавиш, желательно, чтобы она на совпадала с уже используемой.

Использование скрипта.
Выделяете текст, который нужно обработать, и жмёте установленную комбинацию клавиш.

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

Для этого программистом быть ненужно. Даже не технического склада ума люди смогли разобраться. Один раз настроить потом остаётся только пользоваться.
Если не разберётесь, пишите в личку.
Post Reply