HTML Help Workshop是Microsoft推出的免费的chm编译器,“新世纪”提供了版下载,不过该版本附带了广告插件。如果您不介意的话笔者建议 您到Microsoft页面下载,毕竟Microsoft是chm文件的鼻祖。目前,Microsoft提供的版本是绿版的,将下 载的文件解压到 一个目录,点击文件夹中的 安装即可使用。除了主程序,还有一个叫做“HTML Help Image Editor”图像编辑器。
首先来认识一下界面:
制 作chm文件首先需要html文件,如果您手头没有html文件,那么请及时制作。
1.建立"Project"
其 次,是在HTML Help Workshop中建立一个“project”。制作步骤如下:
“File”→“New”→“Project”
“下 一步”→填写“Project”的存放名称和路径
“下一步”→“下一步”→完成
以 上步骤生成一个*.hhp文件,这个就是要编译的主文件。其结果如下:
上 图中,在"change project options"可以设置chm的默认显示首页,标题,语言,允许全文搜索(“Compile full-text search information”)以及合并chm。注意:
“add/remove topic files”用来需要编译的HTML文件;
“add/modify windows definitions”用来定义CHM文件的窗口显示(按钮,位置,窗口大小以及工具栏包含的按钮)和内容等。请跳转到“搜索框”一节查看具体内容。
“help API information”是连接应用程序的API接口,具体内容请参阅:这里
2. 编辑“目录”
在建立“project”后,下一步是设置“contents”(目录)。点击 “contents” 按钮,我们就跳转到了目录编辑框。首次使用“Contents”时,程序会自动帮您创建一个 “Contents” (目录),您只需要按默认设置即可。下面说说创建目录的步骤:
首先 点击“”(创建一个目录),在弹出的对话框中设置目录名,按“add”来设置目录对应的HTML文件。
然 后右击创建的目录,选择“”(插入页面)
用上、下、左、右来设置目录的层级关系。注意:只 有“heading”才能包含子目录。
目录的编辑比较费 时。如果觉得默认的目录图标不好看,可以点击该目录,选择“Edit selection",“Advanced"中的”Image index"进行选择。不过该操作应该在目录全部编辑完成后用记事本打开HHC文件替换相应的图标名。
2.1 如何引用已有chm的目录?
首先必须保证当前编译的文件与被引用的文件在同一目 录,然后使用HTML Help Workshop反编译(decom-pile)被引用文件,获得被引用文件的目录文件名(一般以.hhc结尾)。得到该文件目录后(例: HTML_API.hhc)执行以下操作:
在目录编辑框内右击“”,填写显示名称(例:HTML API)
右击“HTML API”,“Insert page..”在弹出的对话框中填写:hhaxref.chm::/HTML_API.hhc[其中hhaxref.chm为被引用的chm文件]
2.2 如何使用目录定位到当前页面特定位置?
一般由于页面过长,想使用目录定位到页面的特定位置,可以使用ID来实 现。首 先要明确ht
ml中ID的意思:一个ID可以由一个或多个html标记使用。要实现页面定位,一个ID应只能由一个标记使用。要执行该操作,只要在url 的最后添加:# + ID。例:
file/Index.html#css (其中Index.html为当前页面,#new为ID名)
这 样,只要选择目录项,就会定位到指定页面位置。下图列出了部分工具及其说明:
3.Index Tab(索引框)
一般的chm文件包括有content tab,index tab,search tab等总称为global windows type,后面的章节将讲到search tab(搜索框)以及favorites tab(书签框)。索引框和目录框的设置差不多,首先想好要设置的关键字,然后慢慢整理就好了。
4.Search Tab(搜索框)
chm有两种搜索模式:基本搜索和全文搜索。如果你手头有Mirosoft出版的chm文件打 开看看就知道,它们几乎都支持全文搜索。全文搜索就是遍历chm中包含的所有HTML文件,高亮匹配内容,同时支持and、or、near、not等高级 语 法等。由于缺少必要文件,笔者多次
编译出来的CHM文件都不支持全文搜索,不过经过探索终于到了解决方法(请 看这里)。如前面所讲到的"global windows type"包含三 个框:目录框、搜索框以及索引框,而它的语法是$global。因此在设置“add/modify windows definitions”的名字时,需要在名字的前面添加:$global,例如:$global_main,这样就定义了一个CHM文件窗口,里面的内 容怎么设置就依据你的个人喜好。例子:
1.点击"change project options"中在弹出的对话框中的“Compiler”下面勾选“Compile full-text search information”;
2.接 着点击“add/modify windows definitions”,键入:$global_main(其中的$global_不能少),同时设置一下CHM的标题;
3.在“navigation pane”中勾选“search tab”及“Advanced”。
如此便设置好了全文搜索。
5.Favorites tab(书签框)
勾选“navigation pane”下的"favorites tab"即可。
6.较好的编辑习惯
HTML Help Workshop的文件都可以用记事本编辑。笔者的建议如下:
使用CSS控制HTML表现
HTML中一定要包含标题
每 一步操作都保存
如何制作网页插件包含HTML的文件夹以及HTML文件名不使用中文
Javascript 尽量简洁
7.目录的自动创建【2009-08-20添加】
这估计是HHW最有意思的功能。这一步完成的前提是网页中必须包含标题。比如说,先看看下图:
在Maximum Head Level 中的数字是网页中包含标题的级别,如果仅有h2,那么级别就是1,如果包含h1,h2那么就是2。不过建议一个网页最好仅包含一个标题,因为HHW生成的目录不支持自动添加ID,什么意思呢?
比如,网页里面有<h1>Heading1</h1>和<h2 id="sub">Heading2</h2>两个标题,HHW生成的目录自然也包含两个目录项:一个是Heading1,另一个是Heading2。不过有麻烦,就是该目录与网页的对应是使用绝对引用,而不支持ID等相对引用。还是这个例子,网页的名字是Temp.htm,则生成如下目录项:
<UL>
<LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Heading1">
        <param name="Local" value="Temp.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
            <param name="Name" value="Heading2">
            <param name="Local" value="Temp.htm">
</OBJECT>
很显然,Heading2确实是在Heading1下面,但是两个目录项指向的都是Temp.htm,这样生成的Heading2就不能完成跳转。不过可以手动修改:
            <param name="Local" value="Temp.htm#sub">
这样既可完成跳转,这就是相对引用。不过一两个还好说,多则比较麻烦,所以建议网页不用太长,而且保证网页中只有一个标题项。
这样设置之后,在编译后即可自动生成一个目录,即可省去手动生成目录的麻烦。生成后,应该将以上设置取消{不然每次编译都生成一个新的目录},同时在第二次编译的时候加载生成的HHC文件{默认是TOC.HHC}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。