Вызов контекстной справки Dash/Zeal из редактора

Здесь обсуждается всё, что касается макросов.
User avatar
phidel
Posts: 103
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 29 times
Been thanked: 6 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by phidel »

Технология файлов помощи в формате .chm считается устаревшей (привязана к Windows, проблемы с безопасностью, плохо масштабируется, неадаптивный интерфейс, закрытый код, выпущена в 1997 году и уже не поддерживается Microsoft).

Zeal - быстрый офлайн-браузер документации (на базе доксетов Dash). По сути современная замена chm без его недостатков.





Предлагаю макрос, который при нажатии CtrlF1 в редакторе подхватывает слово, на котором стоит курсор или выделенное сочетание слов, и открывает оболочку Zeal.

В зависимости от расширения файла настроен выбор подмножества справок, которые будут активированы при поиске. Например, для расширения .lua поиск будет произведен только в справке lua, а для расширения .php поиск будет ограничен справками php, wordpress, laravel, yii.

Макрос легко расширить под собственные нужды, добавив расширения файлов и подключив новые типы справок.

Предлагаю также сконвертированные в доксеты справки Far manager версии 3.0.5888 (энциклопедия, luafar_manual, macroapi_manual). Для их подключения к Zeal достаточно распаковать прилагаемый архив в папку программы zeal\docsets. Архив также содержит скрипты python для автоматической конвертации распакованных chm.

Альтернативно можно воспользоваться утилитой для конвертации johnd0e/chm2docset

Для поиска по всем трем доксетам следует указать префикс 'far:'
Для поиска по нескольким доксетам указывать префиксы через запятую 'lua,far:'
Без указания префикса ищет по всем подключенным доксетам.
Attachments
Editor.dea.Context_help.lua
(2.82 KiB) Downloaded 6 times
far_docsets_r1.zip
(1.34 MiB) Downloaded 8 times
Last edited by phidel on Sat 31 Jan, 2026 13:53, edited 3 times in total.
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

phidel wrote: Fri 30 Jan, 2026 19:40 Технология файлов помощи в формате .chm считается устаревшей (привязана к Windows, проблемы с безопасностью, плохо масштабируется, неадаптивный интерфейс, закрытый код, выпущена в 1997 году и уже не поддерживается Microsoft).
У chm одно большое преимущество: в целевой системе поддержка из коробки.
Не нравится закрытый код - можно смотреть и в SumatraPDF.
phidel wrote: Fri 30 Jan, 2026 19:40 Zeal - быстрый офлайн-браузер документации (на базе доксетов Dash). По сути современная замена chm без его недостатков.
Не знаю в каком именно месте он быстрый, но точно не при запуске. Он же на электроне.

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

Хотя можно пойти обратным путём: использовать индекс docSet.dsidx для поиска данных, а результат открывать в любом браузере.
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 103
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 29 times
Been thanked: 6 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by phidel »

John Doe wrote: Fri 30 Jan, 2026 21:40 Не знаю в каком именно месте он быстрый, но точно не при запуске. Он же на электроне.
Это неверно, он на C++
John Doe wrote: Fri 30 Jan, 2026 21:40 Не нравится закрытый код - можно смотреть и в SumatraPDF.
Мне не нравится, что нет штатного способа вызвать контекстную справку по конкретному слову по горячей клавише из редактора Far.
John Doe wrote: Fri 30 Jan, 2026 21:40 У chm одно большое преимущество: в целевой системе поддержка из коробки.
На линуксе тоже?
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

phidel wrote: Fri 30 Jan, 2026 21:52 Это неверно, он на C++
Вы правы, я был неточен, он на QT, и содержит в себе движок браузера (как собственно и Electron).
Именно поэтому и занимает он более 100 МБ, что и тянет за собой некоторую неповоротливость при запуске.
Если держать его открытым постоянно то значения не имеет.
phidel wrote: Fri 30 Jan, 2026 21:52 Мне не нравится, что нет штатного способа вызвать контекстную справку по конкретному слову по горячей клавише из редактора Far.
В каком смысле штатного?
Есть макрос для chm.
И макрос, который бы открывал страницу из вашего docSet в системном браузере, будет очень простым. Вообще не запуская Zeal.
И ещё проще если держать индекс в текстовом файле.
phidel wrote: Fri 30 Jan, 2026 21:52 На линуксе тоже?
Линукс в контексте данного форума не является целевой системой.
https://t.me/FarManager — Telegram чат
User avatar
SUSim
Posts: 1725
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 15 times
Been thanked: 45 times

Вызов контекстной справки Dash/Zeal из редактора

Post by SUSim »

А вообще если offline-постоянен предлагаемый способ работает, при отсутствии прав админа на всех этапах?

Портабельность наше всё....
Last edited by SUSim on Fri 30 Jan, 2026 22:33, edited 1 time in total.
SimSU ··· ·· -- ··· ··-
User avatar
phidel
Posts: 103
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 29 times
Been thanked: 6 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by phidel »

SUSim wrote: Fri 30 Jan, 2026 22:32 А вообще если offline-постоянен предлагаемый способ работает, при отсутствии прав админа на всех этапах?
у меня прав админа не запрашивал в портативной версии
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

John Doe wrote: Fri 30 Jan, 2026 22:12 И макрос, который бы открывал страницу из вашего docSet в системном браузере, будет очень простым. Вообще не запуская Zeal.
И ещё проще если держать индекс в текстовом файле.
Я уточню: в цитируемом я имею ввиду не какой-то готовый макрос (такого пока нет), а что написать его будет несложно.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

Вот кстати готовая утилита chm2docset.
С её помощью легко автоматизировать создание доксетов при обновлении chm.
Last edited by John Doe on Sat 31 Jan, 2026 02:36, edited 1 time in total.
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 103
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 29 times
Been thanked: 6 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by phidel »

John Doe wrote: Fri 30 Jan, 2026 23:00 С её помощью легко автоматизировать создание доксетов при обновлении chm.
Не совсем понял зачем эта утилита? в первом сообщении я уже выложил как сами доксеты, так и скрипты по их автоматической генерации. Есть какие-то преимущества?
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

phidel wrote: Fri 30 Jan, 2026 23:04 Есть какие-то преимущества?
Из очевидного: легче в использовании: не требует python и наличия исходных файлов (или предварительно распаковки chm), и можно использовать с произвольными chm, поскольку имя указывается аргументом, а не захардкожено в исходниках.

P.S. сам-то я тоже предпочёл бы python, просто готовое попалось (на первый взгляд, на самом деле потребовалась доработка).
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 103
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 29 times
Been thanked: 6 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by phidel »

John Doe wrote: Fri 30 Jan, 2026 23:00 Вот кстати готовая утилита chm2docset.
С её помощью легко автоматизировать создание доксетов при обновлении chm.
Не работает, выдает ошибку при запуске
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

phidel wrote: Fri 30 Jan, 2026 19:40 Предлагаю также сконвертированные в доксеты справки Far manager (энциклопедия, luafar_manual, macroapi_manual)
Похоже ваша конвертация основана на старых версиях справки.
Также в индексе замечены дубли.
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 103
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 29 times
Been thanked: 6 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by phidel »

John Doe wrote: Sat 31 Jan, 2026 13:41 Похоже ваша конвертация основана на старых версиях справки.
Также в индексе замечены дубли.
Да, это верно, версии старые.
Какие именно дубли?
User avatar
John Doe
Бюрократ
Posts: 14570
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Вызов контекстной справки Dash/Zeal из редактора

Post by John Doe »

phidel wrote: Sat 31 Jan, 2026 13:47 Какие именно дубли?
Всевозможные, вероятно вопрос к исходным .hhc/.hhc.

Первый попавшийся пример:

Code: Select all

sqlite3 -noheader -list docSet.dsidx  "SELECT name,path FROM searchIndex ORDER BY name;" > _sorted_names.txt
...
Экспортируемые функции|html/exported_functions/index.html
Экспортируемые функции|html/exported_functions/index.html
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”