Использовать JavaHelp для документации конечного пользователя по приложениям, инструментам или подключаемым модулям на основе NetBeans, чтобы упростить задачу?

Более короткая верхняя часть этого поста — это то, что я пытаюсь сделать. Вторая часть - это то, что было сделано до сих пор. Это очень долго, но вы должны увидеть, что я делаю, из верхней части здесь. Просто проверьте примечания, если вы заинтересованы в более подробной информации.

Я создаю приложение, используя платформу NetBeans в качестве отправной точки. Предыдущая версия использовала JavaHelp для документации конечного пользователя. Я согласен продолжать практику, поскольку я пишу всю новую документацию, но я нахожу нехватку информации о ее использовании.

Я достаточно понял, как создать новый HelpSet и отношения XML к HTML. Я могу передать код в новые документы и применить скриншоты, но это кажется очень ручным, и мне интересно, есть ли какие-либо плагины или инструменты для облегчения создания?

Покопавшись в Google-foo, я нашел несколько сообщений по этой теме, но большинство из них относятся к 2003 году и теперь являются тупиковыми. Использование JavaHelp устарело? Ниже я описываю, что я сделал для назидания людей, ищущих одно и то же, и, возможно, кто-то может указать на неэффективность того, как я это делаю.

Это неплохой подход, но необходимость добавлять строки в два XML-файла для каждого файла, который я загружаю, а затем наличие длинного URL-адреса кода, на который нужно указывать каждый раз, кажется громоздким для быстрого написания этого материала.

Спасибо за прочтение.

Редактировать: У меня есть одна проблема. Я не знаю, как изменить начальную целевую страницу JavaHelp. Прямо сейчас он говорит: «Это список всей документации, загруженной с IDE, щелкните слева, чтобы прочитать ее». Это ничего не будет значить для моих конечных пользователей.

Кроме того, я не знаю, как изменить порядок тем слева. Прямо сейчас они, кажется, не находятся в каком-либо полезном порядке. Я хотел бы расположить их в алфавитном порядке или в каком-то полезном порядке.


В Netbeans щелкните правой кнопкой мыши модуль «Создать» -> «Другое», щелкните «Разработка модуля», выберите «Набор справки JavaHelp». Это создаст новый пакет под модулем. Он будет следовать соглашению об именах вашего модуля и добавит в конец .docs. Например, org.netbeans.newmodule.docs.

При этом он создаст 6 файлов:

package-info.java (package info file)
<modulename>-about.html (As seen HTML help file)

<modulename>-map.xml (creates a connection to the HTML pages (E.G about) to a target, used in making links & building the hierarchy for the table of contents)
<modulename>-toc.xml (Table of contents XML)
<modulename>-hs.xml (Specifies the Table of contents view & javax control, & index)
<modulename>-idx.xml (Controls the index)

Первый HTML-файл является начальной информационной страницей. Это файл справки, который будет читать конечный пользователь. Это обычный HTML в определенном формате.

<modulename>-about.html
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>About Module</title>
        <link rel="stylesheet" href="nbdocs:/org/netbeans/modules/usersguide/ide.css" type="text/css">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <h2>About Module</h2>
        <p>
            <!-- TODO describe your module, add more pages... -->
        </p>
    </body>
</html>
<!--
Tip: to create a link which will open in an external web browser, try:
<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
    <param name="content" value="http://www.netbeans.org/">
    <param name="text" value="<html><u>http://www.netbeans.org/</u></html>">
    <param name="textFontSize" value="medium">
    <param name="textColor" value="blue">
</object>
To create a link to a help set from another module, you need to know the code name base and path, e.g.:
<a href="nbdocs://org.netbeans.modules.usersguide/org/netbeans/modules/usersguide/configure/configure_options.html">Using the Options Window</a>
(This link will behave sanely if that module is disabled or missing.)
-->

В раздел <body> документа можно добавить что угодно. Я работал с простым встроенным CSS, и до сих пор работало использование тегов <FONT>. Он также ссылается на внешний файл CSS, поэтому я предполагаю, что это тоже сработает. Вы можете ссылаться на другие файлы справки, указав путь. Путь всегда будет начинаться с nbdocs:/<yorumodulepath>

E.G: Any event added here will show up on the <a href="nbdocs:/com/mymodule/mod1/start/docs/start-about.html">start page</a>

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

E.G: <img src="startPageLogo.png">

Файлы XML важны, потому что они устанавливают структуру справочной документации.

 <modulename>-map.xml

Этот файл связывает файлы HTML с файлами nbdocs. Это позволит вам создавать ссылки внутри файлов HTML на другие местоположения файлов справки и правильно открывать и закрывать дерево JavaHelp. Структура выглядит так: <mapID target="<com.yoruproject.modname" url="<htmlfilename/.html"/>

E.G

  <?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 2.0//EN" "http://java.sun.com/products/javahelp/map_2_0.dtd">
<map version="2.0">
    <mapID target="com.mymodule.mod1.start.about" url="start-about.html"/>
    <mapID target="com.mymodule.mod1.start.calevents" url="start-calevents.html"/>
    <mapID target="com.mymodule.mod1.start.backupreminder" url="start-backupreminder.html"/>

</map>




<modulename>-toc.xml

Этот файл управляет структурой в левой части JavaHelp, которую пользователь может использовать для детализации различных областей справочной документации. Формат выглядит следующим образом:

 <toc version="2.0">
        <tocitem text="Top Category">
            <tocitem text="SubItem" target="com.mymod.mod1.start.about"/>
            <tocitem text="SubCategory">
                <tocitem text="SubCategoryItem1" target="com.mymod.mod1.start.backupreminder"/>
                <tocitem text="SubCategory2" target="com.mymod.mod1.start.about">
                    <tocitem text="SubCategoryItem2" target="com.mymod.mod1.start.classifyreminder"/>
                </tocitem>
     </tocitem>
    </tocitem>
</toc>

Вот пример полного файла:

    <?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 2.0//EN" "http://java.sun.com/products/javahelp/toc_2_0.dtd">
<toc version="2.0">
    <tocitem text="Start Page">
        <tocitem text="Getting Started" target="com.mymodule.mod1.start.about"/>
        <tocitem text="Calendar Events" target="com.mymodule.mod1.start.calevents"/>
        <tocitem text="Notification Pane">
            <tocitem text="Backup Reminders" target="com.mymodule.mod1.start.backupreminder"/>
            <tocitem text="New Classification Downloads" target="com.mymodule.mod1.start.backupreminder"/>
        </tocitem>
    </tocitem>
</toc>







<modulename>-hs.xml

Я еще не возился с этим файлом. Кажется, в нем указано расположение оглавления, файла IDX для индекса и файла SearchView (который был расположением Java по умолчанию).

    <?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 2.0//EN" "http://java.sun.com/products/javahelp/helpset_2_0.dtd">
<helpset version="2.0">
    <title>HMSStart Help</title>
    <maps>
        <homeID>com.mymodule.mod1.start.about</homeID>
        <mapref location="start-map.xml"/>
    </maps>
    <view mergetype="javax.help.AppendMerge">
        <name>TOC</name>
        <label>Table of Contents</label>
        <type>javax.help.TOCView</type>
        <data>start-toc.xml</data>
    </view>
    <view mergetype="javax.help.AppendMerge">
        <name>Index</name>
        <label>Index</label>
        <type>javax.help.IndexView</type>
        <data>start-idx.xml</data>
    </view>
    <view>
        <name>Search</name>
        <label>Search</label>
        <type>javax.help.SearchView</type>
        <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
    </view>
</helpset>

person kevingreen    schedule 03.04.2012    source источник


Ответы (1)


Какая проблема номер один? Не потому ли текущий процесс слишком трудоемок? Я думаю, было бы легче помочь, если бы вы задавали один четкий вопрос за раз. В любом случае, вот несколько советов, которые могут помочь.

Насколько я могу судить, разработка Sun JavaHelp прекращена. Вместо этого вы можете воспользоваться справкой Oracle. Он очень похож на JavaHelp, но более активно поддерживается.

Существуют коммерческие авторские инструменты, которые помогают избавиться от рутинной работы по созданию справки JavaHelp (или справки Oracle). Примеры:

  • Helen: инструмент только для JavaHelp, последняя версия которого вышла в апреле 2012 года (поэтому JavaHelp все-таки не может быть мертв. ..)
  • WebWorks ePublisher: инструмент, который может создавать множество других форматов справки помимо JavaHelp.

Другими вариантами являются бесплатные платформы документации на основе XML DocBook и DITA, которые предоставляют таблицы стилей (см. здесь и здесь), которые генерируют JavaHelp из источников XML (я думаю, что нужно совсем немного чтобы это работало и для справки Oracle).

Существуют и другие (не JavaHelp) альтернативы. Например, DocBook также предоставляет веб-справку в формате: WebHelp< /а>. Возможно, вам это покажется интересным.

person mzjn    schedule 04.04.2012
comment
Это слишком трудоемко, и я не могу его правильно заклеймить. Мое приложение представляет собой набор модулей поверх Netbeans. Я удалил все справочные материалы Netbeans и создал HelpSet для каждого модуля. Но конечное оглавление в основном выглядит дерьмом, а навигация отстой. Но, как вы говорите, это может быть на исходе, поэтому я проверю те другие решения, которые вы предложили. - person kevingreen; 04.04.2012
comment
Вопрос получился слишком длинным, потому что по мере продвижения я продолжал его обновлять. Я надеялся помочь любому, кто ищет то же самое, получить преимущество в решении своей проблемы. - person kevingreen; 04.04.2012