From 29f85e4a558a79bdf5c7972dbbff2c165706b786 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 7 Apr 2026 09:54:34 +0000 Subject: [PATCH 01/22] Add GitHub Pages configuration with Jekyll Agent-Logs-Url: https://github.com/jquery-validation/validation-content/sessions/56c60609-42d5-4470-b53a-8ba170e29227 Co-authored-by: bytestream <1788397+bytestream@users.noreply.github.com> --- .github/workflows/deploy-pages.yml | 56 +++ Gemfile | 22 + _config.yml | 37 ++ contribute.md | 12 + documentation.md | 213 +++++++++ index.md | 50 ++ package-lock.json | 725 +++++++++++++++++++++-------- reference.md | 130 ++++++ 8 files changed, 1043 insertions(+), 202 deletions(-) create mode 100644 .github/workflows/deploy-pages.yml create mode 100644 Gemfile create mode 100644 _config.yml create mode 100644 contribute.md create mode 100644 documentation.md create mode 100644 index.md create mode 100644 reference.md diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 0000000..dd2a954 --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,56 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: + - main + - master + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.1' + bundler-cache: true + + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..f809cbc --- /dev/null +++ b/Gemfile @@ -0,0 +1,22 @@ +source "https://rubygems.org" + +gem "jekyll", "~> 4.3" +gem "minima", "~> 2.5" + +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.12" +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem +# do not have a Java counterpart. +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..91d9780 --- /dev/null +++ b/_config.yml @@ -0,0 +1,37 @@ +title: jQuery Validation Plugin +description: Site content for the jQuery Validation Plugin +url: https://jqueryvalidation.org +baseurl: "" + +# Build settings +markdown: kramdown +theme: minima + +# Exclude from processing +exclude: + - Gruntfile.js + - package.json + - package-lock.json + - node_modules + - config.json + - config-sample.json + - entries2html.xsl + - notes.xsl + - README.md + - LICENSE-MIT.txt + - .gitignore + - .gitattributes + - dist + +# Collections +collections: + entries: + output: true + permalink: /:collection/:name/ + +defaults: + - scope: + path: "" + type: "entries" + values: + layout: "default" diff --git a/contribute.md b/contribute.md new file mode 100644 index 0000000..375c197 --- /dev/null +++ b/contribute.md @@ -0,0 +1,12 @@ +--- +layout: default +title: Contribute +--- + +There are several ways for you to contribute to this plugin: + +* Help [with the code](https://github.com/jquery-validation/jquery-validation/). Fix bugs, propose features, translate messages and methods... +* Help [with the site content](https://github.com/jquery-validation/validation-content). Improve API documentation, examples, references... +* Help [with the site theme](https://github.com/jquery-validation/validation-theme). This is a WordPress theme that still needs a lot of improvements. + +The majority of contributions can be viewed under [jQuery's contribute site](https://contribute.jquery.org/) - the style guides et al apply to this project as well. diff --git a/documentation.md b/documentation.md new file mode 100644 index 0000000..da0293a --- /dev/null +++ b/documentation.md @@ -0,0 +1,213 @@ +--- +layout: default +title: Documentation +--- + +# Validate forms like you've never validated before! + +**"But doesn't jQuery make it easy to write your own validation plugin?"** +Sure, but there are still a lot of subtleties to take care of: You need a standard library of validation methods (such as emails, URLs, credit card numbers). You need to place error messages in the DOM and show and hide them when appropriate. You want to react to more than just a submit event, like keyup and blur. +You may need different ways to specify validation rules according to the server-side enviroment you are using on different projects. And after all, you don't want to reinvent the wheel, do you? + +**"But aren't there already a ton of validation plugins out there?"** +Right, there are a lot of non-jQuery-based solutions (which you'd avoid since you found jQuery) and some jQuery-based solutions. This particular one is one of the oldest jQuery plugins (started in July 2006) and has proved itself in projects all around the world. There is also an [article](http://bassistance.de/2007/07/04/about-client-side-form-validation-and-frameworks/) discussing how this plugin fits the bill of the should-be validation solution. + +Not convinced? [Have a look at this example](https://jqueryvalidation.org/files/demo/): + +
+
+
+
+
+### Isn't that nice and easy?
+A single line of jQuery to select the form and apply the validation plugin, plus a few annotations on each element to specify the validation rules.
+
+Of course that isn't the only way to specify rules. You also don't have to rely on those default messages, but they come in handy when starting to setup validation for a form.
+
+### A few things to look out for when playing around with the demo
+
+* After trying to submit an invalid form, the first invalid element is focused, allowing the user to correct the field. If another invalid field - that wasn't the first one - was focused before submit, that field is focused instead, allowing the user to start at the bottom if he or she prefers.
+* Before a field is marked as invalid, the validation is lazy: Before submitting the form for the first time, the user can tab through fields without getting annoying messages - they won't get bugged before having the chance to actually enter a correct value
+* Once a field is marked invalid, it is eagerly validated: As soon as the user has entered the necessary value, the error message is removed
+* If the user enters something in a non-marked field, and tabs/clicks away from it (blur the field), it is validated - obviously the user had the intention to enter something, but failed to enter the correct value
+
+That behaviour can be irritating when clicking through demos of the validation plugin - it is designed for an unobtrusive user experience, annoying the user as little as possible with unnecessary error messages. So when you try out other demos, try to react like one of your users would, and see if the behaviour is better then. If not, please let me know about any ideas you may have for improvements!
+
+# API Documentation
+
+You're probably looking for
+
+### [Options for the validate() method](/validate)
+
+If not, read on.
+
+Throughout the documentation, two terms are used very often, so it's important that you know their meaning in the context of the validation plugin:
+
+* **method**: A validation method implements the logic to validate an element, like an email method that checks for the right format of a text input's value. A set of standard methods is available, and it is easy to write your own.
+* **rule**: A validation rule associates an element with a validation method, like "validate input with name "primary-mail" with methods "required" and "email".
+
+## Plugin methods
+
+This library adds three jQuery plugin methods, the main entry point being the `validate` method:
+
+* [`validate()` - Validates the selected form.](/validate)
+* [`valid()` - Checks whether the selected form or selected elements are valid.](/valid)
+* [`rules()` - Read, add and remove rules for an element.](/rules)
+
+## Custom selectors
+
+This library also extends jQuery with three custom selectors:
+
+* [`:blank` - Selects all elements with a blank value.](/blank-selector)
+* [`:filled` - Selects all elements with a filled value.](/filled-selector)
+* [`:unchecked` - Selects all elements that are unchecked.](/unchecked-selector)
+
+## Validator
+
+The validate method returns a Validator object that has a few public methods that you can use to trigger validation programmatically or change the contents of the form. The validator object has more methods, but only those documented here are intended for usage.
+
+* [`Validator.form()` - Validates the form.](/Validator.form)
+* [`Validator.element()` - Validates a single element.](/Validator.element)
+* [`Validator.resetForm()` - Resets the controlled form.](/Validator.resetForm)
+* [`Validator.showErrors()` - Show the specified messages.](/Validator.showErrors)
+* [`Validator.numberOfInvalids()` - Returns the number of invalid fields.](/Validator.numberOfInvalids)
+* [`Validator.destroy()` - Destroys this instance of validator.](/Validator.destroy)
+
+There are a few static methods on the validator object:
+
+* [`jQuery.validator.addMethod()` - Add a custom validation method.](/jQuery.validator.addMethod)
+* [`jQuery.validator.format()` - Replaces {n} placeholders with arguments.](/jQuery.validator.format)
+* [`jQuery.validator.setDefaults()` - Modify default settings for validation.](/jQuery.validator.setDefaults)
+* [`jQuery.validator.addClassRules()` - Add a compound class method.](/jQuery.validator.addClassRules)
+
+## List of built-in Validation methods
+
+A set of standard validation methods is provided:
+
+* [`required` - Makes the element required.](/required-method)
+* [`remote` - Requests a resource to check the element for validity.](/remote-method)
+* [`minlength` - Makes the element require a given minimum length.](/minlength-method)
+* [`maxlength` - Makes the element require a given maximum length.](/maxlength-method)
+* [`rangelength` - Makes the element require a given value range.](/rangelength-method)
+* [`min` - Makes the element require a given minimum.](/min-method)
+* [`max` - Makes the element require a given maximum.](/max-method)
+* [`range` - Makes the element require a given value range.](/range-method)
+* [`step` - Makes the element require a given step.](/step-method)
+* [`email` - Makes the element require a valid email](/email-method)
+* [`url` - Makes the element require a valid url](/url-method)
+* [`date` - Makes the element require a date.](/date-method)
+* [`dateISO` - Makes the element require an ISO date.](/dateISO-method)
+* [`number` - Makes the element require a decimal number.](/number-method)
+* [`digits` - Makes the element require digits only.](/digits-method)
+* [`equalTo` - Requires the element to be the same as another one](/equalTo-method)
+
+Some more methods are provided as add-ons, and are currently included in additional-methods.js in the download package. Not all of them are documented here:
+
+* [`accept` - Makes a file upload accept only specified mime-types.](/accept-method)
+* [`creditcard` - Makes the element require a credit card number.](/creditcard-method)
+* [`extension` - Makes the element require a certain file extension.](/extension-method)
+* [`phoneUS` - Validate for valid US phone number.](/phoneUS-method)
+* [`require_from_group` - Ensures a given number of fields in a group are complete.](/require_from_group-method)
+
+You can find the [source code for all additional methods in the GitHub repository](https://github.com/jzaefferer/jquery-validation/tree/master/src/additional).
+
+It is possible to re-define the implementation of the built-in rules using the [`$.validator.methods` property](/jQuery.validator.methods/)
+
+# [General Guidelines](/reference)
+
+The General Guidelines section provides detailed discussion of the design and ideas behind the plugin, explaining why certain things are as they are. It covers the features in more detail than the API documentation, which just briefly explains the various methods and options available.
+
+If you've decided to use the validation plugin in your application and want to get to know it better, it is recommended that you read the guidelines.
+
+## Fields with complex names (brackets, dots)
+
+When you have a name attribute like user[name], make sure to put the name in quotes. More details in the [General Guidelines](/reference).
+
+## Too much recursion
+
+Another common problem occurs with this code:
+
+
+ $("#myform").validate({
+ submitHandler: function(form) {
+ // some other code
+ // maybe disabling submit button
+ // then:
+ $(form).submit();
+ }
+ });
+
+
+This results in a too-much-recursion error: $(form).submit() triggers another round of validation, resulting in another call to submitHandler, and voila, recursion. Replace that with form.submit(), which triggers the native submit event instead and not the validation.
+
+So the correct code looks slightly different:
+
+
+ $("#myform").validate({
+ submitHandler: function(form) {
+ form.submit();
+ }
+ });
+
+
+# Demos
+
+## [The Marketo sign-up form](https://jqueryvalidation.org/files/demo/marketo/)
+### [The Marketo sign-up form, step 2](https://jqueryvalidation.org/files/demo/marketo/step2.htm)
+Based on an old version of the marketo.com sign-up form. The custom validation was once replaced with this plugin. Thanks to Glen Lipka for contributing it!
+
+*Notable features of the demo:*
+
+* Customized message display: No messages displayed for the required method, only for typing-errors (like wrong email format); A summary is displayed at the top ("You missed 12 fields. They have been highlighted below.")
+* Remote validation of email field. Try to enter eg. glen@marketo.com
+* Integration with masked-input plugin, see Zip and Phone fields and Credit Card Number on step 2
+* A custom method for making the billing address on step 2 optional when "Same as Company Address" is checked
+* A custom method for checking the password: Checks that the password contains at least one number and one character and that it is at least 6 characters long. If the user blurs the field with an invalid value, the input is emptied and gets focus again.
+
+## [The Remember The Milk sign-up form](https://jqueryvalidation.org/files/demo/milk/)
+The sign-up form from rememberthemilk.com (based on an older version). The custom validation was replaced using this plugin. Thanks to RTM for contributing!
+
+*Notable features of the demo:*
+
+* Custom message display, based on the original table layout, using success option to display a checkmark for valid fields
+* Remote validation of username, to check if it is already taken (try "Peter", "asdf" or "George")
+
+## [A multipart "buy&sell a house" form](https://jqueryvalidation.org/files/demo/multipart/)
+Contributed by Michael Evangelista, showing a multipart form for buying and selling houses.
+
+*Notable features of the demo:*
+
+* Multipart, implemented using the jQuery UI accordion and a custom method to check if an element is on the current page when validated
+* Integration with masked-input plugin, see Phone and Zip fields
+
+## [Using remote validation to help with captchas](https://jqueryvalidation.org/files/demo/captcha/)
+Features remote validation for helping the user to fill out captchas.
+
+*Notable features of the demo:*
+
+* Remote validation to check if the user entered the correct captcha, without forcing him to submit the form first
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..be9c2f1
--- /dev/null
+++ b/index.md
@@ -0,0 +1,50 @@
+---
+layout: default
+title: jQuery Validation Plugin
+---
+
+This jQuery plugin makes simple clientside form validation easy, whilst still offering plenty of customization options. It makes a good choice if you're building something new from scratch, but also when you're trying to integrate something into an existing application with lots of existing markup. The plugin comes bundled with a useful set of validation methods, including URL and email validation, while providing an API to write your own methods. All bundled methods come with default error messages in english and translations into 37 other languages.
+
+For a quick overview of what this plugin provides, check out this [Webucator](https://www.webucator.com/) video (they also provide [jQuery trainings](https://www.webucator.com/webdesign/jquery.cfm)):
+
+
+
+The plugin was initially written and maintained by [Jörn Zaefferer](http://bassistance.de/), a member of the [jQuery team](https://jquery.org/team), lead developer on the jQuery UI team and maintainer of QUnit. It was started back in the early days of jQuery in 2006, and updated and improved since then.
+
+Starting with Version 1.15.0 [Markus Staab](https://github.com/staabm) took over the maintenance of the codebase in February 2016. Since July 2016 [Brahim Arkni](https://github.com/Arkni) assisted Markus, and a few months later Brahim joined the jQuery Validation core team.
+
+**Current version:** 1.19.5
+
+**License:** MIT
+
+### Files:
+- [Download](https://github.com/jzaefferer/jquery-validation/releases/tag/1.19.5) - zip-Archive with source code, minified and packed version, demos and examples
+- [Changelog](https://github.com/jzaefferer/jquery-validation/releases/tag/1.19.5)
+- [Demos](//jqueryvalidation.org/files/demo/)
+- [Documentation](/documentation/)
+- [GitHub Repository](https://github.com/jzaefferer/jquery-validation)
+
+### Installation via Package Managers
+- Bower: `bower install jquery-validation`
+- [NuGet](https://www.nuget.org/packages/jquery.validation): `Install-Package jQuery.Validation`
+- [NPM](https://www.npmjs.com/package/jquery-validation): `npm i jquery-validation`
+
+### [Latest files on jsDelivr CDN](https://www.jsdelivr.com/package/npm/jquery-validation) (hotlinking welcome):
+- [https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/jquery.validate.js](https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/jquery.validate.js)
+- [https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/jquery.validate.min.js](https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/jquery.validate.min.js)
+- [https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/additional-methods.js](https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/additional-methods.js)
+- [https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/additional-methods.min.js](https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/additional-methods.min.js)
+
+### [Latest files on cdnjs CDN](https://cdnjs.com/libraries/jquery-validate) (hotlinking welcome):
+- [https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.js](https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.js)
+- [https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.min.js](https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.min.js)
+- [https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/additional-methods.js](https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/additional-methods.js)
+- [https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/additional-methods.min.js](https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/additional-methods.min.js)
+
+### Dependencies
+#### Required
+- [jQuery, tested with 1.7.2, 1.8.3, 1.9.1, 1.11.1, 3.1.1](https://jquery.com)
+
+### Support
+- Please post questions to the [official using jQuery Plugins Forum](https://forum.jquery.com/using-jquery-plugins), tagging your question with (at least) "validate". Keep your question short and succinct and provide code when possible; a testpage makes it much more likely that you get an useful answer in a shorter time.
+- Please post bug reports and other contributions (enhancements, features, eg. new validation methods) to the [GitHub issue tracker](https://github.com/jzaefferer/jquery-validation/issues)
diff --git a/package-lock.json b/package-lock.json
index cfbfc18..8f6eb9e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,412 +1,733 @@
{
"name": "jqueryvalidation-content",
"version": "1.0.0",
- "lockfileVersion": 1,
- "dependencies": {
- "abbrev": {
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "jqueryvalidation-content",
+ "version": "1.0.0",
+ "dependencies": {
+ "grunt": "0.4.5",
+ "grunt-jquery-content": "2.0.0"
+ }
+ },
+ "node_modules/abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
- "argparse": {
+ "node_modules/argparse": {
"version": "0.1.16",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
"integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
"dependencies": {
- "underscore.string": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
- "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs="
- }
+ "underscore": "~1.7.0",
+ "underscore.string": "~2.4.0"
+ }
+ },
+ "node_modules/argparse/node_modules/underscore.string": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+ "engines": {
+ "node": "*"
}
},
- "async": {
+ "node_modules/async": {
"version": "0.1.22",
"resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
- "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE="
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "engines": {
+ "node": "*"
+ }
},
- "cheerio": {
+ "node_modules/cheerio": {
"version": "0.17.0",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.17.0.tgz",
"integrity": "sha1-+lrkLMYBIRM9KW0LRtmDIV9yaOo=",
"dependencies": {
- "lodash": {
- "version": "2.4.2",
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
- }
+ "CSSselect": "~0.4.0",
+ "dom-serializer": "~0.0.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "~3.7.2",
+ "lodash": "~2.4.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "coffee-script": {
+ "node_modules/cheerio/node_modules/lodash": {
+ "version": "2.4.2",
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "engines": [
+ "node",
+ "rhino"
+ ]
+ },
+ "node_modules/coffee-script": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
- "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ="
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
+ "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)",
+ "bin": {
+ "cake": "bin/cake",
+ "coffee": "bin/coffee"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "colors": {
+ "node_modules/colors": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
- "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w="
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "engines": {
+ "node": ">=0.1.90"
+ }
},
- "core-util-is": {
+ "node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "CSSselect": {
+ "node_modules/CSSselect": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz",
- "integrity": "sha1-+Kt+H4QYzmPNput713ioXX7EkrI="
+ "integrity": "sha1-+Kt+H4QYzmPNput713ioXX7EkrI=",
+ "deprecated": "the module is now available as 'css-select'",
+ "dependencies": {
+ "CSSwhat": "0.4",
+ "domutils": "1.4"
+ }
},
- "CSSwhat": {
+ "node_modules/CSSwhat": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.7.tgz",
- "integrity": "sha1-hn2g/zn3eGEyQsRM/qg/CqTr35s="
+ "integrity": "sha1-hn2g/zn3eGEyQsRM/qg/CqTr35s=",
+ "deprecated": "the module is now available as 'css-what'",
+ "engines": {
+ "node": "*"
+ }
},
- "dateformat": {
+ "node_modules/dateformat": {
"version": "1.0.2-1.2.3",
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
- "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk="
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
+ "engines": {
+ "node": "*"
+ }
},
- "dom-serializer": {
+ "node_modules/dom-serializer": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.0.1.tgz",
"integrity": "sha1-lYmCfx4y0iw3yCmtq9WbMkevjq8=",
"dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
- }
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
}
},
- "domelementtype": {
+ "node_modules/dom-serializer/node_modules/domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
+ },
+ "node_modules/domelementtype": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "deprecated": "update to domelementtype@1.3.1"
},
- "domhandler": {
+ "node_modules/domhandler": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.2.1.tgz",
- "integrity": "sha1-Wd+dzSJ+gIs2Wuc+H2aErD2Ub8I="
+ "integrity": "sha1-Wd+dzSJ+gIs2Wuc+H2aErD2Ub8I=",
+ "dependencies": {
+ "domelementtype": "1"
+ }
},
- "domutils": {
+ "node_modules/domutils": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz",
- "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8="
+ "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=",
+ "dependencies": {
+ "domelementtype": "1"
+ }
},
- "entities": {
+ "node_modules/entities": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
},
- "esprima": {
+ "node_modules/esprima": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
- "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0="
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "eventemitter2": {
+ "node_modules/eventemitter2": {
"version": "0.4.14",
"resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
"integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
},
- "exit": {
+ "node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "findup-sync": {
+ "node_modules/findup-sync": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
"integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
"dependencies": {
- "glob": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
- "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0="
- },
- "lodash": {
- "version": "2.4.2",
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
- },
- "minimatch": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
- "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0="
- }
- }
- },
- "getobject": {
+ "glob": "~3.2.9",
+ "lodash": "~2.4.1"
+ },
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/findup-sync/node_modules/glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "dependencies": {
+ "inherits": "2",
+ "minimatch": "0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/findup-sync/node_modules/lodash": {
+ "version": "2.4.2",
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "engines": [
+ "node",
+ "rhino"
+ ]
+ },
+ "node_modules/findup-sync/node_modules/minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue",
+ "dependencies": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/getobject": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
- "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw="
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "gilded-wordpress": {
+ "node_modules/gilded-wordpress": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/gilded-wordpress/-/gilded-wordpress-1.0.0.tgz",
"integrity": "sha1-xqLn1wetWX2pMQdeAcL+iBtttaA=",
"dependencies": {
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
- },
- "glob": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-4.0.6.tgz",
- "integrity": "sha1-aVxQvdTi+1xdNwsJHziNNwfikac="
- },
- "graceful-fs": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
- "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg="
- },
- "minimatch": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
- "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20="
- }
- }
- },
- "glob": {
+ "async": "~0.9.0",
+ "glob": "~4.0.6",
+ "wordpress": "~1.0.0"
+ }
+ },
+ "node_modules/gilded-wordpress/node_modules/async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+ },
+ "node_modules/gilded-wordpress/node_modules/glob": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.0.6.tgz",
+ "integrity": "sha1-aVxQvdTi+1xdNwsJHziNNwfikac=",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "dependencies": {
+ "graceful-fs": "^3.0.2",
+ "inherits": "2",
+ "minimatch": "^1.0.0",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/gilded-wordpress/node_modules/graceful-fs": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+ "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js",
+ "dependencies": {
+ "natives": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/gilded-wordpress/node_modules/minimatch": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
+ "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=",
+ "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue",
+ "dependencies": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/glob": {
"version": "3.1.21",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
"integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dependencies": {
- "inherits": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
- }
+ "graceful-fs": "~1.2.0",
+ "inherits": "1",
+ "minimatch": "~0.2.11"
+ },
+ "engines": {
+ "node": "*"
}
},
- "graceful-fs": {
+ "node_modules/glob/node_modules/inherits": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
+ },
+ "node_modules/graceful-fs": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+ "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "grunt": {
+ "node_modules/grunt": {
"version": "0.4.5",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
- "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A="
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+ "dependencies": {
+ "async": "~0.1.22",
+ "coffee-script": "~1.3.3",
+ "colors": "~0.6.2",
+ "dateformat": "1.0.2-1.2.3",
+ "eventemitter2": "~0.4.13",
+ "exit": "~0.1.1",
+ "findup-sync": "~0.1.2",
+ "getobject": "~0.1.0",
+ "glob": "~3.1.21",
+ "grunt-legacy-log": "~0.1.0",
+ "grunt-legacy-util": "~0.2.0",
+ "hooker": "~0.2.3",
+ "iconv-lite": "~0.2.11",
+ "js-yaml": "~2.0.5",
+ "lodash": "~0.9.2",
+ "minimatch": "~0.2.12",
+ "nopt": "~1.0.10",
+ "rimraf": "~2.2.8",
+ "underscore.string": "~2.2.1",
+ "which": "~1.0.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "grunt-check-modules": {
+ "node_modules/grunt-check-modules": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/grunt-check-modules/-/grunt-check-modules-1.0.0.tgz",
- "integrity": "sha1-Y/9erkYTF5tKifaozTcfekAfd4I="
+ "integrity": "sha1-Y/9erkYTF5tKifaozTcfekAfd4I=",
+ "engines": {
+ "node": ">=0.6.0"
+ },
+ "peerDependencies": {
+ "grunt": "0.4.x"
+ }
},
- "grunt-jquery-content": {
+ "node_modules/grunt-jquery-content": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/grunt-jquery-content/-/grunt-jquery-content-2.0.0.tgz",
"integrity": "sha1-jVFDOs0z/n7VL9956gAxwCRSwII=",
"dependencies": {
- "async": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz",
- "integrity": "sha1-rDYTsdqb7RtHUQu0ZRuJMeRxRsc="
- },
- "which": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/which/-/which-1.0.5.tgz",
- "integrity": "sha1-VjDWgZ3aaS8UZEYueVbLQsCEJzk="
- }
- }
- },
- "grunt-legacy-log": {
+ "async": "0.9.0",
+ "cheerio": "0.17.0",
+ "grunt-check-modules": "1.0.0",
+ "grunt-wordpress": "2.1.0",
+ "he": "0.5.0",
+ "highlight.js": "7.3.0",
+ "marked": "0.3.2",
+ "rimraf": "2.2.8",
+ "spawnback": "1.0.0",
+ "which": "1.0.5"
+ }
+ },
+ "node_modules/grunt-jquery-content/node_modules/async": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz",
+ "integrity": "sha1-rDYTsdqb7RtHUQu0ZRuJMeRxRsc="
+ },
+ "node_modules/grunt-jquery-content/node_modules/which": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.5.tgz",
+ "integrity": "sha1-VjDWgZ3aaS8UZEYueVbLQsCEJzk=",
+ "bin": {
+ "which": "bin/which"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/grunt-legacy-log": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
"integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
"dependencies": {
- "lodash": {
- "version": "2.4.2",
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
- },
- "underscore.string": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0="
- }
- }
- },
- "grunt-legacy-log-utils": {
+ "colors": "~0.6.2",
+ "grunt-legacy-log-utils": "~0.1.1",
+ "hooker": "~0.2.3",
+ "lodash": "~2.4.1",
+ "underscore.string": "~2.3.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/grunt-legacy-log-utils": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
"integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
"dependencies": {
- "lodash": {
- "version": "2.4.2",
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
- },
- "underscore.string": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0="
- }
- }
- },
- "grunt-legacy-util": {
+ "colors": "~0.6.2",
+ "lodash": "~2.4.1",
+ "underscore.string": "~2.3.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/grunt-legacy-log-utils/node_modules/lodash": {
+ "version": "2.4.2",
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "engines": [
+ "node",
+ "rhino"
+ ]
+ },
+ "node_modules/grunt-legacy-log-utils/node_modules/underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/grunt-legacy-log/node_modules/lodash": {
+ "version": "2.4.2",
+ "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+ "engines": [
+ "node",
+ "rhino"
+ ]
+ },
+ "node_modules/grunt-legacy-log/node_modules/underscore.string": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/grunt-legacy-util": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
- "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs="
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+ "dependencies": {
+ "async": "~0.1.22",
+ "exit": "~0.1.1",
+ "getobject": "~0.1.0",
+ "hooker": "~0.2.3",
+ "lodash": "~0.9.2",
+ "underscore.string": "~2.2.1",
+ "which": "~1.0.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "grunt-wordpress": {
+ "node_modules/grunt-wordpress": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/grunt-wordpress/-/grunt-wordpress-2.1.0.tgz",
- "integrity": "sha1-ty0EttVbQdFP/Yrq8W0ibFk9vl0="
+ "integrity": "sha1-ty0EttVbQdFP/Yrq8W0ibFk9vl0=",
+ "dependencies": {
+ "gilded-wordpress": "1.0.0"
+ }
},
- "he": {
+ "node_modules/he": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/he/-/he-0.5.0.tgz",
- "integrity": "sha1-LAX/rvkLaOhg8/0rVO9YCYknfuI="
+ "integrity": "sha1-LAX/rvkLaOhg8/0rVO9YCYknfuI=",
+ "bin": {
+ "he": "bin/he"
+ }
},
- "highlight.js": {
+ "node_modules/highlight.js": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-7.3.0.tgz",
- "integrity": "sha1-bF8PZOcHj2ZAK82/yJEQw/0bqZ8="
+ "integrity": "sha1-bF8PZOcHj2ZAK82/yJEQw/0bqZ8=",
+ "deprecated": "Version no longer supported. Upgrade to @latest",
+ "engines": {
+ "node": "*"
+ }
},
- "hooker": {
+ "node_modules/hooker": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
- "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk="
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "engines": {
+ "node": "*"
+ }
},
- "htmlparser2": {
+ "node_modules/htmlparser2": {
"version": "3.7.3",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.7.3.tgz",
"integrity": "sha1-amTHdjfAjG8w7CqBV6UzM758sF4=",
"dependencies": {
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8="
- },
- "entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
- }
- }
- },
- "iconv-lite": {
+ "domelementtype": "1",
+ "domhandler": "2.2",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
+ },
+ "node_modules/iconv-lite": {
"version": "0.2.11",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
- "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg="
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "inherits": {
+ "node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
- "isarray": {
+ "node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
- "js-yaml": {
+ "node_modules/js-yaml": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
- "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g="
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+ "dependencies": {
+ "argparse": "~ 0.1.11",
+ "esprima": "~ 1.0.2"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ },
+ "engines": {
+ "node": ">= 0.6.0"
+ }
},
- "lodash": {
+ "node_modules/lodash": {
"version": "0.9.2",
"resolved": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
- "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw="
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+ "engines": [
+ "node",
+ "rhino"
+ ]
},
- "lru-cache": {
+ "node_modules/lru-cache": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
},
- "marked": {
+ "node_modules/marked": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.3.2.tgz",
- "integrity": "sha1-AV2xWIZEOPJKZL3WGgQotBhwbQk="
+ "integrity": "sha1-AV2xWIZEOPJKZL3WGgQotBhwbQk=",
+ "bin": {
+ "marked": "bin/marked"
+ }
},
- "minimatch": {
+ "node_modules/minimatch": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo="
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+ "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue",
+ "dependencies": {
+ "lru-cache": "2",
+ "sigmund": "~1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
},
- "natives": {
+ "node_modules/natives": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz",
- "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg=="
+ "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==",
+ "deprecated": "This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x."
},
- "nopt": {
+ "node_modules/nopt": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4="
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "*"
+ }
},
- "once": {
+ "node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dependencies": {
+ "wrappy": "1"
+ }
},
- "readable-stream": {
+ "node_modules/readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk="
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
},
- "rimraf": {
+ "node_modules/rimraf": {
"version": "2.2.8",
"resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
- "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "bin": {
+ "rimraf": "bin.js"
+ }
},
- "sax": {
+ "node_modules/sax": {
"version": "0.4.3",
"resolved": "http://registry.npmjs.org/sax/-/sax-0.4.3.tgz",
"integrity": "sha1-cA46NOsueSzjgHkccSgPNzGWXdw="
},
- "sigmund": {
+ "node_modules/sigmund": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
},
- "spawnback": {
+ "node_modules/spawnback": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/spawnback/-/spawnback-1.0.0.tgz",
"integrity": "sha1-9zZi9+VNlTZ+ynTWQmxnfdfqaG8="
},
- "string_decoder": {
+ "node_modules/string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
},
- "underscore": {
+ "node_modules/underscore": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
"integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
},
- "underscore.string": {
+ "node_modules/underscore.string": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
- "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk="
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
+ "engines": {
+ "node": "*"
+ }
},
- "which": {
+ "node_modules/which": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
- "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8="
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+ "bin": {
+ "which": "bin/which"
+ }
},
- "wordpress": {
+ "node_modules/wordpress": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordpress/-/wordpress-1.0.0.tgz",
- "integrity": "sha1-m+FQ5pObYUnVw0F017UIeOK7s88="
+ "integrity": "sha1-m+FQ5pObYUnVw0F017UIeOK7s88=",
+ "dependencies": {
+ "xmlrpc": "1.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
},
- "wrappy": {
+ "node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
- "xmlbuilder": {
+ "node_modules/xmlbuilder": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.3.1.tgz",
- "integrity": "sha1-XtTCK0YiwkN/r4Pk8jbyPWu/JkE="
+ "integrity": "sha1-XtTCK0YiwkN/r4Pk8jbyPWu/JkE=",
+ "engines": {
+ "node": ">=0.2.0"
+ }
},
- "xmlrpc": {
+ "node_modules/xmlrpc": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/xmlrpc/-/xmlrpc-1.0.1.tgz",
- "integrity": "sha1-QZcSWnn5mG1Ih2cVqC0Gj+8WiuM="
+ "integrity": "sha1-QZcSWnn5mG1Ih2cVqC0Gj+8WiuM=",
+ "dependencies": {
+ "sax": "0.4.x",
+ "xmlbuilder": "0.3.1"
+ },
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.0.0"
+ }
}
}
}
diff --git a/reference.md b/reference.md
new file mode 100644
index 0000000..7d1f82c
--- /dev/null
+++ b/reference.md
@@ -0,0 +1,130 @@
+---
+layout: default
+title: Reference documentation
+---
+
+# Goals
+The ultimate goal of this plugin is to make working with forms more fun for everyone. By improving the interaction, it is easier and less annoying for the user to fill out the form and submit it.
+
+To achieve this, it is important that the plugin is actually deployed on websites around the world, so a lot of focus is spent on making it easy for developers - that's you - to use the plugin.
+
+The plugin can never replace server-side validation and doesn't intend to do so. Having both in place gives you the necessary security for your application, as well as improved usability.
+
+# Markup recommendations
+Mandated: A 'name' attribute is required for all input elements needing validation, and the plugin will not work without this. A 'name' attribute must also be unique to the form, as this is how the plugin keeps track of all input elements. However, each group of radio or checkbox elements will share the same 'name' since the value of this grouping represents a single piece of the form data.
+
+Optionally: Each input can have a label associated with it, where the 'for' attribute of the label refers to the 'id' attribute of the input. It's also a common practice to have 'id' and 'name' attributes with the same value, although keep in mind that since this plugin does not use the 'id' attribute, this is not mandatory.
+
+```html
+
+
+```
+
+# Methods
+A validation method implements the logic to validate any element. Provided are a set of default validation methods, such as `required`. Apart from `required` itself and `equalTo`, all validation methods declare an element valid when it has no value at all. That way an email field is optional unless `required` is specified. You can specify an element input to contain a valid email address, or nothing at all. Use jQuery.validator.addMethod to implement custom methods.
+
+# Rules
+A validation rule applies one or more validation methods to an input element. You can specify validation rules via metadata or via plugin settings (option `rules`). The decision is often influenced by serverside infrastructure. If a web framework is used, it is often easier to use metadata, which is also good for fast prototyping. Plugin settings produce cleaner markup, though valid markup results from both.
+
+## Fields with complex names (brackets, dots)
+If your form consists of fields using names that aren't legal JavaScript identifiers, you have to quote those names when using the `rules` option:
+
+```js
+ $("#myform").validate({
+ rules: {
+ // no quoting necessary
+ name: "required",
+ // quoting necessary!
+ "user[email]": "email",
+ // dots need quoting, too!
+ "user.address.street": "required"
+ }
+ });
+```
+
+## Refactoring rules
+Whenever you have multiple fields with the same rules and messages, refactoring those can reduce a lot of duplication. Using `addMethod()` and `addClassRules()` are most effective for that.
+
+Let's consider an example where you have ten customer fields, each required and with a minlength of 2. You need custom messages for both rules. To avoid having to specify those rules and messages again and again, we can alias existing methods with different messages and group them into a single class:
+
+```js
+ // alias required to cRequired with new message
+ $.validator.addMethod("cRequired", $.validator.methods.required,
+ "Customer name required");
+ // alias minlength, too
+ $.validator.addMethod("cMinlength", $.validator.methods.minlength,
+ // leverage parameter replacement for minlength, {0} gets replaced with 2
+ $.validator.format("Customer name must have at least {0} characters"));
+ // combine them both, including the parameter for minlength
+ $.validator.addClassRules("customer", { cRequired: true, cMinlength: 2 });
+```
+
+With that in place, we can add a class customer to all customer fields and be done with it:
+
+```html
+
+
+
+```
+
+You can also reuse existing methods inside other custom methods, to reuse certain implementations. For example, if you're writing a custom method for validating email addresses inside a single field, you could call the existing `email` method for each email:
+
+```js
+jQuery.validator.methods.email.call(this, email, element)
+```
+
+# Error messages
+An error message displays a hint for the user about invalid elements, and what is wrong. There are four ways to provide error messages. Via the title attribute of the input element to validate, via data attributes, via error labels and via plugin settings (option `messages`).
+
+All validation rules included here provide a default error message which you can use for prototyping, because it is used when no specific message is provided.
+
+The priorities are as follows: A custom message (passed by plugin options), the element's title, the default message.
+
+When using data attributes, you can set a generic message for all rules, or specific messages per rule:
+```html
+
+
+```
+
+# Error message display
+Error messages are handled via label elements with an additional class (option `errorClass`). The link between the message and the invalid element is provided via the labels for attribute. When provided in the markup, they are shown and hidden accordingly, and otherwise created on demand. By default, labels are created after the invalid element, this is also customizable (option `errorPlacement`). It is also possible to put them into an error container (option `errorLabelContainer`). To use a different element then a label, specify the `errorElement` option.
+
+# General messages
+In addition to field-specific messages you can display a general "your form is invalid, please fix the highlighted fields!" message in a container anywhere on your page, eg. above the form (option `errorContainer`). The container is shown and hidden when errors occur and are fixed accordingly. The container for error labels (option `errorLabelContainer`) can also be nested inside the error container.
+
+# Focusing of invalid elements
+By default, the first invalid element in a form is focused after submitting a form with invalid elements. To prevent confusion on the behalf of the user, the plugin remembers the element that had focus when the form was submitted, and refocuses that element. That way the user can try to fill out elements of the form at the end, without being forced to focus them again and again. This can be disabled (option `focusInvalid`).
+
+# Form submit
+By default, the form submission is prevented when the form is invalid, and submitted as normal when it is valid. You can also handle the submission manually (option `submitHandler`).
+
+## Skipping validation on submit
+To skip validation while still using a submit-button, add the attribute "formnovalidate" to that input:
+
+```html
+
+
+```
+
+This used to work by adding `class="cancel"` to the input, this is now deprecated.
+
+[Demo for the cancel button](https://jqueryvalidation.org/files/demo/errorcontainer-demo.html)
+
+# Validation event
+By default, forms are validated on submit, triggered by the user clicking the submit button or pressing enter when a form input is focused (option `onsubmit`). In addition, once a field was highlighted as being invalid, it is validated whenever the user types something in the field (option `onkeyup`). When the user enters something invalid into a valid field, it is also validated when the field loses focus (option `onfocusout`).
+
+The goal of these interactions is to provide feedback as early as possible, whilst avoiding user annoyance. Displaying error messages before the user had the chance to even type something is not helpful.
+
+# Developing and debugging a form
+While developing and debugging the form, you should set the `debug` option to true. That prevents form submission on both valid and invalid forms and outputs some helpful messages to window.console (available via Firebug or Firebug Lite) that help debugging. When you have everything set up and don't get any error messages displayed, check if your rules all accept empty elements as valid (like email or url methods).
+
+Some issues are caused by certain form element's names. A name you should avoid is "submit" (for submit buttons and anything else). Browsers expose form elements as properties of the form element, by their name, in this case hiding native methods like submit(). Just don't use name="submit" and you're good.
+
+# Validating multiple forms on one page
+The plugin can handle only one form per call. In case you have multiple forms on a single page which you want to validate, you have to initialise them all individually:
+```js
+$( "form" ).each( function() {
+ $( this ).validate( options );
+} );
+```
+You can avoid having to duplicate the plugin settings by modifying the defaults, using jQuery.validator.setDefaults to override multiple settings at once.
From 093f7a5daa8b94cebaa19a3e6e53e3b81185420a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 7 Apr 2026 09:57:48 +0000
Subject: [PATCH 02/22] Add Jekyll layouts and update configuration
Agent-Logs-Url: https://github.com/jquery-validation/validation-content/sessions/56c60609-42d5-4470-b53a-8ba170e29227
Co-authored-by: bytestream <1788397+bytestream@users.noreply.github.com>
---
.github/workflows/deploy-pages.yml | 6 --
Gemfile | 17 +-----
README.md | 78 ++++++++++++++++--------
_config.yml | 3 +-
_layouts/default.html | 96 ++++++++++++++++++++++++++++++
5 files changed, 153 insertions(+), 47 deletions(-)
create mode 100644 _layouts/default.html
diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml
index dd2a954..5c5d571 100644
--- a/.github/workflows/deploy-pages.yml
+++ b/.github/workflows/deploy-pages.yml
@@ -29,12 +29,6 @@ jobs:
- name: Setup Pages
uses: actions/configure-pages@v5
- - name: Setup Ruby
- uses: ruby/setup-ruby@v1
- with:
- ruby-version: '3.1'
- bundler-cache: true
-
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
diff --git a/Gemfile b/Gemfile
index f809cbc..1f885a2 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,22 +1,7 @@
source "https://rubygems.org"
-gem "jekyll", "~> 4.3"
-gem "minima", "~> 2.5"
+gem "jekyll", "~> 3.9"
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end
-
-# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
-# and associated library.
-platforms :mingw, :x64_mingw, :mswin, :jruby do
- gem "tzinfo", ">= 1", "< 3"
- gem "tzinfo-data"
-end
-
-# Performance-booster for watching directories on Windows
-gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin]
-
-# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
-# do not have a Java counterpart.
-gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
diff --git a/README.md b/README.md
index 6308039..9b756c0 100644
--- a/README.md
+++ b/README.md
@@ -1,35 +1,65 @@
-jqueryvalidation-content
-========================
+# jQuery Validation Plugin - Content Repository
-## Building
+This repository contains the documentation and content for the [jQuery Validation Plugin](https://github.com/jquery-validation/jquery-validation) website.
-### Requirements
+## GitHub Pages Deployment
-* libxml2
-* libxslt
+This site is automatically deployed to GitHub Pages using Jekyll.
-The `xmllint` and `xsltproc` utilities need to be in your path. If you are on Windows, you can get libxml2 and libxslt from GnuWin32.
+### How it Works
-* Install [WordPress](http://wordpress.org/download/)
-* Install [jqueryvalidation-theme](https://github.com/jzaefferer/validation-theme) - clone that repo, then symlink it into your `wp-content/themes` folder
-* Install [gilded-wordpress plugin](https://raw.githubusercontent.com/scottgonzalez/gilded-wordpress/v1.0.0/gilded-wordpress.php)
-* Install [jquery-static-index plugin](https://raw.githubusercontent.com/jquery/jquery-wp-content/v4.0.1/plugins/jquery-static-index.php)
+- Content is written in Markdown with Jekyll front matter
+- The site is built using Jekyll (configured in `_config.yml`)
+- GitHub Actions automatically builds and deploys the site when changes are pushed to the `main` or `master` branch
+- The workflow is defined in `.github/workflows/deploy-pages.yml`
-### Installation
+### Local Development
-In this repo:
-* Make sure nodejs (with npm) is installed, otherwise install from nodejs.org
-* `cp config-sample.json config.json`, edit config.json to match login for local WordPress
-* run `npm install -g grunt-cli`
-* run `npm install`
+To test the site locally:
-### Hacks
+1. Install Ruby and Bundler:
+ ```bash
+ gem install bundler
+ ```
-* Make sure your local `wordpress` nodejs module contains [this commit](https://github.com/scottgonzalez/node-wordpress/commit/2b19238cf8064dafb66b9db09d0adcc9eac7f724)
-* Make sure your local config contains
- * rpc-auth and basic-auth credentials
- * a https jqueryvalidation url
+2. Install dependencies:
+ ```bash
+ bundle install
+ ```
-### Deploy
+3. Run Jekyll locally:
+ ```bash
+ bundle exec jekyll serve
+ ```
-`grunt deploy`
+4. Open your browser to `http://localhost:4000`
+
+### Making Changes
+
+1. Edit or create Markdown files (`.md`) in the root directory
+2. Each file should have Jekyll front matter at the top:
+ ```yaml
+ ---
+ layout: default
+ title: Your Page Title
+ ---
+ ```
+3. Commit and push your changes
+4. GitHub Actions will automatically build and deploy the site
+
+### Content Structure
+
+- `index.md` - Home page
+- `documentation.md` - API documentation
+- `contribute.md` - Contribution guide
+- `reference.md` - General guidelines and reference
+- `entries/` - XML documentation entries (for API methods)
+- `pages/` - Original content files (kept for reference)
+
+### Deployment
+
+The site is automatically deployed via GitHub Actions when:
+- Changes are pushed to `main` or `master` branch
+- The workflow can also be triggered manually from the Actions tab
+
+No manual deployment is required!
diff --git a/_config.yml b/_config.yml
index 91d9780..8cea63c 100644
--- a/_config.yml
+++ b/_config.yml
@@ -5,7 +5,6 @@ baseurl: ""
# Build settings
markdown: kramdown
-theme: minima
# Exclude from processing
exclude:
@@ -22,6 +21,8 @@ exclude:
- .gitignore
- .gitattributes
- dist
+ - Gemfile
+ - Gemfile.lock
# Collections
collections:
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..4227053
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
-
-
-
-
-
- If nothing is specified, only images are allowed (image/*).
- -You can specify multiple mime-types by separating them with a comma, e.g. "image/x-eps,application/pdf".
- -Works with type="file" inputs.
-Part of the additional-methods.js file
-Note: This method used to look at just the filename, specifically the file extension. That behaviour is now available as the "extension" method inside src/additional/extension.js.
-
-Required, audio files only:
-
-The implementation does a check like this: jQuery.trim(value).length == 0
- Mouseover to see the value of each input
-
-
-
-]]>
- Works with text inputs.
-Part of the additional-methods.js file
-Note: The algorithm used can't verify the validity of the number - it is just an integrity check. As with any other clientside validation, you have to implement the same or better validation on the serverside.
-
-Required, creditcard (try 446-667-651):
-
-DEPRECATION warning:
-This method is deprecated and will be removed in version 2.0.0.
Please don't use it, since it relies on the Date constructor, which behaves very differently across browsers and locales. Use dateISO instead or one of the locale specific methods (in localizations/ and additional-methods.js).
-Required, date:
-
-Works with text inputs.
-
-Required, dateISO:
-
-Works with text inputs.
-
-Required, digits:
-
-Works with text inputs.
-IMPORTANT NOTE:
-As of version 1.12.0 we started using the same regular expression that the HTML5 specification suggests for browsers to use. We will follow their lead and use the same check. In case you need to adjust the built-in validation regular expression patterns, please use the $.validator.methods property. If you have different requirements, please consider using a custom method.
-Required, email:
-
-
-Password
-
-Works with text inputs.
-Part of the additional-methods.js file
-
-Required, only .xls and .csv files allowed:
-
-The implementation does a check like this: jQuery.trim(value).length > 0
- Mouseover to see the value of each input
-
-
-
-]]>
-
-
- pattern method (in additional methods, source in src/additional/pattern.js) to validate a field against a regular expression. In general, it is a good idea to encapsulate those regular expressions inside their own method. If you need lots of slightly different expressions, try to extract a common parameter.
-
-See also a library of regular expressions.
-
-
-
- If you're familiar with the term, this makes this function support currying. If you don't care about that, just use the first argument.
-
-
-
-
-Required, maximum value 23:
-
-Works with text inputs, selects and checkboxes.
-
-Required, maximum length 4:
-
-
-Required, minimum 13:
-
-Works with text inputs, selects and checkboxes.
-
-Required, minimum length 3:
-
-Transform the value of an element and the result for validation instead of the initial value. The normalizer can be defined global to all elements or local to only one element. With that said, the local normalizer will only run for the element for which it was defined. The global normalizer will run for all validated elements. This normalizer can be then overrided for each element, as needed, by attaching one to it. This way only the local one will run for that element, and the global one will run for others.
-Note that this method:
-Has been available since version 1.15.0
Doesn't change the elements' value, it only changes the value used for validation.
Gets the value passed as argument, and "this" within it references the corresponding DOMElement.
For versions between 1.15.0 and 1.17.0, it must return a string value. And as of 1.17.1, it can return any value including null and undefined.
-Required:
-
-
-url:
-
-
-Required:
-
-Works with text inputs.
-
-Required, decimal number:
-
-Part of the additional-methods.js file
-
-Required, us phone number:
-
-
-Required, minimum 13, maximum 23:
-
-Works with text inputs, selects and checkboxes.
-
-Required, minimum length 2, maximum length 6:
-
-"true" for valid elements, and can be "false", undefined, or null for invalid elements, using the default error message. If the serverside response is a string, eg. "That name is already taken, try peter123 instead", this string will be displayed as a custom error message in place of the default.
-
- For more examples, take a look the marketo demo and the milk demo.
-These options deep-extend the defaults (dataType:"json", data:{nameOfTheElement:valueOfTheElement}). Any options you provide will override the defaults.
-
- Part of the additional-methods.js file
-
-Mobile phone:
-
-Works with text inputs, selects, checkboxes and radio buttons.
-To force a user to select an option from a select box, provide an empty option element like <option value="">Choose...</option>
-Note that white spaces are considered valid.
-Very often your expression will use selector filters such as #foo:checked, #foo:filled, #foo:visible. This plugin provides custom selectors for that purpose.
-Required:
-
-
-Please select a fruit
-
-
-
-
- Male
-
-
-
-
-Please agree to our policy
-
-
-Check to make next field required
-
-
-Age
-
-Adds the specified rules and returns all rules for the first matched element. Requires that the parent form is validated, that is, $( "form" ).validate() is called first or
- -Removes the specified rules and returns all rules for the first matched element.
- -There are several ways to specify validation rules.
-data-msg (a generic, not-method specific message), data-msg-[method] and data-rule-[method].When setting, the rules can also contain a messages-object, specifying custom messages for existing or added rules.
-
-
-
-
-
-Required, step 10:
-
-
- Works with text inputs.
-
-Required, URL:
-
-
-
-
- Use the debug option to ease setting up validation rules, it always prevents the default submit, even when script errors occur.
-Use submitHandler to implement your own form submit, eg. via Ajax. Use invalidHandler to react when an invalid form is submitted.
-Use rules and messages to specify which elements to validate, and how. See rules() for more details about specifying validation rules.
-Use errorClass, errorElement, wrapper, errorLabelContainer, errorContainer, showErrors, success, errorPlacement, highlight, unhighlight, and ignoreTitle to control how invalid elements and error messages are displayed.
-window.console property exists). Try to enable when a form is just submitted instead of validation stopping the submit.
- Example: Prevents the form from submitting and tries to help setting up the validation with warnings about missing methods and other debug messages.
-
- $("#myform").validate({
- debug: true
- });
-
- Example: Submits the form via Ajax, using jQuery Form plugin, when valid.
-
- $("#myform").validate({
- submitHandler: function(form) {
- $(form).ajaxSubmit();
- }
- });
-
- Example: Use submitHandler to process something and then using the default submit. Note that "form" refers to a DOM element, this way the validation isn't triggered again.
-
- $("#myform").validate({
- submitHandler: function(form) {
- // do other things for a valid form
- form.submit();
- }
- });
-
- The callback gets passed two arguments:
-Example: Displays a message above the form, indicating how many fields are invalid when the user tries to submit an invalid form.
-
- $("#myform").validate({
- invalidHandler: function(event, validator) {
- // 'this' refers to the form
- var errors = validator.numberOfInvalids();
- if (errors) {
- var message = errors == 1
- ? 'You missed 1 field. It has been highlighted'
- : 'You missed ' + errors + ' fields. They have been highlighted';
- $("div.error span").html(message);
- $("div.error").show();
- } else {
- $("div.error").hide();
- }
- }
- });
-
- The callback gets passed two arguments:
-Example: Ignores all elements with the class "ignore" when validating.
-
- $("#myform").validate({
- ignore: ".ignore"
- });
-
- Example: Specifies a name element as required and an email element as required (using the shortcut for a single rule) and a valid email address (using another object literal).
-
- $("#myform").validate({
- rules: {
- // simple rule, converted to {required:true}
- name: "required",
- // compound rule
- email: {
- required: true,
- email: true
- }
- }
- });
-
- Example: Specifies a contact element as required and as email address, the latter depending on a checkbox being checked for contact via email.
-
- $("#myform").validate({
- rules: {
- contact: {
- required: true,
- email: {
- depends: function(element) {
- return $("#contactform_email").is(":checked");
- }
- }
- }
- }
- });
-
- Example: Configure a rule that requires a parameter, along with a depends callback.
- $("#myform").validate({
- rules: {
- // at least 15€ when bonus material is included
- pay_what_you_want: {
- required: true
- min: {
- // min needs a parameter passed to it
- param: 15,
- depends: function(element) {
- return $("#bonus-material").is(":checked");
- }
- }
- }
- }
- });
-
- Example: Specifies a name element as required and an email element as required and a valid email address. A single message is specified for the name element, and two messages for email.
-
- $("#myform").validate({
- rules: {
- name: "required",
- email: {
- required: true,
- email: true
- }
- },
- messages: {
- name: "Please specify your name",
- email: {
- required: "We need your email address to contact you",
- email: "Your email address must be in the format of name@domain.com"
- }
- }
- });
-
- Example: Validates the name-field as required and having at least two characters. Provides a callback message using jQuery.validator.format to avoid having to specify the parameter in two places.
-
- $("#myform").validate({
- rules: {
- name: {
- required: true,
- minlength: 2
- }
- },
- messages: {
- name: {
- required: "We need your email address to contact you",
- minlength: jQuery.validator.format("At least {0} characters required!")
- }
- }
- });
-
- Example: Use a table layout for the form, placing error messags in the next cell after the input.
-
- $("#myform").validate({
- groups: {
- username: "fname lname"
- },
- errorPlacement: function(error, element) {
- if (element.attr("name") == "fname" || element.attr("name") == "lname" ) {
- error.insertAfter("#lastname");
- } else {
- error.insertAfter(element);
- }
- }
- });
-
- Example: Disables onsubmit validation, allowing the user to submit whatever he wants, while still validating on keyup/blur/click events (if not specified otherwise).
-
- $("#myform").validate({
- onsubmit: false
- });
-
- Set to a Function to decide for yourself when to run validation.
-A boolean true is not a valid value.
-Example: Disables focusout validation.
-
- $("#myform").validate({
- onfocusout: false
- });
-
- The callback gets passed two arguments:
-Set to a Function to decide for yourself when to run validation.
-A boolean true is not a valid value.
-Example: Disables onkeyup validation.
-
- $("#myform").validate({
- onkeyup: false
- });
-
- The callback gets passed two arguments:
-Set to a Function to decide for yourself when to run validation.
-A boolean true is not a valid value.
-Example: Disables onclick validation of checkboxes, radio buttons, and select elements.
-
- $("#myform").validate({
- onclick: false
- });
-
- The callback gets passed two arguments:
-Example: Disables focusing of invalid elements.
-
- $("#myform").validate({
- focusInvalid: false
- });
-
- Example: Enables cleanup when focusing elements, removing the error class and hiding error messages when an element is focused.
-
- $("#myform").validate({
- focusCleanup: true
- });
-
- Example: Sets the error class to "invalid".
-
- $("#myform").validate({
- errorClass: "invalid"
- });
-
- Example: Sets the valid class to "success".
-
- $("#myform").validate({
- validClass: "success"
- });
-
- Example: Sets the error element to "em".
-
- $("#myform").validate({
- errorElement: "em"
- });
-
- Example: Wrap each error element with a list item, useful when using an ordered or unordered list as the error container.
-
- $("#myform").validate({
- wrapper: "li"
- });
-
- Example: All error labels are displayed inside an unordered list with the ID "messageBox", as specified by the selector passed as errorContainer option. All error elements are wrapped inside a li element, to create a list of messages.
-
- $("#myform").validate({
- errorLabelContainer: "#messageBox",
- wrapper: "li",
- submitHandler: function() { alert("Submitted!") }
- });
-
- Example: Uses an additonal container for error messages. The elements given as the errorContainer are all shown and hidden when errors occur. However, the error labels themselves are added to the element(s) given as errorLabelContainer, here an unordered list. Therefore the error labels are also wrapped into li elements (wrapper option).
-
- $("#myform").validate({
- errorContainer: "#messageBox1, #messageBox2",
- errorLabelContainer: "#messageBox1 ul",
- wrapper: "li", debug:true,
- submitHandler: function() { alert("Submitted!") }
- });
-
- Example: Update the number of invalid elements each time an error is displayed. Delegates to the default implementation for the actual error display.
-
- $("#myform").validate({
- showErrors: function(errorMap, errorList) {
- $("#summary").html("Your form contains "
- + this.numberOfInvalids()
- + " errors, see details below.");
- this.defaultShowErrors();
- }
- });
-
- The callback gets passed two arguments:
-Example: Use a table layout for the form, placing error messages in the next cell after the input.
-
- $("#myform").validate({
- errorPlacement: function(error, element) {
- error.appendTo( element.parent("td").next("td") );
- }
- });
-
- The callback gets passed two arguments:
-Example: Add a class "valid" to valid elements, styled via CSS.
-
- $("#myform").validate({
- success: "valid",
- submitHandler: function() { alert("Submitted!") }
- });
-
- Example: Add a class "valid" to valid elements, styled via CSS, and add the text "Ok!".
-
- $("#myform").validate({
- success: function(label) {
- label.addClass("valid").text("Ok!")
- },
- submitHandler: function() { alert("Submitted!") }
- });
-
- The callback gets passed two arguments:
-Example: Highlights an invalid element by fading it out and in again.
-
- $("#myform").validate({
- highlight: function(element, errorClass) {
- $(element).fadeOut(function() {
- $(element).fadeIn();
- });
- }
- });
-
- Example: Adds the error class to both the invalid element and its label
-
- $("#myform").validate({
- highlight: function(element, errorClass, validClass) {
- $(element).addClass(errorClass).removeClass(validClass);
- $(element.form).find("label[for=" + element.id + "]")
- .addClass(errorClass);
- },
- unhighlight: function(element, errorClass, validClass) {
- $(element).removeClass(errorClass).addClass(validClass);
- $(element.form).find("label[for=" + element.id + "]")
- .removeClass(errorClass);
- }
- });
-
- The callback gets passed three arguments:
-input.errorClass option.validClass option.Example: Configure the plugin to ignore title attributes on validated elements when looking for messages.
-
- $("#myform").validate({
- ignoreTitle: true
- });
-
-
-
-
-
-
-### Isn't that nice and easy?
-A single line of jQuery to select the form and apply the validation plugin, plus a few annotations on each element to specify the validation rules.
-
-Of course that isn't the only way to specify rules. You also don't have to rely on those default messages, but they come in handy when starting to setup validation for a form.
-
-### A few things to look out for when playing around with the demo
-
-* After trying to submit an invalid form, the first invalid element is focused, allowing the user to correct the field. If another invalid field - that wasn't the first one - was focused before submit, that field is focused instead, allowing the user to start at the bottom if he or she prefers.
-* Before a field is marked as invalid, the validation is lazy: Before submitting the form for the first time, the user can tab through fields without getting annoying messages - they won't get bugged before having the chance to actually enter a correct value
-* Once a field is marked invalid, it is eagerly validated: As soon as the user has entered the necessary value, the error message is removed
-* If the user enters something in a non-marked field, and tabs/clicks away from it (blur the field), it is validated - obviously the user had the intention to enter something, but failed to enter the correct value
-
-That behaviour can be irritating when clicking through demos of the validation plugin - it is designed for an unobtrusive user experience, annoying the user as little as possible with unnecessary error messages. So when you try out other demos, try to react like one of your users would, and see if the behaviour is better then. If not, please let me know about any ideas you may have for improvements!
-
-# API Documentation
-
-You're probably looking for
-
-### [Options for the validate() method](/validate)
-
-If not, read on.
-
-Throughout the documentation, two terms are used very often, so it's important that you know their meaning in the context of the validation plugin:
-
-* **method**: A validation method implements the logic to validate an element, like an email method that checks for the right format of a text input's value. A set of standard methods is available, and it is easy to write your own.
-* **rule**: A validation rule associates an element with a validation method, like "validate input with name "primary-mail" with methods "required" and "email".
-
-## Plugin methods
-
-This library adds three jQuery plugin methods, the main entry point being the `validate` method:
-
-* [`validate()` - Validates the selected form.](/validate)
-* [`valid()` - Checks whether the selected form or selected elements are valid.](/valid)
-* [`rules()` - Read, add and remove rules for an element.](/rules)
-
-## Custom selectors
-
-This library also extends jQuery with three custom selectors:
-
-* [`:blank` - Selects all elements with a blank value.](/blank-selector)
-* [`:filled` - Selects all elements with a filled value.](/filled-selector)
-* [`:unchecked` - Selects all elements that are unchecked.](/unchecked-selector)
-
-## Validator
-
-The validate method returns a Validator object that has a few public methods that you can use to trigger validation programmatically or change the contents of the form. The validator object has more methods, but only those documented here are intended for usage.
-
-* [`Validator.form()` - Validates the form.](/Validator.form)
-* [`Validator.element()` - Validates a single element.](/Validator.element)
-* [`Validator.resetForm()` - Resets the controlled form.](/Validator.resetForm)
-* [`Validator.showErrors()` - Show the specified messages.](/Validator.showErrors)
-* [`Validator.numberOfInvalids()` - Returns the number of invalid fields.](/Validator.numberOfInvalids)
-* [`Validator.destroy()` - Destroys this instance of validator.](/Validator.destroy)
-
-There are a few static methods on the validator object:
-
-* [`jQuery.validator.addMethod()` - Add a custom validation method.](/jQuery.validator.addMethod)
-* [`jQuery.validator.format()` - Replaces {n} placeholders with arguments.](/jQuery.validator.format)
-* [`jQuery.validator.setDefaults()` - Modify default settings for validation.](/jQuery.validator.setDefaults)
-* [`jQuery.validator.addClassRules()` - Add a compound class method.](/jQuery.validator.addClassRules)
-
-## List of built-in Validation methods
-
-A set of standard validation methods is provided:
-
-* [`required` - Makes the element required.](/required-method)
-* [`remote` - Requests a resource to check the element for validity.](/remote-method)
-* [`minlength` - Makes the element require a given minimum length.](/minlength-method)
-* [`maxlength` - Makes the element require a given maximum length.](/maxlength-method)
-* [`rangelength` - Makes the element require a given value range.](/rangelength-method)
-* [`min` - Makes the element require a given minimum.](/min-method)
-* [`max` - Makes the element require a given maximum.](/max-method)
-* [`range` - Makes the element require a given value range.](/range-method)
-* [`step` - Makes the element require a given step.](/step-method)
-* [`email` - Makes the element require a valid email](/email-method)
-* [`url` - Makes the element require a valid url](/url-method)
-* [`date` - Makes the element require a date.](/date-method)
-* [`dateISO` - Makes the element require an ISO date.](/dateISO-method)
-* [`number` - Makes the element require a decimal number.](/number-method)
-* [`digits` - Makes the element require digits only.](/digits-method)
-* [`equalTo` - Requires the element to be the same as another one](/equalTo-method)
-
-Some more methods are provided as add-ons, and are currently included in additional-methods.js in the download package. Not all of them are documented here:
-
-* [`accept` - Makes a file upload accept only specified mime-types.](/accept-method)
-* [`creditcard` - Makes the element require a credit card number.](/creditcard-method)
-* [`extension` - Makes the element require a certain file extension.](/extension-method)
-* [`phoneUS` - Validate for valid US phone number.](/phoneUS-method)
-* [`require_from_group` - Ensures a given number of fields in a group are complete.](/require_from_group-method)
-
-You can find the [source code for all additional methods in the GitHub repository](https://github.com/jzaefferer/jquery-validation/tree/master/src/additional).
-
-It is possible to re-define the implementation of the built-in rules using the [`$.validator.methods` property](/jQuery.validator.methods/)
-
-# [General Guidelines](/reference)
-
-The General Guidelines section provides detailed discussion of the design and ideas behind the plugin, explaining why certain things are as they are. It covers the features in more detail than the API documentation, which just briefly explains the various methods and options available.
-
-If you've decided to use the validation plugin in your application and want to get to know it better, it is recommended that you read the guidelines.
-
-## Fields with complex names (brackets, dots)
-
-When you have a name attribute like user[name], make sure to put the name in quotes. More details in the [General Guidelines](/reference).
-
-## Too much recursion
-
-Another common problem occurs with this code:
-
-
- $("#myform").validate({
- submitHandler: function(form) {
- // some other code
- // maybe disabling submit button
- // then:
- $(form).submit();
- }
- });
-
-
-This results in a too-much-recursion error: $(form).submit() triggers another round of validation, resulting in another call to submitHandler, and voila, recursion. Replace that with form.submit(), which triggers the native submit event instead and not the validation.
-
-So the correct code looks slightly different:
-
-
- $("#myform").validate({
- submitHandler: function(form) {
- form.submit();
- }
- });
-
-
-# Demos
-
-## [The Marketo sign-up form](https://jqueryvalidation.org/files/demo/marketo/)
-### [The Marketo sign-up form, step 2](https://jqueryvalidation.org/files/demo/marketo/step2.htm)
-Based on an old version of the marketo.com sign-up form. The custom validation was once replaced with this plugin. Thanks to Glen Lipka for contributing it!
-
-*Notable features of the demo:*
-
-* Customized message display: No messages displayed for the required method, only for typing-errors (like wrong email format); A summary is displayed at the top ("You missed 12 fields. They have been highlighted below.")
-* Remote validation of email field. Try to enter eg. glen@marketo.com
-* Integration with masked-input plugin, see Zip and Phone fields and Credit Card Number on step 2
-* A custom method for making the billing address on step 2 optional when "Same as Company Address" is checked
-* A custom method for checking the password: Checks that the password contains at least one number and one character and that it is at least 6 characters long. If the user blurs the field with an invalid value, the input is emptied and gets focus again.
-
-## [The Remember The Milk sign-up form](https://jqueryvalidation.org/files/demo/milk/)
-The sign-up form from rememberthemilk.com (based on an older version). The custom validation was replaced using this plugin. Thanks to RTM for contributing!
-
-*Notable features of the demo:*
-
-* Custom message display, based on the original table layout, using success option to display a checkmark for valid fields
-* Remote validation of username, to check if it is already taken (try "Peter", "asdf" or "George")
-
-## [A multipart "buy&sell a house" form](https://jqueryvalidation.org/files/demo/multipart/)
-Contributed by Michael Evangelista, showing a multipart form for buying and selling houses.
-
-*Notable features of the demo:*
-
-* Multipart, implemented using the jQuery UI accordion and a custom method to check if an element is on the current page when validated
-* Integration with masked-input plugin, see Phone and Zip fields
-
-## [Using remote validation to help with captchas](https://jqueryvalidation.org/files/demo/captcha/)
-Features remote validation for helping the user to fill out captchas.
-
-*Notable features of the demo:*
-
-* Remote validation to check if the user entered the correct captcha, without forcing him to submit the form first
diff --git a/pages/index.html b/pages/index.html
deleted file mode 100644
index d6df4f7..0000000
--- a/pages/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-This jQuery plugin makes simple clientside form validation easy, whilst still offering plenty of customization options. It makes a good choice if you’re building something new from scratch, but also when you’re trying to integrate something into an existing application with lots of existing markup. The plugin comes bundled with a useful set of validation methods, including URL and email validation, while providing an API to write your own methods. All bundled methods come with default error messages in english and translations into 37 other languages.
- -For a quick overview of what this plugin provides, check out this Webucator video (they also provide jQuery trainings):
- - -The plugin was initially written and maintained by Jörn Zaefferer, a member of the jQuery team, lead developer on the jQuery UI team and maintainer of QUnit. It was started back in the early days of jQuery in 2006, and updated and improved since then.
-Starting with Version 1.15.0 Markus Staab took over the maintenance of the codebase in February 2016. Since July 2016 Brahim Arkni assisted Markus, and a few months later Brahim joined the jQuery Validation core team.
- -bower install jquery-validationInstall-Package jQuery.Validationnpm i jquery-validation
+
+