Ultra TC Editors

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Jonmey
Да, конечно. У меня как следует заниматься ещё и этим сейчас возможности всё равно нет, а по форме подачи материала, как верно было замечено, всем не угодишь. Поэтому пока для меня эта задача приоритетной не является. Тем более, что помимо текущей работы давно уже есть всякие перспективные задумки по старым и новым справочникам, которые хотелось бы в разумные сроки довести до приемлемого результата.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Jonmey
Сообщения: 59
Зарегистрирован: Пн сен 27, 2010 14:01

Сообщение Jonmey »

Avada
Выше было написано не с целью вас привлекать к этой работе (вы уже предоставили готовый материал), а с целью объяснить желающим иметь удобную оффлайн версию, что это возможно, но нужны коллективные усилия для этого (то есть, не ваши, а усилия пользователей).
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Avada писал(а):К сожалению, у меня нет времени и сил на полноценное сопровождение ещё и в виде оптимизированных HTML-таблиц всех справочников по ключам
В идеале, дополнительных усилий с вашей строны не должно больше требоваться. Скрипт (или какое-то другое программное решение) должен самостоятельно выбирать текст из Russian.cedf и собирать новый формат справочника. Ваше участие может пригодиться, чтобы проверить, что все соответствует действительности (ничего не потерялось). Одобрить, так сказать :)
Jonmey писал(а):если все свалить на одного человека - вряд ли получится результат устраивающий многих.
Да. Крупные проекты во многом так и делаются. Если взять разработку сайта, то движок для него делает один человек, дизайн и графику другой, верстку и разметку текста третий. Одному делать все трудно, хотя если заниматься этим профессионально, то навыки, конечно, будут.

Конкретно в моем случает, не хватает знаний html и chm. Вытянуть текст из cedf можно. Вопрос, как его отформатировать и в каком виде представить: чтобы и главы не потерялись, и новые возможности открылись (к примеру, навигация по ключам внутри секций, а не только навигация по главам и разделам).

В принципе, chm от yozhic приемлемый вариант. Там хотя бы шрифт другой и отступ между абзацами сохраняется, это уже способствует более комфортному чтению. Если бы еще текст можно было растянуть на весь экран, этого было бы достаточно.
Аватара пользователя
nemo9
Сообщения: 4
Зарегистрирован: Вт апр 14, 2026 15:13

Сообщение nemo9 »

Avada писал(а):Попытки альтернативной выкладки справочников уже делались (пример для TC 11.56 — ссылка с ру-борда), и результаты, ИМХО, были поприличнее.
К сожалению, ранее этого не встречал.
Вариант, действительно, неплохой (особенно, с темной темой).
Минусы такого решения для меня: 1) трудно переделывать в другой формат, 2) 7 Мб против 3+Мб при одинаковом содержимом - не хочется раздувать дистрибутив сборки.
В моем варианте выделено комментариями в коде что нужно скопипастить в изначальном вашем коде, чтобы получить готовое решение за минуту в простом текстовом редакторе. И мне важно сразу видеть дату актуализации и ссылку для сверки на онлайн.
По сути - это и есть шаблон, о котором писали ниже.
Ни в коем случае не настаиваю на своем варианте. Если сообщение считаете лишним - смело удаляйте.
В любом случае, спасибо за вашу бесценную работу и интересные ссылки!

Добавлено спустя 18 минут:
Orion9 писал(а):Вытянуть текст из cedf можно. Вопрос, как его отформатировать и в каком виде представить: чтобы и главы не потерялись, и новые возможности открылись (к примеру, навигация по ключам внутри секций, а не только навигация по главам и разделам).
Просто сохраните страницу как HTML (Веб-страница полностью). Сохранится с нормальным форматированием.
Ниже ссылки на скрины как это выглядит в Firefox:

Код: Выделить всё

https://postimg.cc/0MKdFX95
https://postimg.cc/ykj9QC07
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

nemo9 писал(а):7 Мб против 3+Мб при одинаковом содержимом
Нет, содержимое не одинаковое. В варианте 3+Мб собраны справочники только для последней 11.56 версии TC, а в варианте 7 Мб — для всех версий TC от 9.00 до 11.56, т.е. по 13 справочников в каждом CHM.
nemo9 писал(а):трудно переделывать в другой формат
Разве пользователю TC трудно распаковать CHM? 7-zip встроен, да и wcx-плагин имеется. А после распаковки тот же HTML.
Amo ergo sum
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

yozhik писал(а):от 9.00 до 11.56
От 9.51. А в остальном всё верно.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

nemo9 писал(а):Просто сохраните страницу как HTML (Веб-страница полностью). Сохранится с нормальным форматированием.
Так сохраняется в формате таблицы, а я имел в виду именно другой формат справочника. Тем не менее, пришла в голову одна мысль. Ниже сохраненный файл с возможностью скрывать лишние колонки. Тем самым текст из описания растягивается и становится удобным для чтения
https://wdho.ru/gAfX
Можо переключать комбинацией Alt+H.

Все свелось по сути к нескольким строкам в начале файла

Код: Выделить всё

<html><button onclick="toggleColumn()">Показать/Скрыть колонку (Alt+H)</button>
    <script>
      function toggleColumn() {
        // Просто включаем/выключаем класс на таблице
        document.body.classList.toggle('hide-cols');        
      }
      document.addEventListener('keydown', function(event) {
        // Например, переключаем по нажатию Alt + H (Hide)
        if (event.altKey && event.code === 'KeyH') {
          event.preventDefault(); // чтобы не сработали системные функции
          toggleColumn(); 
        }
      });        
    </script>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style type="text/css">
        /*.hide-cols td:nth-child(1),*/
          .hide-cols td:nth-child(2),
          .hide-cols td:nth-child(3),
          .hide-cols td:nth-child(4),
          .hide-cols td:nth-child(5),          
          .hide-cols td:nth-child(6) {
            display: none;
          }
Комментарии не мои, а ИИ. Куда ж без него ныче :)

yozhik
Можно сделать тоже самое в вашем CHM-файле?

Avada
На сайте flint-inc.ru можно сделать так же?
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Orion9
CHM — древний формат, открывается в hh.exe, а тот в свою очередь подтягивает iexplore.exe. Последствия: со связкой CHM+JS возиться надо, чтобы заставить JS работать и он не сыпал ошибками. Вдобавок и на сам CHM в системе накладываются какие-то ограничения в отношении JS, их отключать надо, так что если заработало на одной машине, не факт что заработает на другой. И ваш файл в современном браузере работает исправно, а после упаковки в CHM — нет :? Разобраться можно было бы, наверное, но времени увы.
Amo ergo sum
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Orion9
Что можно сделать, в компетенции CaptainFlint. Но "то же самое" делать точно не надо, там пока что не всё в порядке: посмотрите, что происходит в браузерах после нажатия Alt+H в нижней части файла. где секции. Кроме того, cкрытие части колонок не работает в офлайне (через плагины). Кстати, скрытие (даже временное) как минимум колонки с указанием содержащей ключ секции (да и файла, пожалуй, тоже) мне очень хорошей идеей не кажется.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

yozhik писал(а):Разобраться можно было бы, наверное, но времени увы.
Это да. Но никто и не гонит. Речь идет о перспективах. А в перспективах хотелось бы такое увидеть — растянутый текст все-такие удобнее читать.

Поигрался с утра еще с болваном. Раз уж с Java есть проблемы, пришла мысль спросить его за VBScript. Ответ последовал незамедлительно :D

В обшем, удалось сделать то же самое для плагина HTMLView. Возможно теперь и в CHM будет работать, но... У меня не получилось повесить горячую клавишу Alt+H, а без переключения по горячей клавише все остальное бесполезно (если только не сделать плавающую кнопку или что-то в этом роде). Может быть какие-то ограничения ТС мешают, или еще что-то. Разбираться с этим, если честно, не имея никаких знаний, очень сложно, поэтому и желания большого нет.

VBScript не понимает td:nth-child(), поэтому используется

Код: Выделить всё

.hide-cols .td_header { display: none; }          
.hide-cols .td_file { display: none; }
.hide-cols .td_section { display: none; }          
.hide-cols .td_version { display: none; }     
.hide-cols .td_default { display: none; }
.hide-cols .td_advanced { display: none; }
Остальной код с начала
[cut]

Код: Выделить всё

<html><button onclick="ToggleAllTables()">Показать/Скрыть колонку (Alt+H)</button>
    <script language="VBScript">
    
        Set document.onkeydown = GetRef("Document_OnKeyDown")
        
        Sub ToggleAllTables()
            'MsgBox "ToggleAllTables"
            Dim body
            Set body = Document.Body
            ' Проверяем наличие класса и переключаем его
            If InStr(body.ClassName, "hide-cols") > 0 Then
                body.ClassName = Replace(body.ClassName, "hide-cols", "")
            Else
                body.ClassName = body.ClassName & " hide-cols"
            End If
        End Sub
        
        Sub Window_OnKeyDown()
            MsgBox "ToggleAllTables"

            ' 72 — это код клавиши "H", 18 — это Alt
            If window.event.altKey And window.event.keyCode = 72 Then
                Call ToggleAllTables() ' Скрыть колонки
            End If
        End Sub
        
        Sub Document_OnKeyDown()
            MsgBox "ToggleAllTables"        
            Dim keyCode
            keyCode = window.event.keyCode
            
            ' 72 — это код клавиши H
            If window.event.altKey And keyCode = 72 Then
                ' Чтобы браузер не пытался открыть свое меню "Справка"
                window.event.returnValue = False 
                
                ' Вызываем вашу функцию скрытия
                Call ToggleAllTables()
            End If
        End Sub
        
        Sub Window_OnLoad()
            Set document.onkeydown = GetRef("Document_OnKeyDown")
        End Sub
    </script>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style type="text/css">        
[/cut]
Здесь я уже пробовал разные варианты _OnKeyDown, хотя должен быть по идее один. Был еще один вариант скрытия колонок от ИИ, может пригодится

Код: Выделить всё

Sub HideSecondColumn()
    Dim tables, table, row
    Set tables = document.getElementsByTagName("table")
    
    For Each table In tables
        For Each row In table.rows
            ' Индекс 1 — это вторая колонка (счет с нуля)
            If row.cells.length > 1 Then 
                row.cells(1).style.display = "none"
            End If
        Next
    Next
End Sub
Но со скрытием и отображением все и так нормально, не работает только горячий вызов.
Версия файла:
https://wdho.ru/gAhS
Avada писал(а):Что можно сделать, в компетенции CaptainFlint.
Я понял. Просто оригинальный CEDF из пакета можно не трогать, а на сайте сделать примочку для скрытия столбцов и растягивания текста.
Avada писал(а): Но "то же самое" делать точно не надо, там пока что не всё в порядке:
Полностью согласен. Проблема с секциями и офлайн просмотром действительно есть. Но речь шла больше о перспективах и направлении для дальнейшего развития, и в целом, мне это направление нравится, т.е. скрытие лишних колонок, жаль только не хватает знаний и компетенций в этом вопросе.

Хотя дело не только в лишних колонках. Хотелось бы еще шрифт другой и отступы между абзацами, как в CHM файле.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Orion9 писал(а):В обшем, удалось сделать то же самое для плагина HTMLView.
Orion9 писал(а):У меня не получилось повесить горячую клавишу Alt+H, а без переключения по горячей клавише все остальное бесполезно
Не будучи программистом, я не совсем понял, что то же самое (с точки зрения пользователя, а не кода, естественно) удалось сделать для плагина, если теперь клавиатурное скрытие, позиционируемое как основная новая фича, не работает нигде. Как, впрочем, и кнопка показа/скрытия части колонок наверху.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Avada
Даже не знаю, что сказать. У меня на Win11 работает. Сейчас проверял на Win81 (у меня там, к тому же, старый коммандер остался версии 9.22), тоже вроде работает. Но сам IE на Win81 не хочет выполнять VBScript хоть убей. Пишет:

Код: Выделить всё

Строка: 1
Ошибка: "ToggleAllTables" не определено
Я потыркался немного, но бросил это дело. Вспомнил, что у меня был гаджет, где использовался VBScript в HTML странице, там и нашел решение. Чем-то оно даже лучше горячей клавиши.

Код: Выделить всё

<body ondblclick="ToggleAllTables()">
Т.е. столбцы теперь переключаются по двойному клику в любом месте. И могу сказать, что это удобно!

По идее, можно и нажатие так отловить, но почему-то не работает

Код: Выделить всё

<body onkeydown="ToggleAllTables()">
Возможно это как-то связано с плагином HTMLView, поскольку JavaScript в браузере работает, все отлавливается

Код: Выделить всё

<body ondblclick="ToggleAllTables()" onkeydown="ToggleAllTables('Клавиша нажата!)"> 
Но я думаю, что если с клавишей не получится разобраться, то двойной клик вполне подойдет.

Я не буду сбрасывать новый вариант справочника. Чтобы добавить двойной клик, нужно просто добавить к тегу <body> событие ondblclick. Т.е. заменить в файле

Код: Выделить всё

</style></head><body><h1>Настройки Total Commander</h1>
На

Код: Выделить всё

</style></head><body ondblclick="ToggleAllTables()"><h1>Настройки Total Commander</h1>
А почему у вас не работает в плагине, трудно сказать. Может скрипты отключены в настройках? Я плохо в этом разбираюсь, если честно.

Но вариант с VBScript немного похуже. Как я писал выше, он не работает с td:nth-child(). Поэтому приходится скрывать .td_header, а это приводит к скрытию заголовков во всех таблицах. В результате после скрытия или отображения текущая позиция на странице сильно отличается, а это раздражает и сбивает с толку. Может быть кто-то компетентный подскажет, как лучше сделать?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Orion9
У меня рабочая система по-прежнему Windows 7, на более новых сейчас тестировать затруднительно. Событие (двойной клик) добавлять пробовал, но не помогает ни в браузере, ни в плагине. До появления чьих-либо новых плодотворных идей тестирование данной новации пока прекращаю.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Avada
Понятно. Я в свою очередь не могу проверить на Win7, но думаю, дело в каких-то настройках, о чем писал yozhik
yozhik писал(а):если заработало на одной машине, не факт что заработает на другой.
Тут палка о двух концах. JS не работает в CHM, а VBS не работает в современных браузерах. Я взялся за VBS надеясь, что это поможет сделать в CHM скрытие столбцов, для других целей он не годится. Лучше пользоваться первым вариантом с JS, открывая файл в браузере, а не в плагине. Я для себя пока так решил. И так можно сделать на сайте, а локальный файл Russian.cedf оставить как есть без изменений. Но если добавлять на сайт, то нужно что-то решить с секциями, как вы верно заметили, хотя можно на них и забить.

Добавлено спустя 3 минуты:
Avada писал(а):До появления чьих-либо новых плодотворных идей тестирование данной новации пока прекращаю.
Чуть было не забыл. А может кто-нибудь еще подтвердить работоспособность или неработоспособность в Win7 и других версиях ОС?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Orion9 писал(а):И так можно сделать на сайте, а локальный файл Russian.cedf оставить как есть без изменений.
Если что-то удастся улучшить и дело дойдёт до изменений на сайте, то не можно, а нужно. Локальный файл изменяться не может, поскольку предусмотрено в т.ч. его скачивание "как есть".
Даже самая богатая фантазия
Не представит себе наши безобразия.
Ответить