Ultra TC Editors
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Jonmey
Да, конечно. У меня как следует заниматься ещё и этим сейчас возможности всё равно нет, а по форме подачи материала, как верно было замечено, всем не угодишь. Поэтому пока для меня эта задача приоритетной не является. Тем более, что помимо текущей работы давно уже есть всякие перспективные задумки по старым и новым справочникам, которые хотелось бы в разумные сроки довести до приемлемого результата.
Да, конечно. У меня как следует заниматься ещё и этим сейчас возможности всё равно нет, а по форме подачи материала, как верно было замечено, всем не угодишь. Поэтому пока для меня эта задача приоритетной не является. Тем более, что помимо текущей работы давно уже есть всякие перспективные задумки по старым и новым справочникам, которые хотелось бы в разумные сроки довести до приемлемого результата.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
В идеале, дополнительных усилий с вашей строны не должно больше требоваться. Скрипт (или какое-то другое программное решение) должен самостоятельно выбирать текст из Russian.cedf и собирать новый формат справочника. Ваше участие может пригодиться, чтобы проверить, что все соответствует действительности (ничего не потерялось). Одобрить, так сказатьAvada писал(а):К сожалению, у меня нет времени и сил на полноценное сопровождение ещё и в виде оптимизированных HTML-таблиц всех справочников по ключам
Да. Крупные проекты во многом так и делаются. Если взять разработку сайта, то движок для него делает один человек, дизайн и графику другой, верстку и разметку текста третий. Одному делать все трудно, хотя если заниматься этим профессионально, то навыки, конечно, будут.Jonmey писал(а):если все свалить на одного человека - вряд ли получится результат устраивающий многих.
Конкретно в моем случает, не хватает знаний html и chm. Вытянуть текст из cedf можно. Вопрос, как его отформатировать и в каком виде представить: чтобы и главы не потерялись, и новые возможности открылись (к примеру, навигация по ключам внутри секций, а не только навигация по главам и разделам).
В принципе, chm от yozhic приемлемый вариант. Там хотя бы шрифт другой и отступ между абзацами сохраняется, это уже способствует более комфортному чтению. Если бы еще текст можно было растянуть на весь экран, этого было бы достаточно.
К сожалению, ранее этого не встречал.Avada писал(а):Попытки альтернативной выкладки справочников уже делались (пример для TC 11.56 — ссылка с ру-борда), и результаты, ИМХО, были поприличнее.
Вариант, действительно, неплохой (особенно, с темной темой).
Минусы такого решения для меня: 1) трудно переделывать в другой формат, 2) 7 Мб против 3+Мб при одинаковом содержимом - не хочется раздувать дистрибутив сборки.
В моем варианте выделено комментариями в коде что нужно скопипастить в изначальном вашем коде, чтобы получить готовое решение за минуту в простом текстовом редакторе. И мне важно сразу видеть дату актуализации и ссылку для сверки на онлайн.
По сути - это и есть шаблон, о котором писали ниже.
Ни в коем случае не настаиваю на своем варианте. Если сообщение считаете лишним - смело удаляйте.
В любом случае, спасибо за вашу бесценную работу и интересные ссылки!
Добавлено спустя 18 минут:
Просто сохраните страницу как HTML (Веб-страница полностью). Сохранится с нормальным форматированием.Orion9 писал(а):Вытянуть текст из cedf можно. Вопрос, как его отформатировать и в каком виде представить: чтобы и главы не потерялись, и новые возможности открылись (к примеру, навигация по ключам внутри секций, а не только навигация по главам и разделам).
Ниже ссылки на скрины как это выглядит в Firefox:
Код: Выделить всё
https://postimg.cc/0MKdFX95
https://postimg.cc/ykj9QC07Нет, содержимое не одинаковое. В варианте 3+Мб собраны справочники только для последней 11.56 версии TC, а в варианте 7 Мб — для всех версий TC от 9.00 до 11.56, т.е. по 13 справочников в каждом CHM.nemo9 писал(а):7 Мб против 3+Мб при одинаковом содержимом
Разве пользователю TC трудно распаковать CHM? 7-zip встроен, да и wcx-плагин имеется. А после распаковки тот же HTML.nemo9 писал(а):трудно переделывать в другой формат
Amo ergo sum
Так сохраняется в формате таблицы, а я имел в виду именно другой формат справочника. Тем не менее, пришла в голову одна мысль. Ниже сохраненный файл с возможностью скрывать лишние колонки. Тем самым текст из описания растягивается и становится удобным для чтения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 можно сделать так же?
Orion9
CHM — древний формат, открывается в hh.exe, а тот в свою очередь подтягивает iexplore.exe. Последствия: со связкой CHM+JS возиться надо, чтобы заставить JS работать и он не сыпал ошибками. Вдобавок и на сам CHM в системе накладываются какие-то ограничения в отношении JS, их отключать надо, так что если заработало на одной машине, не факт что заработает на другой. И ваш файл в современном браузере работает исправно, а после упаковки в CHM — нет
Разобраться можно было бы, наверное, но времени увы.
CHM — древний формат, открывается в hh.exe, а тот в свою очередь подтягивает iexplore.exe. Последствия: со связкой CHM+JS возиться надо, чтобы заставить JS работать и он не сыпал ошибками. Вдобавок и на сам CHM в системе накладываются какие-то ограничения в отношении JS, их отключать надо, так что если заработало на одной машине, не факт что заработает на другой. И ваш файл в современном браузере работает исправно, а после упаковки в CHM — нет
Amo ergo sum
Orion9
Что можно сделать, в компетенции CaptainFlint. Но "то же самое" делать точно не надо, там пока что не всё в порядке: посмотрите, что происходит в браузерах после нажатия Alt+H в нижней части файла. где секции. Кроме того, cкрытие части колонок не работает в офлайне (через плагины). Кстати, скрытие (даже временное) как минимум колонки с указанием содержащей ключ секции (да и файла, пожалуй, тоже) мне очень хорошей идеей не кажется.
Что можно сделать, в компетенции CaptainFlint. Но "то же самое" делать точно не надо, там пока что не всё в порядке: посмотрите, что происходит в браузерах после нажатия Alt+H в нижней части файла. где секции. Кроме того, cкрытие части колонок не работает в офлайне (через плагины). Кстати, скрытие (даже временное) как минимум колонки с указанием содержащей ключ секции (да и файла, пожалуй, тоже) мне очень хорошей идеей не кажется.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Это да. Но никто и не гонит. Речь идет о перспективах. А в перспективах хотелось бы такое увидеть — растянутый текст все-такие удобнее читать.yozhik писал(а):Разобраться можно было бы, наверное, но времени увы.
Поигрался с утра еще с болваном. Раз уж с Java есть проблемы, пришла мысль спросить его за VBScript. Ответ последовал незамедлительно
В обшем, удалось сделать то же самое для плагина 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">
Здесь я уже пробовал разные варианты _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
Я понял. Просто оригинальный CEDF из пакета можно не трогать, а на сайте сделать примочку для скрытия столбцов и растягивания текста.Avada писал(а):Что можно сделать, в компетенции CaptainFlint.
Полностью согласен. Проблема с секциями и офлайн просмотром действительно есть. Но речь шла больше о перспективах и направлении для дальнейшего развития, и в целом, мне это направление нравится, т.е. скрытие лишних колонок, жаль только не хватает знаний и компетенций в этом вопросе.Avada писал(а): Но "то же самое" делать точно не надо, там пока что не всё в порядке:
Хотя дело не только в лишних колонках. Хотелось бы еще шрифт другой и отступы между абзацами, как в CHM файле.
Orion9 писал(а):В обшем, удалось сделать то же самое для плагина HTMLView.
Не будучи программистом, я не совсем понял, что то же самое (с точки зрения пользователя, а не кода, естественно) удалось сделать для плагина, если теперь клавиатурное скрытие, позиционируемое как основная новая фича, не работает нигде. Как, впрочем, и кнопка показа/скрытия части колонок наверху.Orion9 писал(а):У меня не получилось повесить горячую клавишу Alt+H, а без переключения по горячей клавише все остальное бесполезно
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Avada
Даже не знаю, что сказать. У меня на Win11 работает. Сейчас проверял на Win81 (у меня там, к тому же, старый коммандер остался версии 9.22), тоже вроде работает. Но сам IE на Win81 не хочет выполнять VBScript хоть убей. Пишет:
Я потыркался немного, но бросил это дело. Вспомнил, что у меня был гаджет, где использовался VBScript в HTML странице, там и нашел решение. Чем-то оно даже лучше горячей клавиши.
Т.е. столбцы теперь переключаются по двойному клику в любом месте. И могу сказать, что это удобно!
По идее, можно и нажатие так отловить, но почему-то не работает
Возможно это как-то связано с плагином HTMLView, поскольку JavaScript в браузере работает, все отлавливается
Но я думаю, что если с клавишей не получится разобраться, то двойной клик вполне подойдет.
Я не буду сбрасывать новый вариант справочника. Чтобы добавить двойной клик, нужно просто добавить к тегу <body> событие ondblclick. Т.е. заменить в файле
На
А почему у вас не работает в плагине, трудно сказать. Может скрипты отключены в настройках? Я плохо в этом разбираюсь, если честно.
Но вариант с VBScript немного похуже. Как я писал выше, он не работает с td:nth-child(). Поэтому приходится скрывать .td_header, а это приводит к скрытию заголовков во всех таблицах. В результате после скрытия или отображения текущая позиция на странице сильно отличается, а это раздражает и сбивает с толку. Может быть кто-то компетентный подскажет, как лучше сделать?
Даже не знаю, что сказать. У меня на Win11 работает. Сейчас проверял на Win81 (у меня там, к тому же, старый коммандер остался версии 9.22), тоже вроде работает. Но сам IE на Win81 не хочет выполнять VBScript хоть убей. Пишет:
Код: Выделить всё
Строка: 1
Ошибка: "ToggleAllTables" не определеноКод: Выделить всё
<body ondblclick="ToggleAllTables()">По идее, можно и нажатие так отловить, но почему-то не работает
Код: Выделить всё
<body onkeydown="ToggleAllTables()">Код: Выделить всё
<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, а это приводит к скрытию заголовков во всех таблицах. В результате после скрытия или отображения текущая позиция на странице сильно отличается, а это раздражает и сбивает с толку. Может быть кто-то компетентный подскажет, как лучше сделать?
Orion9
У меня рабочая система по-прежнему Windows 7, на более новых сейчас тестировать затруднительно. Событие (двойной клик) добавлять пробовал, но не помогает ни в браузере, ни в плагине. До появления чьих-либо новых плодотворных идей тестирование данной новации пока прекращаю.
У меня рабочая система по-прежнему Windows 7, на более новых сейчас тестировать затруднительно. Событие (двойной клик) добавлять пробовал, но не помогает ни в браузере, ни в плагине. До появления чьих-либо новых плодотворных идей тестирование данной новации пока прекращаю.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Avada
Понятно. Я в свою очередь не могу проверить на Win7, но думаю, дело в каких-то настройках, о чем писал yozhik
Добавлено спустя 3 минуты:
Понятно. Я в свою очередь не могу проверить на Win7, но думаю, дело в каких-то настройках, о чем писал yozhik
Тут палка о двух концах. JS не работает в CHM, а VBS не работает в современных браузерах. Я взялся за VBS надеясь, что это поможет сделать в CHM скрытие столбцов, для других целей он не годится. Лучше пользоваться первым вариантом с JS, открывая файл в браузере, а не в плагине. Я для себя пока так решил. И так можно сделать на сайте, а локальный файл Russian.cedf оставить как есть без изменений. Но если добавлять на сайт, то нужно что-то решить с секциями, как вы верно заметили, хотя можно на них и забить.yozhik писал(а):если заработало на одной машине, не факт что заработает на другой.
Добавлено спустя 3 минуты:
Чуть было не забыл. А может кто-нибудь еще подтвердить работоспособность или неработоспособность в Win7 и других версиях ОС?Avada писал(а):До появления чьих-либо новых плодотворных идей тестирование данной новации пока прекращаю.
Если что-то удастся улучшить и дело дойдёт до изменений на сайте, то не можно, а нужно. Локальный файл изменяться не может, поскольку предусмотрено в т.ч. его скачивание "как есть".Orion9 писал(а):И так можно сделать на сайте, а локальный файл Russian.cedf оставить как есть без изменений.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.