jsduck 5.3.4 → 6.0.0beta
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/bin/jsduck +3 -3
- data/lib/jsduck/app.rb +1 -1
- data/lib/jsduck/assets.rb +3 -3
- data/lib/jsduck/base_type.rb +2 -2
- data/lib/jsduck/batch_processor.rb +3 -1
- data/lib/jsduck/categories/file.rb +2 -2
- data/lib/jsduck/class_doc_expander.rb +1 -1
- data/lib/jsduck/css/parser.rb +59 -90
- data/lib/jsduck/css/type.rb +55 -0
- data/lib/jsduck/doc/parser.rb +1 -1
- data/lib/jsduck/doc/scanner.rb +2 -2
- data/lib/jsduck/doc/subproperties.rb +1 -1
- data/lib/jsduck/export_writer.rb +4 -4
- data/lib/jsduck/exporter/app.rb +2 -1
- data/lib/jsduck/exporter/full.rb +5 -3
- data/lib/jsduck/external_classes.rb +337 -5
- data/lib/jsduck/format/class.rb +3 -3
- data/lib/jsduck/format/doc.rb +6 -5
- data/lib/jsduck/format/subproperties.rb +1 -1
- data/lib/jsduck/guide_toc.rb +45 -27
- data/lib/jsduck/guide_toc_entry.rb +54 -0
- data/lib/jsduck/guides.rb +9 -5
- data/lib/jsduck/img/dir.rb +1 -1
- data/lib/jsduck/inline/example.rb +3 -1
- data/lib/jsduck/inline/img.rb +3 -3
- data/lib/jsduck/inline/link.rb +2 -2
- data/lib/jsduck/inline/link_renderer.rb +3 -2
- data/lib/jsduck/inline/video.rb +2 -1
- data/lib/jsduck/js/class.rb +6 -11
- data/lib/jsduck/js/ext_define.rb +46 -0
- data/lib/jsduck/js/ext_patterns.rb +7 -2
- data/lib/jsduck/js/rkelly_adapter.rb +16 -2
- data/lib/jsduck/logger.rb +40 -25
- data/lib/jsduck/member_registry.rb +41 -0
- data/lib/jsduck/news.rb +18 -5
- data/lib/jsduck/options/config.rb +35 -0
- data/lib/jsduck/options/helpful_parser.rb +111 -0
- data/lib/jsduck/options/input_files.rb +60 -0
- data/lib/jsduck/options/jsb.rb +25 -0
- data/lib/jsduck/{options.rb → options/parser.rb} +436 -484
- data/lib/jsduck/options/processor.rb +47 -0
- data/lib/jsduck/options/record.rb +51 -0
- data/lib/jsduck/output_dir.rb +4 -4
- data/lib/jsduck/parser.rb +5 -5
- data/lib/jsduck/process/components.rb +19 -0
- data/lib/jsduck/process/ext4_events.rb +4 -2
- data/lib/jsduck/process/importer.rb +5 -2
- data/lib/jsduck/process/inherit_members.rb +2 -0
- data/lib/jsduck/process/lint.rb +3 -3
- data/lib/jsduck/process/no_doc.rb +1 -1
- data/lib/jsduck/process/overrides.rb +4 -3
- data/lib/jsduck/process/versions.rb +86 -51
- data/lib/jsduck/render/class.rb +3 -2
- data/lib/jsduck/render/subproperties.rb +18 -0
- data/lib/jsduck/render/tags.rb +13 -1
- data/lib/jsduck/source/file.rb +2 -2
- data/lib/jsduck/tag/class.rb +6 -0
- data/lib/jsduck/tag/component.rb +19 -0
- data/lib/jsduck/tag/css_mixin.rb +10 -0
- data/lib/jsduck/tag/deprecated.rb +1 -1
- data/{template-min/resources/images/class-m.png → lib/jsduck/tag/icons/class-large.png} +0 -0
- data/lib/jsduck/tag/icons/class-redirect.png +0 -0
- data/lib/jsduck/tag/icons/class.png +0 -0
- data/{template-min/resources/images/component-m.png → lib/jsduck/tag/icons/component-large.png} +0 -0
- data/lib/jsduck/tag/icons/component-redirect.png +0 -0
- data/lib/jsduck/tag/icons/component.png +0 -0
- data/{template-min/resources/images/singleton-m.png → lib/jsduck/tag/icons/singleton-large.png} +0 -0
- data/lib/jsduck/tag/icons/singleton-redirect.png +0 -0
- data/lib/jsduck/tag/icons/singleton.png +0 -0
- data/lib/jsduck/tag/inheritdoc.rb +2 -2
- data/lib/jsduck/tag/new.rb +13 -0
- data/lib/jsduck/tag/since.rb +2 -2
- data/lib/jsduck/tag/singleton.rb +13 -0
- data/lib/jsduck/tag/tag.rb +19 -0
- data/lib/jsduck/tag_registry.rb +20 -81
- data/lib/jsduck/util/io.rb +5 -0
- data/lib/jsduck/util/json.rb +3 -3
- data/lib/jsduck/util/null_object.rb +14 -1
- data/lib/jsduck/util/parallel.rb +7 -3
- data/lib/jsduck/version.rb +1 -1
- data/lib/jsduck/warning/registry.rb +4 -2
- data/lib/jsduck/warning/tag.rb +57 -0
- data/lib/jsduck/web/class_icons.rb +76 -0
- data/lib/jsduck/web/css.rb +12 -1
- data/lib/jsduck/web/data.rb +4 -3
- data/lib/jsduck/web/index_html.rb +26 -10
- data/lib/jsduck/web/member_icons.rb +3 -3
- data/lib/jsduck/web/search.rb +4 -4
- data/lib/jsduck/web/source.rb +1 -1
- data/lib/jsduck/web/template.rb +6 -6
- data/lib/jsduck/web/tree.rb +22 -0
- data/lib/jsduck/web/writer.rb +11 -9
- data/template-min/app-0f524ddd276c4019a11a6128932a9c96.js +1 -0
- data/template-min/index-template.html +1 -1
- data/template-min/print-template.html +1 -1
- data/template-min/resources/css/{app-4689d2a5522dcd3c9e9923ca59c33f27.css → app-de670120f43fdad3091a0cc2c10daadb.css} +1 -1
- data/template-min/resources/images/icons.xcf +0 -0
- data/template-min/template.html +2 -2
- metadata +46 -13
- data/lib/jsduck/css/lexer.rb +0 -203
- data/lib/jsduck/option_parser.rb +0 -109
- data/lib/jsduck/web/icons.rb +0 -31
- data/template-min/app-0c945a27f43452df695771ddb60b3d14.js +0 -1
data/lib/jsduck/util/json.rb
CHANGED
@@ -17,9 +17,9 @@ module JsDuck
|
|
17
17
|
@pretty = false
|
18
18
|
end
|
19
19
|
|
20
|
-
#
|
21
|
-
def
|
22
|
-
@pretty =
|
20
|
+
# Configures the pretty-formatting from command line options.
|
21
|
+
def configure(opts)
|
22
|
+
@pretty = true if opts.pretty_json
|
23
23
|
end
|
24
24
|
|
25
25
|
# Turns object into JSON, places it inside JavaScript that calls the
|
@@ -15,7 +15,20 @@ module JsDuck
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def method_missing(meth, *args, &block)
|
18
|
-
@methods.has_key?(meth)
|
18
|
+
if @methods.has_key?(meth)
|
19
|
+
value = @methods[meth]
|
20
|
+
if value.respond_to?(:call)
|
21
|
+
value.call(*args, &block)
|
22
|
+
else
|
23
|
+
value
|
24
|
+
end
|
25
|
+
else
|
26
|
+
self
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def respond_to?(meth)
|
31
|
+
@methods.has_key?(meth)
|
19
32
|
end
|
20
33
|
end
|
21
34
|
|
data/lib/jsduck/util/parallel.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'jsduck/util/os'
|
1
2
|
require 'parallel'
|
2
3
|
|
3
4
|
module JsDuck
|
@@ -8,9 +9,12 @@ module JsDuck
|
|
8
9
|
class Parallel
|
9
10
|
@@in_processes = nil
|
10
11
|
|
11
|
-
#
|
12
|
-
|
13
|
-
|
12
|
+
# Configures the logger to use as many processes as set in
|
13
|
+
# command line options. When in Windows, turns the parallel
|
14
|
+
# processing off by default.
|
15
|
+
def self.configure(opts)
|
16
|
+
@@in_processes = 0 if Util::OS::windows?
|
17
|
+
@@in_processes = opts.processes if opts.processes
|
14
18
|
end
|
15
19
|
|
16
20
|
def self.each(arr, &block)
|
data/lib/jsduck/version.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'jsduck/warning/basic'
|
2
2
|
require 'jsduck/warning/nodoc'
|
3
|
+
require 'jsduck/warning/tag'
|
3
4
|
require 'jsduck/warning/deprecated'
|
4
5
|
require 'jsduck/warning/all'
|
5
6
|
require 'jsduck/warning/warn_exception'
|
@@ -19,7 +20,6 @@ module JsDuck
|
|
19
20
|
[:global, "Member doesn't belong to any class"],
|
20
21
|
[:inheritdoc, "@inheritdoc referring to unknown class or member"],
|
21
22
|
[:extend, "@extend/mixin/requires/uses referring to unknown class"],
|
22
|
-
[:tag, "Use of unsupported @tag"],
|
23
23
|
[:tag_repeated, "An @tag used multiple times, but only once allowed"],
|
24
24
|
[:tag_syntax, "@tag syntax error"],
|
25
25
|
[:link, "{@link} to unknown class or member"],
|
@@ -42,7 +42,6 @@ module JsDuck
|
|
42
42
|
|
43
43
|
[:image, "{@img} referring to missing file"],
|
44
44
|
[:image_unused, "An image exists in --images dir that's not used"],
|
45
|
-
[:cat_old_format, "Categories file uses old deprecated format"],
|
46
45
|
[:cat_no_match, "Class pattern in categories file matches nothing"],
|
47
46
|
[:cat_class_missing, "Class is missing from categories file"],
|
48
47
|
[:guide, "Guide is missing from --guides dir"],
|
@@ -53,6 +52,9 @@ module JsDuck
|
|
53
52
|
register(w[0], Warning::Basic.new(w[0], w[1]))
|
54
53
|
end
|
55
54
|
|
55
|
+
# :tag warning
|
56
|
+
register(:tag, Warning::Tag.new)
|
57
|
+
|
56
58
|
# :nodoc warning
|
57
59
|
register(:nodoc, Warning::Nodoc.new)
|
58
60
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module JsDuck
|
2
|
+
module Warning
|
3
|
+
|
4
|
+
# Unknown tag warning.
|
5
|
+
class Tag
|
6
|
+
|
7
|
+
# Creates the :tag warning type
|
8
|
+
def initialize
|
9
|
+
@rules = []
|
10
|
+
# disable by default
|
11
|
+
set(false)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Enables or disables a particular sub-warning
|
15
|
+
def set(enabled, path_pattern=nil, tagnames=[])
|
16
|
+
@rules.unshift({
|
17
|
+
:enabled => enabled,
|
18
|
+
:tagnames => tagnames,
|
19
|
+
:path_re => path_pattern ? Regexp.new(Regexp.escape(path_pattern)) : nil
|
20
|
+
})
|
21
|
+
end
|
22
|
+
|
23
|
+
# True when the warning is enabled for the given filename and
|
24
|
+
# params combination where params contains one tagname.
|
25
|
+
def enabled?(filename="", params=[])
|
26
|
+
tagname = params[0]
|
27
|
+
|
28
|
+
# Filter out the most recently added rule that applies to our current item
|
29
|
+
match = @rules.find do |r|
|
30
|
+
(r[:tagnames].empty? || r[:tagnames].include?(tagname)) &&
|
31
|
+
(r[:path_re].nil? || r[:path_re] =~ filename)
|
32
|
+
end
|
33
|
+
|
34
|
+
return match[:enabled]
|
35
|
+
end
|
36
|
+
|
37
|
+
# Extensive documentation for :nodoc warning
|
38
|
+
def doc
|
39
|
+
[
|
40
|
+
"",
|
41
|
+
" +tag(<name1>,<name2>,...) - Use of unsupported @tag",
|
42
|
+
"",
|
43
|
+
" This warning type can optionally take a list of tag names",
|
44
|
+
" to limit its effect to only these tags.",
|
45
|
+
"",
|
46
|
+
" So, to disable warnings for JavaDoc tags @file and @overview",
|
47
|
+
" which aren't supported by JSDuck:",
|
48
|
+
"",
|
49
|
+
" --warnings='-tag(file,overview)'",
|
50
|
+
"",
|
51
|
+
]
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'jsduck/tag_registry'
|
2
|
+
require 'jsduck/logger'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module JsDuck
|
6
|
+
module Web
|
7
|
+
class ClassIcons
|
8
|
+
class << self
|
9
|
+
# Returns CSS class name for an icon of class
|
10
|
+
def get(cls)
|
11
|
+
class_icon_providers.each do |tag|
|
12
|
+
if cls[tag.tagname]
|
13
|
+
return "icon-#{tag.tagname}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
return "icon-class"
|
18
|
+
end
|
19
|
+
|
20
|
+
# Generates CSS for class icons
|
21
|
+
def css
|
22
|
+
css = []
|
23
|
+
class_icon_providers.each do |tag|
|
24
|
+
css << <<-EOCSS
|
25
|
+
#center-container h1.icon-#{tag.tagname} .class-source-link {
|
26
|
+
background: url(class-icons/#{tag.tagname}-large.png) no-repeat 0 -5px; }
|
27
|
+
#treecontainer .x-grid-cell-inner .icon-#{tag.tagname} {
|
28
|
+
background: url(class-icons/#{tag.tagname}.png) no-repeat; }
|
29
|
+
#search-dropdown .icon-#{tag.tagname} {
|
30
|
+
background: url(class-icons/#{tag.tagname}.png) no-repeat; }
|
31
|
+
#search-dropdown .icon-#{tag.tagname}-redirect {
|
32
|
+
background: url(class-icons/#{tag.tagname}-redirect.png) no-repeat; }
|
33
|
+
.doctabs .icon-#{tag.tagname} {
|
34
|
+
background: url(class-icons/#{tag.tagname}.png) no-repeat; }
|
35
|
+
EOCSS
|
36
|
+
end
|
37
|
+
css.join("\n")
|
38
|
+
end
|
39
|
+
|
40
|
+
# Copies all class icons to given destination dir.
|
41
|
+
def write(dir)
|
42
|
+
FileUtils.mkdir(dir)
|
43
|
+
|
44
|
+
icons = {}
|
45
|
+
class_icon_providers.each do |tag|
|
46
|
+
icons[tag.class_icon[:small]] = "#{dir}/#{tag.tagname}.png"
|
47
|
+
icons[tag.class_icon[:large]] = "#{dir}/#{tag.tagname}-large.png"
|
48
|
+
icons[tag.class_icon[:redirect]] = "#{dir}/#{tag.tagname}-redirect.png"
|
49
|
+
end
|
50
|
+
|
51
|
+
icons.each_pair do |source, target|
|
52
|
+
if File.exists?(source)
|
53
|
+
FileUtils.cp(source, target)
|
54
|
+
else
|
55
|
+
Logger.warn(nil, "Class icon file not found", {:filename => source})
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def class_icon_providers
|
63
|
+
@providers ||= generate_class_icon_providers
|
64
|
+
end
|
65
|
+
|
66
|
+
# Find tags with #class_icon and sort them from highest priority to lowest
|
67
|
+
def generate_class_icon_providers
|
68
|
+
TagRegistry.tags.find_all {|t| t.class_icon }.sort do |a, b|
|
69
|
+
a.class_icon[:priority] <=> b.class_icon[:priority]
|
70
|
+
end.reverse
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
data/lib/jsduck/web/css.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'jsduck/tag_registry'
|
2
2
|
require 'jsduck/util/md5'
|
3
|
+
require 'jsduck/web/class_icons'
|
3
4
|
require 'jsduck/web/member_icons'
|
4
5
|
|
5
6
|
module JsDuck
|
@@ -21,7 +22,17 @@ module JsDuck
|
|
21
22
|
private
|
22
23
|
|
23
24
|
def all_css
|
24
|
-
|
25
|
+
[
|
26
|
+
css_from_tags,
|
27
|
+
Web::ClassIcons.css,
|
28
|
+
Web::MemberIcons.css,
|
29
|
+
@opts.css,
|
30
|
+
].join
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns all the CSS gathered from @css attributes of tags.
|
34
|
+
def css_from_tags
|
35
|
+
TagRegistry.tags.map(&:css).compact.join("\n")
|
25
36
|
end
|
26
37
|
end
|
27
38
|
|
data/lib/jsduck/web/data.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'jsduck/util/json'
|
2
2
|
require 'jsduck/util/md5'
|
3
|
-
require 'jsduck/web/
|
3
|
+
require 'jsduck/web/tree'
|
4
4
|
require 'jsduck/web/search'
|
5
5
|
require 'jsduck/tag_registry'
|
6
|
+
require 'jsduck/member_registry'
|
6
7
|
|
7
8
|
module JsDuck
|
8
9
|
module Web
|
@@ -21,7 +22,7 @@ module JsDuck
|
|
21
22
|
def write(filename)
|
22
23
|
js = "Docs = " + Util::Json.generate({
|
23
24
|
:data => {
|
24
|
-
:classes => Web::
|
25
|
+
:classes => Web::Tree.create(@relations.classes),
|
25
26
|
:guides => @assets.guides.to_array,
|
26
27
|
:videos => @assets.videos.to_array,
|
27
28
|
:examples => @assets.examples.to_array,
|
@@ -29,7 +30,7 @@ module JsDuck
|
|
29
30
|
:guideSearch => @opts.search,
|
30
31
|
:tests => @opts.tests,
|
31
32
|
:signatures => TagRegistry.signatures,
|
32
|
-
:memberTypes =>
|
33
|
+
:memberTypes => MemberRegistry.definitions,
|
33
34
|
:localStorageDb => @opts.local_storage_db,
|
34
35
|
:showPrintButton => @opts.seo,
|
35
36
|
:touchExamplesUi => @opts.touch_examples_ui,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'jsduck/logger'
|
2
2
|
require 'jsduck/util/io'
|
3
3
|
require 'jsduck/tag_registry'
|
4
|
+
require 'jsduck/version'
|
4
5
|
require 'fileutils'
|
5
6
|
|
6
7
|
module JsDuck
|
@@ -19,12 +20,12 @@ module JsDuck
|
|
19
20
|
# When --seo enabled, creates index.php, template.html and print-template.html.
|
20
21
|
def write
|
21
22
|
if @opts.seo
|
22
|
-
FileUtils.cp(@opts.
|
23
|
-
create_template_html(@opts.
|
24
|
-
create_print_template_html(@opts.
|
25
|
-
create_index_template_html(@opts.
|
23
|
+
FileUtils.cp(@opts.template+"/index.php", @opts.output+"/index.php")
|
24
|
+
create_template_html(@opts.template+"/template.html", @opts.output+"/template.html")
|
25
|
+
create_print_template_html(@opts.template+"/print-template.html", @opts.output+"/print-template.html")
|
26
|
+
create_index_template_html(@opts.template+"/index-template.html", @opts.output+"/index-template.html")
|
26
27
|
else
|
27
|
-
create_template_html(@opts.
|
28
|
+
create_template_html(@opts.template+"/template.html", @opts.output+"/index.html")
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
@@ -33,9 +34,9 @@ module JsDuck
|
|
33
34
|
def create_template_html(in_file, out_file)
|
34
35
|
write_template(in_file, out_file, {
|
35
36
|
"{title}" => @opts.title,
|
36
|
-
"{mobile_redirect}" => @opts.seo ? include_script(@opts.
|
37
|
-
"{header}" =>
|
38
|
-
"{footer}" =>
|
37
|
+
"{mobile_redirect}" => @opts.seo ? include_script(@opts.template+"/mobile-redirect.js") : "",
|
38
|
+
"{header}" => header,
|
39
|
+
"{footer}" => footer,
|
39
40
|
"{extjs_path}" => @opts.extjs_path,
|
40
41
|
"{data_path}" => File.basename(@paths[:data]),
|
41
42
|
"{css_path}" => File.basename(@paths[:css]),
|
@@ -51,7 +52,7 @@ module JsDuck
|
|
51
52
|
def create_print_template_html(in_file, out_file)
|
52
53
|
write_template(in_file, out_file, {
|
53
54
|
"{title}" => @opts.title,
|
54
|
-
"{header}" =>
|
55
|
+
"{header}" => header,
|
55
56
|
"{css_path}" => File.basename(@paths[:css]),
|
56
57
|
})
|
57
58
|
end
|
@@ -62,7 +63,7 @@ module JsDuck
|
|
62
63
|
|
63
64
|
write_template(in_file, out_file, {
|
64
65
|
"{title}" => @opts.title,
|
65
|
-
"{header}" =>
|
66
|
+
"{header}" => header,
|
66
67
|
"{categories}" => categories ? "<h1>API Documentation</h1> #{categories}" : "",
|
67
68
|
"{guides}" => guides ? "<h1>Guides</h1> #{guides}" : "",
|
68
69
|
"{css_path}" => File.basename(@paths[:css]),
|
@@ -73,6 +74,21 @@ module JsDuck
|
|
73
74
|
"<script type='text/javascript'>\n" + Util::IO.read(filename) + "\n</script>"
|
74
75
|
end
|
75
76
|
|
77
|
+
def header
|
78
|
+
@opts.title.sub(/^(.*?) +- +/, "<strong>\\1</strong> ")
|
79
|
+
end
|
80
|
+
|
81
|
+
def footer
|
82
|
+
jsduck = "<a href='https://github.com/senchalabs/jsduck'>JSDuck</a>"
|
83
|
+
date = Time.new.strftime('%a %d %b %Y %H:%M:%S')
|
84
|
+
|
85
|
+
footer_text = @opts.footer.gsub(/\{VERSION\}/, JsDuck::VERSION)
|
86
|
+
.gsub(/\{JSDUCK\}/, jsduck)
|
87
|
+
.gsub(/\{DATE\}/, date)
|
88
|
+
|
89
|
+
return "<div id='footer-content' style='display: none'>#{footer_text}</div>"
|
90
|
+
end
|
91
|
+
|
76
92
|
# Opens in_file, replaces {keys} inside it, writes to out_file
|
77
93
|
def write_template(in_file, out_file, replacements)
|
78
94
|
Logger.log("Writing", out_file)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'jsduck/
|
1
|
+
require 'jsduck/member_registry'
|
2
2
|
require 'fileutils'
|
3
3
|
|
4
4
|
module JsDuck
|
@@ -29,13 +29,13 @@ module JsDuck
|
|
29
29
|
if File.exists?(m[:icon])
|
30
30
|
FileUtils.cp(m[:icon], "#{dir}/#{m[:name]}.png")
|
31
31
|
else
|
32
|
-
Logger.warn(nil, "Member icon file not found", m[:icon])
|
32
|
+
Logger.warn(nil, "Member icon file not found", {:filename => m[:icon]})
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
37
|
def self.members_with_icons
|
38
|
-
|
38
|
+
MemberRegistry.definitions.find_all {|m| m[:icon] }
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
data/lib/jsduck/web/search.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'jsduck/web/
|
1
|
+
require 'jsduck/web/class_icons'
|
2
2
|
require 'jsduck/class_name'
|
3
3
|
require 'jsduck/tag_registry'
|
4
4
|
|
@@ -52,7 +52,7 @@ module JsDuck
|
|
52
52
|
return {
|
53
53
|
:name => name,
|
54
54
|
:fullName => alias_display_name(key)+": "+name,
|
55
|
-
:icon => Web::
|
55
|
+
:icon => Web::ClassIcons.get(cls) + "-redirect",
|
56
56
|
:url => "#!/api/" + cls[:name],
|
57
57
|
:meta => combine_meta(cls),
|
58
58
|
:sort => 0,
|
@@ -63,7 +63,7 @@ module JsDuck
|
|
63
63
|
return {
|
64
64
|
:name => ClassName.short(cls[:name]),
|
65
65
|
:fullName => cls[:name],
|
66
|
-
:icon => Web::
|
66
|
+
:icon => Web::ClassIcons.get(cls),
|
67
67
|
:url => "#!/api/" + cls[:name],
|
68
68
|
:meta => combine_meta(cls),
|
69
69
|
:sort => 1,
|
@@ -75,7 +75,7 @@ module JsDuck
|
|
75
75
|
:name => ClassName.short(name),
|
76
76
|
:fullName => name,
|
77
77
|
:type => :class,
|
78
|
-
:icon => Web::
|
78
|
+
:icon => Web::ClassIcons.get(cls) + "-redirect",
|
79
79
|
:url => "#!/api/" + cls[:name],
|
80
80
|
:meta => combine_meta(cls),
|
81
81
|
:sort => 2,
|
data/lib/jsduck/web/source.rb
CHANGED
data/lib/jsduck/web/template.rb
CHANGED
@@ -21,16 +21,16 @@ module JsDuck
|
|
21
21
|
|
22
22
|
def write
|
23
23
|
if @opts.template_links
|
24
|
-
Logger.log("Linking template files to", @opts.
|
24
|
+
Logger.log("Linking template files to", @opts.output)
|
25
25
|
move_files(:symlink)
|
26
26
|
else
|
27
|
-
Logger.log("Copying template files to", @opts.
|
27
|
+
Logger.log("Copying template files to", @opts.output)
|
28
28
|
move_files(:cp_r)
|
29
29
|
end
|
30
30
|
|
31
31
|
# always copy the eg-iframe file.
|
32
|
-
eg_iframe = @opts.eg_iframe || @opts.
|
33
|
-
FileUtils.cp(eg_iframe, @opts.
|
32
|
+
eg_iframe = @opts.eg_iframe || @opts.template+"/eg-iframe.html"
|
33
|
+
FileUtils.cp(eg_iframe, @opts.output+"/eg-iframe.html")
|
34
34
|
end
|
35
35
|
|
36
36
|
private
|
@@ -38,8 +38,8 @@ module JsDuck
|
|
38
38
|
# moves files from one dir to another using a method of FileUtils module.
|
39
39
|
def move_files(method)
|
40
40
|
@files.each do |file|
|
41
|
-
target = File.expand_path(@opts.
|
42
|
-
Dir.glob(File.expand_path(@opts.
|
41
|
+
target = File.expand_path(@opts.output)
|
42
|
+
Dir.glob(File.expand_path(@opts.template+"/"+file)).each do |source|
|
43
43
|
FileUtils.send(method, source, target)
|
44
44
|
end
|
45
45
|
end
|