jazzy 0.13.5 → 0.14.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/Tests.yml +52 -0
- data/.rubocop.yml +139 -24
- data/CHANGELOG.md +105 -0
- data/CONTRIBUTING.md +5 -5
- data/Dangerfile +11 -8
- data/Gemfile +3 -1
- data/Gemfile.lock +101 -77
- data/README.md +81 -13
- data/Rakefile +13 -12
- data/bin/jazzy +3 -2
- data/bin/sourcekitten +0 -0
- data/jazzy.gemspec +8 -6
- data/js/package-lock.json +30 -25
- data/js/package.json +3 -3
- data/lib/jazzy/config.rb +125 -72
- data/lib/jazzy/doc.rb +3 -1
- data/lib/jazzy/doc_builder.rb +79 -84
- data/lib/jazzy/docset_builder.rb +3 -1
- data/lib/jazzy/documentation_generator.rb +6 -2
- data/lib/jazzy/executable.rb +3 -0
- data/lib/jazzy/extensions/bitbucket/img/bitbucket.svg +11 -0
- data/lib/jazzy/{themes/apple/assets → extensions/github}/img/gh.png +0 -0
- data/lib/jazzy/extensions/gitlab/img/gitlab.svg +23 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Bold.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Bold.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Bold.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Italic.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Italic.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Italic.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Main-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-Italic.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-Italic.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Math-Italic.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Script-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Script-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Script-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size1-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size1-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size2-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size2-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size3-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size3-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size4-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size4-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- data/lib/jazzy/extensions/katex/css/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- data/lib/jazzy/extensions/katex/css/katex.min.css +1 -1
- data/lib/jazzy/extensions/katex/js/katex.min.js +1 -1
- data/lib/jazzy/gem_version.rb +3 -1
- data/lib/jazzy/highlighter.rb +17 -3
- data/lib/jazzy/jazzy_markdown.rb +112 -31
- data/lib/jazzy/podspec_documenter.rb +14 -16
- data/lib/jazzy/search_builder.rb +4 -3
- data/lib/jazzy/source_declaration/access_control_level.rb +7 -5
- data/lib/jazzy/source_declaration/type.rb +29 -3
- data/lib/jazzy/source_declaration.rb +18 -3
- data/lib/jazzy/source_document.rb +8 -5
- data/lib/jazzy/source_host.rb +111 -0
- data/lib/jazzy/source_mark.rb +8 -6
- data/lib/jazzy/source_module.rb +6 -6
- data/lib/jazzy/sourcekitten.rb +157 -86
- data/lib/jazzy/stats.rb +14 -3
- data/lib/jazzy/symbol_graph/constraint.rb +98 -0
- data/lib/jazzy/symbol_graph/ext_node.rb +116 -0
- data/lib/jazzy/symbol_graph/graph.rb +200 -0
- data/lib/jazzy/symbol_graph/relationship.rb +48 -0
- data/lib/jazzy/symbol_graph/sym_node.rb +176 -0
- data/lib/jazzy/symbol_graph/symbol.rb +248 -0
- data/lib/jazzy/symbol_graph.rb +95 -0
- data/lib/jazzy/themes/apple/assets/css/highlight.css.scss +63 -59
- data/lib/jazzy/themes/apple/assets/css/jazzy.css.scss +26 -2
- data/lib/jazzy/themes/apple/assets/js/jazzy.js +4 -0
- data/lib/jazzy/themes/apple/assets/js/jazzy.search.js +4 -0
- data/lib/jazzy/themes/apple/assets/js/jquery.min.js +2 -2
- data/lib/jazzy/themes/apple/assets/js/lunr.min.js +3 -3
- data/lib/jazzy/themes/apple/templates/doc.mustache +4 -5
- data/lib/jazzy/themes/apple/templates/footer.mustache +1 -1
- data/lib/jazzy/themes/apple/templates/header.mustache +6 -6
- data/lib/jazzy/themes/apple/templates/task.mustache +6 -11
- data/lib/jazzy/themes/fullwidth/assets/css/highlight.css.scss +63 -59
- data/lib/jazzy/themes/fullwidth/assets/css/jazzy.css.scss +11 -2
- data/lib/jazzy/themes/fullwidth/assets/js/jazzy.js +4 -0
- data/lib/jazzy/themes/fullwidth/assets/js/jazzy.search.js +4 -0
- data/lib/jazzy/themes/fullwidth/assets/js/jquery.min.js +2 -2
- data/lib/jazzy/themes/fullwidth/assets/js/lunr.min.js +3 -3
- data/lib/jazzy/themes/fullwidth/templates/doc.mustache +4 -5
- data/lib/jazzy/themes/fullwidth/templates/footer.mustache +1 -1
- data/lib/jazzy/themes/fullwidth/templates/header.mustache +8 -8
- data/lib/jazzy/themes/fullwidth/templates/task.mustache +6 -11
- data/lib/jazzy/themes/jony/assets/css/highlight.css.scss +63 -59
- data/lib/jazzy/themes/jony/assets/css/jazzy.css.scss +26 -2
- data/lib/jazzy/themes/jony/assets/js/jazzy.js +4 -0
- data/lib/jazzy/themes/jony/assets/js/jquery.min.js +2 -2
- data/lib/jazzy/themes/jony/templates/doc.mustache +4 -5
- data/lib/jazzy/themes/jony/templates/footer.mustache +1 -1
- data/lib/jazzy/themes/jony/templates/header.mustache +6 -6
- data/lib/jazzy/themes/jony/templates/task.mustache +6 -11
- data/lib/jazzy.rb +2 -0
- data/spec/integration_spec.rb +59 -45
- data/spec/spec_helper/pre_flight.rb +2 -0
- data/spec/spec_helper.rb +3 -1
- metadata +39 -19
- data/.circleci/config.yml +0 -83
- data/lib/jazzy/themes/fullwidth/assets/img/gh.png +0 -0
- data/lib/jazzy/themes/jony/assets/img/gh.png +0 -0
- data/spec/sourcekitten_spec.rb +0 -6
@@ -0,0 +1,111 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jazzy
|
4
|
+
# Deal with different source code repositories
|
5
|
+
module SourceHost
|
6
|
+
# Factory to create the right source host
|
7
|
+
def self.create(options)
|
8
|
+
return unless options.source_host_url || options.source_host_files_url
|
9
|
+
|
10
|
+
case options.source_host
|
11
|
+
when :github then GitHub.new
|
12
|
+
when :gitlab then GitLab.new
|
13
|
+
when :bitbucket then BitBucket.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Use GitHub as the default behaviour.
|
18
|
+
class GitHub
|
19
|
+
include Config::Mixin
|
20
|
+
|
21
|
+
# Human readable name, appears in UI
|
22
|
+
def name
|
23
|
+
'GitHub'
|
24
|
+
end
|
25
|
+
|
26
|
+
# Jazzy extension with logo
|
27
|
+
def extension
|
28
|
+
name.downcase
|
29
|
+
end
|
30
|
+
|
31
|
+
# Logo image filename within extension
|
32
|
+
def image
|
33
|
+
'gh.png'
|
34
|
+
end
|
35
|
+
|
36
|
+
# URL to link to from logo
|
37
|
+
def url
|
38
|
+
config.source_host_url
|
39
|
+
end
|
40
|
+
|
41
|
+
# URL to link to from a SourceDeclaration.
|
42
|
+
# Compare using `realpath` because `item.file` comes out of
|
43
|
+
# SourceKit/etc.
|
44
|
+
def item_url(item)
|
45
|
+
return unless files_url && item.file
|
46
|
+
|
47
|
+
realpath = item.file.realpath
|
48
|
+
return unless realpath.to_path.start_with?(local_root_realpath)
|
49
|
+
|
50
|
+
path = realpath.relative_path_from(local_root_realpath)
|
51
|
+
fragment =
|
52
|
+
if item.start_line && (item.start_line != item.end_line)
|
53
|
+
item_url_multiline_fragment(item.start_line, item.end_line)
|
54
|
+
else
|
55
|
+
item_url_line_fragment(item.line)
|
56
|
+
end
|
57
|
+
|
58
|
+
"#{files_url}/#{path}##{fragment}"
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def files_url
|
64
|
+
config.source_host_files_url
|
65
|
+
end
|
66
|
+
|
67
|
+
def local_root_realpath
|
68
|
+
@local_root_realpath ||= config.source_directory.realpath.to_path
|
69
|
+
end
|
70
|
+
|
71
|
+
# Source host's line numbering link scheme
|
72
|
+
def item_url_line_fragment(line)
|
73
|
+
"L#{line}"
|
74
|
+
end
|
75
|
+
|
76
|
+
def item_url_multiline_fragment(start_line, end_line)
|
77
|
+
"L#{start_line}-L#{end_line}"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# GitLab very similar to GitHub
|
82
|
+
class GitLab < GitHub
|
83
|
+
def name
|
84
|
+
'GitLab'
|
85
|
+
end
|
86
|
+
|
87
|
+
def image
|
88
|
+
'gitlab.svg'
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# BitBucket has its own line number system
|
93
|
+
class BitBucket < GitHub
|
94
|
+
def name
|
95
|
+
'Bitbucket'
|
96
|
+
end
|
97
|
+
|
98
|
+
def image
|
99
|
+
'bitbucket.svg'
|
100
|
+
end
|
101
|
+
|
102
|
+
def item_url_line_fragment(line)
|
103
|
+
"lines-#{line}"
|
104
|
+
end
|
105
|
+
|
106
|
+
def item_url_multiline_fragment(start_line, end_line)
|
107
|
+
"lines-#{start_line}:#{end_line}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
data/lib/jazzy/source_mark.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Jazzy
|
2
4
|
class SourceMark
|
3
5
|
attr_accessor :name
|
@@ -8,24 +10,24 @@ module Jazzy
|
|
8
10
|
return unless mark_string
|
9
11
|
|
10
12
|
# Format: 'MARK: - NAME -' with dashes optional
|
11
|
-
mark_string.sub
|
13
|
+
mark_content = mark_string.sub(/^MARK: /, '')
|
12
14
|
|
13
|
-
if
|
15
|
+
if mark_content.empty?
|
14
16
|
# Empty
|
15
17
|
return
|
16
|
-
elsif
|
18
|
+
elsif mark_content == '-'
|
17
19
|
# Separator
|
18
20
|
self.has_start_dash = true
|
19
21
|
return
|
20
22
|
end
|
21
23
|
|
22
|
-
self.has_start_dash =
|
23
|
-
self.has_end_dash =
|
24
|
+
self.has_start_dash = mark_content.start_with?('- ')
|
25
|
+
self.has_end_dash = mark_content.end_with?(' -')
|
24
26
|
|
25
27
|
start_index = has_start_dash ? 2 : 0
|
26
28
|
end_index = has_end_dash ? -3 : -1
|
27
29
|
|
28
|
-
self.name =
|
30
|
+
self.name = mark_content[start_index..end_index]
|
29
31
|
end
|
30
32
|
|
31
33
|
def self.new_generic_requirements(requirements)
|
data/lib/jazzy/source_module.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'uri'
|
2
4
|
|
3
5
|
require 'jazzy/config'
|
4
6
|
require 'jazzy/source_declaration'
|
7
|
+
require 'jazzy/source_host'
|
5
8
|
|
6
9
|
module Jazzy
|
7
10
|
class SourceModule
|
8
11
|
attr_accessor :name
|
9
|
-
attr_accessor :root_path
|
10
12
|
attr_accessor :docs
|
11
13
|
attr_accessor :doc_coverage
|
12
14
|
attr_accessor :doc_structure
|
13
15
|
attr_accessor :author_name
|
14
|
-
attr_accessor :github_url
|
15
|
-
attr_accessor :github_file_prefix
|
16
16
|
attr_accessor :author_url
|
17
17
|
attr_accessor :dash_url
|
18
|
+
attr_accessor :host
|
18
19
|
|
19
20
|
def initialize(options, docs, doc_structure, doc_coverage)
|
20
21
|
self.docs = docs
|
21
|
-
self.root_path = options.source_directory
|
22
22
|
self.doc_structure = doc_structure
|
23
23
|
self.doc_coverage = doc_coverage
|
24
24
|
self.name = options.module_name
|
25
25
|
self.author_name = options.author_name
|
26
|
-
self.github_url = options.github_url
|
27
|
-
self.github_file_prefix = options.github_file_prefix
|
28
26
|
self.author_url = options.author_url
|
27
|
+
self.host = SourceHost.create(options)
|
29
28
|
return unless options.dash_url
|
29
|
+
|
30
30
|
self.dash_url =
|
31
31
|
"dash-feed://#{ERB::Util.url_encode(options.dash_url.to_s)}"
|
32
32
|
end
|