整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CHM文件介紹

          HM文件,即,微軟在1998年推出的基于HTML文件特性的幫助文件系統:已編譯的幫助文件(*.chm,Compiled Help Manual)。

          chm文件

          CHM文件可以在手機、平板或電腦上打開,支持全文檢索和超鏈接,同時因為非常強大的兼容性和極為優秀的閱讀體驗,使之成為一種普及十分廣泛的電子書,能有效地幫助企業或個人實現對信息的檢索、查閱、共享及備份。

          【應用場景】

          作品集:匯總、集錦、大全、合集、全集、選集、系列、薈萃、精編、精選、珍藏、排行、寶典、指南、導航、攻略、檔案、紀實、案例、備忘、禁忌、雞湯…

          使用說明:幫助文件、用戶手冊、技術支持、產品介紹、操作說明、參考案例、常見問題、規章制度、員工手冊…

          教程手冊:學習考試、技術儲備、職業培訓、商業推廣、游戲攻略、數碼測評、咨詢顧問、理財保險、資源共享、文件備份…

          生活休閑:美食、購物、寵物、攝影、旅游、減肥、健身、養生、影視娛樂、時尚八卦…

          個人百科全書:工作、生活、教育、醫療等各類資料的匯總、收藏、備份、共享…

          個人資料庫:小說、文章、博客、日記、感悟…

          【備注】

          a. CHM文件是一種用LZX算法壓縮的HTML文件集,可用Microsoft HTML Help Workshop制作。

          b. CHM文件有目錄、索引和搜索等功能,被IE瀏覽器支持的JavaScript、VBScript、ActiveX、Java Applet、Flash、HTML圖形文件(*.gif,*.jpeg,*.png)、音頻視頻文件(*.mid,*.wav,*.avi)等,CHM文件同樣支持,并且可以通過URL與互聯網聯系在一起。

          c. 用于制作CHM文件的源文件的文件格式不限。

          ython文檔資源包括下面幾種:

          序號

          形式

          描述

          1

          #注釋

          程序語句對應的注釋

          2

          dir()

          查看對象全部屬性

          3

          doc

          文檔字符串

          4

          help()

          查看對象具體屬性用法

          5

          HTML報表

          html格式幫助文檔

          6

          標準手冊

          python語言和庫的說明

          7

          網站資源

          在線教程、技術博客

          8

          書籍資源

          相關書籍

          1.1 #注釋

          python井號(#)用于程序語句對應的注釋。

          #號后面直到行末的內容都會當做注釋,不被執行。

          python通過#注釋的內容只能在程序原文件查看。

          1.2 dir()

          python的dir(對象)內置函數,返回對象全部屬性組成的列表。

          示例

          # 通過常量表達式生成實例后查看
          >>> dir('')
          ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
          # 通過類型名生成實例后查看
          >>> dir(str)
          ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
          >>> dir('')==dir(str)

          1.3 doc

          python文檔字符串doc,值為模塊文件開頭、函數開頭、類開頭、方法開頭的注釋,python會自動封裝這些注釋,并且保存在doc。這些注釋寫在三引號內。

          1.3.1 自定義文檔字符串

          文檔字符串可以通過不同位置路徑對象的doc獲取。

          不同路徑對象屬性名(函數名、類名、方法名)可以通過dir(模塊)獲取。

          模塊:模塊名.doc

          函數:模塊名.函數名.doc

          類:模塊名.類名.doc

          方法名:模塊名.類名.方法名.doc

          示例

          '''
          模塊文件名:docstr.py
          模塊開頭的文檔字符串
          '''
          S='梯閱線條'
          def hellof(name):
              '''
              函數開頭的文檔字符串
              '''
              print('hello ',name)
          
          class Student:
              '''
              類開頭處的文檔字符串
              '''
              def study(self):
                  '''
                  方法開頭的文檔字符串
                  '''
                  pass
              
          # 查看不同對象的__doc__文檔字符串
          >>> path=r'E:\documents\F盤'
          >>> import os
          >>> os.chdir(path)
          >>> import docstr
          >>> dir(docstr)
          ['L', 'S', 'Student', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'hellof']
          >>> print(docstr.__doc__)
          
          模塊文件名:docstr.py
          模塊開頭的文檔字符串
          >>> print(docstr.hellof.__doc__)
          
              函數開頭的文檔字符串
          >>> print(docstr.Student.__doc__)
          
              類開頭處的文檔字符串
          >>> print(docstr.Student.study.__doc__)
          
                  方法開頭的文檔字符串
                  

          1.4 help()

          python的help()內置函數查看傳入對象的使用說明,傳入對象可以是模塊名、函數名、類名、方法名、變量引用。

          示例

          >>> path=r'E:\documents\F盤'
          >>> import os
          >>> os.chdir(path)
          >>> import docstr
          >>> help(docstr)
          Help on module docstr:
          
          NAME
              docstr
          
          DESCRIPTION
              模塊文件名:docstr.py
              模塊開頭的文檔字符串
          
          CLASSES
              builtins.object
                  Student
              
              class Student(builtins.object)
               |  類開頭處的文檔字符串
               |  
               |  Methods defined here:
               |  
               |  study(self)
               |      方法開頭的文檔字符串
               |  
               |  ----------------------------------------------------------------------
               |  Data descriptors defined here:
               |  
               |  __dict__
               |      dictionary for instance variables (if defined)
               |  
               |  __weakref__
               |      list of weak references to the object (if defined)
          
          FUNCTIONS
              hellof(name)
                  函數開頭的文檔字符串
          
          DATA
              L = ['梯', '閱', '線', '條']
              S = '梯閱線條'
          
          FILE
              e:\documents\f盤\docstr.py
          
          
          >>> help(docstr.hellof)
          Help on function hellof in module docstr:
          
          hellof(name)
              函數開頭的文檔字符串

          1.5 pydoc

          1.5.1 生成html

          用法

          python -m pydoc -w docstr

          描述

          進入到docstr.py文件的目錄,執行用法里面的語句。

          執行pydoc模塊,將docstr的文檔字符串寫入到docstr.html文件,成為幫助文檔。

          -m:表示運行模塊(module),后面接模塊名

          -w:后接要生成html文檔的模塊名,表示將模塊的文檔字符串寫入到模塊名.html文件中。

          示例

          E:\documents\F盤>python -m pydoc -w docstr
          wrote docstr.html

          會生成類似下面的html文件內容:

          1.6 python手冊

          python安裝目錄的doc目錄下python378.chm。

          更多內容參考python知識分享或軟件測試開發目錄。

          1 -

          場景

          CHM是英文Compiled HTML Help的縮寫,是微軟公司專有的聯機幫助格式,由HTML頁面、索引和其他導航工具的集合組成。這些文件被壓縮并部署為二進制格式,擴展名為.CHM,用于編譯HTML。CHM格式通常用于軟件文檔。

          雖然CHM格式是老的文檔格式,很多Windows程序已經不再將它作為幫助文件的首選,但是有些場景我們依然希望將DITA或者Markdown發布成CHM格式的內容。尤其是為運行在Windows操作系統下的軟件提供離線幫助。DITA發布體系支持將DITA內容發布成CHM格式。

          本文分析將DITA或Markdown格式的內容發布成CHM格式的方法,并為實現這個目的掃清實際操作遇到的技術障礙。

          - 2 -

          DITA-OT發布框架

          DITA-OT是DITA內容發布的開源發布引擎。它的誕生,是為了將DITA格式的內容發布成多種格式輸出。

          隨著這些年的發展,DITA-OT支持的輸入內容包括DITA和Markdown,輸出的格式包括PDF、HTML和CHM格式等。見下圖(源自DITA-OT官網:www.dita-ot.org):

          1. 輸入格式一:DITA Map + Topic

          系統支持由XML格式的DITA Map和XML格式的Topic組成的文檔,見下例。

          Map文件內容:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE map
            PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
          <map xml:lang="zh-CN">
            <title>智能云相冊</title>
            <topicref href="./topics/chap1.dita">
              <topicref href="./topics/sect1-1.dita"/>
              <topicref href="./topics/sect1-2.dita"/>
              <topicref href="./topics/sect1-3.dita"/>
              <topicref href="./topics/sect1-4.dita"/>
              <topicref href="./topics/sect1-5.dita"/>
            </topicref>
            <topicref href="./topics/chap2.dita">
              <topicref href="./topics/sect2-1.dita"/>
              <topicref href="./topics/sect2-2.dita"/>
              <topicref href="./topics/sect2-3.dita"/>
            </topicref>
            <topicref href="./topics/chap3.dita">
              <topicref href="./topics/sect3-1.dita"/>
              <topicref href="./topics/sect3-2.dita"/>
              <topicref href="./topics/sect3-3.dita"/>
            </topicref>
          </map>

          Topic文件內容:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE topic
            PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
          <topic id="general" xml:lang="zh-CN">
            <title>產品概述</title>
            <prolog/>
            <body>
              <p>智能云相冊(Cloud Photos)是阿里云為影像類應用提供的一站式解決方案。智能云相冊除了提供影像文件存儲、管理等基礎功能以外,還支持對影像內容進行分類打標、面孔識別等智能分析,并提供基于自然語言理解的智能搜索服務。</p>
              <p>智能云相冊服務基于阿里云云計算服務構建,它解決了以往搭建云相冊后端服務過程中,需要購買、搭建和運維 ECS 集群,集成其他云計算服務(對象存儲、媒體轉碼等),處理海量用戶的高并發請求等一系列繁瑣的問題。更重要的是,它提供了對影像內容的智能分析,智能生成相簿和智能搜索等服務,讓人工智能技術變得觸手可及,極大提高企業和個人用戶構建云相冊應用程序的效率。</p>
            </body>
          </topic>

          發布過程是這樣的:

          2. 輸入格式二:DITA Map + Markdown

          同時,系統也支持由XML格式的DITA Map和Markdown格式的Topic組成的文檔,見下例。

          Map文件內容:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
          <map xml:lang="zh-CN">
              <title>智能云相冊</title>
              <topicref navtitle="產品簡介">
                  <topicref href="./chap1/sect1-1.md" format="mdita"/>
                  <topicref href="./chap1/sect1-2.md" format="mdita"/>
                  <topicref href="./chap1/sect1-3.md" format="mdita"/>
                  <topicref href="./chap1/sect1-4.md" format="mdita"/>
                  <topicref href="./chap1/sect1-5.md" format="mdita"/>
              </topicref>
              <topicref navtitle="快速入門">
                  <topicref href="./chap2/sect2-1.md" format="mdita"/>
                  <topicref href="./chap2/sect2-2.md" format="mdita"/>
                  <topicref href="./chap2/sect2-3.md" format="mdita"/>
              </topicref>
              <topicref navtitle="用戶指南">
                  <topicref href="./chap3/sect3-1.md" format="mdita"/>
                  <topicref href="./chap3/sect3-2.md" format="mdita"/>
              </topicref>
          </map>

          :目前DITA-OT不支持使用Markdown來寫DITA Map文件,只支持使用Markdown編寫Topic。

          上例中格式mdita表示Markdown格式的DITA Topic。

          Markdown格式的Topic內容:

          # 產品概述
          
          
          智能云相冊(Cloud Photos)是阿里云為影像類應用提供的一站式解決方案。智能云相冊除了提供影像文件存儲、管理等基礎功能以外,還支持對影像內容進行分類打標、面孔識別等智能分析,并提供基于自然語言理解的智能搜索服務。
          
          
          智能云相冊服務基于阿里云云計算服務構建,它解決了以往搭建云相冊后端服務過程中,需要購買、搭建和運維 ECS 集群,集成其他云計算服務(對象存儲、媒體轉碼等),處理海量用戶的高并發請求等一系列繁瑣的問題。更重要的是,它提供了對影像內容的智能分析,智能生成相簿和智能搜索等服務,讓人工智能技術變得觸手可及,極大提高企業和個人用戶構建云相冊應用程序的效率。

          提示:在發布過程中,如果Topic格式是Markdown,系統先將它轉換成XML格式的Topic,然后再執行發布。

          發布過程是這樣的:

          如果你所在的公司有很多Markdown格式的內容,想將他們組合在一起發布,那么通過這種方式可以將Markdown內容納入DITA發布體系,獲得單一數據源多種格式輸出的能力。

          - 3 -

          實踐

          因為CHM是微軟公司獨有的格式,只能在Windows操作系統上運行,所以請在運行Windows操作系統的電腦上運行本實踐步驟

          1. 安裝必要軟件

          如果安裝了Oxygen XML Editor編輯器,它已經包含了DITA-OT發布引擎。

          如果沒有使用Oxygen XML Editor編輯器,那么可以自行到DITA-OT官網(www.dita-ot.org)下載安裝程序,并按照文檔安裝到電腦上。本文使用的是DITA-OT 3.7.4版本。

          無論用到上邊兩種方法的哪一種,都需要額外安裝一個軟件叫做HTML help workshop。這個軟件是微軟公司開發的,但大家可能會發現微軟公司的官網已經下載不到這個軟件了。

          幸運的是,有其他人也碰到了此問題,并提供了解決方案。請訪問如下網頁:

          https://learn.microsoft.com/en-us/answers/questions/265752/htmlhelp-workshop-download-for-chm-compiler-instal

          點擊網頁中的下圖鏈接下載安裝程序:

          :以上鏈接需要科學上網才能下載。經確認發現最后一個德語下載鏈接可以直接訪問下載

          下載后,請運行這個安裝程序安裝HTML help workshop軟件。

          注意:將htmlhelp.exe下載下來后在安裝之前建議使用殺毒軟件查殺文件確保安全。

          2. 使用Oxygen XML Editor發布

          在Oxygen XML Editor編輯中打開ditamap文件,然后發布,如下圖:

          系統會生成xxx.chm文件。雙擊此文件,打開結果如下圖:


          3. 使用Windows命令行發布

          如果沒有Oxygen XML Editor并且安裝了DITA-OT,則使用Windows命令行發布。

          1) 打開Windows命令行

          2)運行以下命令

          cd C:\dev\dita\dita\cloudphotox
          dita -i cloudphoto.ditamap -f htmlhelp -o out

          注:C:\dev\dita\dita\cloudphotox是我ditamap文件所在路徑。

          第二行命令的意思:

          • -i cloudphoto.ditamap:輸入文件是cloudphoto.ditamap
          • -f htmlhelp:輸出格式為htmlhelp
          • -o out:輸出文件放到out目錄下

          3)輸出結果為out目錄下的cloudphoto.chm文件。

          打開以后如下圖:

          - 4 -

          總結

          通過本文描述的總結和實踐,大家可以使用此方法將DITA和Markdown格式的內容發布成CHM格式的幫助文件。

          趕快試試吧!


          主站蜘蛛池模板: 内射女校花一区二区三区| 精品一区二区三区影院在线午夜| 一本AV高清一区二区三区| 日韩精品一区二区三区毛片| 精品一区二区三区波多野结衣| 国内精品视频一区二区八戒| 亚洲av鲁丝一区二区三区| 中文字幕日本一区| 午夜精品一区二区三区在线视| 欧洲精品免费一区二区三区| 中文字幕精品一区二区| 日韩人妻精品无码一区二区三区| 亚洲日韩精品无码一区二区三区| 亚洲一区二区三区国产精品| 一区 二区 三区 中文字幕| 国产成人一区二区三区| 国内自拍视频一区二区三区| 蜜臀AV一区二区| 91福利视频一区| 精品亚洲AV无码一区二区 | 亚洲精品无码一区二区| 亚洲熟妇av一区二区三区下载| 日韩精品中文字幕无码一区| 人妻aⅴ无码一区二区三区| 精品无码AV一区二区三区不卡| 人体内射精一区二区三区| 亚洲国产精品一区二区久| 91午夜精品亚洲一区二区三区 | 午夜精品一区二区三区在线观看| 暖暖免费高清日本一区二区三区| 国产精品亚洲一区二区三区在线观看| 日韩一区二区a片免费观看| 无码丰满熟妇浪潮一区二区AV| 免费看AV毛片一区二区三区| 国精产品一区一区三区有限公司 | 动漫精品第一区二区三区| 波多野结衣电影区一区二区三区| 午夜视频久久久久一区 | 亚洲AV成人精品日韩一区18p| 国产精品亚洲产品一区二区三区| 久久无码精品一区二区三区|