jazzy 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +59 -0
- data/CONTRIBUTING.md +61 -0
- data/Gemfile.lock +1 -1
- data/README.md +60 -39
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/SourceKittenFramework +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Commandant.framework/Commandant +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Commandant.framework/Versions/A/Commandant +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Commandant.framework/Versions/A/Resources/Info.plist +3 -3
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Result.framework/Result +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Result.framework/Versions/A/Resources/Info.plist +3 -3
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Result.framework/Versions/A/Result +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/Versions/A/Resources/Info.plist +3 -3
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SwiftXPC.framework/Versions/A/Resources/Info.plist +3 -3
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Resources/Info.plist +4 -4
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/SourceKittenFramework +0 -0
- data/lib/jazzy/SourceKitten/bin/sourcekitten +0 -0
- data/lib/jazzy/assets/css/highlight.css.scss +2 -2
- data/lib/jazzy/assets/css/jazzy.css.scss +24 -5
- data/lib/jazzy/assets/js/jazzy.js +10 -1
- data/lib/jazzy/config.rb +24 -27
- data/lib/jazzy/doc_builder.rb +2 -1
- data/lib/jazzy/gem_version.rb +1 -1
- data/lib/jazzy/readme_generator.rb +1 -1
- data/lib/jazzy/source_declaration.rb +34 -1
- data/lib/jazzy/source_declaration/type.rb +12 -0
- data/lib/jazzy/source_module.rb +2 -0
- data/lib/jazzy/sourcekitten.rb +85 -40
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5219afff012deb0c2b04b838d43e40d5a4c9d9a
|
4
|
+
data.tar.gz: 78e198b143d5143e0d9b472954d11281a80979b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a406f1e5e0a36b588128aa509af94f85e43e7c5fbc5f2d1d5eb4014fbc2091fecd20cde0c14f56f9c89a61b0a9df400c24d49f5c882bc67a4c1713b7a9c6042f
|
7
|
+
data.tar.gz: 04e94c12df882ff15e43ae1cc154af5bc685646a91d6a8752f626a18a1c7816f897052dd75d96f1faf5c9518bdb7755622a521c269d44b8bbc60b209fd4d2f21
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,62 @@
|
|
1
|
+
## 0.4.1
|
2
|
+
|
3
|
+
*Note: this is the last official release of jazzy supporting Swift 1.x.*
|
4
|
+
|
5
|
+
##### Breaking
|
6
|
+
|
7
|
+
* None.
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* Support "wall of asterisk" documentation comments.
|
12
|
+
[Jeff Verkoeyen](https://github.com/jverkoey)
|
13
|
+
[#347](https://github.com/realm/jazzy/issues/347)
|
14
|
+
|
15
|
+
* Expanding a token no longer causes the document to 'jump' to the hash.
|
16
|
+
[Jeff Verkoeyen](https://github.com/jverkoey)
|
17
|
+
[#352](https://github.com/realm/jazzy/issues/352)
|
18
|
+
|
19
|
+
* Autolinking improvements:
|
20
|
+
- Autolinks only match `` `ThingsInBackticks` ``, and must match the entire
|
21
|
+
string. This prevents spurious matching in prose and sample code.
|
22
|
+
- Autolinks supports siblings, ancestors, top-level elements, and
|
23
|
+
dot-separated chains starting with any of the above: `someProperty`,
|
24
|
+
`SomeType.NestedType.someMethod(_:)`.
|
25
|
+
- New `...` wildcard prevents you from having to list all method parameters:
|
26
|
+
`someMethod(...)`
|
27
|
+
|
28
|
+
[pcantrell](https://github.com/pcantrell)
|
29
|
+
[#327](https://github.com/realm/jazzy/issues/327)
|
30
|
+
[#329](https://github.com/realm/jazzy/issues/329)
|
31
|
+
[#359](https://github.com/realm/jazzy/issues/359)
|
32
|
+
|
33
|
+
* Miscellaneous minor font size, weight, and color adjustments.
|
34
|
+
[Jeff Verkoeyen](https://github.com/jverkoey)
|
35
|
+
|
36
|
+
* In-page anchors now appear below the header.
|
37
|
+
[Jeff Verkoeyen](https://github.com/jverkoey)
|
38
|
+
|
39
|
+
##### Bug Fixes
|
40
|
+
|
41
|
+
* Fix an out-of-bounds exception when generating pragma marks.
|
42
|
+
[JP Simard](https://github.com/jpsim)
|
43
|
+
[#370](https://github.com/realm/jazzy/issues/370)
|
44
|
+
|
45
|
+
* Add support for C/C++ struct, field & ivar types.
|
46
|
+
[JP Simard](https://github.com/jpsim)
|
47
|
+
[#374](https://github.com/realm/jazzy/issues/374)
|
48
|
+
[#387](https://github.com/realm/jazzy/issues/387)
|
49
|
+
|
50
|
+
* Links to source files on GitHub are no longer broken when `source_directory`
|
51
|
+
does not point to the current working directory.
|
52
|
+
[pcantrell](https://github.com/pcantrell)
|
53
|
+
|
54
|
+
* When `excluded_files` is specified in a config file, it is now resolved
|
55
|
+
relative to the file (like other options) instead of relative to the working
|
56
|
+
directory.
|
57
|
+
[pcantrell](https://github.com/pcantrell)
|
58
|
+
|
59
|
+
|
1
60
|
## 0.4.0
|
2
61
|
|
3
62
|
##### Breaking
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
## Tracking changes
|
2
|
+
|
3
|
+
All changes should be made via pull requests on GitHub.
|
4
|
+
|
5
|
+
When issuing a pull request, please add a summary of your changes to
|
6
|
+
the `CHANGELOG.md` file.
|
7
|
+
|
8
|
+
We follow the same syntax as CocoaPods' CHANGELOG.md:
|
9
|
+
|
10
|
+
1. One Markdown unnumbered list item desribing the change.
|
11
|
+
2. 2 trailing spaces on the last line describing the change.
|
12
|
+
3. A list of Markdown hyperlinks to the contributors to the change. One entry
|
13
|
+
per line. Usually just one.
|
14
|
+
4. A list of Markdown hyperlinks to the issues the change addresses. One entry
|
15
|
+
per line. Usually just one. Don't link to PRs here.
|
16
|
+
5. All CHANGELOG.md content is hard-wrapped at 80 characters.
|
17
|
+
|
18
|
+
## Updating the integration specs
|
19
|
+
|
20
|
+
Jazzy heavily relies on integration tests, but since they're considerably large
|
21
|
+
and noisy, we keep them in a separate repo
|
22
|
+
([realm/jazzy-integration-specs](https://github.com/realm/jazzy-integration-specs)).
|
23
|
+
|
24
|
+
If you're making a PR towards jazzy that affects the generated docs, please
|
25
|
+
update the integration specs using the following process:
|
26
|
+
|
27
|
+
```shell
|
28
|
+
git checkout master
|
29
|
+
git pull
|
30
|
+
git checkout -
|
31
|
+
git rebase master
|
32
|
+
bundle install
|
33
|
+
bundle exec rake rebuild_integration_fixtures
|
34
|
+
cd spec/integration_specs
|
35
|
+
git checkout -b $jazzy_branch_name
|
36
|
+
git commit -a -m "update for $jazzy_branch_name"
|
37
|
+
git push
|
38
|
+
cd ../../
|
39
|
+
git commit -a -m "update integration specs"
|
40
|
+
git push
|
41
|
+
```
|
42
|
+
|
43
|
+
You'll need push access to the integration specs repo to do this. You can
|
44
|
+
request access from one of the maintainers when filing your PR.
|
45
|
+
|
46
|
+
## Making changes to SourceKitten
|
47
|
+
|
48
|
+
When changes are landed in the https://github.com/jpsim/SourceKitten repo the
|
49
|
+
SourceKitten framework located in jazzy must be updated.
|
50
|
+
|
51
|
+
The following may be executed from your `jazzy/` directory.
|
52
|
+
|
53
|
+
```
|
54
|
+
cd SourceKitten
|
55
|
+
git checkout master
|
56
|
+
git pull
|
57
|
+
cd ..
|
58
|
+
rake sourcekitten
|
59
|
+
git add .
|
60
|
+
git commit -m "..."
|
61
|
+
```
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -4,45 +4,55 @@
|
|
4
4
|
|
5
5
|
![Test Status](https://travis-ci.org/realm/jazzy.svg?branch=master)
|
6
6
|
|
7
|
-
jazzy is a command-line utility that generates documentation for
|
8
|
-
Objective-C projects.
|
7
|
+
*jazzy is a command-line utility that generates documentation for Swift or Objective-C*
|
9
8
|
|
10
|
-
|
9
|
+
## About
|
10
|
+
|
11
|
+
Both Swift and Objective-C projects are supported.
|
11
12
|
|
12
13
|
*Objective-C support was recently added, so please report any issues you find.*
|
13
14
|
|
14
|
-
Instead of parsing your source files, jazzy hooks into [Clang][clang] and
|
15
|
+
Instead of parsing your source files, `jazzy` hooks into [Clang][clang] and
|
15
16
|
[SourceKit][sourcekit] to use the [AST][ast] representation of your code and
|
16
|
-
its comments for more accurate results.
|
17
|
-
|
18
|
-
jazzy’s output matches the look & feel of Apple’s official reference
|
19
|
-
documentation, post WWDC 2014.
|
17
|
+
its comments for more accurate results. The output matches the look and feel
|
18
|
+
of Apple’s official reference documentation, post WWDC 2014.
|
20
19
|
|
21
20
|
![Screenshot](screenshot.jpg)
|
22
21
|
|
23
|
-
|
22
|
+
## Requirements
|
24
23
|
|
25
|
-
* A version of [Xcode][xcode] (6.x or 7.x) capable of building the
|
26
|
-
|
24
|
+
* A version of [Xcode][xcode] (6.x or 7.x) capable of building the project
|
25
|
+
you wish to document. It must be installed in a location indexed by Spotlight.
|
27
26
|
|
28
|
-
|
27
|
+
## Installation
|
29
28
|
|
30
|
-
|
29
|
+
```shell
|
30
|
+
[sudo] gem install jazzy
|
31
|
+
```
|
31
32
|
|
32
|
-
|
33
|
+
## Usage
|
33
34
|
|
34
|
-
Run `jazzy` from your command line. Run `jazzy -h` for a list of additional
|
35
|
-
options.
|
35
|
+
Run `jazzy` from your command line. Run `jazzy -h` for a list of additional options.
|
36
36
|
|
37
37
|
You can set options for your project’s documentation in a configuration file,
|
38
38
|
`.jazzy.yaml` by default. For a detailed explanation and an exhaustive list of
|
39
39
|
all available options, run `jazzy --help config`.
|
40
40
|
|
41
|
-
|
41
|
+
### Supported keywords
|
42
|
+
|
43
|
+
Swift header documentation is written in markdown and supports a number of special keywords.
|
44
|
+
For a complete list and examples, see Erica Sadun's post on [*Swift header documentation in Xcode 7*](http://ericasadun.com/2015/06/14/swift-header-documentation-in-xcode-7/).
|
45
|
+
|
46
|
+
For Objective-C documentation the same keywords are supported, but note that the format
|
47
|
+
is slightly different. In Swift you would write `- returns:`, but in Objective-C you write `@return`. See Apple's [*HeaderDoc User Guide*](https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/HeaderDoc/tags/tags.html) for more details. **Note: `jazzy` currently does not support _all_ Objective-C keywords listed in this document.**
|
48
|
+
|
49
|
+
### Swift
|
42
50
|
|
43
51
|
Swift documentation is generated by default.
|
44
52
|
|
45
|
-
|
53
|
+
##### Example
|
54
|
+
|
55
|
+
This is how Realm Swift docs are generated:
|
46
56
|
|
47
57
|
```shell
|
48
58
|
jazzy \
|
@@ -59,12 +69,17 @@ jazzy \
|
|
59
69
|
--template-directory docs/templates
|
60
70
|
```
|
61
71
|
|
62
|
-
|
72
|
+
### Objective-C
|
73
|
+
|
74
|
+
To generate documentation for Objective-C headers,
|
75
|
+
you must pass the following parameters to jazzy:
|
76
|
+
* `--objc`
|
77
|
+
* `--umbrella-header ...`
|
78
|
+
* `-framework-root ...`
|
63
79
|
|
64
|
-
|
65
|
-
`--umbrella-header ...` and `-framework-root ...` as parameters to jazzy.
|
80
|
+
##### Example
|
66
81
|
|
67
|
-
|
82
|
+
This is how Realm Objective-C docs are generated:
|
68
83
|
|
69
84
|
```shell
|
70
85
|
jazzy \
|
@@ -83,7 +98,7 @@ jazzy \
|
|
83
98
|
--template-directory docs/templates
|
84
99
|
```
|
85
100
|
|
86
|
-
|
101
|
+
This is how the AFNetworking docs are generated:
|
87
102
|
|
88
103
|
```shell
|
89
104
|
jazzy \
|
@@ -98,40 +113,46 @@ jazzy \
|
|
98
113
|
--module AFNetworking
|
99
114
|
```
|
100
115
|
|
101
|
-
|
116
|
+
## Troubleshooting
|
117
|
+
|
118
|
+
#### Swift
|
102
119
|
|
103
|
-
|
120
|
+
**Only extensions are listed in the documentation?**
|
104
121
|
|
105
|
-
By default, jazzy only documents public declarations. To generate documentation
|
106
|
-
for declarations with a lower accessibility level (internal or private), please
|
122
|
+
By default, `jazzy` only documents public declarations. To generate documentation
|
123
|
+
for declarations with a lower accessibility level (`internal` or `private`), please
|
107
124
|
set the `--min-acl` flag to `internal` or `private`.
|
108
125
|
|
109
|
-
|
126
|
+
## Development
|
110
127
|
|
111
|
-
|
112
|
-
written in Swift) and the site generator (written in ruby).
|
128
|
+
Please review jazzy's [contributing guidelines](https://github.com/realm/jazzy/blob/master/CONTRIBUTING.md) when submitting pull requests.
|
113
129
|
|
114
|
-
|
115
|
-
|
116
|
-
|
130
|
+
jazzy is composed of two parts:
|
131
|
+
|
132
|
+
1. The parser, [SourceKitten][SourceKitten] (written in Swift)
|
133
|
+
2. The site generator (written in ruby)
|
134
|
+
|
135
|
+
To build and run jazzy from source:
|
136
|
+
|
137
|
+
1. Install [bundler][bundler].
|
138
|
+
2. Run `bundle install` from the root of this repo.
|
139
|
+
3. Run jazzy from source by running `bin/jazzy`.
|
117
140
|
|
118
141
|
Instructions to build SourceKitten from source can be found at
|
119
142
|
[SourceKitten's GitHub repository][SourceKitten].
|
120
143
|
|
121
|
-
|
122
|
-
|
123
|
-
jazzy's main design goals are:
|
144
|
+
## Design Goals
|
124
145
|
|
125
146
|
- Generate source code docs matching Apple's official reference documentation
|
126
147
|
- Support for standard Objective-C and Swift documentation comment syntax
|
127
148
|
- Leverage modern HTML templating ([Mustache][mustache])
|
128
149
|
- Leverage the power and accuracy of the [Clang AST][ast] and [SourceKit][sourcekit]
|
129
150
|
- Support for Dash docsets
|
130
|
-
- Support Swift
|
151
|
+
- Support Swift and Objective-C (*mixed projects are a work in progress*)
|
131
152
|
|
132
|
-
|
153
|
+
## License
|
133
154
|
|
134
|
-
This project is under the MIT license.
|
155
|
+
This project is released under the [MIT license](https://github.com/realm/jazzy/blob/master/LICENSE).
|
135
156
|
|
136
157
|
[clang]: http://clang.llvm.org "Clang"
|
137
158
|
[sourcekit]: http://www.jpsim.com/uncovering-sourcekit "Uncovering SourceKit"
|
data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/SourceKittenFramework
CHANGED
Binary file
|
Binary file
|
Binary file
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<key>DTCompiler</key>
|
30
30
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
31
31
|
<key>DTPlatformBuild</key>
|
32
|
-
<string>
|
32
|
+
<string>7B1005</string>
|
33
33
|
<key>DTPlatformVersion</key>
|
34
34
|
<string>GM</string>
|
35
35
|
<key>DTSDKBuild</key>
|
@@ -37,9 +37,9 @@
|
|
37
37
|
<key>DTSDKName</key>
|
38
38
|
<string>macosx10.11</string>
|
39
39
|
<key>DTXcode</key>
|
40
|
-
<string>
|
40
|
+
<string>0711</string>
|
41
41
|
<key>DTXcodeBuild</key>
|
42
|
-
<string>
|
42
|
+
<string>7B1005</string>
|
43
43
|
<key>NSHumanReadableCopyright</key>
|
44
44
|
<string>Copyright © 2014 Carthage. All rights reserved.</string>
|
45
45
|
</dict>
|
Binary file
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<key>DTCompiler</key>
|
30
30
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
31
31
|
<key>DTPlatformBuild</key>
|
32
|
-
<string>
|
32
|
+
<string>7B1005</string>
|
33
33
|
<key>DTPlatformVersion</key>
|
34
34
|
<string>GM</string>
|
35
35
|
<key>DTSDKBuild</key>
|
@@ -37,9 +37,9 @@
|
|
37
37
|
<key>DTSDKName</key>
|
38
38
|
<string>macosx10.11</string>
|
39
39
|
<key>DTXcode</key>
|
40
|
-
<string>
|
40
|
+
<string>0711</string>
|
41
41
|
<key>DTXcodeBuild</key>
|
42
|
-
<string>
|
42
|
+
<string>7B1005</string>
|
43
43
|
<key>NSHumanReadableCopyright</key>
|
44
44
|
<string>Copyright © 2015 Rob Rix. All rights reserved.</string>
|
45
45
|
</dict>
|
Binary file
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<key>DTCompiler</key>
|
30
30
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
31
31
|
<key>DTPlatformBuild</key>
|
32
|
-
<string>
|
32
|
+
<string>7B1005</string>
|
33
33
|
<key>DTPlatformVersion</key>
|
34
34
|
<string>GM</string>
|
35
35
|
<key>DTSDKBuild</key>
|
@@ -37,9 +37,9 @@
|
|
37
37
|
<key>DTSDKName</key>
|
38
38
|
<string>macosx10.11</string>
|
39
39
|
<key>DTXcode</key>
|
40
|
-
<string>
|
40
|
+
<string>0711</string>
|
41
41
|
<key>DTXcodeBuild</key>
|
42
|
-
<string>
|
42
|
+
<string>7B1005</string>
|
43
43
|
<key>UIDeviceFamily</key>
|
44
44
|
<array>
|
45
45
|
<integer>1</integer>
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<key>DTCompiler</key>
|
30
30
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
31
31
|
<key>DTPlatformBuild</key>
|
32
|
-
<string>
|
32
|
+
<string>7B1005</string>
|
33
33
|
<key>DTPlatformVersion</key>
|
34
34
|
<string>GM</string>
|
35
35
|
<key>DTSDKBuild</key>
|
@@ -37,9 +37,9 @@
|
|
37
37
|
<key>DTSDKName</key>
|
38
38
|
<string>macosx10.11</string>
|
39
39
|
<key>DTXcode</key>
|
40
|
-
<string>
|
40
|
+
<string>0711</string>
|
41
41
|
<key>DTXcodeBuild</key>
|
42
|
-
<string>
|
42
|
+
<string>7B1005</string>
|
43
43
|
<key>NSHumanReadableCopyright</key>
|
44
44
|
<string>Copyright © 2014 JP Simard. All rights reserved.</string>
|
45
45
|
</dict>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<key>CFBundlePackageType</key>
|
18
18
|
<string>FMWK</string>
|
19
19
|
<key>CFBundleShortVersionString</key>
|
20
|
-
<string>0.6.
|
20
|
+
<string>0.6.2</string>
|
21
21
|
<key>CFBundleSignature</key>
|
22
22
|
<string>????</string>
|
23
23
|
<key>CFBundleSupportedPlatforms</key>
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<key>DTCompiler</key>
|
30
30
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
31
31
|
<key>DTPlatformBuild</key>
|
32
|
-
<string>
|
32
|
+
<string>7B1005</string>
|
33
33
|
<key>DTPlatformVersion</key>
|
34
34
|
<string>GM</string>
|
35
35
|
<key>DTSDKBuild</key>
|
@@ -37,9 +37,9 @@
|
|
37
37
|
<key>DTSDKName</key>
|
38
38
|
<string>macosx10.11</string>
|
39
39
|
<key>DTXcode</key>
|
40
|
-
<string>
|
40
|
+
<string>0711</string>
|
41
41
|
<key>DTXcodeBuild</key>
|
42
|
-
<string>
|
42
|
+
<string>7B1005</string>
|
43
43
|
<key>NSHumanReadableCopyright</key>
|
44
44
|
<string>Copyright © 2015 SourceKitten. All rights reserved.</string>
|
45
45
|
</dict>
|
Binary file
|
Binary file
|
@@ -25,7 +25,7 @@
|
|
25
25
|
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
|
26
26
|
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
|
27
27
|
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
|
28
|
-
.kt { color: #445588;
|
28
|
+
.kt { color: #445588; } /* Keyword.Type */
|
29
29
|
.m { color: #009999 } /* Literal.Number */
|
30
30
|
.s { color: #d14 } /* Literal.String */
|
31
31
|
.na { color: #008080 } /* Name.Attribute */
|
@@ -34,7 +34,7 @@
|
|
34
34
|
.no { color: #008080 } /* Name.Constant */
|
35
35
|
.ni { color: #800080 } /* Name.Entity */
|
36
36
|
.ne { color: #990000; font-weight: bold } /* Name.Exception */
|
37
|
-
.nf { color: #990000;
|
37
|
+
.nf { color: #990000; } /* Name.Function */
|
38
38
|
.nn { color: #555555 } /* Name.Namespace */
|
39
39
|
.nt { color: #000080 } /* Name.Tag */
|
40
40
|
.nv { color: #008080 } /* Name.Variable */
|
@@ -58,7 +58,7 @@ body {
|
|
58
58
|
|
59
59
|
// Headers
|
60
60
|
|
61
|
-
h1, h2, h3
|
61
|
+
h1, h2, h3 {
|
62
62
|
margin-top: 0.8em;
|
63
63
|
margin-bottom: 0.3em;
|
64
64
|
font-weight: 100;
|
@@ -71,11 +71,10 @@ h2 {
|
|
71
71
|
font-size: 2em;
|
72
72
|
border-bottom: $gray_border;
|
73
73
|
}
|
74
|
-
h3 {
|
75
|
-
font-size: 1.5em;
|
76
|
-
}
|
77
74
|
h4 {
|
78
|
-
font-size:
|
75
|
+
font-size: 13px;
|
76
|
+
line-height: 1.5;
|
77
|
+
margin-top: 21px;
|
79
78
|
}
|
80
79
|
h5 {
|
81
80
|
font-size: 1.1em;
|
@@ -84,6 +83,14 @@ h6 {
|
|
84
83
|
font-size: 1.1em;
|
85
84
|
color: $code_color;
|
86
85
|
}
|
86
|
+
.section-name {
|
87
|
+
color: rgba(128,128,128,1);
|
88
|
+
display: block;
|
89
|
+
font-family: Helvetica;
|
90
|
+
font-size: 22px;
|
91
|
+
font-weight: 100;
|
92
|
+
margin-bottom: 15px;
|
93
|
+
}
|
87
94
|
|
88
95
|
// Code
|
89
96
|
|
@@ -291,6 +298,17 @@ header {
|
|
291
298
|
padding-top: 0px;
|
292
299
|
}
|
293
300
|
|
301
|
+
.task-name-container {
|
302
|
+
a[name] {
|
303
|
+
&:before {
|
304
|
+
content: "";
|
305
|
+
display: block;
|
306
|
+
padding-top: $content_top_offset;
|
307
|
+
margin: -$content_top_offset 0 0;
|
308
|
+
}
|
309
|
+
}
|
310
|
+
}
|
311
|
+
|
294
312
|
.item {
|
295
313
|
padding-top: 8px;
|
296
314
|
width: 100%;
|
@@ -310,6 +328,7 @@ header {
|
|
310
328
|
.token {
|
311
329
|
padding-left: 3px;
|
312
330
|
margin-left: 15px;
|
331
|
+
font-size: 11.9px;
|
313
332
|
}
|
314
333
|
.declaration-note {
|
315
334
|
font-size: .85em;
|
@@ -17,7 +17,7 @@ $(document).ready(function() {
|
|
17
17
|
});
|
18
18
|
|
19
19
|
// On token click, toggle its discussion and animate token.marginLeft
|
20
|
-
$(".token").click(function() {
|
20
|
+
$(".token").click(function(event) {
|
21
21
|
if (window.jazzy.docset) {
|
22
22
|
return;
|
23
23
|
}
|
@@ -28,4 +28,13 @@ $(".token").click(function() {
|
|
28
28
|
link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration);
|
29
29
|
$content = link.parent().parent().next();
|
30
30
|
$content.slideToggle(animationDuration);
|
31
|
+
|
32
|
+
// Keeps the document from jumping to the hash.
|
33
|
+
var href = $(this).attr('href');
|
34
|
+
if (history.pushState) {
|
35
|
+
history.pushState({}, '', href);
|
36
|
+
} else {
|
37
|
+
location.hash = href;
|
38
|
+
}
|
39
|
+
event.preventDefault();
|
31
40
|
});
|
data/lib/jazzy/config.rb
CHANGED
@@ -31,7 +31,7 @@ module Jazzy
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def set(config, val, mark_configured: true)
|
34
|
-
set_raw(config,
|
34
|
+
set_raw(config, config.instance_exec(val, &parse))
|
35
35
|
config.method("#{name}_configured=").call(true) if mark_configured
|
36
36
|
end
|
37
37
|
|
@@ -67,6 +67,12 @@ module Jazzy
|
|
67
67
|
attr_reader :all_config_attrs
|
68
68
|
end
|
69
69
|
|
70
|
+
attr_accessor :base_path
|
71
|
+
|
72
|
+
def expand_path(path)
|
73
|
+
Pathname(path).expand_path(base_path) # nil means Pathname.pwd
|
74
|
+
end
|
75
|
+
|
70
76
|
# ──────── Build ────────
|
71
77
|
|
72
78
|
# rubocop:disable Style/AlignParameters
|
@@ -75,7 +81,7 @@ module Jazzy
|
|
75
81
|
description: 'Folder to output the HTML docs to',
|
76
82
|
command_line: ['-o', '--output FOLDER'],
|
77
83
|
default: 'docs',
|
78
|
-
parse: ->(o) {
|
84
|
+
parse: ->(o) { expand_path(o) }
|
79
85
|
|
80
86
|
config_attr :clean,
|
81
87
|
command_line: ['-c', '--[no-]clean'],
|
@@ -92,18 +98,18 @@ module Jazzy
|
|
92
98
|
config_attr :umbrella_header,
|
93
99
|
command_line: '--umbrella-header PATH',
|
94
100
|
description: 'Umbrella header for your Objective-C framework.',
|
95
|
-
parse: ->(uh) {
|
101
|
+
parse: ->(uh) { expand_path(uh) }
|
96
102
|
|
97
103
|
config_attr :framework_root,
|
98
104
|
command_line: '--framework-root PATH',
|
99
105
|
description: 'The root path to your Objective-C framework.',
|
100
|
-
parse: ->(fr) {
|
106
|
+
parse: ->(fr) { expand_path(fr) }
|
101
107
|
|
102
108
|
config_attr :config_file,
|
103
109
|
command_line: '--config PATH',
|
104
110
|
description: ['Configuration file (.yaml or .json)',
|
105
111
|
'Default: .jazzy.yaml in source directory or ancestor'],
|
106
|
-
parse: ->(cf) {
|
112
|
+
parse: ->(cf) { expand_path(cf) }
|
107
113
|
|
108
114
|
config_attr :xcodebuild_arguments,
|
109
115
|
command_line: ['-x', '--xcodebuild-arguments arg1,arg2,…argN', Array],
|
@@ -113,20 +119,20 @@ module Jazzy
|
|
113
119
|
config_attr :sourcekitten_sourcefile,
|
114
120
|
command_line: ['-s', '--sourcekitten-sourcefile FILEPATH'],
|
115
121
|
description: 'File generated from sourcekitten output to parse',
|
116
|
-
parse: ->(s) {
|
122
|
+
parse: ->(s) { expand_path(s) }
|
117
123
|
|
118
124
|
config_attr :source_directory,
|
119
125
|
command_line: '--source-directory DIRPATH',
|
120
126
|
description: 'The directory that contains the source to be documented',
|
121
127
|
default: Pathname.pwd,
|
122
|
-
parse: ->(sd) {
|
128
|
+
parse: ->(sd) { expand_path(sd) }
|
123
129
|
|
124
130
|
config_attr :excluded_files,
|
125
131
|
command_line: ['-e', '--exclude file1,file2,…fileN', Array],
|
126
132
|
description: 'Files to be excluded from documentation',
|
127
133
|
default: [],
|
128
134
|
parse: ->(files) do
|
129
|
-
files.map { |f|
|
135
|
+
Array(files).map { |f| expand_path(f) }
|
130
136
|
end
|
131
137
|
|
132
138
|
config_attr :swift_version,
|
@@ -163,7 +169,7 @@ module Jazzy
|
|
163
169
|
config_attr :readme_path,
|
164
170
|
command_line: '--readme FILEPATH',
|
165
171
|
description: 'The path to a markdown README file',
|
166
|
-
parse: ->(rp) {
|
172
|
+
parse: ->(rp) { expand_path(rp) }
|
167
173
|
|
168
174
|
config_attr :podspec,
|
169
175
|
command_line: '--podspec FILEPATH',
|
@@ -174,7 +180,7 @@ module Jazzy
|
|
174
180
|
|
175
181
|
config_attr :docset_icon,
|
176
182
|
command_line: '--docset-icon FILEPATH',
|
177
|
-
parse: ->(di) {
|
183
|
+
parse: ->(di) { expand_path(di) }
|
178
184
|
|
179
185
|
config_attr :docset_path,
|
180
186
|
command_line: '--docset-path DIRPATH',
|
@@ -216,8 +222,8 @@ module Jazzy
|
|
216
222
|
|
217
223
|
config_attr :skip_undocumented,
|
218
224
|
command_line: '--[no-]skip-undocumented',
|
219
|
-
description: "Don't document declarations that have no documentation
|
220
|
-
|
225
|
+
description: "Don't document declarations that have no documentation "\
|
226
|
+
'comments.',
|
221
227
|
default: false
|
222
228
|
|
223
229
|
config_attr :hide_documentation_coverage,
|
@@ -229,21 +235,21 @@ module Jazzy
|
|
229
235
|
description: ['Custom navigation categories to replace the standard '\
|
230
236
|
'“Classes, Protocols, etc.”', 'Types not explicitly named '\
|
231
237
|
'in a custom category appear in generic groups at the end.',
|
232
|
-
'Example: http://git.io/
|
238
|
+
'Example: http://git.io/v4Bcp'],
|
233
239
|
default: []
|
234
240
|
|
235
241
|
config_attr :template_directory,
|
236
242
|
command_line: ['-t', '--template-directory DIRPATH'],
|
237
243
|
description: 'The directory that contains the mustache templates to use',
|
238
244
|
default: Pathname(__FILE__).parent + 'templates',
|
239
|
-
parse: ->(td) {
|
245
|
+
parse: ->(td) { expand_path(td) }
|
240
246
|
|
241
247
|
config_attr :assets_directory,
|
242
248
|
command_line: '--assets-directory DIRPATH',
|
243
249
|
description: 'The directory that contains the assets (CSS, JS, images) '\
|
244
250
|
'used by the templates',
|
245
251
|
default: Pathname(__FILE__).parent + 'assets',
|
246
|
-
parse: ->(ad) {
|
252
|
+
parse: ->(ad) { expand_path(ad) }
|
247
253
|
|
248
254
|
# rubocop:enable Style/AlignParameters
|
249
255
|
|
@@ -304,14 +310,14 @@ module Jazzy
|
|
304
310
|
exit
|
305
311
|
end
|
306
312
|
end.parse!
|
307
|
-
|
308
|
-
expand_paths(Pathname.pwd)
|
309
313
|
end
|
310
314
|
|
311
315
|
def parse_config_file
|
312
316
|
config_path = locate_config_file
|
313
317
|
return unless config_path
|
314
318
|
|
319
|
+
self.base_path = config_path.parent
|
320
|
+
|
315
321
|
puts "Using config file #{config_path}"
|
316
322
|
config_file = read_config_file(config_path)
|
317
323
|
self.class.all_config_attrs.each do |attr|
|
@@ -321,7 +327,7 @@ module Jazzy
|
|
321
327
|
end
|
322
328
|
end
|
323
329
|
|
324
|
-
|
330
|
+
self.base_path = nil
|
325
331
|
end
|
326
332
|
|
327
333
|
def locate_config_file
|
@@ -343,15 +349,6 @@ module Jazzy
|
|
343
349
|
end
|
344
350
|
end
|
345
351
|
|
346
|
-
def expand_paths(base_path)
|
347
|
-
self.class.all_config_attrs.each do |attr|
|
348
|
-
val = attr.get(self)
|
349
|
-
if val.respond_to?(:expand_path)
|
350
|
-
attr.set_raw(self, val.expand_path(base_path))
|
351
|
-
end
|
352
|
-
end
|
353
|
-
end
|
354
|
-
|
355
352
|
def print_config_file_help
|
356
353
|
puts <<-_EOS_
|
357
354
|
|
data/lib/jazzy/doc_builder.rb
CHANGED
@@ -224,7 +224,8 @@ module Jazzy
|
|
224
224
|
else
|
225
225
|
gh_line = "#L#{item.line}"
|
226
226
|
end
|
227
|
-
relative_file_path = item.file.realpath.relative_path_from(
|
227
|
+
relative_file_path = item.file.realpath.relative_path_from(
|
228
|
+
source_module.root_path)
|
228
229
|
"#{github_prefix}/#{relative_file_path}#{gh_line}"
|
229
230
|
end
|
230
231
|
|
data/lib/jazzy/gem_version.rb
CHANGED
@@ -7,6 +7,40 @@ module Jazzy
|
|
7
7
|
attr_accessor :type
|
8
8
|
# static type of declared element (e.g. String.Type -> ())
|
9
9
|
attr_accessor :typename
|
10
|
+
|
11
|
+
# Element containing this declaration in the code
|
12
|
+
attr_accessor :parent_in_code
|
13
|
+
|
14
|
+
# Logical parent in the documentation. May differ from parent_in_code
|
15
|
+
# because of top-level categories and merged extensions.
|
16
|
+
attr_accessor :parent_in_docs
|
17
|
+
|
18
|
+
# counterpart of parent_in_docs
|
19
|
+
attr_accessor :children
|
20
|
+
|
21
|
+
def children=(new_children)
|
22
|
+
# Freeze to ensure that parent_in_docs stays in sync
|
23
|
+
@children = new_children.freeze
|
24
|
+
@children.each { |c| c.parent_in_docs = self }
|
25
|
+
end
|
26
|
+
|
27
|
+
# Chain of parent_in_code from top level to self. (Includes self.)
|
28
|
+
def namespace_path
|
29
|
+
namespace_ancestors + [self]
|
30
|
+
end
|
31
|
+
|
32
|
+
def namespace_ancestors
|
33
|
+
if parent_in_code
|
34
|
+
parent_in_code.namespace_path
|
35
|
+
else
|
36
|
+
[]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def fully_qualified_name
|
41
|
+
namespace_path.map(&:name).join('.')
|
42
|
+
end
|
43
|
+
|
10
44
|
attr_accessor :file
|
11
45
|
attr_accessor :line
|
12
46
|
attr_accessor :column
|
@@ -18,7 +52,6 @@ module Jazzy
|
|
18
52
|
attr_accessor :from_protocol_extension
|
19
53
|
attr_accessor :discussion
|
20
54
|
attr_accessor :return
|
21
|
-
attr_accessor :children
|
22
55
|
attr_accessor :parameters
|
23
56
|
attr_accessor :url
|
24
57
|
attr_accessor :mark
|
@@ -144,6 +144,18 @@ module Jazzy
|
|
144
144
|
jazzy: 'Function',
|
145
145
|
dash: 'Function',
|
146
146
|
}.freeze,
|
147
|
+
'sourcekitten.source.lang.objc.decl.struct' => {
|
148
|
+
jazzy: 'Struct',
|
149
|
+
dash: 'Struct',
|
150
|
+
}.freeze,
|
151
|
+
'sourcekitten.source.lang.objc.decl.field' => {
|
152
|
+
jazzy: 'Field',
|
153
|
+
dash: 'Field',
|
154
|
+
}.freeze,
|
155
|
+
'sourcekitten.source.lang.objc.decl.ivar' => {
|
156
|
+
jazzy: 'Ivar',
|
157
|
+
dash: 'Ivar',
|
158
|
+
}.freeze,
|
147
159
|
|
148
160
|
# Swift
|
149
161
|
'source.lang.swift.decl.function.accessor.address' => {
|
data/lib/jazzy/source_module.rb
CHANGED
@@ -6,6 +6,7 @@ require 'jazzy/source_declaration'
|
|
6
6
|
module Jazzy
|
7
7
|
class SourceModule
|
8
8
|
attr_accessor :name
|
9
|
+
attr_accessor :root_path
|
9
10
|
attr_accessor :docs
|
10
11
|
attr_accessor :doc_coverage
|
11
12
|
attr_accessor :doc_structure
|
@@ -17,6 +18,7 @@ module Jazzy
|
|
17
18
|
|
18
19
|
def initialize(options, docs, doc_structure, doc_coverage)
|
19
20
|
self.docs = docs
|
21
|
+
self.root_path = options.source_directory
|
20
22
|
self.doc_structure = doc_structure
|
21
23
|
self.doc_coverage = doc_coverage
|
22
24
|
self.name = options.module_name
|
data/lib/jazzy/sourcekitten.rb
CHANGED
@@ -65,21 +65,21 @@ module Jazzy
|
|
65
65
|
# rubocop:disable Metrics/MethodLength
|
66
66
|
# Generate doc URL by prepending its parents URLs
|
67
67
|
# @return [Hash] input docs with URLs
|
68
|
-
def self.make_doc_urls(docs
|
68
|
+
def self.make_doc_urls(docs)
|
69
69
|
docs.each do |doc|
|
70
|
-
if
|
70
|
+
if !doc.parent_in_docs || doc.children.count > 0
|
71
71
|
# Create HTML page for this doc if it has children or is root-level
|
72
72
|
doc.url = (
|
73
|
-
subdir_for_doc(doc
|
73
|
+
subdir_for_doc(doc) +
|
74
74
|
[doc.name + '.html']
|
75
75
|
).join('/')
|
76
|
-
doc.children = make_doc_urls(doc.children
|
76
|
+
doc.children = make_doc_urls(doc.children)
|
77
77
|
else
|
78
78
|
# Don't create HTML page for this doc if it doesn't have children
|
79
79
|
# Instead, make its link a hash-link on its parent's page
|
80
80
|
if doc.typename == '<<error type>>'
|
81
81
|
warn 'A compile error prevented ' +
|
82
|
-
|
82
|
+
doc.fully_qualified_name +
|
83
83
|
' from receiving a unique USR. Documentation may be ' \
|
84
84
|
'incomplete. Please check for compile errors by running ' \
|
85
85
|
"`xcodebuild #{Config.instance.xcodebuild_arguments.shelljoin}`."
|
@@ -94,19 +94,23 @@ module Jazzy
|
|
94
94
|
'project. If this token is declared in an `#if` block, please ' \
|
95
95
|
'ignore this message.'
|
96
96
|
end
|
97
|
-
doc.url =
|
97
|
+
doc.url = doc.parent_in_docs.url + '#/' + id
|
98
98
|
end
|
99
99
|
end
|
100
100
|
end
|
101
101
|
# rubocop:enable Metrics/MethodLength
|
102
102
|
|
103
103
|
# Determine the subdirectory in which a doc should be placed
|
104
|
-
def self.subdir_for_doc(doc
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
104
|
+
def self.subdir_for_doc(doc)
|
105
|
+
# We always want to create top-level subdirs according to type (Struct,
|
106
|
+
# Class, etc).
|
107
|
+
top_level_decl = doc.namespace_path.first
|
108
|
+
if top_level_decl && top_level_decl.type && top_level_decl.type.name
|
109
|
+
# File program elements under top ancestor’s type (Struct, Class, etc.)
|
110
|
+
[top_level_decl.type.plural_name] + doc.namespace_ancestors.map(&:name)
|
111
|
+
else
|
112
|
+
# Categories live in their own directory
|
113
|
+
[]
|
110
114
|
end
|
111
115
|
end
|
112
116
|
|
@@ -243,6 +247,7 @@ module Jazzy
|
|
243
247
|
if doc['key.substructure']
|
244
248
|
declaration.children = make_source_declarations(
|
245
249
|
doc['key.substructure'],
|
250
|
+
declaration,
|
246
251
|
)
|
247
252
|
else
|
248
253
|
declaration.children = []
|
@@ -252,21 +257,24 @@ module Jazzy
|
|
252
257
|
# rubocop:disable Metrics/MethodLength
|
253
258
|
# rubocop:disable Metrics/CyclomaticComplexity
|
254
259
|
# rubocop:disable Metrics/PerceivedComplexity
|
255
|
-
def self.make_source_declarations(docs)
|
260
|
+
def self.make_source_declarations(docs, parent = nil)
|
256
261
|
declarations = []
|
257
262
|
current_mark = SourceMark.new
|
258
263
|
Array(docs).each do |doc|
|
259
264
|
if doc.key?('key.diagnostic_stage')
|
260
|
-
declarations += make_source_declarations(
|
265
|
+
declarations += make_source_declarations(
|
266
|
+
doc['key.substructure'], parent)
|
261
267
|
next
|
262
268
|
end
|
263
269
|
declaration = SourceDeclaration.new
|
270
|
+
declaration.parent_in_code = parent
|
264
271
|
declaration.type = SourceDeclaration::Type.new(doc['key.kind'])
|
265
272
|
declaration.typename = doc['key.typename']
|
266
273
|
current_mark = SourceMark.new(doc['key.name']) if declaration.type.mark?
|
267
274
|
if declaration.type.swift_enum_case?
|
268
275
|
# Enum "cases" are thin wrappers around enum "elements".
|
269
|
-
declarations += make_source_declarations(
|
276
|
+
declarations += make_source_declarations(
|
277
|
+
doc['key.substructure'], parent)
|
270
278
|
next
|
271
279
|
end
|
272
280
|
next unless declaration.type.should_document?
|
@@ -346,8 +354,12 @@ module Jazzy
|
|
346
354
|
end
|
347
355
|
|
348
356
|
decls = typedecls + extensions
|
349
|
-
decls.first.tap do |
|
350
|
-
|
357
|
+
decls.first.tap do |merged|
|
358
|
+
merged.children = deduplicate_declarations(
|
359
|
+
decls.flat_map(&:children).uniq)
|
360
|
+
merged.children.each do |child|
|
361
|
+
child.parent_in_code = merged
|
362
|
+
end
|
351
363
|
end
|
352
364
|
end
|
353
365
|
|
@@ -384,36 +396,69 @@ module Jazzy
|
|
384
396
|
excluded_files = Config.instance.excluded_files
|
385
397
|
json.map do |doc|
|
386
398
|
key = doc.keys.first
|
387
|
-
doc[key] unless excluded_files.include?(key)
|
399
|
+
doc[key] unless excluded_files.include?(Pathname(key))
|
388
400
|
end.compact
|
389
401
|
end
|
390
402
|
|
391
|
-
def self.
|
392
|
-
|
393
|
-
|
394
|
-
|
403
|
+
def self.name_match(name_part, docs)
|
404
|
+
return nil unless name_part
|
405
|
+
wildcard_expansion = Regexp.escape(name_part)
|
406
|
+
.gsub('\.\.\.', '[^)]*')
|
407
|
+
.gsub(/<.*>/, '')
|
408
|
+
whole_name_pat = /\A#{wildcard_expansion}\Z/
|
409
|
+
docs.find do |doc|
|
410
|
+
whole_name_pat =~ doc.name
|
411
|
+
end
|
412
|
+
end
|
413
|
+
|
414
|
+
# Find the first ancestor of doc whose name matches name_part.
|
415
|
+
def self.ancestor_name_match(name_part, doc)
|
416
|
+
doc.namespace_ancestors.reverse_each do |ancestor|
|
417
|
+
if match = name_match(name_part, ancestor.children)
|
418
|
+
return match
|
419
|
+
end
|
420
|
+
end
|
421
|
+
nil
|
422
|
+
end
|
423
|
+
|
424
|
+
def self.name_traversal(name_parts, doc)
|
425
|
+
while doc && !name_parts.empty?
|
426
|
+
next_part = name_parts.shift
|
427
|
+
doc = name_match(next_part, doc.children)
|
395
428
|
end
|
429
|
+
doc
|
396
430
|
end
|
397
431
|
|
398
|
-
def self.autolink_text(text,
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
432
|
+
def self.autolink_text(text, doc, root_decls)
|
433
|
+
text.gsub(%r{<code>[ \t]*([^\s]+)[ \t]*</code>}) do
|
434
|
+
original = Regexp.last_match(0)
|
435
|
+
raw_name = Regexp.last_match(1)
|
436
|
+
parts = raw_name
|
437
|
+
.split(/(?<!\.)\.(?!\.)/) # dot with no neighboring dots
|
438
|
+
.reject(&:empty?)
|
439
|
+
|
440
|
+
# First dot-separated component can match any ancestor or top-level doc
|
441
|
+
first_part = parts.shift
|
442
|
+
name_root = ancestor_name_match(first_part, doc) ||
|
443
|
+
name_match(first_part, root_decls)
|
444
|
+
|
445
|
+
# Traverse children via subsequence components, if any
|
446
|
+
link_target = name_traversal(parts, name_root)
|
447
|
+
|
448
|
+
if link_target && link_target.url && link_target.url != doc.url
|
449
|
+
"<code><a href=\"#{ELIDED_AUTOLINK_TOKEN}#{link_target.url}\">" +
|
450
|
+
raw_name + '</a></code>'
|
405
451
|
else
|
406
|
-
|
452
|
+
original
|
407
453
|
end
|
408
454
|
end
|
409
455
|
end
|
410
456
|
|
411
|
-
def self.autolink(docs,
|
412
|
-
docs.
|
413
|
-
doc.abstract = autolink_text(doc.abstract,
|
414
|
-
doc.return = autolink_text(doc.return,
|
415
|
-
doc.children = autolink(doc.children,
|
416
|
-
doc
|
457
|
+
def self.autolink(docs, root_decls)
|
458
|
+
docs.each do |doc|
|
459
|
+
doc.abstract = autolink_text(doc.abstract, doc, root_decls)
|
460
|
+
doc.return = autolink_text(doc.return, doc, root_decls) if doc.return
|
461
|
+
doc.children = autolink(doc.children, root_decls)
|
417
462
|
end
|
418
463
|
end
|
419
464
|
|
@@ -422,7 +467,7 @@ module Jazzy
|
|
422
467
|
doc.children.select { |child| child.type.objc_enum? }.map(&:name)
|
423
468
|
end
|
424
469
|
docs.map do |doc|
|
425
|
-
doc.children.reject
|
470
|
+
doc.children = doc.children.reject do |child|
|
426
471
|
child.type.objc_typedef? && enums.include?(child.name)
|
427
472
|
end
|
428
473
|
doc
|
@@ -436,7 +481,7 @@ module Jazzy
|
|
436
481
|
@skip_undocumented = skip_undocumented
|
437
482
|
sourcekitten_json = filter_excluded_files(JSON.parse(sourcekitten_output))
|
438
483
|
docs = make_source_declarations(sourcekitten_json)
|
439
|
-
docs = deduplicate_declarations(docs)
|
484
|
+
docs = ungrouped_docs = deduplicate_declarations(docs)
|
440
485
|
docs = group_docs(docs)
|
441
486
|
if Config.instance.objc_mode
|
442
487
|
docs = reject_objc_enum_typedefs(docs)
|
@@ -445,8 +490,8 @@ module Jazzy
|
|
445
490
|
# than min_acl
|
446
491
|
docs = docs.reject { |doc| doc.type.swift_enum_element? }
|
447
492
|
end
|
448
|
-
|
449
|
-
|
493
|
+
make_doc_urls(docs)
|
494
|
+
autolink(docs, ungrouped_docs)
|
450
495
|
[docs, doc_coverage, @undocumented_tokens]
|
451
496
|
end
|
452
497
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jazzy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Simard
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-11-
|
13
|
+
date: 2015-11-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: cocoapods
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- ".rubocop.yml"
|
168
168
|
- ".travis.yml"
|
169
169
|
- CHANGELOG.md
|
170
|
+
- CONTRIBUTING.md
|
170
171
|
- Gemfile
|
171
172
|
- Gemfile.lock
|
172
173
|
- LICENSE
|
@@ -261,3 +262,4 @@ signing_key:
|
|
261
262
|
specification_version: 4
|
262
263
|
summary: Soulful docs for Swift & Objective-C.
|
263
264
|
test_files: []
|
265
|
+
has_rdoc:
|