如何合并多个HTML帮助文件?
你有没有想过,如果你分别发布多个小游戏,并为这些小游戏编写HTML帮助?突然有一天,你打算把这些小游戏组装成一个“游戏天堂”。要不要拿出他们的帮助文档源文件(。htm)并重新编译它们?添加HTML通道非常方便,但是那些成堆的目录和索引需要重写吗?天啊,人生最痛苦的事莫过于此。
不过没关系,虽然有时候微软的东西真的很烂,但是这次它想出了一个非常方便的合并功能,可以合并目录,索引,甚至全文搜索词典。
如何开始?还记得“设置项目选项”一节的最后一个介绍吗?没错,就是从这里开始的:工程选项对话框的合并文件属性页。但在此之前,我们需要建立一个新的HTML帮助项目,所有的制作都将在这个项目中完成。
合并文件的属性页中只有两个按钮:添加...并移除。我觉得没有必要介绍它们的功能。只需在这里添加要合并的文件,第一步很简单。但是要记住,这种合并并不是真正的合并——生成的HTML帮助文件几乎和以前一样大。因此,在发布帮助文档时,需要将合并后的HTML帮助一起发布。
还有一个问题。编译后搜索了所有链接,还是打不开合并后的帮助文件。怎么了?别急,我们刚刚完成了第一步,但是经过这一步,合并后的HTML帮助文件的索引和全文搜索词典已经合并了,你没发现吗?那是因为你没有仔细观察。
接下来,我们需要做的第二步是合并目录。
向新构建的项目添加一个目录文件。当然,它是新建的。然后右击空白处弹出菜单。菜单中的前两项已在“向帮助文件添加内容和索引”一节中介绍,第三项是“插入文件...”是本节的亮点。
单击“插入文件...”菜单项,会弹出一个名为“包含文件”的对话框。选择HTML帮助文件(。chm)你想合并,然后...你需要手动添加以下单词。
.....chm::contents.hhc
“前面”...chm是你选择的文件,back:: contents.hhc是让你手写输入的。contents.hhc应该根据您使用的实际目录文件名来填写,这个目录文件是...chm,不是当前项目。如果不明白,可以看看以下注意事项的图示。
编译运行,一切正常,该合并的都已经合并了,从目录中可以找到合并后的帮助文件的内容。但是,这个好像有问题――我来说一下需要注意的地方。
首先,我们没有向这个新项目添加主题文件。会有什么后果?想想用IE浏览一个不存在的页面会发生什么?每个HTML帮助都有一个默认页面,我们的新项目也不例外。虽然它包含了其他HTML帮助,但它仍然没有自己的默认页面。结论:无论如何要给它添加一个主题文件,哪怕是个封面。
第二,HTML帮助工场有一个BUG。第二个需要注意的是,如果你希望目录中的合并文件节点是一个子节点的字节点,那么在编辑的时候就要让它和这个节点在一个级别上。有时我们会看到从一个帮助页面链接到另一个帮助页面的例子,例如,在MSDN有很多。这是如何实现的?其实这不是HTML帮助工场的工作,而是主题文件的工作(。htm)。需要借助打开HTML插入一个ActiveX控件到HTML文件中,这里就不赘述了。;