1 EverEdit插件-CHM助手:一种免费、高效的CHM手册制作方式

1.1 前言

  业界制作CHM手册的工具多如牛毛,高贵的商业工具如:HelpNDocHelp+ManualHelpSmith等;号称最专业的免费CHM制作工具的Precision Helper,以及其他各种粗制滥造的收费或免费的CHM制作工具。
  以下从两种场景来介绍发布CHM帮助的过程:

1.1.1 场景1:空白工程

  所有页面要从无到有编写。
  商业软件是较好的选择,比如:HelpNDoc、Help+Manul、HelpSmith等无一例外的都提供了强大的写作功能,用户完全可以逐个章节进行手册书写,工具栏上也提供了丰富的格式设置,写作效率好,可以输出专业的手册。

1.1.2 场景2:页面就绪

  已经有大量的手册页面(html文件),只需要编译成chm文档。

  •   不管使用商业软件还是免费软件,处理方式无非两种:

    • 逐个编写目录,将目录与文件绑定(低价值工作)。
    • 导入文件自动生成目录,再逐个节点调整章节顺序(低效且低价值)。

说明
  笔者长时间的使用过HelpNDoc、Help+Manual、Precision Helper,对它们的专业性没有任何质疑,特别是HelpNDoc对个人用户免费,输出的文档专业范十足。但以上软件制作chm文档的效率都还存在不足,特别是在导入大量现存html页面时,需要进行大量没有意义的目录调整,且不支持批量调整,让笔者一直十分苦恼。

1.2 商业软件和免费软件优缺点分析

  商业软件 免费软件
代表软件 HelpNDoc、Help+Manual、HelpSmith Precision Helper
优点
  • 写作功能强大
  • 格式丰富
  • 输出格式多样
免费
缺点
  • 价格昂贵
  • 导入章节无法批量调整
  • 无页面写作功能
  • 导入章节无法批量调整

注:HelpNDoc对个人使用者倒是免费,但在生成的文档中会大量插入版权标记,这种文档是不适合做为商业软件手册发布的。

1.3 探讨一种新的制作CHM的思路

1.3.1 设想1:使用免费、简单、且足够专业的笔记写作工具编写手册页面

  业界大量使用的Markdown笔记软件,是非常不错的书写手册的平台, 具有如下优点:

  • Markdown语法简单
  • 格式相对丰富,可嵌入html做补充
  • 所见即所得(很多CHM开发工具都不具备)
  • 支持源代码格式渲染(专业CHM工具也不一定支持)
  • 支持PlantUML、Graphviz等复杂图形和公式工具

说明
  作者长期使用VNote,该软件是一款非常不错的离线markdown笔记工具,支持导出html、pdf等格式的文件,我们可以将导出的html文件用于chm文档的制作。

1.3.2 设想2:使用免费工具将这些页面编译成CHM文档

  这个设想经过笔者长期的努力,已经成为现实,即:EverEdit插件-CHM助手下载地址
如下是EverEdit插件-CHM助手的使用说明:

CHM助手(CHMEE)
  简介
    作者序
    插件说明
    如何安装CHM助手
  CHM工程的组成
    工程文件(HHP)
    目录文件(HHC)
    索引文件(HHK)
  CHMEE使用说明
    步骤1:清理HTML文档
    步骤2:图片宽度转换相对宽度
    步骤3:文字编码转换
    步骤4:制作帮助文件大纲
    步骤5:制作CHM工程并编译
  高效写作手册
    高效制作接口文档
    使用Markdown工具写作手册
  参考
    CHM文件搜索显示为乱码或结果不全问题处理方法


文档作者声明:本文档仅用于学习交流,未经作者许可,不得将本文档用于其他目的。
Copyright 2022~2024 All rights reserved.

EverEdit插件-CHM助手:一种免费、高效的CHM手册制作方式的更多相关文章

  1. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  2. (转载)eclipse插件安装的四种方法

    eclipse插件安装的四种方法 Eclipse插件的安装方法 1.在eclipse的主目录(ECLIPSE_HOME, 比如在我的机器上安装的目录是:D:\eclipse)有一个plugins的目录 ...

  3. documnent.getElementbyId(‘myId’)和$(‘#myId’)哪种更高效?

    第一种更高效,直接调用javascript引擎.

  4. jQuery插件主要有两种扩展方式

    jQuery插件主要有两种扩展方式: 扩展全局函数方式. 扩展对象方法方式. 扩展全局函数方式 扩展全局函数方式定义的插件,即类级别插件,可以通过jQuery.extend()来进行定义.定义格式为: ...

  5. CesiumLab V1.4 分类3dtiles生成(倾斜单体化、楼层房间交互)我记得我是写过一篇关于倾斜单体化的简书文章的,但是现在找不到了。不过找不到也好,就让他随风逝去吧,因为当时我写那篇文章的时候,就发现了cesium实际是有另一种更高效的单体化。就下面这个示例https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html?src=

    我记得我是写过一篇关于倾斜单体化的简书文章的,但是现在找不到了.不过找不到也好,就让他随风逝去吧,因为当时我写那篇文章的时候,就发现了cesium实际是有另一种更高效的单体化.就下面这个示例 http ...

  6. RabbitMQ和Kafka,更加便捷高效的消息队列使用方式,请放心食用

    一.RabbitMQ实例介绍RabbitMQ实例由华为云分布式消息服务(DMS)团队打造,实例采用物理隔离的方式部署,租户独占RabbitMQ实例.一键式部署,完全兼容开源RabbitMQ的使用方式, ...

  7. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  8. Android两种为ViewPager+Fragment添加Tab的方式

    在Android开发中ViewPager的使用是非常广泛的,而它不仅仅能够实现简单的开始引导页,还可以结合Fragment并添加Tab作为选项卡或为显示大批量页面实现强大的顺畅滑动 下面介绍两种为Vi ...

  9. 简单总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  10. 简单地总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

随机推荐

  1. 左值 <->右值

    左值引用指向左值 右值引用指向右值 int a = 5; int &ref_a = a; // 左值引用指向左值,编译通过 int &ref_a = 5; // 左值引用指向了右值,会 ...

  2. php生成验证码类

    php生成验证码类 直接看代码 <?php session_start(); class Code{ //资源 private $img; //画布宽度 private $width=100; ...

  3. git 设置代理和取消代理

    1.设置代理 git config --global http.proxy "127.0.0.1:1080" 2.取消代理 git config --global --unset ...

  4. windows下配置pytorch环境

    借鉴了B站大佬的视频,自己总结安装如下. 首先安装anaconda 按照操作顺序,依次安装,按照我个人习惯,不喜欢讲文件安装在C盘,你们自己决定. 安装完毕之后. 之后打开Anaconda Promp ...

  5. C#的类和对象,继承

    /// 类与对象 /// 类和对象是面向编程的两个核心概念 /// 类:类是对一群具有相同特征的或者行为事物的统称 类 是图纸 /// 对象是由类创造出来的一个具体存在 可以直接使用 对象是图纸造出来 ...

  6. 怎么根据token的有⽆去控制路由的跳转?进度条跳转 - 白名单是否有token - 单独封装文件permission .js

    vue这边的路由⾃带了路由前置守卫,我们可以在前置守卫⾥拿到token数据,然后根据需求做分⽀判 断,要是token存在就使⽤next⽅法正常放⾏跳转,否则可以强制跳回到登录,让⽤户去获取token ...

  7. 强化学习笔记之【SAC算法】

    强化学习笔记之[SAC算法] 前言: 本文为强化学习笔记第四篇,第一篇讲的是Q-learning和DQN,第二篇DDPG,第三篇TD3 TD3比DDPG少了一个target_actor网络,其它地方有 ...

  8. Need BLUETOOTH PRIVILEGED permission以及requestMtu导致蓝牙断连问题

    在部分Android手机上,当连接上GATTService后直接requestMtu有可能会造成蓝牙连接中断,随后继续重新连接会报错Need BLUETOOTH PRIVILEGED permissi ...

  9. MIL-STD-1553B总线通信模块(1553B板卡)

    MIL-STD-1553B总线通信模块(1553B板卡)产品具有以下特点: 1.产品覆盖多种接口CPCI/PXI/PCI/PC104/PC104+/USB等,满足用户不同平台的使用要求: 2.自主知识 ...

  10. 云原生爱好者周刊:Dapr 成为 CNCF 孵化项目

    云原生一周动态要闻: Dapr 加入 CNCF 孵化器 Knative 1.0 发布 Canonical 开始提供针对 Intel CPU 优化的 Ubuntu 图像 Longhorn 为 CNCF ...