参考
使用Objective-C的文档生成工具:appledoc
https://www.jianshu.com/p/0911302b3117
appledoc工具安装
打开终端输入以下命令,默认安装在用户名文件下
git clone git://github.com/tomaz/appledoc.git
cd appledoc
sudo sh install-appledoc.sh
可修改html、docset模板,可按模板生成,加参数-t default
sudo sh install-appledoc.sh -t default
- 问题1:无法从上git clone下来,可以直接到网站下载到本地http://github.com/tomaz/appledoc
- 问题2:没有
sudo
权限,无法直接安装,打开install-appledoc.sh
,修改下BINARY_DIR
,比如改到下载
的项目目录下,自己建了install
文件夹#BINARY_DIR=/usr/local/bin/ BINARY_DIR=~/Downloads/appledoc-master/install/
执行就需要全路径了
/Users/用户名/Downloads/appledoc-master/install/appledoc --help
二、appledoc工具使用
方式1:生成docset-installed.txt然后查找文档
- 先cd到你的项目目录下(若使用cocopods,需要定位到二级项目名下)
- ./doc即输出文件路径
- ./即生成文档遍历的文件夹路径
- 在终端输入以下语句
appledoc -o ./doc --project-name 填工程名 --project-company 填公司名 ./
- 此步骤执行完成后会在项目文件夹下生成一个
docset-installed.txt
,打开docset-installed.txt
可看到生成文档路径,cmd+shift+G
定位到该文件路径上层文件夹DocSets
下,找到com.liuna.test.test.docset
,右键显示包内容找到index.html
即可。
方式2:生成docset-installed.txt然后查找文档
- cd到项目文件夹下(若使用cocopods,需要定位到二级项目名下)
- 终端输入
appledoc --no-create-docset --output ./doc --project-name 输入项目名 --project-company 输入公司名 ./
-
执行后在项目名文件夹下生成一个doc的文件夹,找到index.html即生成的项目文档
三、appledoc生成文档注释规定的格式
Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成
/// 单行注释
/** 单行注释 */
/** 注释
* 多行注释
*/
/** 注释
多行注释
*/
/*! 单行注释 */
/*! 注释
over multiple lines.
*/
修改模板
- 修改html模板,文件
object-template.html
- 第137行,Section Method区域,
- 第一对<br>中间是我新增的,效果是每个方法前面显示简介,不然只看到一堆方法名而已
- 其他模板可类似操作
Section Method
<div class="section-method">
<br>
<h5>
{{#comment}}
{{#hasShortDescription}}
<p>{{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}}<p>
{{/hasShortDescription}}
{{/comment}}
</5>
<a name="{{htmlReferenceName}}" title="{{methodSelector}}"></a>
<h3 class="method-title">{{>TaskMethod}}</h3>
appledoc --help
内容如下
Usage: appledoc [OPTIONS] <paths to source dirs or files>
PATHS
-o, --output <path> Output path
-t, --templates <path> Template files path
--docset-install-path <path> DocSet installation path
-s, --include <path> Include static doc(s) at path
-i, --ignore <path> Ignore given path
-x, --exclude-output <path> Exclude given path from output
--index-desc <path> File including main index description
PROJECT INFO
-p, --project-name <string> Project name
-v, --project-version <string> Project version
-c, --project-company <string> Project company
--company-id <string> Company UTI (i.e. reverse DNS name)
OUTPUT GENERATION
-h, --create-html [b] Create HTML
-m, --create-markdown [b] Create markdown
-d, --create-docset [b] Create documentation set
-n, --install-docset [b] Install documentation set to Xcode
-u, --publish-docset [b] Prepare DocSet for publishing
--html-anchors <string> [*] The html anchor format to use in DocSet HTML.
--clean-output [b] Remove contents of output path before starting !!CAUTION!!
OPTIONS
--keep-intermediate-files [b] Keep intermediate files in output path
--keep-undocumented-objects [b] Keep undocumented objects
--keep-undocumented-members [b] Keep undocumented members
--search-undocumented-doc [b] Search undocumented members documentation
--repeat-first-par [b] Repeat first paragraph in member documentation
--preprocess-headerdoc [b] Preprocess header doc comments - 10.7 only!
--print-information-block-titles [b] Print title of information blocks. "Note:", "Warning:", etc.
--use-single-star [b] Use single star for bold marker
--merge-categories [b] Merge categories to classes
--merge-category-comment [b] Merge category comment to class
--keep-merged-sections [b] Keep merged categories sections
--prefix-merged-sections [b] Prefix merged sections with category name
--explicit-crossref [b] Shortcut for explicit default cross ref template
--use-code-order [b] Order sections by the order specified in the input files
--crossref-format <string> Cross reference template regex
--exit-threshold <number> Exit code threshold below which 0 is returned
--docs-section-title <string> Title of the documentation section (defaults to "Programming Guides"
WARNINGS
--warn-missing-output-path [b] Warn if output path is not given
--warn-missing-company-id [b] Warn if company ID is not given
--warn-undocumented-object [b] Warn on undocumented object
--warn-undocumented-member [b] Warn on undocumented member
--warn-empty-description [b] Warn on empty description block
--warn-unknown-directive [b] Warn on unknown directive or format
--warn-invalid-crossref [b] Warn on invalid cross reference
--warn-missing-arg [b] Warn on missing method argument documentation
--warn-unsupported-typedef-enum [b] Warn on unsupported typedef enum
DOCUMENTATION SET INFO
--docset-bundle-id <string> [*] DocSet bundle identifier
--docset-bundle-name <string> [*] DocSet bundle name
--docset-desc <string> [*] DocSet description
--docset-copyright <string> [*] DocSet copyright message
--docset-feed-name <string> [*] DocSet feed name
--docset-feed-url <string> [*] DocSet feed URL
--docset-feed-formats <values> DocSet feed formats. Separated by a comma [atom,xml]
--docset-package-url <string> [*] DocSet package (.xar) URL
--docset-fallback-url <string> [*] DocSet fallback URL
--docset-publisher-id <string> [*] DocSet publisher identifier
--docset-publisher-name <string> [*] DocSet publisher name
--docset-min-xcode-version <string> [*] DocSet min. Xcode version
--docset-platform-family <string> [*] DocSet platform familiy
--docset-cert-issuer <string> [*] DocSet certificate issuer
--docset-cert-signer <string> [*] DocSet certificate signer
--docset-bundle-filename <string> [*] DocSet bundle filename
--docset-atom-filename <string> [*] DocSet atom feed filename
--docset-xml-filename <string> [*] DocSet xml feed filename
--docset-package-filename <string> [*] DocSet package (.xar,.tgz) filename. Leave off the extension. This will be added depending on the generated package.
MISCELLANEOUS
--logformat <number> Log format [0-3]
--verbose <value> Log verbosity level [0-6,xcode]
--version Display version and exit
--help Display this help and exit
==================================================================
[b] boolean parameter, uses no value, use --no- prefix to negate.
[*] indicates parameters accepting placeholder strings:
- %PROJECT replaced with --project-name
- %PROJECTID replaced with normalized --project-name
- %VERSION replaced with --project-version
- %VERSIONID replaced with normalized --project-version
- %COMPANY replaced with --project-company
- %COMPANYID replaced with --company-id
- %YEAR replaced with current year (format yyyy)
- %UPDATEDATE replaced with current date (format yyyy-MM-dd)
- %DOCSETBUNDLEFILENAME replaced with --docset-bundle-filename
- %DOCSETATOMFILENAME replaced with --docset-atom-filename
- %DOCSETPACKAGEFILENAME replaced with --docset-package-filename
==================================================================
Find more help and tips online:
- http://appledoc.gentlebytes.com/
- http://tomaz.github.com/appledoc/
==================================================================
appledoc uses the following open source components, fully or partially:
- DDCli by Dave Dribin
- CocoaLumberjack by Robbie Hanson
- ParseKit by Todd Ditchendorf
- RegexKitLite by John Engelhart
- GRMustache by Gwendal Roué
- Discount by David Parsons
- Timing functions from Apple examples
We'd like to thank all authors for their contribution!