Thinking in Java
          Java開發(fā)技巧與實踐
          posts - 9,comments - 6,trackbacks - 0

          最近看到一篇文章,其中講述了各種Javadoc生成chm的方法及工具。

          其實我一直以來都是使用自己寫的一個工具來生成的,不過這個工具只是生成了.hhp、.hhc和.hhk文件,最后還需要使用FAR進行簡單的編輯和壓縮。不過我的工具可以配置并識別目錄中包含多個API目錄的情況,并能夠將非API的部分生成TOC文件(之所以要使用FAR進行簡單的編輯,也是因為非API的TOC部分需要根據情況自己修改或增減)。




          上圖是我是用這個工具生成的Eclipse 3.5的chm文檔。

          其實這個過程很簡單,我們只需要構造自己的文檔解析器,并按照hhp、hhc和hhk格式規(guī)范生成相應的文件就行了。其中文檔解析器我使用了Java的正則表達式來解析,其解析式的核心如下:

          1 public static final String _INDEX_PATTERN = "<DT><A HREF=\"([\\p{Graph}|\\p{Blank}]*?)\"(\\p{Space}\\p{Alpha}+?=\".*?\")?+><B>(.*?)</B></A>(.*?)\\p{Space}-";
          2     public static final String _CONTEXT_PATTERN = "<TD><CODE><B><A HREF=\"((\\p{Graph}*?)#(\\p{Graph}*?))\">(.*?)</A></B>(.*?)</CODE>" ;
          3     public static final String _TITLE_PATTERN = "<title>(.*?)</title>";

          其中第一行是索引文件條目的表達式,這里我是使用了index-files來生成索引的,當然在沒有index-files的時候是使用TOC解析出來的條目構建。
          第二行是TOC條目的表達式,第三行是提取文件title時使用的表達式。
          當然這里表達式是有缺陷的,比如不能解析不嚴格的HTML標簽等等,不過對于我自己而言已經足夠應付絕大多數(shù)Javadoc了。




          無人分享的快樂不是真快樂,沒人分擔的痛苦是真痛苦。
          posted on 2010-01-12 14:22 Feenn 閱讀(1216) 評論(4)  編輯  收藏

          FeedBack:
          # re: Javadoc的chm制作
          2010-01-16 11:36 | 李順利
          哥們,能告訴我你文檔解析器具體實現(xiàn)嗎?
          謝謝
          我就是寫《Javadoc轉換chm幫助文檔的四種方法總結》的作者,謝謝  回復  更多評論
            
          # re: Javadoc的chm制作
          2010-01-17 10:46 | Feenn
          @李順利
          回復到你郵箱里了  回復  更多評論
            
          # re: Javadoc的chm制作
          2010-11-02 16:46 | hhk
          能給個.hhp、.hhc和.hhk的規(guī)范嗎?郵箱:hhk1973@163.com  回復  更多評論
            
          # re: Javadoc的chm制作
          2011-07-11 10:52 | kenhome
          這位前輩能把這個具體怎么實現(xiàn)發(fā)到我的郵箱里邊嗎?我的郵箱地址是:7409602122qq.com,謝謝!!我找了很久了···  回復  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 林州市| 防城港市| 额尔古纳市| 汉阴县| 涟源市| 巍山| 思茅市| 大新县| 元朗区| 灵宝市| 公安县| 德兴市| 新蔡县| 金坛市| 禹城市| 石门县| 黄平县| 西昌市| 伊吾县| 达日县| 武冈市| 肥东县| 佳木斯市| 万源市| 康平县| 华宁县| 集安市| 岢岚县| 榆树市| 宿州市| 绥德县| 朝阳市| 赤壁市| 谢通门县| 邵武市| 平邑县| 镇远县| 达孜县| 嵩明县| 澎湖县| 汝城县|