jQuery Plugin Package Manifest Specification
This document is all you need to know about what's required in your
NOTE: Manifest file names must contain the plugin name, e.g. foo.jquery.json.
link Required Fields
link Optional Fields
The most important things in your manifest file are the name and version fields. The name and version together form an identifier that is assumed to be completely unique. Changes to the plugin should come along with changes to the version.
The name is what your thing is called. Some tips:
- Don't put "js" or "jquery" in the name. It's assumed that it's js and jquery, since you're writing a jquery.json manifest file.
- The name ends up being part of a URL. Any name with non-url-safe characters will be rejected. The jQuery Plugins Site is UTF-8.
- The name should be short, but also reasonably descriptive.
- You may want to check the plugins site to see if there's something by that name already, before you get too attached to it.
- If you have a plugin with the same name as a plugin already in the jQuery Plugins Site, either consider renaming your plugin or namespacing it. For example, jQuery UI plugins are listed with the "ui." prefix (e.g. ui.dialog, ui.autocomplete).
The most important things in your manifest file are the name and version fields. The name and version together form an identifier that is assumed to be completely unique. Changes to the plugin should come along with changes to the version. Version number must be a valid semantic version number per node-semver.
See Specifying Versions.
A nice complete and pretty title of your plugin. This will be used for the page title and top-level heading on your plugin's page. Include jQuery (if you want) and spaces and mixed case, unlike name.
See People Fields.
Array of licenses under which the plugin is provided. Each license is a hash with a url property linking to the actual text and an optional "type" property specifying the type of license. If the license is one of the official open source licenses, the official license name or its abbreviation may be explicated with the "type" property.
Dependencies are specified with a simple hash of package name to version range. The version range is EITHER a string which has one or more space-separated descriptors, OR a range like "fromVersion - toVersion".
If a plugin that you depend on uses other plugins as dependencies that your plugin uses as well, we recommend you list those also. In the event that the depended on plugin alters its dependencies, your plugin's dependency tree won't be affected.
Libraries such as jQuery or underscore, though not plugins, should be listed as dependencies as well. This gives you the flexibility to specify compatible versions of each library you depend on.
You must list at least one dependency,
jquery (note that it's lower-case).
Put a description in it. It's a string. This helps people discover your plugin, as it's listed on the jQuery Plugins Site.
Put keywords in it. It's an array of strings. This helps people discover your plugin as it's listed on the jQuery Plugins Site. Keywords may only contain letters, numbers, hyphens, and dots.
The url to the plugin homepage.
The url to the plugin documentation.
The url to the plugin demo or demos.
The url to download the plugin. A download URL will be automatically generated based on the tag in GitHub, but you can specify a custom URL if you'd prefer to send users to your own site.
The url to the bug tracker for the plugin.
An array of people.
See People Fields.
link People Fields
A "person" is an object with a "name" field and optionally "url" and "email", like this:
Both the email and url are optional.
link Specifying Versions
Version range descriptors may be any of the following styles, where "version" is a semver compatible version identifier.
=versionSame as just
>versionMust be greater than
~versionSee 'Tilde Version Ranges' below
1.2.xSee 'X Version Ranges' below
*Matches any version
version1 - version2Same as
range1 || range2Passes if either range1 or range2 are satisfied.
For example, these are all valid:
link Tilde Version Ranges
A range specifier starting with a tilde
~ character is matched against
a version in the following fashion.
- The version must be at least as high as the range.
- The version must be less than the next major revision above the range.
For example, the following are equivalent:
"~1.2.3" = ">=1.2.3 <1.3.0"
"~1.2" = ">=1.2.0 <1.3.0"
"~1" = ">=1.0.0 <2.0.0"
link X Version Ranges
An "x" in a version range specifies that the version number must start with the supplied digits, but any digit may be used in place of the x.
The following are equivalent:
"1.2.x" = ">=1.2.0 <1.3.0"
"1.x.x" = ">=1.0.0 <2.0.0"
"1.2" = "1.2.x"
"1.x" = "1.x.x"
"1" = "1.x.x"
You may not supply a comparator with a version containing an x. Any digits after the first "x" are ignored.
link Sample manifest