├── .gitignore ├── AppledocSettings.plist ├── LICENSE ├── README.md ├── Templates ├── docset │ └── Contents │ │ ├── Resources │ │ ├── Documents │ │ │ └── documents-template │ │ ├── nodes-template.xml │ │ └── tokens-template.xml │ │ └── info-template.plist ├── html │ ├── css │ │ ├── scss │ │ │ ├── _index.scss │ │ │ ├── _layout.scss │ │ │ ├── _normalize.scss │ │ │ ├── _object.scss │ │ │ ├── _print.scss │ │ │ ├── _variables.scss │ │ │ ├── _xcode.scss │ │ │ └── style.scss │ │ └── style.css │ ├── document-template.html │ ├── hierarchy-template.html │ ├── img │ │ ├── button_bar_background.png │ │ ├── disclosure.png │ │ ├── disclosure_open.png │ │ ├── library_background.png │ │ └── title_background.png │ ├── index-template.html │ ├── js │ │ └── script.js │ └── object-template.html ├── index_temp.html ├── markdown │ └── markdown-template.md └── publish │ └── xml-template.xml ├── appledoc ├── appledoc.sh └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | # CocoaPods 32 | # 33 | # We recommend against adding the Pods directory to your .gitignore. However 34 | # you should judge for yourself, the pros and cons are mentioned at: 35 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 36 | # 37 | # Pods/ 38 | 39 | # Carthage 40 | # 41 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 42 | # Carthage/Checkouts 43 | 44 | Carthage/Build 45 | 46 | # fastlane 47 | # 48 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 49 | # screenshots whenever they are needed. 50 | # For more information about the recommended setup visit: 51 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 52 | 53 | fastlane/report.xml 54 | fastlane/Preview.html 55 | fastlane/screenshots/**/*.png 56 | fastlane/test_output 57 | 58 | # Code Injection 59 | # 60 | # After new code Injection tools there's a generated folder /iOSInjectionProject 61 | # https://github.com/johnno1962/injectionforxcode 62 | 63 | iOSInjectionProject/ 64 | -------------------------------------------------------------------------------- /AppledocSettings.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | --company-id 6 | cn.minlison 7 | --ignore 8 | 9 | ./Pods 10 | ./docs 11 | ./MLSCacheDemo 12 | ./Classes/YYCacheModify 13 | *.m 14 | 15 | --logformat 16 | 1 17 | --print-settings 18 | 19 | --project-company 20 | MinLison 21 | --project-name 22 | MLSCache 23 | --repeat-first-par 24 | 25 | --templates 26 | ./Templates 27 | --verbose 28 | 6 29 | --publish-docset 30 | 31 | --create-docset 32 | 33 | --install-docset 34 | 35 | --docset-install-path 36 | ./docs/docset 37 | --create-html 38 | 39 | --create-markdown 40 | 41 | --output 42 | ./docs 43 | --keep-undocumented-objects 44 | 45 | --keep-undocumented-members 46 | 47 | --search-undocumented-doc 48 | 49 | --keep-intermediate-files 50 | 51 | --preprocess-headerdoc 52 | 53 | --print-information-block-titles 54 | 55 | --merge-categories 56 | 57 | --merge-category-comment 58 | 59 | --use-code-order 60 | 61 | --clean-output 62 | 63 | --warn-undocumented-object 64 | 65 | --warn-undocumented-member 66 | 67 | --warn-missing-arg 68 | 69 | --warn-invalid-crossref 70 | 71 | --warn-unknown-directive 72 | 73 | --warn-empty-description 74 | 75 | --warn-unsupported-typedef-enum 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Minlison 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MLSAppleDoc 2 | 3 | AppleDoc 接口文档生成工具 4 | -------------------------------------------------------------------------------- /Templates/docset/Contents/Resources/Documents/documents-template: -------------------------------------------------------------------------------- 1 | This is used only as placeholder for location of Documents directory! -------------------------------------------------------------------------------- /Templates/docset/Contents/Resources/nodes-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{projectName}} 6 | {{indexFilename}} 7 | 8 | {{#hasDocs}} 9 | 10 | {{strings.docset.docsTitle}} 11 | {{indexFilename}} 12 | 13 | {{#docs}}{{>NodeRef}} 14 | {{/docs}} 15 | 16 | 17 | {{/hasDocs}} 18 | {{#hasClasses}} 19 | 20 | {{strings.docset.classesTitle}} 21 | {{indexFilename}} 22 | 23 | {{#classes}}{{>NodeRef}} 24 | {{/classes}} 25 | 26 | 27 | {{/hasClasses}} 28 | {{#hasCategories}} 29 | 30 | {{strings.docset.categoriesTitle}} 31 | {{indexFilename}} 32 | 33 | {{#categories}}{{>NodeRef}} 34 | {{/categories}} 35 | 36 | 37 | {{/hasCategories}} 38 | {{#hasProtocols}} 39 | 40 | {{strings.docset.protocolsTitle}} 41 | {{indexFilename}} 42 | 43 | {{#protocols}}{{>NodeRef}} 44 | {{/protocols}} 45 | 46 | 47 | {{/hasProtocols}} 48 | {{#hasConstants}} 49 | 50 | {{strings.docset.constantsTitle}} 51 | {{indexFilename}} 52 | 53 | {{#constants}}{{>NodeRef}} 54 | {{/constants}} 55 | 56 | 57 | {{/hasConstants}} 58 | {{#hasBlocks}} 59 | 60 | {{strings.docset.blocksTitle}} 61 | {{indexFilename}} 62 | 63 | {{#blocks}}{{>NodeRef}} 64 | {{/blocks}} 65 | 66 | 67 | {{/hasBlocks}} 68 | 69 | 70 | 71 | 72 | {{#docs}}{{>Node}} 73 | {{/docs}} 74 | {{#classes}}{{>Node}} 75 | {{/classes}} 76 | {{#categories}}{{>Node}} 77 | {{/categories}} 78 | {{#protocols}}{{>Node}} 79 | {{/protocols}} 80 | {{#constants}}{{>Node}} 81 | {{/constants}} 82 | {{#blocks}}{{>Node}} 83 | {{/blocks}} 84 | 85 | 86 | 87 | Section Node 88 | 89 | {{name}} 90 | {{path}} 91 | {{#hasSubNodes}} 92 | 93 | 94 | {{path}} 95 | Overview 96 | overview 97 | 98 | 99 | {{path}} 100 | Tasks 101 | tasks 102 | 103 | {{#hasProperties}} 104 | 105 | {{path}} 106 | Properties 107 | properties 108 | 109 | {{/hasProperties}} 110 | {{#hasClassMethods}} 111 | 112 | {{path}} 113 | Class Methods 114 | class_methods 115 | 116 | {{/hasClassMethods}} 117 | {{#hasInstanceMethods}} 118 | 119 | {{path}} 120 | Instance Methods 121 | instance_methods 122 | 123 | {{/hasInstanceMethods}} 124 | 125 | {{/hasSubNodes}} 126 | 127 | EndSection 128 | 129 | Section NodeRef 130 | 131 | EndSection 132 | -------------------------------------------------------------------------------- /Templates/docset/Contents/Resources/tokens-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{#object}} 5 | 6 | {{>TokenIdentifier}} 7 | {{>Abstract}} 8 | {{>DeclaredIn}} 9 | {{>Availability}} 10 | {{>RelatedTokens}} 11 | {{#refid}}{{/refid}} 12 | 13 | {{/object}} 14 | {{#members}} 15 | 16 | {{>TokenIdentifier}} 17 | {{>Abstract}} 18 | {{>DeclaredIn}} 19 | {{>RelatedTokens}} 20 | {{>MethodDeclaration}} 21 | {{#hasParameters}} 22 | {{#parameters}} 23 | {{name}} 24 | {{>Abstract}} 25 | {{/parameters}} 26 | {{/hasParameters}} 27 | {{#returnValue}}{{>Abstract}}{{/returnValue}} 28 | {{#anchor}}{{anchor}}{{/anchor}} 29 | {{#refid}}{{/refid}} 30 | 31 | {{/members}} 32 | {{#constants}} 33 | 34 | {{>TokenIdentifier}} 35 | {{>Abstract}} 36 | {{declaration}} 37 | {{>Availability}} 38 | {{>DeclaredIn}} 39 | {{>RelatedTokens}} 40 | {{>Reference}} 41 | 42 | {{/constants}} 43 | {{#blocks}} 44 | 45 | {{>TokenIdentifier}} 46 | {{>Abstract}} 47 | {{declaration}} 48 | {{>Availability}} 49 | {{>DeclaredIn}} 50 | {{>RelatedTokens}} 51 | {{>Reference}} 52 | 53 | {{/blocks}} 54 | 55 | 56 | 57 | Section TokenIdentifier 58 | {{identifier}} 59 | EndSection 60 | 61 | Section DeclaredIn 62 | {{declaredin}} 63 | EndSection 64 | 65 | Section RelatedTokens 66 | {{#hasRelatedTokens}} 67 | 68 | {{#relatedTokens}}{{.}} 69 | {{/relatedTokens}} 70 | 71 | {{/hasRelatedTokens}} 72 | EndSection 73 | 74 | Section Abstract 75 | {{#abstract}}{{>GBCommentComponentsList}}{{/abstract}} 76 | EndSection 77 | 78 | Section Availability 79 | {{#availability}}{{>GBCommentComponentsList}}{{/availability}} 80 | EndSection 81 | 82 | Section Reference 83 | {{#refid}}{{/refid}} 84 | EndSection 85 | 86 | Section MethodDeclaration 87 | {{#formattedComponents}}{{value}}{{/formattedComponents}} 88 | EndSection 89 | 90 | Section GBCommentComponentsList 91 | {{#components}}{{textValue}}{{/components}} 92 | EndSection 93 | 94 | -------------------------------------------------------------------------------- /Templates/docset/Contents/info-template.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | {{#bundleIdentifier}}CFBundleIdentifier 8 | {{bundleIdentifier}}{{/bundleIdentifier}} 9 | {{#bundleName}}CFBundleName 10 | {{bundleName}}{{/bundleName}} 11 | {{#bundleVersion}}CFBundleShortVersionString 12 | {{bundleVersion}} 13 | CFBundleVersion 14 | {{bundleVersion}}{{/bundleVersion}} 15 | {{#certificateIssuer}}DocSetCertificateIssuer 16 | {{certificateIssuer}}{{/certificateIssuer}} 17 | {{#certificateSigner}}DocSetCertificateSigner 18 | {{certificateSigner}}{{/certificateSigner}} 19 | {{#description}}DocSetDescription 20 | {{description}}{{/description}} 21 | {{#fallbackURL}}DocSetFallbackURL 22 | {{fallbackURL}}{{/fallbackURL}} 23 | {{#feedName}}DocSetFeedName 24 | {{feedName}}{{/feedName}} 25 | {{#feedURL}}DocSetFeedURL 26 | {{feedURL}}{{/feedURL}} 27 | {{#minimumXcodeVersion}}DocSetMinimumXcodeVersion 28 | {{minimumXcodeVersion}}{{/minimumXcodeVersion}} 29 | {{#platformFamily}}DocSetPlatformFamily 30 | {{platformFamily}}{{/platformFamily}} 31 | {{#dashPlatformFamily}}DashDocSetFamily 32 | {{dashPlatformFamily}}{{/dashPlatformFamily}} 33 | {{#publisherIdentifier}}DocSetPublisherIdentifier 34 | {{publisherIdentifier}}{{/publisherIdentifier}} 35 | {{#publisherName}}DocSetPublisherName 36 | {{publisherName}}{{/publisherName}} 37 | {{#copyrightMessage}}NSHumanReadableCopyright 38 | {{copyrightMessage}}{{/copyrightMessage}} 39 | 40 | 41 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_index.scss: -------------------------------------------------------------------------------- 1 | .index-container { 2 | display: flex; 3 | flex-direction: row; 4 | flex-wrap: wrap; 5 | 6 | @media (max-width: $mobile-max-width) { 7 | flex-direction: column; 8 | } 9 | 10 | .index-column { 11 | flex: 1 1 33%; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_layout.scss: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | .clear { 6 | clear: both; 7 | } 8 | 9 | .clearfix { 10 | &:before, &:after { 11 | clear: both; 12 | display: table; 13 | content: ""; 14 | } 15 | } 16 | 17 | .xcode .hide-in-xcode { 18 | display: none; 19 | } 20 | 21 | body { 22 | font: 62.5% $body-font; 23 | background: $body-background; 24 | } 25 | 26 | h1, h2, h3 { 27 | font-weight: 300; 28 | color: #808080; 29 | } 30 | 31 | h1 { 32 | font-size: 2em; 33 | color: #000; 34 | } 35 | 36 | h4 { 37 | font-size: 13px; 38 | line-height: 1.5; 39 | margin: 21px 0 0 0; 40 | } 41 | 42 | a { 43 | color: $tint-color; 44 | text-decoration: none; 45 | } 46 | 47 | pre, code { 48 | font-family: $code-font; 49 | word-wrap: break-word; 50 | } 51 | 52 | pre > code, .method-declaration code { 53 | display: inline-block; 54 | font-size: .85em; 55 | padding: 4px 0 4px 10px; 56 | border-left: 5px solid rgba(0, 155, 51, .2); 57 | 58 | &:before { 59 | content: "Objective-C"; 60 | display: block; 61 | 62 | font: 9px/1 $body-font; 63 | color: #009b33; 64 | text-transform: uppercase; 65 | letter-spacing: 2px; 66 | padding-bottom: 6px; 67 | } 68 | } 69 | 70 | pre > code { 71 | font-size: inherit; 72 | } 73 | 74 | table, th, td { 75 | border: 1px solid #e9e9e9; 76 | } 77 | 78 | table { 79 | width: 100%; 80 | } 81 | 82 | th, td { 83 | padding: 7px; 84 | 85 | > :first-child { 86 | margin-top: 0; 87 | } 88 | 89 | > :last-child { 90 | margin-bottom: 0; 91 | } 92 | } 93 | 94 | .container { 95 | @extend .clearfix; 96 | 97 | max-width: 980px; 98 | padding: 0 10px; 99 | margin: 0 auto; 100 | 101 | @media (max-width: $mobile-max-width) { 102 | padding: 0; 103 | } 104 | } 105 | 106 | header { 107 | position: fixed; 108 | top: 0; 109 | left: 0; 110 | width: 100%; 111 | z-index: 2; 112 | 113 | background: #414141; 114 | color: #fff; 115 | font-size: 1.1em; 116 | line-height: 25px; 117 | letter-spacing: .05em; 118 | 119 | #library-title { 120 | float: left; 121 | } 122 | 123 | #developer-home { 124 | float: right; 125 | } 126 | 127 | h1 { 128 | font-size: inherit; 129 | font-weight: inherit; 130 | margin: 0; 131 | } 132 | 133 | p { 134 | margin: 0; 135 | } 136 | 137 | h1, a { 138 | color: inherit; 139 | } 140 | 141 | @media (max-width: $mobile-max-width) { 142 | position: absolute; 143 | 144 | .container { 145 | padding: 0 10px; 146 | } 147 | } 148 | } 149 | 150 | aside { 151 | position: fixed; 152 | top: 25px; 153 | left: 0; 154 | width: 100%; 155 | height: 25px; 156 | z-index: 2; 157 | 158 | font-size: 1.1em; 159 | 160 | @media (max-width: $mobile-max-width) { 161 | position: absolute; 162 | } 163 | 164 | #header-buttons { 165 | background: rgba(255, 255, 255, .8); 166 | margin: 0 1px; 167 | padding: 0; 168 | list-style: none; 169 | text-align: right; 170 | line-height: 32px; 171 | 172 | li { 173 | display: inline-block; 174 | cursor: pointer; 175 | padding: 0 10px; 176 | } 177 | 178 | label, select { 179 | cursor: inherit; 180 | } 181 | 182 | #on-this-page { 183 | position: relative; 184 | 185 | .chevron { 186 | display: inline-block; 187 | width: 14px; 188 | height: 4px; 189 | position: relative; 190 | 191 | .chevy { 192 | background: #878787; 193 | height: 2px; 194 | position: absolute; 195 | width: 10px; 196 | 197 | &.chevron-left { 198 | left: 0; 199 | transform: rotateZ(45deg) scale(0.6); 200 | } 201 | 202 | &.chevron-right { 203 | right: 0; 204 | transform: rotateZ(-45deg) scale(0.6); 205 | } 206 | } 207 | } 208 | 209 | #jump-to { 210 | opacity: 0; 211 | font-size: 16px; 212 | 213 | position: absolute; 214 | top: 5px; 215 | left: 0; 216 | width: 100%; 217 | height: 100%; 218 | } 219 | } 220 | } 221 | } 222 | 223 | article { 224 | margin-top: 25px; 225 | 226 | #content { 227 | @extend .clearfix; 228 | 229 | background: $content-background; 230 | border: 1px solid $content-border; 231 | padding: 15px 25px 30px 25px; 232 | 233 | font-size: 1.4em; 234 | line-height: 1.45; 235 | 236 | position: relative; 237 | 238 | @media (max-width: $mobile-max-width) { 239 | padding: 15px 10px 20px 10px; 240 | } 241 | 242 | .navigation-top { 243 | position: absolute; 244 | top: 15px; 245 | right: 25px; 246 | } 247 | 248 | .title { 249 | margin: 21px 0 0 0; 250 | padding: 15px 0; 251 | } 252 | 253 | p { 254 | color: #414141; 255 | margin: 0 0 15px 0; 256 | } 257 | 258 | th, td { 259 | p:last-child { 260 | margin-bottom: 0; 261 | } 262 | } 263 | 264 | main { 265 | ul { 266 | list-style: none; 267 | margin-left: 24px; 268 | margin-bottom: 12px; 269 | padding: 0; 270 | 271 | li { 272 | position: relative; 273 | padding-left: 1.3em; 274 | 275 | &:before { 276 | content: "\02022"; 277 | 278 | color: #414141; 279 | font-size: 1.08em; 280 | line-height: 1; 281 | 282 | position: absolute; 283 | left: 0; 284 | padding-top: 2px; 285 | } 286 | } 287 | } 288 | } 289 | 290 | footer { 291 | @extend .clearfix; 292 | 293 | .footer-copyright { 294 | margin: 70px 25px 10px 0; 295 | } 296 | 297 | p { 298 | font-size: .71em; 299 | color: #a0a0a0; 300 | } 301 | } 302 | } 303 | } 304 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_normalize.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Normalize.scss settings 3 | ========================================================================== */ 4 | /** 5 | * Includes legacy browser support IE6/7 6 | * 7 | * Set to false if you want to drop support for IE6 and IE7 8 | */ 9 | 10 | $legacy_browser_support: false !default; 11 | 12 | /* Base 13 | ========================================================================== */ 14 | 15 | /** 16 | * 1. Set default font family to sans-serif. 17 | * 2. Prevent iOS text size adjust after orientation change, without disabling 18 | * user zoom. 19 | * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using 20 | * `em` units. 21 | */ 22 | 23 | html { 24 | font-family: sans-serif; /* 1 */ 25 | -ms-text-size-adjust: 100%; /* 2 */ 26 | -webkit-text-size-adjust: 100%; /* 2 */ 27 | @if $legacy_browser_support { 28 | *font-size: 100%; /* 3 */ 29 | } 30 | } 31 | 32 | /** 33 | * Remove default margin. 34 | */ 35 | 36 | body { 37 | margin: 0; 38 | } 39 | 40 | /* HTML5 display definitions 41 | ========================================================================== */ 42 | 43 | /** 44 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 45 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 46 | * and Firefox. 47 | * Correct `block` display not defined for `main` in IE 11. 48 | */ 49 | 50 | article, 51 | aside, 52 | details, 53 | figcaption, 54 | figure, 55 | footer, 56 | header, 57 | hgroup, 58 | main, 59 | menu, 60 | nav, 61 | section, 62 | summary { 63 | display: block; 64 | } 65 | 66 | /** 67 | * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. 68 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 69 | */ 70 | 71 | audio, 72 | canvas, 73 | progress, 74 | video { 75 | display: inline-block; /* 1 */ 76 | vertical-align: baseline; /* 2 */ 77 | @if $legacy_browser_support { 78 | *display: inline; 79 | *zoom: 1; 80 | } 81 | } 82 | 83 | /** 84 | * Prevents modern browsers from displaying `audio` without controls. 85 | * Remove excess height in iOS 5 devices. 86 | */ 87 | 88 | audio:not([controls]) { 89 | display: none; 90 | height: 0; 91 | } 92 | 93 | /** 94 | * Address `[hidden]` styling not present in IE 8/9/10. 95 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 96 | */ 97 | 98 | [hidden], 99 | template { 100 | display: none; 101 | } 102 | 103 | /* Links 104 | ========================================================================== */ 105 | 106 | /** 107 | * Remove the gray background color from active links in IE 10. 108 | */ 109 | 110 | a { 111 | background-color: transparent; 112 | } 113 | 114 | /** 115 | * Improve readability when focused and also mouse hovered in all browsers. 116 | */ 117 | 118 | a { 119 | &:active, &:hover { 120 | outline: 0; 121 | }; 122 | } 123 | 124 | /* Text-level semantics 125 | ========================================================================== */ 126 | 127 | /** 128 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 129 | */ 130 | 131 | abbr[title] { 132 | border-bottom: 1px dotted; 133 | } 134 | 135 | /** 136 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 137 | */ 138 | 139 | b, 140 | strong { 141 | font-weight: bold; 142 | } 143 | 144 | @if $legacy_browser_support { 145 | blockquote { 146 | margin: 1em 40px; 147 | } 148 | } 149 | 150 | /** 151 | * Address styling not present in Safari and Chrome. 152 | */ 153 | 154 | dfn { 155 | font-style: italic; 156 | } 157 | 158 | /** 159 | * Address variable `h1` font-size and margin within `section` and `article` 160 | * contexts in Firefox 4+, Safari, and Chrome. 161 | */ 162 | 163 | h1 { 164 | font-size: 2em; 165 | margin: 0.67em 0; 166 | } 167 | 168 | @if $legacy_browser_support { 169 | h2 { 170 | font-size: 1.5em; 171 | margin: 0.83em 0; 172 | } 173 | 174 | h3 { 175 | font-size: 1.17em; 176 | margin: 1em 0; 177 | } 178 | 179 | h4 { 180 | font-size: 1em; 181 | margin: 1.33em 0; 182 | } 183 | 184 | h5 { 185 | font-size: 0.83em; 186 | margin: 1.67em 0; 187 | } 188 | 189 | h6 { 190 | font-size: 0.67em; 191 | margin: 2.33em 0; 192 | } 193 | } 194 | 195 | /** 196 | * Addresses styling not present in IE 8/9. 197 | */ 198 | 199 | mark { 200 | background: #ff0; 201 | color: #000; 202 | } 203 | 204 | @if $legacy_browser_support { 205 | 206 | /** 207 | * Addresses margins set differently in IE 6/7. 208 | */ 209 | 210 | p, 211 | pre { 212 | *margin: 1em 0; 213 | } 214 | 215 | /* 216 | * Addresses CSS quotes not supported in IE 6/7. 217 | */ 218 | 219 | q { 220 | *quotes: none; 221 | } 222 | 223 | /* 224 | * Addresses `quotes` property not supported in Safari 4. 225 | */ 226 | 227 | q:before, 228 | q:after { 229 | content: ''; 230 | content: none; 231 | } 232 | } 233 | 234 | /** 235 | * Address inconsistent and variable font size in all browsers. 236 | */ 237 | 238 | small { 239 | font-size: 80%; 240 | } 241 | 242 | /** 243 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 244 | */ 245 | 246 | sub, 247 | sup { 248 | font-size: 75%; 249 | line-height: 0; 250 | position: relative; 251 | vertical-align: baseline; 252 | } 253 | 254 | sup { 255 | top: -0.5em; 256 | } 257 | 258 | sub { 259 | bottom: -0.25em; 260 | } 261 | 262 | @if $legacy_browser_support { 263 | 264 | /* ========================================================================== 265 | Lists 266 | ========================================================================== */ 267 | 268 | /* 269 | * Addresses margins set differently in IE 6/7. 270 | */ 271 | 272 | dl, 273 | menu, 274 | ol, 275 | ul { 276 | *margin: 1em 0; 277 | } 278 | 279 | dd { 280 | *margin: 0 0 0 40px; 281 | } 282 | 283 | /* 284 | * Addresses paddings set differently in IE 6/7. 285 | */ 286 | 287 | menu, 288 | ol, 289 | ul { 290 | *padding: 0 0 0 40px; 291 | } 292 | 293 | /* 294 | * Corrects list images handled incorrectly in IE 7. 295 | */ 296 | 297 | nav ul, 298 | nav ol { 299 | *list-style: none; 300 | *list-style-image: none; 301 | } 302 | 303 | } 304 | 305 | /* Embedded content 306 | ========================================================================== */ 307 | 308 | /** 309 | * 1. Remove border when inside `a` element in IE 8/9/10. 310 | * 2. Improves image quality when scaled in IE 7. 311 | */ 312 | 313 | img { 314 | border: 0; 315 | @if $legacy_browser_support { 316 | *-ms-interpolation-mode: bicubic; /* 2 */ 317 | } 318 | } 319 | 320 | /** 321 | * Correct overflow not hidden in IE 9/10/11. 322 | */ 323 | 324 | svg:not(:root) { 325 | overflow: hidden; 326 | } 327 | 328 | /* Grouping content 329 | ========================================================================== */ 330 | 331 | /** 332 | * Address margin not present in IE 8/9 and Safari. 333 | */ 334 | 335 | figure { 336 | margin: 1em 40px; 337 | } 338 | 339 | /** 340 | * Address differences between Firefox and other browsers. 341 | */ 342 | 343 | hr { 344 | -moz-box-sizing: content-box; 345 | box-sizing: content-box; 346 | height: 0; 347 | } 348 | 349 | /** 350 | * Contain overflow in all browsers. 351 | */ 352 | 353 | pre { 354 | overflow: auto; 355 | } 356 | 357 | /** 358 | * Address odd `em`-unit font size rendering in all browsers. 359 | * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. 360 | */ 361 | 362 | code, 363 | kbd, 364 | pre, 365 | samp { 366 | font-family: monospace, monospace; 367 | @if $legacy_browser_support { 368 | _font-family: 'courier new', monospace; 369 | } 370 | font-size: 1em; 371 | } 372 | 373 | /* Forms 374 | ========================================================================== */ 375 | 376 | /** 377 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 378 | * styling of `select`, unless a `border` property is set. 379 | */ 380 | 381 | /** 382 | * 1. Correct color not being inherited. 383 | * Known issue: affects color of disabled elements. 384 | * 2. Correct font properties not being inherited. 385 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 386 | * 4. Improves appearance and consistency in all browsers. 387 | */ 388 | 389 | button, 390 | input, 391 | optgroup, 392 | select, 393 | textarea { 394 | color: inherit; /* 1 */ 395 | font: inherit; /* 2 */ 396 | margin: 0; /* 3 */ 397 | @if $legacy_browser_support { 398 | vertical-align: baseline; /* 3 */ 399 | *vertical-align: middle; /* 3 */ 400 | } 401 | } 402 | 403 | /** 404 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 405 | */ 406 | 407 | button { 408 | overflow: visible; 409 | } 410 | 411 | /** 412 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 413 | * All other form control elements do not inherit `text-transform` values. 414 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 415 | * Correct `select` style inheritance in Firefox. 416 | */ 417 | 418 | button, 419 | select { 420 | text-transform: none; 421 | } 422 | 423 | /** 424 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 425 | * and `video` controls. 426 | * 2. Correct inability to style clickable `input` types in iOS. 427 | * 3. Improve usability and consistency of cursor style between image-type 428 | * `input` and others. 429 | * 4. Removes inner spacing in IE 7 without affecting normal text inputs. 430 | * Known issue: inner spacing remains in IE 6. 431 | */ 432 | 433 | button, 434 | html input[type="button"], /* 1 */ 435 | input[type="reset"], 436 | input[type="submit"] { 437 | -webkit-appearance: button; /* 2 */ 438 | cursor: pointer; /* 3 */ 439 | @if $legacy_browser_support { 440 | *overflow: visible; /* 4 */ 441 | } 442 | } 443 | 444 | /** 445 | * Re-set default cursor for disabled elements. 446 | */ 447 | 448 | button[disabled], 449 | html input[disabled] { 450 | cursor: default; 451 | } 452 | 453 | /** 454 | * Remove inner padding and border in Firefox 4+. 455 | */ 456 | 457 | button::-moz-focus-inner, 458 | input::-moz-focus-inner { 459 | border: 0; 460 | padding: 0; 461 | } 462 | 463 | /** 464 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 465 | * the UA stylesheet. 466 | */ 467 | 468 | input { 469 | line-height: normal; 470 | } 471 | 472 | /** 473 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 474 | * 2. Remove excess padding in IE 8/9/10. 475 | * Known issue: excess padding remains in IE 6. 476 | */ 477 | 478 | input[type="checkbox"], 479 | input[type="radio"] { 480 | box-sizing: border-box; /* 1 */ 481 | padding: 0; /* 2 */ 482 | @if $legacy_browser_support { 483 | *height: 13px; /* 3 */ 484 | *width: 13px; /* 3 */ 485 | } 486 | } 487 | 488 | /** 489 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 490 | * `font-size` values of the `input`, it causes the cursor style of the 491 | * decrement button to change from `default` to `text`. 492 | */ 493 | 494 | input[type="number"]::-webkit-inner-spin-button, 495 | input[type="number"]::-webkit-outer-spin-button { 496 | height: auto; 497 | } 498 | 499 | /** 500 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 501 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 502 | * (include `-moz` to future-proof). 503 | */ 504 | 505 | input[type="search"] { 506 | -webkit-appearance: textfield; /* 1 */ 507 | -moz-box-sizing: content-box; 508 | -webkit-box-sizing: content-box; /* 2 */ 509 | box-sizing: content-box; 510 | } 511 | 512 | /** 513 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 514 | * Safari (but not Chrome) clips the cancel button when the search input has 515 | * padding (and `textfield` appearance). 516 | */ 517 | 518 | input[type="search"]::-webkit-search-cancel-button, 519 | input[type="search"]::-webkit-search-decoration { 520 | -webkit-appearance: none; 521 | } 522 | 523 | /** 524 | * Define consistent border, margin, and padding. 525 | */ 526 | 527 | fieldset { 528 | border: 1px solid #c0c0c0; 529 | margin: 0 2px; 530 | padding: 0.35em 0.625em 0.75em; 531 | } 532 | 533 | /** 534 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 535 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 536 | * 3. Corrects text not wrapping in Firefox 3. 537 | * 4. Corrects alignment displayed oddly in IE 6/7. 538 | */ 539 | 540 | legend { 541 | border: 0; /* 1 */ 542 | padding: 0; /* 2 */ 543 | @if $legacy_browser_support { 544 | white-space: normal; /* 3 */ 545 | *margin-left: -7px; /* 4 */ 546 | } 547 | } 548 | 549 | /** 550 | * Remove default vertical scrollbar in IE 8/9/10/11. 551 | */ 552 | 553 | textarea { 554 | overflow: auto; 555 | } 556 | 557 | /** 558 | * Don't inherit the `font-weight` (applied by a rule above). 559 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 560 | */ 561 | 562 | optgroup { 563 | font-weight: bold; 564 | } 565 | 566 | /* Tables 567 | ========================================================================== */ 568 | 569 | /** 570 | * Remove most spacing between table cells. 571 | */ 572 | 573 | table { 574 | border-collapse: collapse; 575 | border-spacing: 0; 576 | } 577 | 578 | td, 579 | th { 580 | padding: 0; 581 | } 582 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_object.scss: -------------------------------------------------------------------------------- 1 | .section-specification { 2 | table { 3 | width: auto; 4 | 5 | th { 6 | text-align: left; 7 | } 8 | } 9 | } 10 | 11 | .method-title { 12 | margin-left: -15px; 13 | margin-bottom: 8px; 14 | transition: margin-left .3s ease-out; 15 | 16 | .section-method.hide & { 17 | margin-left: 0; 18 | } 19 | 20 | code { 21 | font-weight: 400; 22 | font-size: .85em; 23 | } 24 | } 25 | 26 | .method-info { 27 | background: $object-background; 28 | border-bottom: 1px solid $object-border; 29 | margin: 0 -25px; 30 | padding: 20px 25px 0 25px; 31 | transition: height .3s ease-out; 32 | 33 | position: relative; 34 | 35 | .pointy-thing { 36 | background: $content-background; 37 | height: 10px; 38 | border-bottom: 1px solid $object-border; 39 | margin: -20px -25px 16px -25px; 40 | 41 | &:before { 42 | display: inline-block; 43 | content: ""; 44 | 45 | background: $object-background; 46 | border: 1px solid $object-border; 47 | border-bottom: 0; 48 | border-right: 0; 49 | 50 | position: absolute; 51 | left: 21px; 52 | top: 3px; 53 | width: 12px; 54 | height: 12px; 55 | transform: rotate(45deg); 56 | } 57 | } 58 | 59 | .method-subsection { 60 | margin-bottom: 15px; 61 | 62 | .argument-name { 63 | width: 1px; 64 | text-align: right; 65 | 66 | code { 67 | color: #808080; 68 | font-style: italic; 69 | font-weight: 400; 70 | } 71 | } 72 | } 73 | } 74 | 75 | .section-method { 76 | &.hide .method-info { 77 | height: 0 !important; 78 | overflow: hidden; 79 | display: none; 80 | } 81 | 82 | &.hide.animating .method-info { 83 | display: block; 84 | } 85 | 86 | &.animating .method-info { 87 | overflow: hidden; 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_print.scss: -------------------------------------------------------------------------------- 1 | @media print { 2 | body { 3 | background: #fff; 4 | padding: 8px; 5 | } 6 | 7 | header { 8 | position: static; 9 | background: #fff; 10 | color: #000; 11 | } 12 | 13 | aside { 14 | display: none; 15 | } 16 | 17 | .container { 18 | max-width: none; 19 | padding: 0; 20 | } 21 | 22 | article { 23 | margin-top: 0; 24 | 25 | #content { 26 | border: 0; 27 | background: #fff; 28 | padding: 15px 0 0 0; 29 | 30 | .title { 31 | margin-top: 0; 32 | padding-top: 0; 33 | } 34 | } 35 | } 36 | 37 | .method-info { 38 | &, & .pointy-thing { 39 | background: #fff; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | $body-font: -apple-system-font, "Helvetica Neue", Helvetica, sans-serif; 2 | $code-font: "Source Code Pro", Monaco, Menlo, Consolas, monospace; 3 | 4 | $body-background: #f2f2f2; 5 | $content-background: #fff; 6 | $content-border: #e9e9e9; 7 | $tint-color: #08c; 8 | $object-background: #f9f9f9; 9 | $object-border: #e9e9e9; 10 | 11 | $mobile-max-width: 650px; 12 | -------------------------------------------------------------------------------- /Templates/html/css/scss/_xcode.scss: -------------------------------------------------------------------------------- 1 | .xcode { 2 | header, aside { 3 | display: none; 4 | } 5 | 6 | .container { 7 | padding: 0; 8 | } 9 | 10 | article { 11 | margin-top: 0; 12 | 13 | #content { 14 | border: 0; 15 | margin: 0; 16 | } 17 | } 18 | 19 | .method-info { 20 | &, .section-method.hide & { 21 | max-height: auto; 22 | overflow: visible; 23 | 24 | &.hiding { 25 | display: block; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Templates/html/css/scss/style.scss: -------------------------------------------------------------------------------- 1 | @import "variables", "normalize", "layout", "index", "object", "print", "xcode"; 2 | -------------------------------------------------------------------------------- /Templates/html/css/style.css: -------------------------------------------------------------------------------- 1 | html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box}.clear{clear:both}.clearfix:before,.container:before,article #content:before,article #content footer:before,.clearfix:after,.container:after,article #content:after,article #content footer:after{clear:both;display:table;content:""}.xcode .hide-in-xcode{display:none}body{font:62.5% -apple-system-font,"Helvetica Neue",Helvetica,sans-serif;background:#f2f2f2}h1,h2,h3{font-weight:300;color:gray}h1{font-size:2em;color:#000}h4{font-size:13px;line-height:1.5;margin:21px 0 0}a{color:#08c;text-decoration:none}pre,code{font-family:Source Code Pro,Monaco,Menlo,Consolas,monospace;word-wrap:break-word}pre>code,.method-declaration code{display:inline-block;font-size:.85em;padding:4px 0 4px 10px;border-left:5px solid rgba(0,155,51,.2)}pre>code:before,.method-declaration code:before{content:"Objective-C";display:block;font:9px/1 -apple-system-font,"Helvetica Neue",Helvetica,sans-serif;color:#009b33;text-transform:uppercase;letter-spacing:2px;padding-bottom:6px}pre>code{font-size:inherit}table,th,td{border:1px solid #e9e9e9}table{width:100%}th,td{padding:7px}th>:first-child,td>:first-child{margin-top:0}th>:last-child,td>:last-child{margin-bottom:0}.container{max-width:980px;padding:0 10px;margin:0 auto}@media(max-width:650px){.container{padding:0}}header{position:fixed;top:0;left:0;width:100%;z-index:2;background:#414141;color:#fff;font-size:1.1em;line-height:25px;letter-spacing:.05em}header #library-title{float:left}header #developer-home{float:right}header h1{font-size:inherit;font-weight:inherit;margin:0}header p{margin:0}header h1,header a{color:inherit}@media(max-width:650px){header{position:absolute}header .container{padding:0 10px}}aside{position:fixed;top:25px;left:0;width:100%;height:25px;z-index:2;font-size:1.1em}aside #header-buttons{background:rgba(255,255,255,.8);margin:0 1px;padding:0;list-style:none;text-align:right;line-height:32px}aside #header-buttons li{display:inline-block;cursor:pointer;padding:0 10px}aside #header-buttons label,aside #header-buttons select{cursor:inherit}aside #header-buttons #on-this-page{position:relative}aside #header-buttons #on-this-page .chevron{display:inline-block;width:14px;height:4px;position:relative}aside #header-buttons #on-this-page .chevron .chevy{background:#878787;height:2px;position:absolute;width:10px}aside #header-buttons #on-this-page .chevron .chevy.chevron-left{left:0;-webkit-transform:rotateZ(45deg) scale(.6);transform:rotateZ(45deg) scale(.6)}aside #header-buttons #on-this-page .chevron .chevy.chevron-right{right:0;-webkit-transform:rotateZ(-45deg) scale(.6);transform:rotateZ(-45deg) scale(.6)}aside #header-buttons #on-this-page #jump-to{opacity:0;filter:alpha(opacity=0);font-size:16px;position:absolute;top:5px;left:0;width:100%;height:100%}article{margin-top:25px}article #content{background:#fff;border:1px solid #e9e9e9;padding:15px 25px 30px;font-size:1.4em;line-height:1.45;position:relative}@media(max-width:650px){article #content{padding:15px 10px 20px}}article #content .navigation-top{position:absolute;top:15px;right:25px}article #content .title{margin:21px 0 0;padding:15px 0}article #content p{color:#414141;margin:0 0 15px}article #content th p:last-child,article #content td p:last-child{margin-bottom:0}article #content main ul{list-style:none;margin-left:24px;margin-bottom:12px;padding:0}article #content main ul li{position:relative;padding-left:1.3em}article #content main ul li:before{content:"\02022";color:#414141;font-size:1.08em;line-height:1;position:absolute;left:0;padding-top:2px}article #content footer .footer-copyright{margin:70px 25px 10px 0}article #content footer p{font-size:.71em;color:#a0a0a0}.index-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media(max-width:650px){.index-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}}.index-container .index-column{-webkit-box-flex:1;-webkit-flex:1 1 33%;-ms-flex:1 1 33%;flex:1 1 33%}.section-specification table{width:auto}.section-specification table th{text-align:left}.method-title{margin-left:-15px;margin-bottom:8px;-webkit-transition:margin-left .3s ease-out;transition:margin-left .3s ease-out}.section-method.hide .method-title{margin-left:0}.method-title code{font-weight:400;font-size:.85em}.method-info{background:#f9f9f9;border-bottom:1px solid #e9e9e9;margin:0 -25px;padding:20px 25px 0;-webkit-transition:height .3s ease-out;transition:height .3s ease-out;position:relative}.method-info .pointy-thing{background:#fff;height:10px;border-bottom:1px solid #e9e9e9;margin:-20px -25px 16px}.method-info .pointy-thing:before{display:inline-block;content:"";background:#f9f9f9;border:1px solid #e9e9e9;border-bottom:0;border-right:0;position:absolute;left:21px;top:3px;width:12px;height:12px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.method-info .method-subsection{margin-bottom:15px}.method-info .method-subsection .argument-name{width:1px;text-align:right}.method-info .method-subsection .argument-name code{color:gray;font-style:italic;font-weight:400}.section-method.hide .method-info{height:0!important;overflow:hidden;display:none}.section-method.hide.animating .method-info{display:block}.section-method.animating .method-info{overflow:hidden}@media print{body{background:#fff;padding:8px}header{position:static;background:#fff;color:#000}aside{display:none}.container{max-width:none;padding:0}article{margin-top:0}article #content{border:0;background:#fff;padding:15px 0 0}article #content .title{margin-top:0;padding-top:0}.method-info,.method-info .pointy-thing{background:#fff}}.xcode header,.xcode aside{display:none}.xcode .container{padding:0}.xcode article{margin-top:0}.xcode article #content{border:0;margin:0}.xcode .section-method.hide .method-info,.xcode .section-method.hide.animating .method-info,.xcode .section-method.animating .method-info{height:auto!important;overflow:visible;display:block}.xcode .section-method.hide .method-title{margin-left:-15px} 2 | /*# sourceMappingURL=to.css.map */ -------------------------------------------------------------------------------- /Templates/html/document-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{page.title}} 7 | 8 | 9 | 10 | {{#strings.appledocData}}{{/strings.appledocData}} 11 | 12 | 13 |
14 |
15 | {{#page}} 16 |

17 | {{projectName}} {{strings.objectPage.libraryTitlePostfix}} 18 |

19 | 20 |

21 | {{projectCompany}} 22 |

23 | {{/page}} 24 |
25 |
26 | 27 | 36 | 37 |
38 |
39 |
40 |
41 |

{{page.title}}

42 | 43 | {{#object.comment}}{{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}{{/object.comment}} 44 | 45 |
46 | 54 |
55 |
56 |
57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 | 65 | Section GBCommentComponentsList 66 | {{#components}}{{>GBCommentComponent}}{{/components}} 67 | EndSection 68 | 69 | Section GBCommentComponent 70 | {{&htmlValue}} 71 | EndSection 72 | 73 | Section Navigation 74 |
  • Home
  • 75 | EndSection 76 | -------------------------------------------------------------------------------- /Templates/html/hierarchy-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{page.title}} 7 | 8 | 9 | 10 | {{#strings.appledocData}}{{/strings.appledocData}} 11 | 12 | 13 |
    14 |
    15 | {{#page}} 16 |

    17 | {{projectName}} {{strings.objectPage.libraryTitlePostfix}} 18 |

    19 | 20 |

    21 | {{projectCompany}} 22 |

    23 | {{/page}} 24 |
    25 |
    26 | 27 | 36 | 37 |
    38 |
    39 |
    40 |
    41 |

    {{page.title}}

    42 | 43 | {{#hasClasses}} 44 |
    45 |

    {{strings.hierarchyPage.classesTitle}}

    46 | {{>Classes}} 47 |
    48 | {{/hasClasses}} 49 | 50 | {{#hasProtocolsOrCategories}} 51 |
    52 | {{#hasProtocols}} 53 |

    {{strings.hierarchyPage.protocolsTitle}}

    54 |
      55 | {{#protocols}} 56 |
    • {{title}}
    • 57 | {{/protocols}} 58 |
    59 | {{/hasProtocols}} 60 | {{#hasConstants}} 61 |

    {{strings.hierarchyPage.constantsTitle}}

    62 |
      63 | {{#constants}} 64 |
    • {{title}}
    • 65 | {{/constants}} 66 |
    67 | {{/hasConstants}} 68 | {{#hasCategories}} 69 |

    {{strings.hierarchyPage.categoriesTitle}}

    70 |
      71 | {{#categories}} 72 |
    • {{title}}
    • 73 | {{/categories}} 74 |
    75 | {{/hasCategories}} 76 |
    77 | {{/hasProtocolsOrCategories}} 78 | 79 |
    80 | 88 |
    89 |
    90 |
    91 |
    92 |
    93 | 94 | 95 | 96 | 97 | 98 | Section Classes 99 | {{#hasClasses}} 100 | 105 | {{/hasClasses}} 106 | EndSection 107 | 108 | Section Navigation 109 |
  • Home
  • 110 | EndSection 111 | -------------------------------------------------------------------------------- /Templates/html/img/button_bar_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Minlison/MLSAppleDoc/d5b63def982ba603825642725d03a0316ea5eaf1/Templates/html/img/button_bar_background.png -------------------------------------------------------------------------------- /Templates/html/img/disclosure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Minlison/MLSAppleDoc/d5b63def982ba603825642725d03a0316ea5eaf1/Templates/html/img/disclosure.png -------------------------------------------------------------------------------- /Templates/html/img/disclosure_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Minlison/MLSAppleDoc/d5b63def982ba603825642725d03a0316ea5eaf1/Templates/html/img/disclosure_open.png -------------------------------------------------------------------------------- /Templates/html/img/library_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Minlison/MLSAppleDoc/d5b63def982ba603825642725d03a0316ea5eaf1/Templates/html/img/library_background.png -------------------------------------------------------------------------------- /Templates/html/img/title_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Minlison/MLSAppleDoc/d5b63def982ba603825642725d03a0316ea5eaf1/Templates/html/img/title_background.png -------------------------------------------------------------------------------- /Templates/html/index-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{page.title}} 7 | 8 | 9 | 10 | {{#strings.appledocData}}{{/strings.appledocData}} 11 | 12 | 13 |
    14 |
    15 | {{#page}} 16 |

    17 | {{projectName}} {{strings.objectPage.libraryTitlePostfix}} 18 |

    19 | 20 |

    21 | {{projectCompany}} 22 |

    23 | {{/page}} 24 |
    25 |
    26 | 27 | 36 | 37 |
    38 |
    39 |
    40 |
    41 |

    {{page.title}}

    42 | 43 | {{#indexDescription}} 44 |
    45 | {{#comment}} 46 | {{#hasLongDescription}} 47 | {{#longDescription}}{{#components}}{{&htmlValue}}{{/components}}{{/longDescription}} 48 | {{/hasLongDescription}} 49 | {{/comment}} 50 |
    51 | {{/indexDescription}} 52 | 53 |
    54 | {{#hasDocs}} 55 |
    56 |

    {{strings.indexPage.docsTitle}}

    57 |
      58 | {{#docs}} 59 |
    • {{title}}
    • 60 | {{/docs}} 61 |
    62 |
    63 | {{/hasDocs}} 64 | 65 | {{#hasClasses}} 66 |
    67 |

    {{strings.indexPage.classesTitle}}

    68 |
      69 | {{#classes}} 70 |
    • {{title}}
    • 71 | {{/classes}} 72 |
    73 |
    74 | {{/hasClasses}} 75 | 76 | {{#hasProtocolsOrCategories}} 77 |
    78 | {{#hasProtocols}} 79 |

    {{strings.indexPage.protocolsTitle}}

    80 |
      81 | {{#protocols}} 82 |
    • {{title}}
    • 83 | {{/protocols}} 84 |
    85 | {{/hasProtocols}} 86 | 87 | {{#hasConstants}} 88 |

    {{strings.indexPage.constantsTitle}}

    89 |
      90 | {{#constants}} 91 |
    • {{title}}
    • 92 | {{/constants}} 93 |
    94 | {{/hasConstants}} 95 | 96 | {{#hasCategories}} 97 |

    {{strings.indexPage.categoriesTitle}}

    98 |
      99 | {{#categories}} 100 |
    • {{title}}
    • 101 | {{/categories}} 102 |
    103 | {{/hasCategories}} 104 |
    105 | {{/hasProtocolsOrCategories}} 106 |
    107 | 108 |
    109 | 117 |
    118 |
    119 |
    120 |
    121 |
    122 | 123 | 124 | 125 | 126 | 127 | Section Navigation 128 |
  • Hierarchy
  • 129 | EndSection 130 | -------------------------------------------------------------------------------- /Templates/html/js/script.js: -------------------------------------------------------------------------------- 1 | function $() { 2 | return document.querySelector.apply(document, arguments); 3 | } 4 | 5 | if (navigator.userAgent.indexOf("Xcode") != -1) { 6 | document.documentElement.classList.add("xcode"); 7 | } 8 | 9 | var jumpTo = $("#jump-to"); 10 | 11 | if (jumpTo) { 12 | jumpTo.addEventListener("change", function(e) { 13 | location.hash = this.options[this.selectedIndex].value; 14 | }); 15 | } 16 | 17 | function hashChanged() { 18 | if (/^#\/\/api\//.test(location.hash)) { 19 | var element = document.querySelector("a[name='" + location.hash.substring(1) + "']"); 20 | 21 | if (!element) { 22 | return; 23 | } 24 | 25 | element = element.parentNode; 26 | 27 | element.classList.remove("hide"); 28 | fixScrollPosition(element); 29 | } 30 | } 31 | 32 | function fixScrollPosition(element) { 33 | var scrollTop = element.offsetTop - 150; 34 | document.documentElement.scrollTop = scrollTop; 35 | document.body.scrollTop = scrollTop; 36 | } 37 | 38 | [].forEach.call(document.querySelectorAll(".section-method"), function(element) { 39 | element.classList.add("hide"); 40 | 41 | element.querySelector(".method-title a").addEventListener("click", function(e) { 42 | var info = element.querySelector(".method-info"), 43 | infoContainer = element.querySelector(".method-info-container"); 44 | 45 | element.classList.add("animating"); 46 | info.style.height = (infoContainer.clientHeight + 40) + "px"; 47 | fixScrollPosition(element); 48 | element.classList.toggle("hide"); 49 | 50 | setTimeout(function() { 51 | element.classList.remove("animating"); 52 | info.style.height = "auto"; 53 | }, 300); 54 | }); 55 | }); 56 | 57 | window.addEventListener("hashchange", hashChanged); 58 | hashChanged(); 59 | -------------------------------------------------------------------------------- /Templates/html/object-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{page.title}} 7 | 8 | 9 | 10 | {{#strings.appledocData}}{{/strings.appledocData}} 11 | 12 | 13 |
    14 |
    15 | {{#page}} 16 |

    17 | {{projectName}} {{strings.objectPage.libraryTitlePostfix}} 18 |

    19 | 20 |

    21 | {{projectCompany}} 22 |

    23 | {{/page}} 24 |
    25 |
    26 | 27 | 49 | 50 |
    51 |
    52 |
    53 |
    54 |

    {{page.title}}

    55 | 56 | {{#page.specifications}} 57 | {{#used}}
    {{/used}} 58 | {{#values}}{{>ObjectSpecification}}{{/values}} 59 | {{#used}}
    {{/used}} 60 | {{/page.specifications}} 61 | 62 | {{#object.comment}} 63 | {{#hasLongDescription}} 64 |
    65 | 66 |

    {{strings.objectOverview.title}}

    67 | {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}} 68 |
    69 | {{/hasLongDescription}} 70 | {{/object.comment}} 71 | 72 | {{#object.methods}} 73 | {{#hasSections}} 74 |
    75 | 76 | {{#sections}} 77 | 78 | {{#sectionName}}{{/sectionName}} 79 | {{>TaskTitle}} 80 |
    81 | {{#methods}}{{>Method}}{{/methods}} 82 |
    83 | {{/sections}} 84 |
    85 | {{/hasSections}} 86 | {{/object.methods}} 87 | 88 | {{#typedefEnum}} 89 |

    {{nameOfEnum}}

    90 | {{#comment}} 91 | {{#hasLongDescription}} 92 |
    93 | {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}} 94 |
    95 | {{/hasLongDescription}} 96 | {{/comment}} 97 |
    98 | 99 | {{#constants}} 100 |

    Definition

    101 | typedef {{enumStyle}}({{enumPrimitive}}, {{nameOfEnum}} ) {
    102 | {{#constants}} 103 |    {{name}}{{#hasAssignedValue}} = {{assignedValue}}{{/hasAssignedValue}},
    104 | {{/constants}} 105 | };
    106 | {{/constants}} 107 |
    108 | {{#constants}} 109 |
    110 |

    Constants

    111 |
    112 | {{#constants}} 113 | {{>Constant}} 114 | {{/constants}} 115 |
    116 |
    117 | {{/constants}} 118 | 119 | {{#comment}} 120 | {{#hasAvailability}} 121 |
    122 |

    {{strings.objectMethods.availability}}

    123 | {{#availability}}{{>GBCommentComponentsList}}{{/availability}} 124 |
    125 | {{/hasAvailability}} 126 | 127 | {{#hasRelatedItems}} 128 |
    129 |

    {{strings.objectMethods.seeAlsoTitle}}

    130 |
      131 | {{#relatedItems.components}} 132 |
    • {{>GBCommentComponent}}
    • 133 | {{/relatedItems.components}} 134 |
    135 |
    136 | {{/hasRelatedItems}} 137 | 138 | {{#prefferedSourceInfo}} 139 |
    140 |

    {{strings.objectMethods.declaredInTitle}}

    141 |

    {{filename}}

    142 |
    143 | {{/prefferedSourceInfo}} 144 | {{/comment}} 145 | {{/typedefEnum}} 146 |
    147 | 148 |
    149 | 157 |
    158 |
    159 |
    160 |
    161 | 162 | 163 | 164 | 165 | 166 | 167 | Section Method 168 |
    169 | 170 |

    {{>TaskMethod}}

    171 | 172 |
    173 |
    174 | 175 |
    176 | {{#comment}} 177 | {{#hasShortDescription}} 178 |
    179 | {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}} 180 |
    181 | {{/hasShortDescription}} 182 | {{/comment}} 183 | 184 |
    {{>MethodDeclaration}}
    185 | 186 | {{#comment}} 187 | {{#hasMethodParameters}} 188 |
    189 |

    {{strings.objectMethods.parametersTitle}}

    190 | 191 | {{#methodParameters}} 192 | 193 | 194 | 195 | 196 | {{/methodParameters}} 197 |
    {{argumentName}}{{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}}
    198 |
    199 | {{/hasMethodParameters}} 200 | 201 | {{#hasMethodResult}} 202 |
    203 |

    {{strings.objectMethods.resultTitle}}

    204 | {{#methodResult}}{{>GBCommentComponentsList}}{{/methodResult}} 205 |
    206 | {{/hasMethodResult}} 207 | 208 | {{#hasAvailability}} 209 |
    210 |

    {{strings.objectMethods.availability}}

    211 | {{#availability}}{{>GBCommentComponentsList}}{{/availability}} 212 |
    213 | {{/hasAvailability}} 214 | 215 | {{#hasLongDescription}} 216 |
    217 |

    {{strings.objectMethods.discussionTitle}}

    218 | {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}} 219 |
    220 | {{/hasLongDescription}} 221 | 222 | {{#hasMethodExceptions}} 223 |
    224 |

    {{strings.objectMethods.exceptionsTitle}}

    225 | 226 | {{#methodExceptions}} 227 | 228 | 229 | 230 | 231 | {{/methodExceptions}} 232 |
    {{argumentName}}{{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}}
    233 |
    234 | {{/hasMethodExceptions}} 235 | 236 | {{#hasRelatedItems}} 237 |
    238 |

    {{strings.objectMethods.seeAlsoTitle}}

    239 |
      240 | {{#relatedItems.components}} 241 |
    • {{>GBCommentComponent}}
    • 242 | {{/relatedItems.components}} 243 |
    244 |
    245 | {{/hasRelatedItems}} 246 | 247 | {{#prefferedSourceInfo}} 248 |
    249 |

    {{strings.objectMethods.declaredInTitle}}

    250 |

    {{filename}}

    251 |
    252 | {{/prefferedSourceInfo}} 253 | {{/comment}} 254 |
    255 |
    256 |
    257 | EndSection 258 | 259 | Section MethodDeclaration 260 | {{#formattedComponents}}{{#emphasized}}{{/emphasized}}{{#href}}{{/href}}{{value}}{{#href}}{{/href}}{{#emphasized}}{{/emphasized}}{{/formattedComponents}} 261 | EndSection 262 | 263 | 264 | Section TaskTitle 265 | {{#hasMultipleSections}}

    {{#sectionName}}{{.}}{{/sectionName}}{{^sectionName}}{{strings.objectTasks.otherMethodsSectionName}}{{/sectionName}}

    {{/hasMultipleSections}} 266 | {{^hasMultipleSections}}{{#sectionName}}

    {{.}}

    {{/sectionName}}{{/hasMultipleSections}} 267 | EndSection 268 | 269 | Section TaskMethod 270 | {{>TaskSelector}} 271 | {{#isRequired}}{{strings.objectTasks.requiredMethod}}{{/isRequired}} 272 | EndSection 273 | 274 | Section TaskSelector 275 | {{#isInstanceMethod}}–{{/isInstanceMethod}}{{#isClassMethod}}+{{/isClassMethod}}{{#isProperty}} {{/isProperty}} {{methodSelector}} 276 | EndSection 277 | 278 | 279 | Section GBCommentComponentsList 280 | {{#components}}{{>GBCommentComponent}}{{/components}} 281 | EndSection 282 | 283 | Section Constant 284 |
    {{name}}
    285 |
    286 | {{#comment}} 287 | {{#hasShortDescription}} 288 | {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}} 289 | {{/hasShortDescription}} 290 | 291 | {{#hasAvailability}} 292 |

    Available in {{#availability}}{{#components}}{{stringValue}}{{/components}}{{/availability}}

    293 | {{/hasAvailability}} 294 | 295 | {{/comment}} 296 | {{#prefferedSourceInfo}} 297 |

    298 | {{strings.objectMethods.declaredInTitle}} {{filename}}. 299 |

    300 | {{/prefferedSourceInfo}} 301 |
    302 | EndSection 303 | 304 | Section GBCommentComponent 305 | {{&htmlValue}} 306 | EndSection 307 | 308 | Section ObjectSpecification 309 | 310 | {{title}} 311 | {{#values}}{{#href}}{{/href}}{{string}}{{#href}}{{/href}}{{&delimiter}}{{/values}} 312 | 313 | EndSection 314 | 315 | 316 | Section Navigation 317 |
  • Index
  • 318 |
  • Hierarchy
  • 319 | EndSection 320 | 321 | Section JumpTo 322 | 360 | EndSection 361 | 362 | Section TableOfContents 363 | {{#object.comment}} 364 |
  • {{strings.objectOverview.title}}
  • 365 | {{/object.comment}} 366 | 367 | {{#object.methods}} 368 | {{#hasSections}} 369 |
  • {{strings.objectTasks.title}}
  • 374 | {{/hasSections}} 375 | {{/object.methods}} 376 | 377 | {{#object.methods}} 378 | {{#hasProperties}} 379 |
  • {{strings.objectMethods.propertiesTitle}}
  • 384 | {{/hasProperties}} 385 | 386 | {{#hasClassMethods}} 387 |
  • {{strings.objectMethods.classMethodsTitle}}
  • 392 | {{/hasClassMethods}} 393 | 394 | {{#hasInstanceMethods}} 395 |
  • {{strings.objectMethods.instanceMethodsTitle}}
  • 400 | {{/hasInstanceMethods}} 401 | {{/object.methods}} 402 | EndSection 403 | -------------------------------------------------------------------------------- /Templates/index_temp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | MinLison 模块化中心文档 7 | 8 | 9 | 10 | 12 | 13 |
    14 |
    15 |

    16 | MinLison 模块化 17 |

    18 | 19 |

    20 | MinLison 21 |

    22 |
    23 |
    24 | 25 |
    26 |
    27 |
    28 |
    29 |

    MinLison 模块化中心

    30 | {{Moudles}} 31 |
    32 | 35 |
    36 |
    37 |
    38 |
    39 |
    40 | 41 | 101 | 102 | -------------------------------------------------------------------------------- /Templates/markdown/markdown-template.md: -------------------------------------------------------------------------------- 1 | 2 | # {{page.title}} 3 | {{#page.specifications}} 4 | {{#values}}{{>ObjectSpecification}}{{/values}} 5 | {{/page.specifications}} 6 | 7 | {{#object.comment}}{{#hasLongDescription}} 8 | ## {{strings.objectOverview.title}} 9 | {{#longDescription}} 10 | {{>GBCommentComponentsList}} 11 | {{/longDescription}} 12 | {{/hasLongDescription}} 13 | {{/object.comment}} 14 | 15 | {{#object.methods}} 16 | {{#hasSections}} 17 | ## {{strings.objectTasks.title}} 18 | {{#sections}} 19 | {{>TaskTitle}} 20 | {{#methods}} 21 | {{>TaskMethod}} 22 | {{/methods}} 23 | {{/sections}} 24 | {{/hasSections}} 25 | {{/object.methods}} 26 | 27 | {{#object.methods}} 28 | {{#hasProperties}} 29 | ## {{strings.objectMethods.propertiesTitle}} 30 | {{#properties}} 31 | {{>Method}} 32 | {{/properties}} 33 | {{/hasProperties}} 34 | {{#hasClassMethods}} 35 | 36 | ## {{strings.objectMethods.classMethodsTitle}} 37 | {{#classMethods}} 38 | {{>Method}} 39 | {{/classMethods}} 40 | {{/hasClassMethods}} 41 | {{#hasInstanceMethods}} 42 | 43 | ## {{strings.objectMethods.instanceMethodsTitle}} 44 | {{#instanceMethods}} 45 | {{>Method}} 46 | {{/instanceMethods}} 47 | {{/hasInstanceMethods}} 48 | {{/object.methods}} 49 | 50 | {{#typedefEnum}} 51 | ### {{nameOfEnum}} 52 | {{#comment}} 53 | {{#hasLongDescription}} 54 | {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}} 55 | {{/hasLongDescription}} 56 | {{/comment}} 57 | {{#constants}} 58 | #### Definition 59 | typedef {{enumStyle}}({{enumPrimitive}}, {{nameOfEnum}} ) { 60 | {{#constants}} 61 | {{name}}{{#hasAssignedValue}} = {{assignedValue}}{{/hasAssignedValue}}, 62 | {{/constants}} 63 | }; 64 | {{/constants}} 65 | {{#constants}} 66 | #### Constants 67 | {{#constants}} 68 | {{>Constant}} 69 | {{/constants}} 70 | {{/constants}} 71 | {{#comment}} 72 | {{#hasAvailability}} 73 | #### {{strings.objectMethods.availability}} 74 | {{#availability}}{{>GBCommentComponentsList}}{{/availability}} 75 | {{/hasAvailability}} 76 | {{#hasRelatedItems}} 77 | #### {{strings.objectMethods.seeAlsoTitle}} 78 | {{#relatedItems.components}} 79 | * `{{>GBCommentComponent}}` 80 | {{/relatedItems.components}} 81 | {{/hasRelatedItems}} 82 | {{#prefferedSourceInfo}} 83 | #### {{strings.objectMethods.declaredInTitle}} 84 | `{{filename}}` 85 | {{/prefferedSourceInfo}} 86 | {{/comment}} 87 | {{/typedefEnum}} 88 | 89 | {{#typedefBlock}} 90 | 91 | ## {{strings.objectMethods.blockDefTitle}} 92 | {{>BlocksDefList}} 93 | {{/typedefBlock}} 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | Section ObjectSpecification 102 |   **{{title}}** {{#values}}{{#href}}{{/href}}{{string}}{{#href}}{{/href}}{{&delimiter}} 103 | {{/values}} 104 | EndSection 105 | 106 | Section GBCommentComponentsList 107 | {{#components}}{{>GBCommentComponent}}{{/components}} 108 | EndSection 109 | 110 | Section GBCommentComponent 111 | {{&htmlValue}} 112 | EndSection 113 | 114 | Section TaskTitle 115 | {{#hasMultipleSections}} 116 | ### {{#sectionName}}{{.}}{{/sectionName}}{{^sectionName}}{{strings.objectTasks.otherMethodsSectionName}}{{/sectionName}} 117 | {{/hasMultipleSections}} 118 | {{^hasMultipleSections}} 119 | ### {{#sectionName}}{{.}}{{/sectionName}} 120 | {{/hasMultipleSections}} 121 | EndSection 122 | 123 | Section TaskMethod 124 | [{{>TaskSelector}}]({{htmlLocalReference}}) {{#isProperty}}*{{strings.objectTasks.property}}*{{/isProperty}} {{#isRequired}}*{{strings.objectTasks.requiredMethod}}*{{/isRequired}} 125 | EndSection 126 | 127 | Section TaskSelector 128 | {{#isInstanceMethod}}– {{/isInstanceMethod}}{{#isClassMethod}}+ {{/isClassMethod}}{{#isProperty}}  {{/isProperty}}{{methodSelector}} 129 | EndSection 130 | 131 | 132 | Section Method 133 | 134 | ### {{methodSelector}} 135 | {{#comment}} 136 | {{#hasShortDescription}} 137 | {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}} 138 | {{/hasShortDescription}} 139 | {{/comment}} 140 | `{{>MethodDeclaration}}` 141 | {{#comment}} 142 | {{#hasMethodParameters}} 143 | #### {{strings.objectMethods.parametersTitle}} 144 | {{#methodParameters}} 145 | *{{argumentName}}* 146 |    {{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}} 147 | {{/methodParameters}} 148 | {{/hasMethodParameters}} 149 | {{#hasMethodResult}} 150 | #### {{strings.objectMethods.resultTitle}} 151 | {{#methodResult}}{{>GBCommentComponentsList}}{{/methodResult}} 152 | {{/hasMethodResult}} 153 | {{#hasAvailability}} 154 | #### {{strings.objectMethods.availability}} 155 | {{#availability}}{{>GBCommentComponentsList}}{{/availability}} 156 | {{/hasAvailability}} 157 | {{#hasLongDescription}} 158 | #### {{strings.objectMethods.discussionTitle}} 159 | {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}} 160 | {{/hasLongDescription}} 161 | {{#hasMethodExceptions}} 162 | #### {{strings.objectMethods.exceptionsTitle}} 163 | {{#methodExceptions}} 164 | *{{argumentName}}* 165 |    {{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}} 166 | {{/methodExceptions}} 167 | {{/hasMethodExceptions}} 168 | {{#hasRelatedItems}} 169 | #### {{strings.objectMethods.seeAlsoTitle}} 170 | {{#relatedItems.components}} 171 | * `{{>GBCommentComponent}}` 172 | {{/relatedItems.components}} 173 | {{/hasRelatedItems}} 174 | {{#prefferedSourceInfo}} 175 | #### {{strings.objectMethods.declaredInTitle}} 176 | * `{{filename}}` 177 | {{/prefferedSourceInfo}} 178 | {{/comment}} 179 | EndSection 180 | 181 | Section MethodDeclaration 182 | {{#formattedComponents}}{{#emphasized}}*{{/emphasized}}{{#href}}{{/href}}{{value}}{{#href}}{{/href}}{{#emphasized}}*{{/emphasized}}{{/formattedComponents}} 183 | EndSection 184 | 185 | 186 | Section Constant 187 | {{name}} 188 | {{#comment}} 189 | {{#hasShortDescription}} 190 | {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}} 191 | {{/hasShortDescription}} 192 | {{#hasAvailability}} 193 | Available in {{#availability}}{{#components}}{{stringValue}}{{/components}}{{/availability}} 194 | {{/hasAvailability}} 195 | {{/comment}} 196 | {{#prefferedSourceInfo}} 197 |    {{strings.objectMethods.declaredInTitle}} `{{filename}}`. 198 | {{/prefferedSourceInfo}} 199 | EndSection 200 | 201 | 202 | 203 | 204 | Section BlocksDefList 205 | ### {{nameOfBlock}} 206 | {{#comment}} 207 | {{#hasShortDescription}} 208 | {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}} 209 | {{/hasShortDescription}} 210 | {{/comment}} 211 | typedef {{returnType}} (^{{nameOfBlock}}) ({{&htmlParameterList}}) 212 | {{#comment}} 213 | {{#hasLongDescription}} 214 | #### {{strings.objectMethods.discussionTitle}} 215 | {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}} 216 | {{/hasLongDescription}} 217 | {{/comment}} 218 | {{#comment}} 219 | {{#hasAvailability}} 220 | #### {{strings.objectMethods.availability}} 221 | {{#availability}}{{>GBCommentComponentsList}}{{/availability}} 222 | {{/hasAvailability}} 223 | {{#hasRelatedItems}} 224 | #### {{strings.objectMethods.seeAlsoTitle}} 225 | {{#relatedItems.components}} 226 | * {{>GBCommentComponent}} 227 | {{/relatedItems.components}} 228 | {{/hasRelatedItems}} 229 | {{#prefferedSourceInfo}} 230 | #### {{strings.objectMethods.declaredInTitle}} 231 | {{filename}} 232 | {{/prefferedSourceInfo}} 233 | {{/comment}} 234 | EndSection 235 | -------------------------------------------------------------------------------- /Templates/publish/xml-template.xml: -------------------------------------------------------------------------------- 1 | 2 | ${DOCSET_FEED_VERSION} 3 | ${DOCSET_PACKAGE_URL} 4 | -------------------------------------------------------------------------------- /appledoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Minlison/MLSAppleDoc/d5b63def982ba603825642725d03a0316ea5eaf1/appledoc -------------------------------------------------------------------------------- /appledoc.sh: -------------------------------------------------------------------------------- 1 | #mkdir ./docs 2 | # ./appledoc ./ >> ./appdoclog.txt 3 | 4 | pushd `dirname $0` > /dev/null 5 | WORKING_PATH=`pwd` 6 | PROJECT_PATH=$1 7 | 8 | popd > /dev/null 9 | declare -a DOC_THML_FILE_INDEXS 10 | declare -a DOC_THML_MOUDLE_NAME_INDEXS 11 | APPDOC_INDEX=0 12 | DOC_HTML_INDEX_RELEATE_PATH=/docs/html/index.html 13 | for file in `find ${PROJECT_PATH} -name AppledocSettings.plist`; do 14 | DOC_PATH=${file%/*} 15 | DOC_FILE_PATH=${DOC_PATH}/docs 16 | 17 | if [[ ! -d $DOC_FILE_PATH ]]; then 18 | mkdir $DOC_FILE_PATH 19 | fi 20 | if [[ $DOC_PATH != $WORKING_PATH ]] || [[ ! -f $DOC_PATH/appledoc ]]; then 21 | cp ./appledoc ${DOC_PATH}/appledoc 22 | rsync -avr --copy-links --no-relative ./Templates $DOC_PATH 23 | cd ${DOC_PATH} 24 | ./appledoc ./ >> ./appledoc.log 25 | HTML_INDEX_FILE=${DOC_PATH}${DOC_HTML_INDEX_RELEATE_PATH} 26 | if [[ -f ${HTML_INDEX_FILE} ]]; then 27 | DOC_INDEX_PATH_TMP=${DOC_PATH/${WORKING_PATH}/.}${DOC_HTML_INDEX_RELEATE_PATH} 28 | DOC_THML_FILE_INDEXS[APPDOC_INDEX]=$DOC_INDEX_PATH_TMP 29 | TEMP=${DOC_INDEX_PATH_TMP/${DOC_HTML_INDEX_RELEATE_PATH}/""} 30 | TEMP=${TEMP##*/} 31 | DOC_THML_MOUDLE_NAME_INDEXS[APPDOC_INDEX]=$TEMP 32 | let APPDOC_INDEX++ 33 | fi 34 | rm -r -f ${DOC_PATH}/Templates 35 | rm ${DOC_PATH}/appledoc 36 | rm ${DOC_PATH}/appledoc.log 37 | cd ${WORKING_PATH} 38 | else 39 | ./appledoc ./ >> ./appledoc.log 40 | DOC_INDEX_PATH_TMP=${DOC_PATH/${WORKING_PATH}/.}${DOC_HTML_INDEX_RELEATE_PATH} 41 | DOC_THML_FILE_INDEXS[APPDOC_INDEX]=$DOC_INDEX_PATH_TMP 42 | TEMP=${WORKING_PATH##*/} 43 | DOC_THML_MOUDLE_NAME_INDEXS[APPDOC_INDEX]=${TEMP} 44 | let APPDOC_INDEX++ 45 | fi 46 | done 47 | # 网络 48 | # 49 | if [[ -f "${WORKING_PATH}/index.html" ]]; then 50 | rm ${WORKING_PATH}/index.html 51 | fi 52 | INDEX_HTML_A_STR="" 53 | INDEX_HTML_TEMP_FILE=`cat ${WORKING_PATH}/Templates/index_temp.html` 54 | INDEX_HTML_REPLACE_STR="" 55 | APPDOC_INDEX=0 56 | for MODULE_INDEX in ${DOC_THML_FILE_INDEXS[*]}; do 57 | TMP_HTML_A_STR=${INDEX_HTML_A_STR/PATH/\"${MODULE_INDEX}\"} 58 | TMP_HTML_A_STR=${TMP_HTML_A_STR/NAME/${DOC_THML_MOUDLE_NAME_INDEXS[APPDOC_INDEX]}} 59 | INDEX_HTML_REPLACE_STR=$INDEX_HTML_REPLACE_STR""$TMP_HTML_A_STR 60 | let APPDOC_INDEX++ 61 | done 62 | INDEX_HTML_TEMP_FILE=${INDEX_HTML_TEMP_FILE/"{{Moudles}}"/${INDEX_HTML_REPLACE_STR}} 63 | 64 | echo $INDEX_HTML_TEMP_FILE > ${WORKING_PATH}/index.html 65 | 66 | unset DOC_THML_MOUDLE_NAME_INDEXS 67 | unset DOC_THML_FILE_INDEXS 68 | 69 | echo "-------Success---------" 70 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | MinLison 模块化中心文档

    MinLison 模块化中心

    2 | --------------------------------------------------------------------------------