jazzy 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Commandant.framework/Versions/A/Commandant +0 -0
  5. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Commandant.framework/Versions/A/Resources/Info.plist +6 -6
  6. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Result.framework/Versions/A/Resources/Info.plist +6 -6
  7. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Result.framework/Versions/A/Result +0 -0
  8. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/Versions/A/Resources/Info.plist +5 -5
  9. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/Versions/A/SWXMLHash +0 -0
  10. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yams.framework/Versions/A/Resources/Info.plist +7 -7
  11. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yams.framework/Versions/A/Yams +0 -0
  12. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftCore.dylib +0 -0
  13. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftCoreGraphics.dylib +0 -0
  14. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftDarwin.dylib +0 -0
  15. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftDispatch.dylib +0 -0
  16. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftFoundation.dylib +0 -0
  17. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftIOKit.dylib +0 -0
  18. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftObjectiveC.dylib +0 -0
  19. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Resources/Info.plist +6 -6
  20. data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/SourceKittenFramework +0 -0
  21. data/lib/jazzy/SourceKitten/bin/sourcekitten +0 -0
  22. data/lib/jazzy/doc.rb +1 -1
  23. data/lib/jazzy/doc_builder.rb +2 -2
  24. data/lib/jazzy/gem_version.rb +1 -1
  25. data/lib/jazzy/jazzy_markdown.rb +162 -95
  26. data/lib/jazzy/sourcekitten.rb +9 -26
  27. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc460519a4f57d266ecc60cbc931be6206c3d619
4
- data.tar.gz: ee27a31724d4c8740edf0060ea1f0395a75c34cd
3
+ metadata.gz: a26b03c9b41e98642beb50df0f4dd95c04675d00
4
+ data.tar.gz: ca8d320c44e4697c6e672c1087688b2d20559d70
5
5
  SHA512:
6
- metadata.gz: 72ae7b9ea2eebf2dd6d7a487453cb81e33bbcebece34c63c94fe61117dda83853acbb05d74d346c331026fb0362487cf874d4fbc98d896840b4f7e84b8b26957
7
- data.tar.gz: 9a6a51fe79fa42185ae16375f0560c9e471c07e59dad504663db53ab9ee1d7b748e9971f7da5ddd3bba9b6365e1ca62925a36add31e1da3b89204e8b7c3a0df8
6
+ metadata.gz: 045aeac969e8626b7488561dc366c89ba2449ac0e0c328f08f2a2c2fca26b185c1e898cc4689c1815fee4967ed272c5a424eabdaf5a2b2c2b0e0b476b481f744
7
+ data.tar.gz: 6e9aacf6d1447d50e4a025caeee2fa0879720a8c096ff7faa99c886e8e5be8995ae60d512fe4f3810140a288d6cbd8e37cc1864b5eeeba8d38d733d380d48f07
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 0.8.1
2
+
3
+ ##### Breaking
4
+
5
+ * None.
6
+
7
+ ##### Enhancements
8
+
9
+ * Allow all markdown in returns and parameter description callouts.
10
+ [John Fairhurst](https://github.com/johnfairh)
11
+ [#476](https://github.com/realm/jazzy/issues/476)
12
+
13
+ ##### Bug Fixes
14
+
15
+ * Fix a crash that occurred when a documentation comment ended with an extended
16
+ grapheme cluster.
17
+ [Lukas Stührk](https://github.com/Lukas-Stuehrk)
18
+ [#794](https://github.com/realm/jazzy/issues/794)
19
+ [SourceKitten#350](https://github.com/jpsim/SourceKitten/issues/350)
20
+
1
21
  ## 0.8.0
2
22
 
3
23
  ##### Breaking
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jazzy (0.8.0)
4
+ jazzy (0.8.1)
5
5
  cocoapods (~> 1.0)
6
6
  mustache (~> 0.99)
7
7
  open4
@@ -3,7 +3,7 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>BuildMachineOSBuild</key>
6
- <string>16C53a</string>
6
+ <string>16E195</string>
7
7
  <key>CFBundleDevelopmentRegion</key>
8
8
  <string>en</string>
9
9
  <key>CFBundleExecutable</key>
@@ -17,7 +17,7 @@
17
17
  <key>CFBundlePackageType</key>
18
18
  <string>FMWK</string>
19
19
  <key>CFBundleShortVersionString</key>
20
- <string>0.11.3</string>
20
+ <string>0.12.0</string>
21
21
  <key>CFBundleSignature</key>
22
22
  <string>????</string>
23
23
  <key>CFBundleSupportedPlatforms</key>
@@ -29,17 +29,17 @@
29
29
  <key>DTCompiler</key>
30
30
  <string>com.apple.compilers.llvm.clang.1_0</string>
31
31
  <key>DTPlatformBuild</key>
32
- <string>8B62</string>
32
+ <string>8E2002</string>
33
33
  <key>DTPlatformVersion</key>
34
34
  <string>GM</string>
35
35
  <key>DTSDKBuild</key>
36
- <string>16B2649</string>
36
+ <string>16E185</string>
37
37
  <key>DTSDKName</key>
38
38
  <string>macosx10.12</string>
39
39
  <key>DTXcode</key>
40
- <string>0810</string>
40
+ <string>0832</string>
41
41
  <key>DTXcodeBuild</key>
42
- <string>8B62</string>
42
+ <string>8E2002</string>
43
43
  <key>NSHumanReadableCopyright</key>
44
44
  <string>Copyright © 2014 Carthage. All rights reserved.</string>
45
45
  </dict>
@@ -3,7 +3,7 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>BuildMachineOSBuild</key>
6
- <string>16C53a</string>
6
+ <string>16E195</string>
7
7
  <key>CFBundleDevelopmentRegion</key>
8
8
  <string>en</string>
9
9
  <key>CFBundleExecutable</key>
@@ -17,7 +17,7 @@
17
17
  <key>CFBundlePackageType</key>
18
18
  <string>FMWK</string>
19
19
  <key>CFBundleShortVersionString</key>
20
- <string>3.1.0</string>
20
+ <string>3.2.1</string>
21
21
  <key>CFBundleSignature</key>
22
22
  <string>????</string>
23
23
  <key>CFBundleSupportedPlatforms</key>
@@ -29,17 +29,17 @@
29
29
  <key>DTCompiler</key>
30
30
  <string>com.apple.compilers.llvm.clang.1_0</string>
31
31
  <key>DTPlatformBuild</key>
32
- <string>8B62</string>
32
+ <string>8E2002</string>
33
33
  <key>DTPlatformVersion</key>
34
34
  <string>GM</string>
35
35
  <key>DTSDKBuild</key>
36
- <string>16B2649</string>
36
+ <string>16E185</string>
37
37
  <key>DTSDKName</key>
38
38
  <string>macosx10.12</string>
39
39
  <key>DTXcode</key>
40
- <string>0810</string>
40
+ <string>0832</string>
41
41
  <key>DTXcodeBuild</key>
42
- <string>8B62</string>
42
+ <string>8E2002</string>
43
43
  <key>NSHumanReadableCopyright</key>
44
44
  <string>Copyright © 2015 Rob Rix. All rights reserved.</string>
45
45
  </dict>
@@ -3,7 +3,7 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>BuildMachineOSBuild</key>
6
- <string>16C53a</string>
6
+ <string>16E195</string>
7
7
  <key>CFBundleDevelopmentRegion</key>
8
8
  <string>en</string>
9
9
  <key>CFBundleExecutable</key>
@@ -29,17 +29,17 @@
29
29
  <key>DTCompiler</key>
30
30
  <string>com.apple.compilers.llvm.clang.1_0</string>
31
31
  <key>DTPlatformBuild</key>
32
- <string>8B62</string>
32
+ <string>8E2002</string>
33
33
  <key>DTPlatformVersion</key>
34
34
  <string>GM</string>
35
35
  <key>DTSDKBuild</key>
36
- <string>16B2649</string>
36
+ <string>16E185</string>
37
37
  <key>DTSDKName</key>
38
38
  <string>macosx10.12</string>
39
39
  <key>DTXcode</key>
40
- <string>0810</string>
40
+ <string>0832</string>
41
41
  <key>DTXcodeBuild</key>
42
- <string>8B62</string>
42
+ <string>8E2002</string>
43
43
  <key>UIDeviceFamily</key>
44
44
  <array>
45
45
  <integer>1</integer>
@@ -3,7 +3,7 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>BuildMachineOSBuild</key>
6
- <string>16C53a</string>
6
+ <string>16E195</string>
7
7
  <key>CFBundleDevelopmentRegion</key>
8
8
  <string>en</string>
9
9
  <key>CFBundleExecutable</key>
@@ -17,7 +17,7 @@
17
17
  <key>CFBundlePackageType</key>
18
18
  <string>FMWK</string>
19
19
  <key>CFBundleShortVersionString</key>
20
- <string>0.1.2</string>
20
+ <string>0.3.1</string>
21
21
  <key>CFBundleSignature</key>
22
22
  <string>????</string>
23
23
  <key>CFBundleSupportedPlatforms</key>
@@ -25,20 +25,20 @@
25
25
  <string>MacOSX</string>
26
26
  </array>
27
27
  <key>CFBundleVersion</key>
28
- <string></string>
28
+ <string>1</string>
29
29
  <key>DTCompiler</key>
30
30
  <string>com.apple.compilers.llvm.clang.1_0</string>
31
31
  <key>DTPlatformBuild</key>
32
- <string>8B62</string>
32
+ <string>8E2002</string>
33
33
  <key>DTPlatformVersion</key>
34
34
  <string>GM</string>
35
35
  <key>DTSDKBuild</key>
36
- <string>16B2649</string>
36
+ <string>16E185</string>
37
37
  <key>DTSDKName</key>
38
38
  <string>macosx10.12</string>
39
39
  <key>DTXcode</key>
40
- <string>0810</string>
40
+ <string>0832</string>
41
41
  <key>DTXcodeBuild</key>
42
- <string>8B62</string>
42
+ <string>8E2002</string>
43
43
  </dict>
44
44
  </plist>
@@ -3,7 +3,7 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>BuildMachineOSBuild</key>
6
- <string>16C53a</string>
6
+ <string>16E195</string>
7
7
  <key>CFBundleDevelopmentRegion</key>
8
8
  <string>en</string>
9
9
  <key>CFBundleExecutable</key>
@@ -17,7 +17,7 @@
17
17
  <key>CFBundlePackageType</key>
18
18
  <string>FMWK</string>
19
19
  <key>CFBundleShortVersionString</key>
20
- <string>0.15.2</string>
20
+ <string>0.17.2</string>
21
21
  <key>CFBundleSignature</key>
22
22
  <string>????</string>
23
23
  <key>CFBundleSupportedPlatforms</key>
@@ -29,17 +29,17 @@
29
29
  <key>DTCompiler</key>
30
30
  <string>com.apple.compilers.llvm.clang.1_0</string>
31
31
  <key>DTPlatformBuild</key>
32
- <string>8B62</string>
32
+ <string>8E2002</string>
33
33
  <key>DTPlatformVersion</key>
34
34
  <string>GM</string>
35
35
  <key>DTSDKBuild</key>
36
- <string>16B2649</string>
36
+ <string>16E185</string>
37
37
  <key>DTSDKName</key>
38
38
  <string>macosx10.12</string>
39
39
  <key>DTXcode</key>
40
- <string>0810</string>
40
+ <string>0832</string>
41
41
  <key>DTXcodeBuild</key>
42
- <string>8B62</string>
42
+ <string>8E2002</string>
43
43
  <key>NSHumanReadableCopyright</key>
44
44
  <string>Copyright © 2015 SourceKitten. All rights reserved.</string>
45
45
  </dict>
data/lib/jazzy/doc.rb CHANGED
@@ -19,7 +19,7 @@ module Jazzy
19
19
  "&copy; #{year} [#{config.author_name}](#{config.author_url}). " \
20
20
  "All rights reserved. (Last updated: #{date})"
21
21
  )
22
- Jazzy.copyright_markdown.render(copyright).chomp
22
+ Markdown.render_copyright(copyright).chomp
23
23
  end
24
24
 
25
25
  def jazzy_version
@@ -220,7 +220,7 @@ module Jazzy
220
220
  doc = Doc.new # Mustache model instance
221
221
  name = doc_model.name == 'index' ? source_module.name : doc_model.name
222
222
  doc[:name] = name
223
- doc[:overview] = Jazzy.markdown.render(doc_model.content(source_module))
223
+ doc[:overview] = Markdown.render(doc_model.content(source_module))
224
224
  doc[:custom_head] = Config.instance.custom_head
225
225
  doc[:disable_search] = Config.instance.disable_search
226
226
  doc[:doc_coverage] = source_module.doc_coverage unless
@@ -366,7 +366,7 @@ module Jazzy
366
366
  overview = (doc_model.abstract || '') + (doc_model.discussion || '')
367
367
  alternative_abstract = doc_model.alternative_abstract
368
368
  if alternative_abstract
369
- overview = Jazzy.markdown.render(alternative_abstract) + overview
369
+ overview = Markdown.render(alternative_abstract) + overview
370
370
  end
371
371
 
372
372
  doc = Doc.new # Mustache model instance
@@ -1,3 +1,3 @@
1
1
  module Jazzy
2
- VERSION = '0.8.0'.freeze unless defined? Jazzy::VERSION
2
+ VERSION = '0.8.1'.freeze unless defined? Jazzy::VERSION
3
3
  end
@@ -3,99 +3,102 @@ require 'rouge'
3
3
  require 'rouge/plugins/redcarpet'
4
4
 
5
5
  module Jazzy
6
- class JazzyHTML < Redcarpet::Render::HTML
7
- include Redcarpet::Render::SmartyPants
8
- include Rouge::Plugins::Redcarpet
9
-
10
- def header(text, header_level)
11
- text_slug = text.gsub(/[^\w]+/, '-')
12
- .downcase
13
- .sub(/^-/, '')
14
- .sub(/-$/, '')
15
-
16
- "<h#{header_level} id='#{text_slug}' class='heading'>" \
17
- "#{text}" \
18
- "</h#{header_level}>\n"
19
- end
6
+ module Markdown
7
+ class JazzyHTML < Redcarpet::Render::HTML
8
+ include Redcarpet::Render::SmartyPants
9
+ include Rouge::Plugins::Redcarpet
10
+
11
+ def header(text, header_level)
12
+ text_slug = text.gsub(/[^\w]+/, '-')
13
+ .downcase
14
+ .sub(/^-/, '')
15
+ .sub(/-$/, '')
16
+
17
+ "<h#{header_level} id='#{text_slug}' class='heading'>" \
18
+ "#{text}" \
19
+ "</h#{header_level}>\n"
20
+ end
21
+
22
+ # List from
23
+ # https://github.com/apple/swift/blob/master/include/swift/Markup/SimpleFields.def
24
+ UNIQUELY_HANDLED_CALLOUTS = %w(parameters
25
+ parameter
26
+ returns).freeze
27
+ GENERAL_CALLOUTS = %w(attention
28
+ author
29
+ authors
30
+ bug
31
+ complexity
32
+ copyright
33
+ date
34
+ experiment
35
+ important
36
+ invariant
37
+ keyword
38
+ mutatingvariant
39
+ nonmutatingvariant
40
+ note
41
+ postcondition
42
+ precondition
43
+ recommended
44
+ recommendedover
45
+ remark
46
+ remarks
47
+ requires
48
+ see
49
+ seealso
50
+ since
51
+ todo
52
+ throws
53
+ version
54
+ warning).freeze
55
+ SPECIAL_LIST_TYPES = (UNIQUELY_HANDLED_CALLOUTS + GENERAL_CALLOUTS).freeze
56
+
57
+ SPECIAL_LIST_TYPE_REGEX = %r{
58
+ \A\s* # optional leading spaces
59
+ (<p>\s*)? # optional opening p tag
60
+ # any one of our special list types
61
+ (#{SPECIAL_LIST_TYPES.map(&Regexp.method(:escape)).join('|')})
62
+ [\s:] # followed by either a space or a colon
63
+ }ix
20
64
 
21
- # List from
22
- # https://github.com/apple/swift/blob/master/include/swift/Markup/SimpleFields.def
23
- UNIQUELY_HANDLED_CALLOUTS = %w(parameters
24
- parameter
25
- returns).freeze
26
- GENERAL_CALLOUTS = %w(attention
27
- author
28
- authors
29
- bug
30
- complexity
31
- copyright
32
- date
33
- experiment
34
- important
35
- invariant
36
- keyword
37
- mutatingvariant
38
- nonmutatingvariant
39
- note
40
- postcondition
41
- precondition
42
- recommended
43
- recommendedover
44
- remark
45
- remarks
46
- requires
47
- see
48
- seealso
49
- since
50
- todo
51
- throws
52
- version
53
- warning).freeze
54
- SPECIAL_LIST_TYPES = (UNIQUELY_HANDLED_CALLOUTS + GENERAL_CALLOUTS).freeze
55
-
56
- SPECIAL_LIST_TYPE_REGEX = %r{
57
- \A\s* # optional leading spaces
58
- (<p>\s*)? # optional opening p tag
59
- # any one of our special list types
60
- (#{SPECIAL_LIST_TYPES.map(&Regexp.method(:escape)).join('|')})
61
- [\s:] # followed by either a space or a colon
62
- }ix
63
-
64
- ELIDED_LI_TOKEN = '7wNVzLB0OYPL2eGlPKu8q4vITltqh0Y6DPZf659TPMAeYh49o'.freeze
65
-
66
- def list_item(text, _list_type)
67
- if text =~ SPECIAL_LIST_TYPE_REGEX
68
- type = Regexp.last_match(2)
69
- if UNIQUELY_HANDLED_CALLOUTS.include? type.downcase
70
- return ELIDED_LI_TOKEN
65
+ ELIDED_LI_TOKEN =
66
+ '7wNVzLB0OYPL2eGlPKu8q4vITltqh0Y6DPZf659TPMAeYh49o'.freeze
67
+
68
+ def list_item(text, _list_type)
69
+ if text =~ SPECIAL_LIST_TYPE_REGEX
70
+ type = Regexp.last_match(2)
71
+ if UNIQUELY_HANDLED_CALLOUTS.include? type.downcase
72
+ return ELIDED_LI_TOKEN
73
+ end
74
+ return render_aside(type, text.sub(/#{Regexp.escape(type)}:\s+/, ''))
71
75
  end
72
- return render_aside(type, text.sub(/#{Regexp.escape(type)}:\s+/, ''))
76
+ str = '<li>'
77
+ str << text.strip
78
+ str << "</li>\n"
73
79
  end
74
- str = '<li>'
75
- str << text.strip
76
- str << "</li>\n"
77
- end
78
80
 
79
- def render_aside(type, text)
80
- <<-HTML
81
+ def render_aside(type, text)
82
+ <<-HTML
81
83
  <div class="aside aside-#{type.underscore.tr('_', '-')}">
82
84
  <p class="aside-title">#{type.underscore.humanize}</p>
83
85
  #{text}
84
86
  </div>
85
- HTML
86
- end
87
+ HTML
88
+ end
87
89
 
88
- def list(text, list_type)
89
- elided = text.gsub!(ELIDED_LI_TOKEN, '')
90
- return if text =~ /\A\s*\Z/ && elided
91
- return text if text =~ /class="aside-title"/
92
- str = "\n"
93
- str << (list_type == :ordered ? "<ol>\n" : "<ul>\n")
94
- str << text
95
- str << (list_type == :ordered ? "</ol>\n" : "</ul>\n")
90
+ def list(text, list_type)
91
+ elided = text.gsub!(ELIDED_LI_TOKEN, '')
92
+ return if text =~ /\A\s*\Z/ && elided
93
+ return text if text =~ /class="aside-title"/
94
+ str = "\n"
95
+ str << (list_type == :ordered ? "<ol>\n" : "<ul>\n")
96
+ str << text
97
+ str << (list_type == :ordered ? "</ol>\n" : "</ul>\n")
98
+ end
96
99
  end
97
100
 
98
- OPTIONS = {
101
+ REDCARPET_OPTIONS = {
99
102
  autolink: true,
100
103
  fenced_code_blocks: true,
101
104
  no_intra_emphasis: true,
@@ -105,23 +108,87 @@ module Jazzy
105
108
  tables: true,
106
109
  lax_spacing: true,
107
110
  }.freeze
108
- end
109
111
 
110
- def self.markdown
111
- @markdown ||= Redcarpet::Markdown.new(JazzyHTML, JazzyHTML::OPTIONS)
112
- end
112
+ # Spot and capture returns & param HTML for separate display.
113
+ class JazzyDeclarationHTML < JazzyHTML
114
+ attr_reader :returns, :parameters
115
+
116
+ def reset
117
+ @returns = nil
118
+ @parameters = {}
119
+ end
120
+
121
+ INTRO_PAT = '\A(?<intro>\s*(<p>\s*)?)'.freeze
122
+ OUTRO_PAT = '(?<outro>.*)\z'.freeze
123
+
124
+ RETURNS_REGEX = /#{INTRO_PAT}returns:#{OUTRO_PAT}/im
125
+
126
+ IDENT_PAT = '(?<param>\S+)'.freeze
127
+
128
+ # Param formats: normal swift, objc via sourcekitten, and
129
+ # possibly inside 'Parameters:'
130
+ PARAM_PAT1 = "(parameter +#{IDENT_PAT}\\s*:)".freeze
131
+ PARAM_PAT2 = "(parameter:\\s*#{IDENT_PAT}\\s+)".freeze
132
+ PARAM_PAT3 = "(#{IDENT_PAT}\\s*:)".freeze
133
+
134
+ PARAM_PAT = "(?:#{PARAM_PAT1}|#{PARAM_PAT2}|#{PARAM_PAT3})".freeze
135
+
136
+ PARAM_REGEX = /#{INTRO_PAT}#{PARAM_PAT}#{OUTRO_PAT}/im
113
137
 
114
- class JazzyCopyright < Redcarpet::Render::HTML
115
- def link(link, _title, content)
116
- %(<a class="link" href="#{link}" target="_blank" \
138
+ def list_item(text, _list_type)
139
+ if text =~ RETURNS_REGEX
140
+ @returns = render_param_returns(Regexp.last_match)
141
+ elsif text =~ PARAM_REGEX
142
+ @parameters[Regexp.last_match(:param)] =
143
+ render_param_returns(Regexp.last_match)
144
+ end
145
+ super
146
+ end
147
+
148
+ def render_param_returns(matches)
149
+ body = matches[:intro].strip + matches[:outro].strip
150
+ body = "<p>#{body}</p>" unless body.start_with?('<p>')
151
+ Redcarpet::Render::SmartyPants.render(body)
152
+ end
153
+ end
154
+
155
+ def self.renderer
156
+ @renderer ||= JazzyDeclarationHTML.new
157
+ end
158
+
159
+ def self.markdown
160
+ @markdown ||= Redcarpet::Markdown.new(renderer, REDCARPET_OPTIONS)
161
+ end
162
+
163
+ def self.render(markdown_text)
164
+ renderer.reset
165
+ markdown.render(markdown_text)
166
+ end
167
+
168
+ def self.rendered_returns
169
+ renderer.returns
170
+ end
171
+
172
+ def self.rendered_parameters
173
+ renderer.parameters
174
+ end
175
+
176
+ class JazzyCopyright < Redcarpet::Render::HTML
177
+ def link(link, _title, content)
178
+ %(<a class="link" href="#{link}" target="_blank" \
117
179
  rel="external">#{content}</a>)
180
+ end
118
181
  end
119
- end
120
182
 
121
- def self.copyright_markdown
122
- @copyright_markdown ||= Redcarpet::Markdown.new(
123
- JazzyCopyright,
124
- JazzyHTML::OPTIONS,
125
- )
183
+ def self.copyright_markdown
184
+ @copyright_markdown ||= Redcarpet::Markdown.new(
185
+ JazzyCopyright,
186
+ REDCARPET_OPTIONS,
187
+ )
188
+ end
189
+
190
+ def self.render_copyright(markdown_text)
191
+ copyright_markdown.render(markdown_text)
192
+ end
126
193
  end
127
194
  end
@@ -48,7 +48,7 @@ module Jazzy
48
48
  module SourceKitten
49
49
  @documented_count = 0
50
50
  @undocumented_decls = []
51
- @default_abstract = Jazzy.markdown.render('Undocumented').freeze
51
+ @default_abstract = Markdown.render('Undocumented').freeze
52
52
 
53
53
  # Group root-level docs by custom categories (if any) and type
54
54
  def self.group_docs(docs)
@@ -94,7 +94,7 @@ module Jazzy
94
94
  SourceDeclaration.new.tap do |sd|
95
95
  sd.type = SourceDeclaration::Type.overview
96
96
  sd.name = name
97
- sd.abstract = Jazzy.markdown.render(abstract)
97
+ sd.abstract = Markdown.render(abstract)
98
98
  sd.children = group
99
99
  end
100
100
  end
@@ -284,28 +284,12 @@ module Jazzy
284
284
  make_default_doc_info(declaration)
285
285
  end
286
286
 
287
- def self.make_paragraphs(doc, key)
288
- return nil unless doc[key]
289
- doc[key].map do |p|
290
- if para = p['Para']
291
- Jazzy.markdown.render(para)
292
- elsif code = p['Verbatim'] || p['CodeListing']
293
- Jazzy.markdown.render("```\n#{code}```\n")
294
- else
295
- warn "Jazzy could not recognize the `#{p.keys.first}` tag. " \
296
- 'Please report this by filing an issue at ' \
297
- 'https://github.com/realm/jazzy/issues along with the comment ' \
298
- 'including this tag.'
299
- Jazzy.markdown.render(p.values.first)
300
- end
301
- end.join
302
- end
303
-
304
- def self.parameters(doc)
287
+ def self.parameters(doc, discovered)
305
288
  (doc['key.doc.parameters'] || []).map do |p|
289
+ name = p['name']
306
290
  {
307
- name: p['name'],
308
- discussion: make_paragraphs(p, 'discussion'),
291
+ name: name,
292
+ discussion: discovered[name],
309
293
  }
310
294
  end
311
295
  end
@@ -329,11 +313,10 @@ module Jazzy
329
313
  )
330
314
  end
331
315
 
332
- declaration.abstract = Jazzy.markdown.render(doc['key.doc.comment'] || '')
316
+ declaration.abstract = Markdown.render(doc['key.doc.comment'] || '')
333
317
  declaration.discussion = ''
334
- declaration.return = make_paragraphs(doc, 'key.doc.result_discussion')
335
-
336
- declaration.parameters = parameters(doc)
318
+ declaration.return = Markdown.rendered_returns
319
+ declaration.parameters = parameters(doc, Markdown.rendered_parameters)
337
320
 
338
321
  @documented_count += 1
339
322
  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.8.0
4
+ version: 0.8.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: 2017-04-27 00:00:00.000000000 Z
13
+ date: 2017-05-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cocoapods