java - 使用 JavaHelp 获取有关基于 NetBeans 的应用程序、工具或插件的最终用户文档,以使其变得更容易?

标签 java swing netbeans netbeans-plugins javahelp

这篇文章的较短的顶部部分就是我想要做的。第二部分是迄今为止所做的事情。它真的很长,但是你应该能够从这里的顶部看到我在做什么。如果您对更多详细信息感兴趣,请查看注释。

我正在使用 NetBeans 平台作为起点构建一个应用程序。以前的版本使用 JavaHelp 作为最终用户文档。当我编写所​​有新文档时,我很乐意继续这种做法,但我发现缺乏有关它的使用信息。

我已经足够清楚如何创建新的帮助集以及 XML 到 HTML 的关系。我可以在新文档中编写代码并应用屏幕截图,但感觉非常手动,我想知道是否有任何插件或工具可以方便创建?

通过 Google-foo,我发现了几篇围绕该主题的帖子,但大多数都与 2003 年相关,但现在已经是死胡同了。使用 JavaHelp 已经过时了吗? 下面我概述了我为启发搜索相同内容的人们所做的工作,也许有人会指出我这样做的效率低下。

这不是一个糟糕的方法,但是必须为我上传的每个文件添加行到两个 XML 文件,然后每次都必须指向一个很长的代码 URL,对于快速写出这些东西来说感觉很麻烦。

感谢您的阅读。

编辑:有一件事我确实有问题。我不知道如何更改 JavaHelp 的初始登录页面。现在它显示“这列出了 IDE 加载的所有文档,单击左侧即可阅读它”。这对我的最终用户来说没有任何意义。

另外,我不知道如何更改左侧主题的顺序。现在它们似乎没有任何有用的顺序。我想按字母顺序排列,或者将它们按某种有用的顺序排列。


在 Netbeans 中,右键单击模块 New->Other 单击 Module Development 选择 JavaHelp Help Set。这将在该模块下创建一个新包。它将遵循模块的命名约定,并在末尾附加一个 .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> 开头

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

图片与javahelp在同一个源码包内,可以进行相对链接。

例如:<img src="startPageLogo.png">

XML 文件很重要,因为它们设置了帮助文档的结构。

 <modulename>-map.xml

此文件将 HTML 文件链接到 nbdocs 文件。这将允许您在 HTML 文件内创建指向其他帮助文件位置的链接,并使其正确打开和关闭 JavaHelp 树。 结构似乎是:<mapID target="<com.yoruproject.modname" url="<htmlfilename/.html"/>

EG

  <?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>

最佳答案

第一个问题是什么?是不是现在的流程太费力了?我认为如果您一次提出一个明确的问题,会更容易提供帮助。不管怎样,这里有一些可能有帮助的提示。

据我所知, Sun JavaHelp 的开发已经停止了。您可能想尝试 Oracle Help反而。它与 JavaHelp 非常相似,但维护更加积极。

有一些商业创作工具可以帮助您摆脱制作 JavaHelp(或 Oracle 帮助)的苦差事。示例:

  • Helen :一个仅 JavaHelp 的工具,于 2012 年 4 月发布了最新版本(所以 JavaHelp 终究不会消亡...)
  • WebWorks ePublisher :除了JavaHelp之外,还可以生成更多帮助格式的工具

其他选项是免费的基于 XML 的文档框架 DocBook 和 DITA,它们都提供了从 XML 源生成 JavaHelp 的样式表(请参阅 herehere )(我认为只需很少的东西就可以做到这一点)也可用于 Oracle 帮助)。

还有其他(非 JavaHelp)替代方案。例如,DocBook还提供了基于Web的帮助格式:WebHelp 。也许您会发现这很有趣。

关于java - 使用 JavaHelp 获取有关基于 NetBeans 的应用程序、工具或插件的最终用户文档,以使其变得更容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9994373/

相关文章:

java - Processing IDE 启动 - 未启动任何Processing 2.0 版本(测试版和稳定版)

java - 这个 preparedStatement 我做错了什么?

java - 我们如何在 Swing 中的两个面板之间画一条线

java - JTabbedPane 出现问题(错误地压缩内容)

Java swing - 如何将我的字段绑定(bind)到模块

mysql - 如何将多个 ID 应用于 Mysql 中的一条记录?

java - 胶粘剂作业1,分数

java - 在 Java 中对字符串进行标记

java - Restful Web 服务 Maven 项目 netbeans

java - Netbeans 7.2 启动时报告错误