Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>А где еще есть сочетание активного содержимого во вроде бы "обычных документах" и многоуровневая политика безопасности?
Вся таже лажа есть в pdf и оглавление и активное содержимое и embedded файлы и много еще чего, но не все умеют это готовить.
Здравствуйте, kov_serg, Вы писали:
_>Вся таже лажа есть в pdf и оглавление и активное содержимое и embedded файлы и много еще чего
Если на то пошло, оно есть и в DOC/DOCX/XLS/XLSX. Но в винде нет встроенной поддержки этих форматов, как и PDF. Поэтому вопросы их безопасности закономерно не входят в компетенцию самой системы.
Здравствуйте, temnik, Вы писали: T>Так куда податься, что нынче в моде для справки?
Для довольно крупной десктопной программы для Windows мы 10 лет назад начали уходить от HLP и CHM.
Решено было опираться на html, что позволило основную массу материалов использовать как в оффлайн версии, так и на сайте.
В этом проекте используется разветвленный DSL с полутора десятком модулей и множеством функций в каждом модуле.
Поэтому поместить все в один файл — выглядело неудобно и объем был бы десятки мегабайт, что тормоза при загрузке с сайта.
Для понимания масштабов: на 2023 год там почти 5000 файлов общим размером 40 мегабайт (html + картинки).
Второй вопрос был в том, как организовать навигацию по этой документации сравнимую хотя бы HtmlHelp/CHM.
Т.е. требовались: содержание в виде дерева, алфавитный указатель, полнотекстовый поиск.
Причем было очевидно, что для оффлайн версии документации и онлайн нужны будут различные реализации всего этого.
Плюс для оффлайн версии нужна еще связка с контекстами программы, чтобы работала F1 и т.п.
В итоге для оффлайн версии решили сделать обвязку вокруг WebBrowser2,
строить самим содержание, алфавитный указатель и индексы для полнотекстового поиска.
Бонусом получилось использовать событие BeforeNavigate2, где можно обрабатывать клики по любым ссылкам в html.
Это позволило по ссылкам в документации дергать функции программы. Например, описание фичи Foo и тут же ссылка "Включить фичу Foo в программе прямо сейчас".
Но сам принцип не упирается в WebBrowser2 (IE). Можно взять Chromium или какую-нибудь рендерилку html полегче.
Для построения индексов полнотекстового поиска взяли CLucene (он, к сожалению заброшен с 2013).
Остальное запилили сами.
Для генерации онлайн версии документации сделали возможность выгрузки модели документации из оффлайн версии.
А именно: содержания и алфавитного указателя. Полнотекстовый поиск на сайте — средствами гугло-роботов.
Сначала сделали содержание одним XML. Но он оказался около 3 мегабайт и заметно подтормаживал при открытии сайта.
Тогда побили xml-ки на уровни дерева содержания, чтобы подгружались только для развернутых узлов дерева.
А алфавитный указатель — просто статический html с буковками и еще страничка на каждую буковку.
Эти странички генерирует питоновский скрипт из выгруженной в XML модели документации.
Синхронизация онлайн справки и оффлайн делается в один клик: запускается выгрузка оффлайн модели в XML.
Затем питон работает с этим XML, генерирует все, что нужно.
И в итоге заливается на сайт.
Здравствуйте, qaz77, Вы писали:
T>>Так куда податься, что нынче в моде для справки?
Q>Для довольно крупной десктопной программы для Windows мы 10 лет назад начали уходить от HLP и CHM. Q>Решено было опираться на html, что позволило основную массу материалов использовать как в оффлайн версии, так и на сайте.
В offline версии милионый html файлов справки как у java это прото кошмар. А если еще и учесть около нулевую информативность и жуть при попытке распечатать, то вариант так себе.
Другая крайность это документация по автомобилям сотни тысяч html которые ссылаются на лежащие неподалёку pdf-ки где собственно основное жир и лежит, причем желательно сканированный.
Все эти толпы файлов для offline очень удобно копируются на флешку (примерно вечность).
... Q>Затем питон работает с этим XML, генерирует все, что нужно. Q>И в итоге заливается на сайт.
Если пользователь хочет offline вариант, то выкачивать весь сайт, править скриптами и складывать в chm?
Короче ужас со всех направлений. HLP упакованный rtf и мелкософт активно от него пытается закопать, так что winhlp приходится свой таскать.
А chm это просто архив как zip файл, внутри тот-же html. Был удобен и позволял пользователю, скачав один файл иметь простую структурированную справку.
Быстро просто и один файл и ставить ничего не надо. Не считая за%бов с сетевыми дисками и дырами с безопасностью пока является образцом того что хотел пользователь. (Если не считать того что utf он не умеет)
Но нет они сделали лучше: 3-ю версию, которая в состав студии входит. Улучшили так что лучше было бы хорошо. Для просмотра был сторонний просмотрщик, но чуда не случилось стало еще более неудобно.
Другие прямо ходячие обезьяны XML предлагают изначально как убер документ из которого можно генерировать вАаЩе уСё (скриптами конечно, XSLT и т.п.). Всё очень удобно и хорошо но нет стандартного подхода, сложно, нет поиска и простого способо посмотреть, да и фалов чуть больше чем дофигища.
Другой вариант epub — тот же xhtml упакованный zip-ом, смотреть можно электронными книгами и внешними просмотрщиками, довольно широко распространен. Есть вменяемые viewer-ы, которые не загружают по 300-600Мб dll-ок при старте и не выглядят как гавно ужос.
Как ни странно pdf умеет всё то же что и chm, даже индексы для полнотекстового поиска умеет, но его в таком разрезе не пользует никто.
Для онлайна конечно куча вариантов есть https://devdocs.io/ для офлайна https://zealdocs.org/ и Devhelp но это chm всё равно не заменит.
В итоге приходим к readme.txt, в котором ссылка на сайт. Вот вам и светлое будущее, нет нормального стандарта для электронной справки.
Здравствуйте, kov_serg, Вы писали:
_>А chm это просто архив как zip файл, внутри тот-же html. Был удобен и позволял пользователю, скачав один файл иметь простую структурированную справку. _>Быстро просто и один файл и ставить ничего не надо.
Здравствуйте, Евгений Музыченко, Вы писали:
_>>А chm это просто архив как zip файл, внутри тот-же html. Был удобен и позволял пользователю, скачав один файл иметь простую структурированную справку. _>>Быстро просто и один файл и ставить ничего не надо.
ЕМ>Почему "было"?
Потому как возникают вопросы на чем же его делать и не появилось ли что-то удобное.
Мелкомягкие его не поддерживают и до сих пор даже не исправили ошибку out of bounds (access violation at 0x453217D8) в индексаторе текста пришлось править вручную
Здравствуйте, kov_serg, Вы писали:
_>В offline версии милионый html файлов справки как у java это прото кошмар. А если еще и учесть около нулевую информативность и жуть при попытке распечатать, то вариант так себе. _>Другая крайность это документация по автомобилям сотни тысяч html которые ссылаются на лежащие неподалёку pdf-ки где собственно основное жир и лежит, причем желательно сканированный.
Чисто на html — да, кошмар. Приходилось мне ковыряться в документации SDK OpenOffice...
В нашем варианте пользователь и не знает, что у него где-то эти тысячи html лежат.
Он не работает с ними напрямую, а через окно наподобие HtmlHelp.
Например, нажимает F1 — открывается окно справки с нужной страничкой.
_>Все эти толпы файлов для offline очень удобно копируются на флешку (примерно вечность).
Нет такой необходимости.
Эти файлы один раз инсталлятор пишет на комп пользователя при установке продукта.
_>... Q>>Затем питон работает с этим XML, генерирует все, что нужно. Q>>И в итоге заливается на сайт. _>Если пользователь хочет offline вариант, то выкачивать весь сайт, править скриптами и складывать в chm?
Нет, это не про пользователя. Если пользователю нужно установить оффлайн доки, то скачивается дистрибутив продукта и выбирается компонент для установки "Документация" — все.
Про питон — это я описал внутренний технологический этап преобразования оффлайн версии доков в онлайн.
Есть репозиторий с html и картинками. Сначала на него натравливается программа, которая строит модель:
содержание, алфавитный указатель и проч.
Далее эта модель записывается в XML.
Этот XML читает питоновский скрипт и генерирует онлайн-специфик вещи, которых нет в исходном репозитории.
И его выхлоп уже заливается на сайт.
_>Короче ужас со всех направлений.
Не согласен.
10 лет полет нормальный.
Удобнее, чем было с CHM.
Здравствуйте, kov_serg, Вы писали:
_>Потому как возникают вопросы на чем же его делать и не появилось ли что-то удобное.
У многих такие вопросы возникают по принципу "оно ж очень старое, должно быть что-то новое", когда к функциональности внятных претензий нет.
_>Мелкомягкие его не поддерживают и до сих пор даже не исправили ошибку out of bounds (access violation at 0x453217D8) в индексаторе текста
Насколько она распространена? Я на своих ни разу не видел.
Здравствуйте, temnik, Вы писали:
T>У меня всегда был CHM. Сейчас только увидел, что в win 11 он не работает. Посмотрел несколько программ, которыми пользуюсь — тоже chm, тоже не работает. T>Так куда податься, что нынче в моде для справки?
Программы для создания справок сейчас мультформатные. Например отечественный drexplain. И сгенерят и chm и pdf и прилично выглядящий html в виде папки для выкладывания на хостинг (имхо обязательный вариант чтобы через Гугл искалось).
Для меня вопрос в другом: мы измеряем частоту открытия справки юзерами из программы — и она неуклонно падает и уже довольно крошечная.
Наверное ищут сразу в поиске или в ютубе решение проблемы, а скоро будут спрашивать chatgpt.
Здравствуйте, Matrix_Failure, Вы писали:
M_F>мы измеряем частоту открытия справки юзерами из программы — и она неуклонно падает и уже довольно крошечная. M_F>Наверное ищут сразу в поиске или в ютубе решение проблемы, а скоро будут спрашивать chatgpt.
Меня тоже давно удивляло, почему народ упорно роет интернет, спрашивает в чатах/форумах то, что достаточно подробно изложено в документации, и легко может быть найдено поиском по ключевым словам. Потом сообразил, что большинство ищет не информацию, а готовое решение. Лень превыше всего.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Меня тоже давно удивляло, почему народ упорно роет интернет, спрашивает в чатах/форумах то, что достаточно подробно изложено в документации, и легко может быть найдено поиском по ключевым словам. Потом сообразил, что большинство ищет не информацию, а готовое решение. Лень превыше всего.
Как вариант, люди часто сталкивались с плохой документацией, поэтому легче сразу запрос в поисковик делать, чем лезть хз куда. К документации обратятся, если поиск в интернете не поможет. По хорошему, поиск и должен приводить на html версию документации на сайте разработчика. В реальности, конечно, между неудачным поиском в интернете и документацией будет этап с обращением в саппорт.