jsduck 2.0.pre → 2.0.pre2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  JsDuck
2
2
  ======
3
3
 
4
- Simple JavaScript Duckumentation generator.
4
+ API documentation generator for ExtJS 4.
5
5
 
6
6
  ,~~.
7
7
  ( 6 )-_,
@@ -10,46 +10,16 @@ Simple JavaScript Duckumentation generator.
10
10
  \ `-' / hjw
11
11
  ~'`~'`~'`~'`~
12
12
 
13
- JsDuck aims to be a better documentation generator for [ExtJS][].
14
- While it tries to do everything that [ext-doc][] does, it isn't
15
- satisfied with it and aims to make your life much easier.
13
+ JsDuck aims to be a better documentation generator for [ExtJS][] than
14
+ the old [ext-doc][] was.
16
15
 
17
- Basically JsDuck thinks that the following doc-comment really sucks:
16
+ The standard way to give some structure to the JavaDoc-style code
17
+ documentation is to use HTML in doc-comments. Although the resulting
18
+ documentation will look pretty, this is often achieved by sacrificing
19
+ the readability of comments - HTML can get quite ugly.
18
20
 
19
- /**
20
- * @class Ext.form.TextField
21
- * @extends Ext.form.Field
22
- * <p>Basic text field. Can be used as a direct replacement for traditional
23
- * text inputs, or as the base class for more sophisticated input controls
24
- * (like {@link Ext.form.TextArea} and {@link Ext.form.ComboBox}).</p>
25
- * <p><b><u>Validation</u></b></p>
26
- * <p>The validation procedure is described in the documentation for
27
- * {@link #validateValue}.</p>
28
- * <p><b><u>Alter Validation Behavior</u></b></p>
29
- * <p>Validation behavior for each field can be configured:</p>
30
- * <div class="mdetail-params"><ul>
31
- * <li><code>{@link Ext.form.TextField#invalidText invalidText}</code> :
32
- * the default validation message to show if any validation step above does
33
- * not provide a message when invalid</li>
34
- * <li><code>{@link Ext.form.TextField#maskRe maskRe}</code> :
35
- * filter out keystrokes before any validation occurs</li>
36
- * <li><code>{@link Ext.form.TextField#stripCharsRe stripCharsRe}</code> :
37
- * filter characters after being typed in, but before being validated</li>
38
- * </ul></div>
39
- *
40
- * @constructor Creates a new TextField
41
- * @param {Object} config Configuration options
42
- *
43
- * @xtype textfield
44
- */
45
- Ext.form.TextField = Ext.extend(Ext.form.Field, {
46
-
47
- Not quite so readable is it? The source of ExtJS is filled with
48
- comments just like that, and when you use ext-doc, you too are forced
49
- to write such comments.
50
-
51
- JsDuck does not like it. Although it can handle comments like this,
52
- it would like that you wrote comments like that instead:
21
+ JsDuck does not like it. Although it can handle comments written in
22
+ HTML, it prefers a friendlier [Markdown][] syntax:
53
23
 
54
24
  /**
55
25
  * Basic text field. Can be used as a direct replacement for traditional
@@ -77,16 +47,12 @@ it would like that you wrote comments like that instead:
77
47
  *
78
48
  * @xtype textfield
79
49
  */
80
- Ext.form.TextField = Ext.extend(Ext.form.Field, {
50
+ Ext.define('Ext.form.field.Text', {
51
+ extend: 'Ext.form.field.Base',
81
52
 
82
- As you can see, JsDuck supports formatting comments with friendly
83
- [Markdown][] syntax. And it can infer several things from the code
84
- (like @class and @extends in this case), so you don't have to repeat
85
- yourself. Also the constructor documentation is inherited from parent
86
- class - so you don't have to restate that it takes a config object
87
- again.
88
-
89
- That's basically it. Have fun.
53
+ As you can see, JsDuck can infer several things from the code (like
54
+ `@class` and `@extends` in this case), so you don't have to repeat
55
+ yourself.
90
56
 
91
57
  [ExtJS]: http://www.sencha.com/products/js/
92
58
  [ext-doc]: http://ext-doc.org/
@@ -96,18 +62,27 @@ That's basically it. Have fun.
96
62
  Getting it
97
63
  ----------
98
64
 
99
- Standard rubygems install should do:
65
+ Standard rubygems install should do (use the `--pre` switch to get the
66
+ latest 2.0 version which this README documents, otherwise you will get
67
+ the stable but quite old [0.6][v0.6] version):
100
68
 
101
- $ [sudo] gem install jsduck
69
+ $ [sudo] gem install --pre jsduck
102
70
 
103
- For hacking fork it from github.
71
+ For hacking fork it from github:
104
72
 
105
73
  $ git clone git://github.com/senchalabs/jsduck.git
106
74
  $ cd jsduck
107
75
  $ rake --tasks
108
76
 
109
- JsDuck depends on [json][], [RDiscount][], and [parallel][] plus [RSpec][] for tests.
77
+ JsDuck depends on [json][], [RDiscount][], and [parallel][]; plus
78
+ [RSpec][] for tests.
79
+
80
+ If you encounter errors during gem installation, you may need to
81
+ install the header files for compiling extension modules for ruby 1.8.
82
+ For Debian systems you'll need the `ruby1.8-dev` package. For Red Hat
83
+ / CentOS / Fedora use the `ruby-devel` package.
110
84
 
85
+ [v0.6]: https://github.com/senchalabs/jsduck/tree/v0.6
111
86
  [json]: http://flori.github.com/json/
112
87
  [RDiscount]: https://github.com/rtomayko/rdiscount
113
88
  [parallel]: https://github.com/grosser/parallel
@@ -120,37 +95,39 @@ Usage
120
95
  Just call it from command line with output directory and a directory
121
96
  containing your JavaScript files:
122
97
 
123
- $ jsduck --verbose --output some/dir your/project/js
98
+ $ jsduck your/project/js --verbose --output your/docs
124
99
 
125
100
  The `--verbose` flag creates a lot of output, but at least you will
126
101
  see that something is happening.
127
102
 
128
- You pass in both directories and JavaScript files. For example to
129
- generate docs for ExtJS 3, the simplest way is the following:
130
103
 
131
- $ jsduck -v -o output/ ext-3.3.1/src/
104
+ ## Generating Docs for ExtJS 4
132
105
 
133
- But this will give you a bunch of warnings, so you should better
134
- create a script that takes just the files really needed and passes
135
- them through `xargs` to `jsduck`:
106
+ For the simplest test-run just pass in the src/ dir of ExtJS 4. But
107
+ to get more similar result to the [official ExtJS 4
108
+ documentation][official], you should pass in some extra options and
109
+ copy over the doc-resources directory, which contains the images
110
+ referenced by the documentation:
136
111
 
137
- $ find ext-3.3.1/src/ -name '*.js' | egrep -v 'locale/|test/|adapter/' | xargs jsduck -v -o output/
112
+ $ jsduck ext-4.0.2a/src --output your/docs --ignore-global --exclude Error
113
+ $ cp -r ext-4.0.2a/docs/doc-resources your/docs/doc-resources
138
114
 
139
- Here's how the resulting documentation will look (ExtJS 3.3.1):
115
+ The `--ignore-global` will avoid the creation of a `global` class.
116
+ The `--exclude Error` will ignore references to the `Error` class,
117
+ which would otherwise result in several warnings.
140
118
 
141
- * [JsDuck generated documentation](http://triin.net/temp/jsduck/)
142
- * [Official ExtJS documentation](http://dev.sencha.com/deploy/dev/docs/) (for comparison)
119
+ Still, running JSDuck with the current ext-4.0.2a release is expected
120
+ to generate a lot of warnings. These should be fixed in some later
121
+ releases.
143
122
 
144
- Here's the same for ExtJS 4:
123
+ [official]: http://docs.sencha.com/ext-js/4-0/
145
124
 
146
- * [JsDuck generated documentation](http://triin.net/temp/jsduck4/)
147
- * [Official ExtJS documentation](http://docs.sencha.com/ext-js/4-0/api) (for comparison)
148
125
 
126
+ Documenting your code with JSDuck
127
+ ---------------------------------
149
128
 
150
- Documentation
151
- -------------
152
-
153
- Overview of documenting your code with JsDuck:
129
+ Here's an overview of [all the available @tags][tags], and how to use
130
+ them:
154
131
 
155
132
  * [Class](https://github.com/senchalabs/jsduck/wiki/Class)
156
133
  * [Constructor](https://github.com/senchalabs/jsduck/wiki/Constructor)
@@ -159,75 +136,36 @@ Overview of documenting your code with JsDuck:
159
136
  * [Methods](https://github.com/senchalabs/jsduck/wiki/Method)
160
137
  * [Events](https://github.com/senchalabs/jsduck/wiki/Event)
161
138
 
162
- More details:
163
-
164
- * [List of supported @tags][tags]
165
- * [List of doc-comment errors(?) found in ExtJS source][errors]
166
-
167
139
  [tags]: https://github.com/senchalabs/jsduck/wiki/List-of-supported-@tags
168
- [errors]: https://github.com/senchalabs/jsduck/wiki/List-of-doc-comment-errors(%3F)-found-in-ExtJS-source
169
-
170
-
171
- Features and differences from ext-doc
172
- -------------------------------------
173
-
174
- JsDuck has some strong opinions, so some things are intentionally
175
- missing.
176
-
177
- * Support for Markdown in comments
178
- * More things inferred from the code
179
- * No XML configuration file, just command line options
180
- * Class documentation header doesn't separately list Package and Class -
181
- these are IMHO redundant.
182
- * Class documentation header doesn't duplicate toolbar buttons -
183
- another redundancy
184
- * Ext.Component has a component icon too, not only its descendants
185
-
186
-
187
- Missing features and TODO
188
- -------------------------
189
-
190
- * Support for custom @tags. Ext-doc supports this, I personally have
191
- never used this feature, so I'm thinking it's not really needed.
192
140
 
193
141
 
194
142
  Copying
195
143
  -------
196
144
 
197
- JsDuck is distributed under the terms of the GNU General Public License version 3.
145
+ JsDuck is distributed under the terms of the GNU General Public
146
+ License version 3.
198
147
 
199
148
  JsDuck was developed by [Rene Saarsoo](http://triin.net),
200
- with contributions from [Ondřej Jirman](https://github.com/megous)
201
- and [Nick Poulden](https://github.com/nick).
149
+ with many contributions from [Nick Poulden](https://github.com/nick).
150
+
151
+ Thanks to [Ondřej Jirman](https://github.com/megous),
152
+ [Thomas Aylott](https://github.com/subtleGradient),
153
+ [johnnywengluu](https://github.com/johnnywengluu),
154
+ [gevik](https://github.com/gevik),
155
+ [ligaard](https://github.com/ligaard), and many-many others who
156
+ reported bugs, submitted patches, and provided a lot of useful input.
202
157
 
203
158
 
204
159
  Changelog
205
160
  ---------
206
161
 
207
- * 2.0.pre - Prerelease of the Ext4-themed version. Generates docs in
208
- exactly the same style as the official ExtJS4 docs. Lots and lots
209
- of changes. But also possibly several bugs. Use the --pre option
210
- to install:
211
-
212
- $ gem install --pre jsduck
162
+ * 2.0.pre2 - Fixes for the previous pre-release.
163
+ * New --stdout command line option.
164
+ * Fix opening links in new tabs.
165
+ * Few other small bugfixes and enhancements.
213
166
 
214
- To run it on ExtJS4:
215
-
216
- $ jsduck --output your/docs/ ext-4.0.2a/src --ignore-global
217
-
218
- This will generate a lot of warnings. Those should be fixed in some
219
- upcoming release of ExtJS4. You can disable them with `--no-warnings`.
220
- Additionally you will need to copy over the images:
221
-
222
- $ cp -r ext-4.0.2a/docs/doc-resources your/docs/doc-resources
223
-
224
- You can also get the class-listing to the main page by downloading
225
- [overviewData.json][] and passing it to JSDuck with:
226
-
227
- --categories overviewData.json
228
-
229
- This file should in the future be found inside the ExtJS4 release,
230
- along with the source code for guides.
167
+ * 2.0.pre - Completely overhauled Ext4-themed version.
168
+ * Currently in a pre-release state.
231
169
 
232
170
  * 0.6 - JsDuck is now used for creating the official ExtJS4 documentation.
233
171
  * Automatic linking of class names found in comments. Instead of writing
@@ -285,5 +223,3 @@ Changelog
285
223
  * List of subclasses
286
224
 
287
225
  * 0.1 - initial version.
288
-
289
- [overviewData.json]: https://raw.github.com/senchalabs/jsduck/3ee0653554da1ddc54576e7df442d08c9a6d22fd/template/overviewData.json
data/Rakefile CHANGED
@@ -74,7 +74,7 @@ def run_jsduck_export(extra_options, ext_dir)
74
74
 
75
75
  run_jsduck([
76
76
  "--title", "Ext JS 4.0.2a API Documentation",
77
- "--footer", "ExtJS 4.0.2a Documentation from Sencha. Generated with <a href='https://github.com/nene/jsduck'>JSDuck</a> revison #{rev}",
77
+ "--footer", "ExtJS 4.0.2a Documentation from Sencha. Generated with <a href='https://github.com/senchalabs/jsduck'>JSDuck</a> revison #{rev}",
78
78
  "#{SDK_DIR}/extjs/src",
79
79
  "#{SDK_DIR}/platform/src",
80
80
  "#{SDK_DIR}/platform/core/src",
data/bin/jsduck CHANGED
@@ -121,6 +121,10 @@ opts = OptionParser.new do | opts |
121
121
  app.export = :json
122
122
  end
123
123
 
124
+ opts.on('--stdout', "Writes JSON export to STDOUT instead of writing to the filesystem", " ") do
125
+ app.export = :stdout
126
+ end
127
+
124
128
  opts.separator "Debugging:"
125
129
  opts.separator ""
126
130
 
@@ -167,7 +171,7 @@ opts.parse!(ARGV).each do |fname|
167
171
  js_files << fname
168
172
  end
169
173
  else
170
- puts "Warning: File #{fname} not found"
174
+ $stderr.puts "Warning: File #{fname} not found"
171
175
  end
172
176
  end
173
177
  app.input_files = js_files
@@ -175,27 +179,29 @@ app.input_files = js_files
175
179
  if app.input_files.length == 0
176
180
  puts "You should specify some input files, otherwise there's nothing I can do :("
177
181
  exit(1)
178
- elsif !app.output_dir
179
- puts "You should also specify an output directory, where I could write all this amazing documentation."
180
- exit(1)
181
- elsif File.exists?(app.output_dir) && !File.directory?(app.output_dir)
182
- puts "Oh noes! The output directory is not really a directory at all :("
183
- exit(1)
184
- elsif !File.exists?(File.dirname(app.output_dir))
185
- puts "Oh noes! The parent directory for #{app.output_dir} doesn't exist."
186
- exit(1)
187
- elsif !File.exists?(app.template_dir + "/extjs")
188
- puts "Oh noes! The template directory does not contain extjs/ directory :("
189
- puts "Please copy ExtJS over to template/extjs or create symlink."
190
- puts "For example:"
191
- puts " $ cp -r /path/to/ext-4.0.0 " + app.template_dir + "/extjs"
192
- exit(1)
193
- elsif !File.exists?(app.template_dir + "/resources/css")
194
- puts "Oh noes! CSS files for custom ExtJS theme missing :("
195
- puts "Please compile SASS files in template/resources/sass with compass."
196
- puts "For example:"
197
- puts " $ compass compile " + app.template_dir + "/resources/sass"
198
- exit(1)
182
+ elsif app.export != :stdout
183
+ if !app.output_dir
184
+ puts "You should also specify an output directory, where I could write all this amazing documentation."
185
+ exit(1)
186
+ elsif File.exists?(app.output_dir) && !File.directory?(app.output_dir)
187
+ puts "Oh noes! The output directory is not really a directory at all :("
188
+ exit(1)
189
+ elsif !File.exists?(File.dirname(app.output_dir))
190
+ puts "Oh noes! The parent directory for #{app.output_dir} doesn't exist."
191
+ exit(1)
192
+ elsif !File.exists?(app.template_dir + "/extjs")
193
+ puts "Oh noes! The template directory does not contain extjs/ directory :("
194
+ puts "Please copy ExtJS over to template/extjs or create symlink."
195
+ puts "For example:"
196
+ puts " $ cp -r /path/to/ext-4.0.0 " + app.template_dir + "/extjs"
197
+ exit(1)
198
+ elsif !File.exists?(app.template_dir + "/resources/css")
199
+ puts "Oh noes! CSS files for custom ExtJS theme missing :("
200
+ puts "Please compile SASS files in template/resources/sass with compass."
201
+ puts "For example:"
202
+ puts " $ compass compile " + app.template_dir + "/resources/sass"
203
+ exit(1)
204
+ end
199
205
  end
200
206
 
201
207
  app.run()
data/jsduck.gemspec CHANGED
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
2
2
  s.required_rubygems_version = ">= 1.3.7"
3
3
 
4
4
  s.name = 'jsduck'
5
- s.version = '2.0.pre'
6
- s.date = '2011-06-30'
5
+ s.version = '2.0.pre2'
6
+ s.date = '2011-07-06'
7
7
  s.summary = "Simple JavaScript Duckumentation generator"
8
8
  s.description = "Documentation generator for ExtJS 4"
9
9
  s.homepage = "https://github.com/senchalabs/jsduck"
@@ -1,3 +1,5 @@
1
+ require 'jsduck/logger'
2
+
1
3
  module JsDuck
2
4
 
3
5
  class Aliases
@@ -27,12 +29,24 @@ module JsDuck
27
29
  # If the original also happens to be an alias, continue recursively.
28
30
  def find_original(al)
29
31
  al_def = al[:alias]
30
- orig = @relations[al_def[:cls]].get_member(al_def[:member], al_def[:type] || al[:tagname])
32
+
33
+ orig = @relations[al_def[:cls]]
34
+ unless orig
35
+ Logger.instance.warn("Class #{al_def[:cls]} not found in #{al[:filename]} line #{al[:linenr]}")
36
+ return al
37
+ end
38
+ orig = orig.get_member(al_def[:member], al_def[:type] || al[:tagname])
39
+ unless orig
40
+ Logger.instance.warn("Member #{al_def[:cls]}##{al_def[:member]} not found in #{al[:filename]} line #{al[:linenr]}")
41
+ return al
42
+ end
43
+
31
44
  if orig[:alias]
32
45
  find_original(orig)
33
46
  else
34
47
  orig
35
48
  end
49
+
36
50
  end
37
51
  end
38
52
 
data/lib/jsduck/app.rb CHANGED
@@ -109,8 +109,10 @@ module JsDuck
109
109
  end
110
110
  end
111
111
 
112
- clear_dir(@output_dir)
113
- if @export == :json
112
+ clear_dir(@output_dir) unless @export == :stdout
113
+ if @export == :stdout
114
+ @timer.time(:generating) { puts JSON.generate(relations.classes) }
115
+ elsif @export == :json
114
116
  FileUtils.mkdir(@output_dir)
115
117
  init_output_dirs(@output_dir)
116
118
  @timer.time(:generating) { write_src(@output_dir+"/source", parsed_files) }
data/lib/jsduck/class.rb CHANGED
@@ -61,6 +61,10 @@ module JsDuck
61
61
  @doc.clone
62
62
  end
63
63
 
64
+ def to_json(*a)
65
+ to_hash.to_json(*a)
66
+ end
67
+
64
68
  # Returns true when this class inherits from the specified class.
65
69
  # Also returns true when the class itself is the one we are asking about.
66
70
  def inherits_from?(class_name)
data/lib/jsduck/guides.rb CHANGED
@@ -63,9 +63,8 @@ module JsDuck
63
63
  @guides.each do |guide|
64
64
  out_dir = dir+"/"+guide[:name]
65
65
  FileUtils.cp_r(guide[:dir], out_dir)
66
- # Write the JsonP file and remove the original Markdown file
66
+ # Write the JsonP file
67
67
  JsonP.write(out_dir+"/README.js", guide[:name], {:guide => guide[:html]})
68
- FileUtils.rm(out_dir + "/README.md")
69
68
  end
70
69
  end
71
70
 
@@ -76,6 +76,8 @@ module JsDuck
76
76
  var_declaration
77
77
  elsif look("Ext", ".", "define", "(", :string)
78
78
  ext_define
79
+ elsif look("Ext", ".", "ClassManager", ".", "create", "(", :string)
80
+ ext_define
79
81
  elsif look(:ident, ":") || look(:string, ":")
80
82
  property_literal
81
83
  elsif look(",", :ident, ":") || look(",", :string, ":")
@@ -178,9 +180,11 @@ module JsDuck
178
180
  }
179
181
  end
180
182
 
181
- # <ext-define> := "Ext" "." "define" "(" <string> "," <ext-define-cfg>
183
+ # <ext-define> := "Ext" "." ["define" | "ClassManager" "." "create" ] "(" <string> "," <ext-define-cfg>
182
184
  def ext_define
183
- name = match("Ext", ".", "define", "(", :string)
185
+ match("Ext", ".");
186
+ look("define") ? match("define") : match("ClassManager", ".", "create");
187
+ name = match("(", :string)
184
188
 
185
189
  if look(",", "{")
186
190
  match(",")
data/lib/jsduck/logger.rb CHANGED
@@ -27,7 +27,7 @@ module JsDuck
27
27
  # warnings greatly also when run multiple processes.
28
28
  def warn(msg)
29
29
  if @warnings && !@shown_warnings[msg]
30
- puts "Warning: " + msg
30
+ $stderr.puts "Warning: " + msg
31
31
  @shown_warnings[msg] = true
32
32
  end
33
33
  end
@@ -133,7 +133,7 @@ Ext.define('Docs.controller.Classes', {
133
133
  url = url.replace(/.*#/, "");
134
134
 
135
135
  if (this.opensNewWindow(event)) {
136
- window.open(url);
136
+ window.open("#"+url);
137
137
  view && view.selectUrl(this.activeUrl ? this.activeUrl : "");
138
138
  }
139
139
  else {
@@ -26,7 +26,7 @@ Ext.define('Docs.view.cls.Overview', {
26
26
  var scrollOffset = el.getY() - (isMember ? 145 : 135);
27
27
  var docContent = this.getEl().down('.x-panel-body');
28
28
  var currentScroll = docContent.getScroll()['top'];
29
- docContent.scrollTo('top', currentScroll + scrollOffset, true);
29
+ docContent.scrollTo('top', currentScroll + scrollOffset);
30
30
 
31
31
  if (isMember && el.down(".expandable")) {
32
32
  el.addCls('open');
@@ -8,7 +8,7 @@ Ext.define('Docs.view.index.Container', {
8
8
  cls: 'class-list',
9
9
 
10
10
  initComponent: function() {
11
- var tpl = new Ext.XTemplate(
11
+ this.tpl = new Ext.XTemplate(
12
12
  '<h1 class="top">{title}</h1>',
13
13
  '<tpl if="notice">',
14
14
  '<div class="notice">{notice}</div>',
@@ -34,8 +34,7 @@ Ext.define('Docs.view.index.Container', {
34
34
  '</tpl>',
35
35
  '{categories}'
36
36
  );
37
-
38
- this.html = tpl.apply(this.extractData());
37
+ this.data = this.extractData();
39
38
 
40
39
  this.callParent(arguments);
41
40
  },
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsduck
3
3
  version: !ruby/object:Gem::Version
4
- hash: 961915908
4
+ hash: -1876988255
5
5
  prerelease: true
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
- - pre
10
- version: 2.0.pre
9
+ - pre2
10
+ version: 2.0.pre2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rene Saarsoo
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-06-30 00:00:00 +03:00
19
+ date: 2011-07-06 00:00:00 +03:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -160,11 +160,11 @@ files:
160
160
  - template/resources/images/x.png
161
161
  - template/resources/images/x12.png
162
162
  - template/extjs/ext-all.js
163
- - template/resources/css/style.css
163
+ - template/resources/css/docs-ext.css
164
164
  - template/resources/css/scrollbars.css
165
- - template/resources/css/viewport.css
166
165
  - template/resources/css/reset.css
167
- - template/resources/css/docs-ext.css
166
+ - template/resources/css/style.css
167
+ - template/resources/css/viewport.css
168
168
  has_rdoc: true
169
169
  homepage: https://github.com/senchalabs/jsduck
170
170
  licenses: []