diff options
Diffstat (limited to 'maintenance/jsduck')
-rw-r--r-- | maintenance/jsduck/MetaTags.rb | 53 | ||||
-rw-r--r-- | maintenance/jsduck/categories.json | 54 | ||||
-rw-r--r-- | maintenance/jsduck/config.json | 18 | ||||
-rw-r--r-- | maintenance/jsduck/eg-iframe.html | 20 | ||||
-rw-r--r-- | maintenance/jsduck/external.js | 26 |
5 files changed, 171 insertions, 0 deletions
diff --git a/maintenance/jsduck/MetaTags.rb b/maintenance/jsduck/MetaTags.rb new file mode 100644 index 00000000..84e40213 --- /dev/null +++ b/maintenance/jsduck/MetaTags.rb @@ -0,0 +1,53 @@ +# See also: +# - https://github.com/senchalabs/jsduck/wiki/Tags +# - https://github.com/senchalabs/jsduck/wiki/Custom-tags +require 'jsduck/meta_tag' + +class ContextTag < JsDuck::MetaTag + def initialize + @name = 'context' + end + + # @param tags All matches of this tag on one class. + def to_html(tags) + return '<h3 class="pa">Context</h3>' + render_long_context(tags.last) + end + + def render_long_context(tag) + if tag =~ /\A([^\s]+)/m + name = $1 + return format("`this` : {@link #{name}}") + end + end +end + +class SeeTag < JsDuck::MetaTag + def initialize + @name = 'see' + @multiline = true + end + + # @param tags All matches of this tag on one class. + def to_html(tags) + doc = [] + doc << '<h3 class="pa">Related</h3>' + doc << [ + '<ul>', + tags.map {|tag| render_long_see(tag) }, + '</ul>', + ] + doc + end + + def render_long_see(tag) + if tag =~ /\A([^\s]+)( .*)?\Z/m + name = $1 + doc = $2 ? ': ' + $2 : '' + return [ + '<li>', + format("{@link #{name}} #{doc}"), + '</li>' + ] + end + end +end diff --git a/maintenance/jsduck/categories.json b/maintenance/jsduck/categories.json new file mode 100644 index 00000000..4a8ba8c3 --- /dev/null +++ b/maintenance/jsduck/categories.json @@ -0,0 +1,54 @@ +[ + { + "name": "MediaWiki", + "groups": [ + { + "name": "Base", + "classes": [ + "mw", + "mw.Map", + "mw.Message", + "mw.loader", + "mw.html", + "mw.html.Cdata", + "mw.html.Raw" + ] + }, + { + "name": "General", + "classes": [ + "mw.Title", + "mw.notification", + "mw.util", + "mw.plugin.notify" + ] + }, + { + "name": "API", + "classes": ["mw.Api*"] + } + ] + }, + { + "name": "jQuery", + "groups": [ + { + "name": "Core", + "classes": ["jQuery", "jQuery.Event", "jQuery.Promise", "jQuery.Deferred", "jQuery.jqXHR"] + }, + { + "name": "Plugins", + "classes": ["jQuery.plugin.*"] + } + ] + }, + { + "name": "Misc", + "groups": [ + { + "name": "Native", + "classes": ["Array", "Boolean", "Date", "Function", "Number", "Object", "RegExp", "String"] + } + ] + } +] diff --git a/maintenance/jsduck/config.json b/maintenance/jsduck/config.json new file mode 100644 index 00000000..c4705d8f --- /dev/null +++ b/maintenance/jsduck/config.json @@ -0,0 +1,18 @@ +{ + "--title": "MediaWiki Code Documentation", + "--categories": "./categories.json", + "--meta-tags": "./MetaTags.rb", + "--warnings": ["-no_doc"], + "--builtin-classes": true, + "--output": "../../docs/js", + "--": [ + "./external.js", + "../../resources/mediawiki/mediawiki.js", + "../../resources/mediawiki/mediawiki.util.js", + "../../resources/mediawiki/mediawiki.Title.js", + "../../resources/mediawiki/mediawiki.notify.js", + "../../resources/mediawiki/mediawiki.notification.js", + "../../resources/mediawiki.api", + "../../resources/jquery/jquery.localize.js" + ] +}
\ No newline at end of file diff --git a/maintenance/jsduck/eg-iframe.html b/maintenance/jsduck/eg-iframe.html new file mode 100644 index 00000000..f53b4044 --- /dev/null +++ b/maintenance/jsduck/eg-iframe.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>MediaWiki Examples</title> + <script> + function loadInlineExample(code, options, callback) { + try { + document.body.innerHTML = ''; + eval(code); + callback && callback(true); + } catch (e) { + document.body.innerHTML = document.createTextNode(e); + callback && callback(false, e); + } + } + </script> +</head> +<body></body> +</html> diff --git a/maintenance/jsduck/external.js b/maintenance/jsduck/external.js new file mode 100644 index 00000000..8ab102f4 --- /dev/null +++ b/maintenance/jsduck/external.js @@ -0,0 +1,26 @@ +/** + * @class jQuery + */ + +/** + * @method ajax + * @return {jqXHR} + */ + +/** + * @class jQuery.Event + */ + +/** + * @class jQuery.Promise + */ + +/** + * @class jQuery.Deferred + * @mixins jQuery.Promise + */ + +/** + * @class jQuery.jqXHR + * @alternateClassName jqXHR + */ |