diff --git a/CHANGELOG.md b/CHANGELOG.md index 941c1752..6354b815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,8 +101,6 @@ All notable changes of the Respect\Validation releases are documented in this fi *** See also: +- [README](README.md) - [Contributing](CONTRIBUTING.md) -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) - [License](LICENSE.md) -- [Validators](docs/VALIDATORS.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca3b1319..e36bf0f8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -179,8 +179,8 @@ As we already said, none of them are required but you will help us a lot. ## Documentation Our docs at http://respect.github.io/Validation are generated from our Markdown -files using [Couscous][]. Add your brand new rule there and everything will be -updated as soon as possible. +files using [Read the Docs][]. Add your brand new rule there and everything will +be updated automatically. ## Running Tests @@ -234,15 +234,13 @@ $ vendor/bin/php-cs-fixer fix *** See also: -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) +- [README](README.md) - [License](LICENSE.md) -- [Validators](docs/VALIDATORS.md) - [Changelog](CHANGELOG.md) [ArrayType]: https://github.com/Respect/Validation/commit/f08a1fa -[Couscous]: http://couscous.io/ "Couscous" +[Read the Docs]: https://readthedocs.org/ "Read the Docs" [data provider]: https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers "PHPUnit Data Providers" [open an issue]: http://github.com/Respect/Validation/issues [php-cs-fixer]: https://github.com/FriendsOfPHP/PHP-CS-Fixer "PHP Coding Standard Fixer" diff --git a/LICENSE.md b/LICENSE.md index fc1d6e8b..615cfd2e 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -32,8 +32,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *** See also: +- [README](README.md) - [Contributing](CONTRIBUTING.md) -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) -- [Validators](docs/VALIDATORS.md) - [Changelog](CHANGELOG.md) diff --git a/README.md b/README.md index dbf83e7f..6e026234 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,18 @@ [The most awesome validation engine ever created for PHP.](http://bit.ly/1a1oeQv) - Complex rules made simple: `v::numeric()->positive()->between(1, 255)->validate($input)`. -- [Granularity control](docs/README.md#validation-methods) for advanced reporting. +- Granularity control for advanced reporting. - More than 100 (fully tested) validators. -- [A concrete API](docs/CONCRETE_API.md) for non fluent usage. +- A concrete API for non fluent usage. - Works on PHP 5.4+ or HHVM 3.3+ +## Documentation + +Documentation can be found in https://respect-validation.readthedocs.io +and also in the [docs/](docs/index.md) folder. + ## Table of contents - [Contributing](CONTRIBUTING.md) -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) - [License](LICENSE.md) -- [Validators](docs/VALIDATORS.md) - [Changelog](CHANGELOG.md) diff --git a/docs/VALIDATORS.md b/docs/VALIDATORS.md deleted file mode 100644 index 4804cbee..00000000 --- a/docs/VALIDATORS.md +++ /dev/null @@ -1,338 +0,0 @@ -# Validators - -## Types - - * [ArrayVal](ArrayVal.md) - * [ArrayType](ArrayType.md) - * [BoolVal](BoolVal.md) - * [BoolType](BoolType.md) - * [CallableType](CallableType.md) - * [Countable](Countable.md) - * [Date](Date.md) - * [FalseVal](FalseVal.md) - * [FloatVal](FloatVal.md) - * [FloatType](FloatType.md) - * [Instance](Instance.md) - * [IntVal](IntVal.md) - * [IntType](IntType.md) - * [IterableType](IterableType.md) - * [NullType](NullType.md) - * [Numeric](Numeric.md) - * [ObjectType](ObjectType.md) - * [ResourceType](ResourceType.md) - * [ScalarVal](ScalarVal.md) - * [StringType](StringType.md) - * [TrueVal](TrueVal.md) - * [Type](Type.md) - * [Xdigit](Xdigit.md) - -## Generics - - * [AlwaysInvalid](AlwaysInvalid.md) - * [AlwaysValid](AlwaysValid.md) - * [Call](Call.md) - * [Callback](Callback.md) - * [FilterVar](FilterVar.md) - * [Not](Not.md) - * [Optional](Optional.md) - * [Type](Type.md) - * [When](When.md) - -## Comparing Values - - * [Age](Age.md) - * [Between](Between.md) - * [Equals](Equals.md) - * [Identical](Identical.md) - * [Max](Max.md) - * [Min](Min.md) - -## Numeric - - * [Between](Between.md) - * [BoolType](BoolType.md) - * [Even](Even.md) - * [Factor](Factor.md) - * [Fibonacci](Fibonacci.md) - * [Finite](Finite.md) - * [FloatVal](FloatVal.md) - * [FloatType](FloatType.md) - * [Infinite](Infinite.md) - * [IntVal](IntVal.md) - * [IntType](IntType.md) - * [Multiple](Multiple.md) - * [Negative](Negative.md) - * [NotEmpty](NotEmpty.md) - * [Numeric](Numeric.md) - * [Odd](Odd.md) - * [PerfectSquare](PerfectSquare.md) - * [Positive](Positive.md) - * [PrimeNumber](PrimeNumber.md) - * [Roman](Roman.md) - * [Xdigit](Xdigit.md) - -## String - - * [Alnum](Alnum.md) - * [Alpha](Alpha.md) - * [Between](Between.md) - * [Charset](Charset.md) - * [Cntrl](Cntrl.md) - * [Consonant](Consonant.md) - * [Contains](Contains.md) - * [Digit](Digit.md) - * [EndsWith](EndsWith.md) - * [Graph](Graph.md) - * [In](In.md) - * [Length](Length.md) - * [Lowercase](Lowercase.md) - * [NotEmpty](NotEmpty.md) - * [NoWhitespace](NoWhitespace.md) - * [PhpLabel](PhpLabel.md) - * [Prnt](Prnt.md) - * [Punct](Punct.md) - * [Regex](Regex.md) - * [ResourceType](ResourceType.md) - * [Slug](Slug.md) - * [Space](Space.md) - * [StartsWith](StartsWith.md) - * [Uppercase](Uppercase.md) - * [Version](Version.md) - * [Vowel](Vowel.md) - * [Xdigit](Xdigit.md) - -## Arrays - - * [ArrayVal](ArrayVal.md) - * [ArrayType](ArrayType.md) - * [Contains](Contains.md) - * [Each](Each.md) - * [EndsWith](EndsWith.md) - * [In](In.md) - * [Key](Key.md) - * [KeyNested](KeyNested.md) - * [KeySet](KeySet.md) - * [KeyValue](KeyValue.md) - * [Length](Length.md) - * [NotEmpty](NotEmpty.md) - * [StartsWith](StartsWith.md) - -## Objects - - * [Attribute](Attribute.md) - * [Instance](Instance.md) - * [Length](Length.md) - -## Date and Time - - * [Age](Age.md) - * [Between](Between.md) - * [Date](Date.md) - * [LeapDate](LeapDate.md) - * [LeapYear](LeapYear.md) - * [MinimumAge](MinimumAge.md) - -## Group Validators - - * [AllOf](AllOf.md) - * [NoneOf](NoneOf.md) - * [OneOf](OneOf.md) - -## Regional - - * [CountryCode](CountryCode.md) - * [CurrencyCode](CurrencyCode.md) - * [IdentityCard](IdentityCard.md) - * [LanguageCode](LanguageCode.md) - * [PostalCode](PostalCode.md) - * [SubdivisionCode](SubdivisionCode.md) - * [Tld](Tld.md) - -## Files - - * [Directory](Directory.md) - * [Executable](Executable.md) - * [Exists](Exists.md) - * [Extension](Extension.md) - * [File](File.md) - * [Image](Image.md) - * [Mimetype](Mimetype.md) - * [Readable](Readable.md) - * [Size](Size.md) - * [SymbolicLink](SymbolicLink.md) - * [Uploaded](Uploaded.md) - * [Writable](Writable.md) - -## Banking - - * [Bank](Bank.md) - * [BankAccount](BankAccount.md) - * [Bic](Bic.md) - -## Other - - * [Bsn](Bsn.md) - * [Cnh](Cnh.md) - * [Cnpj](Cnpj.md) - * [Cpf](Cpf.md) - * [Domain](Domain.md) - * [Email](Email.md) - * [HexRgbColor](HexRgbColor.md) - * [Imei](Imei.md) - * [Ip](Ip.md) - * [Json](Json.md) - * [MacAddress](MacAddress.md) - * [NfeAccessKey](NfeAccessKey.md) - * [NotBlank](NotBlank.md) - * [NotOptional](NotOptional.md) - * [Pesel](Pesel.md) - * [Phone](Phone.md) - * [Sf](Sf.md) - * [Url](Url.md) - * [VideoUrl](VideoUrl.md) - * [Zend](Zend.md) - -## Yes/No - - * [No](No.md) - * [Yes](Yes.md) - -## Alphabetically - - * [Age](Age.md) - * [AllOf](AllOf.md) - * [Alnum](Alnum.md) - * [Alpha](Alpha.md) - * [AlwaysInvalid](AlwaysInvalid.md) - * [AlwaysValid](AlwaysValid.md) - * [ArrayVal](ArrayVal.md) - * [ArrayType](ArrayType.md) - * [Attribute](Attribute.md) - * [Bank](Bank.md) - * [BankAccount](BankAccount.md) - * [Between](Between.md) - * [Bic](Bic.md) - * [BoolType](BoolType.md) - * [Bsn](Bsn.md) - * [Call](Call.md) - * [CallableType](CallableType.md) - * [Callback](Callback.md) - * [Charset](Charset.md) - * [Cnh](Cnh.md) - * [Cnpj](Cnpj.md) - * [Cntrl](Cntrl.md) - * [Consonant](Consonant.md) - * [Contains](Contains.md) - * [Countable](Countable.md) - * [CountryCode](CountryCode.md) - * [Cpf](Cpf.md) - * [CreditCard](CreditCard.md) - * [Date](Date.md) - * [Digit](Digit.md) - * [Directory](Directory.md) - * [Domain](Domain.md) - * [Each](Each.md) - * [Email](Email.md) - * [EndsWith](EndsWith.md) - * [Equals](Equals.md) - * [Even](Even.md) - * [Executable](Executable.md) - * [Exists](Exists.md) - * [Extension](Extension.md) - * [Factor](Factor.md) - * [FalseVal](FalseVal.md) - * [Fibonacci](Fibonacci.md) - * [File](File.md) - * [FilterVar](FilterVar.md) - * [Finite](Finite.md) - * [FloatVal](FloatVal.md) - * [FloatType](FloatType.md) - * [Graph](Graph.md) - * [HexRgbColor](HexRgbColor.md) - * [Identical](Identical.md) - * [IdentityCard](IdentityCard.md) - * [Image](Image.md) - * [Imei](Imei.md) - * [In](In.md) - * [Infinite](Infinite.md) - * [Instance](Instance.md) - * [IntVal](IntVal.md) - * [IntType](IntType.md) - * [Ip](Ip.md) - * [IterableType](IterableType.md) - * [Json](Json.md) - * [Key](Key.md) - * [KeyNested](KeyNested.md) - * [KeySet](KeySet.md) - * [KeyValue](KeyValue.md) - * [LanguageCode](LanguageCode.md) - * [LeapDate](LeapDate.md) - * [LeapYear](LeapYear.md) - * [Length](Length.md) - * [Lowercase](Lowercase.md) - * [MacAddress](MacAddress.md) - * [Max](Max.md) - * [Mimetype](Mimetype.md) - * [Min](Min.md) - * [MinimumAge](MinimumAge.md) - * [Multiple](Multiple.md) - * [Negative](Negative.md) - * [NfeAccessKey](NfeAccessKey.md) - * [No](No.md) - * [NoWhitespace](NoWhitespace.md) - * [NoneOf](NoneOf.md) - * [Not](Not.md) - * [NotBlank](NotBlank.md) - * [NotEmpty](NotEmpty.md) - * [NotOptional](NotOptional.md) - * [NullType](NullType.md) - * [Numeric](Numeric.md) - * [ObjectType](ObjectType.md) - * [Odd](Odd.md) - * [OneOf](OneOf.md) - * [Optional](Optional.md) - * [PerfectSquare](PerfectSquare.md) - * [Pesel](Pesel.md) - * [Phone](Phone.md) - * [PhpLabel](PhpLabel.md) - * [Positive](Positive.md) - * [PostalCode](PostalCode.md) - * [PrimeNumber](PrimeNumber.md) - * [Prnt](Prnt.md) - * [Punct](Punct.md) - * [Readable](Readable.md) - * [Regex](Regex.md) - * [ResourceType](ResourceType.md) - * [Roman](Roman.md) - * [ScalarVal](ScalarVal.md) - * [Sf](Sf.md) - * [Size](Size.md) - * [Slug](Slug.md) - * [Space](Space.md) - * [StartsWith](StartsWith.md) - * [StringType](StringType.md) - * [SubdivisionCode](SubdivisionCode.md) - * [SymbolicLink](SymbolicLink.md) - * [Tld](Tld.md) - * [TrueVal](TrueVal.md) - * [Type](Type.md) - * [Uploaded](Uploaded.md) - * [Uppercase](Uppercase.md) - * [Url](Url.md) - * [Version](Version.md) - * [VideoUrl](VideoUrl.md) - * [Vowel](Vowel.md) - * [When](When.md) - * [Writable](Writable.md) - * [Xdigit](Xdigit.md) - * [Yes](Yes.md) - * [Zend](Zend.md) - -*** -See also: - -- [Contributing](../CONTRIBUTING.md) -- [Feature Guide](README.md) -- [Installation](INSTALL.md) -- [License](../LICENSE.md) -- [Changelog](../CHANGELOG.md) diff --git a/docs/CONCRETE_API.md b/docs/concrete-api.md similarity index 100% rename from docs/CONCRETE_API.md rename to docs/concrete-api.md diff --git a/docs/README.md b/docs/feature-guide.md similarity index 97% rename from docs/README.md rename to docs/feature-guide.md index abd573aa..5d96e007 100644 --- a/docs/README.md +++ b/docs/feature-guide.md @@ -74,7 +74,7 @@ v::optional(v::alpha())->validate(null); // true By _optional_ we consider `null` or an empty string (`''`). -See more on [Optional](Optional.md). +See more on [Optional](rules/Optional.md). ## Negating rules @@ -299,12 +299,3 @@ Message: ```no-highlight "really messed up screen#name" must contain only letters (a-z) and digits (0-9) ``` - -*** -See also: - -- [Contributing](../CONTRIBUTING.md) -- [Installation](INSTALL.md) -- [License](../LICENSE.md) -- [Validators](VALIDATORS.md) -- [Changelog](../CHANGELOG.md) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..433d4337 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,16 @@ +# Overview + +[![Build Status](https://img.shields.io/travis/Respect/Validation/master.svg?style=flat-square)](http://travis-ci.org/Respect/Validation) +[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/Respect/Validation/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/Respect/Validation/?branch=master) +[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/Respect/Validation/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/Respect/Validation/?branch=master) +[![Latest Stable Version](https://img.shields.io/packagist/v/respect/validation.svg?style=flat-square)](https://packagist.org/packages/respect/validation) +[![Total Downloads](https://img.shields.io/packagist/dt/respect/validation.svg?style=flat-square)](https://packagist.org/packages/respect/validation) +[![License](https://img.shields.io/packagist/l/respect/validation.svg?style=flat-square)](https://packagist.org/packages/respect/validation) + +[The most awesome validation engine ever created for PHP.](http://bit.ly/1a1oeQv) + +- Complex rules made simple: `v::numeric()->positive()->between(1, 255)->validate($input)`. +- [Granularity control](feature-guide.md#validation-methods) for advanced reporting. +- More than 100 (fully tested) validators. +- [A concrete API](concrete-api.md) for non fluent usage. +- Works on PHP 5.4+ or HHVM 3.3+ diff --git a/docs/INSTALL.md b/docs/installation.md similarity index 67% rename from docs/INSTALL.md rename to docs/installation.md index 9cf5efb0..9c74c657 100644 --- a/docs/INSTALL.md +++ b/docs/installation.md @@ -8,11 +8,3 @@ composer require respect/validation ``` [PHP](https://php.net) 5.4+ or [HHVM](http://hhvm.com) 3.3+ are required. - -*** -See also: - -- [Contributing](../CONTRIBUTING.md) -- [Feature Guide](README.md) -- [License](../LICENSE.md) -- [Validators](VALIDATORS.md) diff --git a/docs/license.md b/docs/license.md new file mode 100644 index 00000000..ee76d0a3 --- /dev/null +++ b/docs/license.md @@ -0,0 +1,30 @@ +# License + +Copyright (c) 2009-2015, [Alexandre Gomes Gaigalas](http://github.com/alganet). + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Alexandre Gomes Gaigalas nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/list-of-rules.md b/docs/list-of-rules.md new file mode 100644 index 00000000..057be7bf --- /dev/null +++ b/docs/list-of-rules.md @@ -0,0 +1,329 @@ +# List of rules + +## Types + + * [ArrayVal](rules/ArrayVal.md) + * [ArrayType](rules/ArrayType.md) + * [BoolVal](rules/BoolVal.md) + * [BoolType](rules/BoolType.md) + * [CallableType](rules/CallableType.md) + * [Countable](rules/Countable.md) + * [Date](rules/Date.md) + * [FalseVal](rules/FalseVal.md) + * [FloatVal](rules/FloatVal.md) + * [FloatType](rules/FloatType.md) + * [Instance](rules/Instance.md) + * [IntVal](rules/IntVal.md) + * [IntType](rules/IntType.md) + * [IterableType](rules/IterableType.md) + * [NullType](rules/NullType.md) + * [Numeric](rules/Numeric.md) + * [ObjectType](rules/ObjectType.md) + * [ResourceType](rules/ResourceType.md) + * [ScalarVal](rules/ScalarVal.md) + * [StringType](rules/StringType.md) + * [TrueVal](rules/TrueVal.md) + * [Type](rules/Type.md) + * [Xdigit](rules/Xdigit.md) + +## Generics + + * [AlwaysInvalid](rules/AlwaysInvalid.md) + * [AlwaysValid](rules/AlwaysValid.md) + * [Call](rules/Call.md) + * [Callback](rules/Callback.md) + * [FilterVar](rules/FilterVar.md) + * [Not](rules/Not.md) + * [Optional](rules/Optional.md) + * [Type](rules/Type.md) + * [When](rules/When.md) + +## Comparing Values + + * [Age](rules/Age.md) + * [Between](rules/Between.md) + * [Equals](rules/Equals.md) + * [Identical](rules/Identical.md) + * [Max](rules/Max.md) + * [Min](rules/Min.md) + +## Numeric + + * [Between](rules/Between.md) + * [BoolType](rules/BoolType.md) + * [Even](rules/Even.md) + * [Factor](rules/Factor.md) + * [Fibonacci](rules/Fibonacci.md) + * [Finite](rules/Finite.md) + * [FloatVal](rules/FloatVal.md) + * [FloatType](rules/FloatType.md) + * [Infinite](rules/Infinite.md) + * [IntVal](rules/IntVal.md) + * [IntType](rules/IntType.md) + * [Multiple](rules/Multiple.md) + * [Negative](rules/Negative.md) + * [NotEmpty](rules/NotEmpty.md) + * [Numeric](rules/Numeric.md) + * [Odd](rules/Odd.md) + * [PerfectSquare](rules/PerfectSquare.md) + * [Positive](rules/Positive.md) + * [PrimeNumber](rules/PrimeNumber.md) + * [Roman](rules/Roman.md) + * [Xdigit](rules/Xdigit.md) + +## String + + * [Alnum](rules/Alnum.md) + * [Alpha](rules/Alpha.md) + * [Between](rules/Between.md) + * [Charset](rules/Charset.md) + * [Cntrl](rules/Cntrl.md) + * [Consonant](rules/Consonant.md) + * [Contains](rules/Contains.md) + * [Digit](rules/Digit.md) + * [EndsWith](rules/EndsWith.md) + * [Graph](rules/Graph.md) + * [In](rules/In.md) + * [Length](rules/Length.md) + * [Lowercase](rules/Lowercase.md) + * [NotEmpty](rules/NotEmpty.md) + * [NoWhitespace](rules/NoWhitespace.md) + * [PhpLabel](rules/PhpLabel.md) + * [Prnt](rules/Prnt.md) + * [Punct](rules/Punct.md) + * [Regex](rules/Regex.md) + * [ResourceType](rules/ResourceType.md) + * [Slug](rules/Slug.md) + * [Space](rules/Space.md) + * [StartsWith](rules/StartsWith.md) + * [Uppercase](rules/Uppercase.md) + * [Version](rules/Version.md) + * [Vowel](rules/Vowel.md) + * [Xdigit](rules/Xdigit.md) + +## Arrays + + * [ArrayVal](rules/ArrayVal.md) + * [ArrayType](rules/ArrayType.md) + * [Contains](rules/Contains.md) + * [Each](rules/Each.md) + * [EndsWith](rules/EndsWith.md) + * [In](rules/In.md) + * [Key](rules/Key.md) + * [KeyNested](rules/KeyNested.md) + * [KeySet](rules/KeySet.md) + * [KeyValue](rules/KeyValue.md) + * [Length](rules/Length.md) + * [NotEmpty](rules/NotEmpty.md) + * [StartsWith](rules/StartsWith.md) + +## Objects + + * [Attribute](rules/Attribute.md) + * [Instance](rules/Instance.md) + * [Length](rules/Length.md) + +## Date and Time + + * [Age](rules/Age.md) + * [Between](rules/Between.md) + * [Date](rules/Date.md) + * [LeapDate](rules/LeapDate.md) + * [LeapYear](rules/LeapYear.md) + * [MinimumAge](rules/MinimumAge.md) + +## Group Validators + + * [AllOf](rules/AllOf.md) + * [NoneOf](rules/NoneOf.md) + * [OneOf](rules/OneOf.md) + +## Regional + + * [CountryCode](rules/CountryCode.md) + * [CurrencyCode](rules/CurrencyCode.md) + * [IdentityCard](rules/IdentityCard.md) + * [LanguageCode](rules/LanguageCode.md) + * [PostalCode](rules/PostalCode.md) + * [SubdivisionCode](rules/SubdivisionCode.md) + * [Tld](rules/Tld.md) + +## Files + + * [Directory](rules/Directory.md) + * [Executable](rules/Executable.md) + * [Exists](rules/Exists.md) + * [Extension](rules/Extension.md) + * [File](rules/File.md) + * [Image](rules/Image.md) + * [Mimetype](rules/Mimetype.md) + * [Readable](rules/Readable.md) + * [Size](rules/Size.md) + * [SymbolicLink](rules/SymbolicLink.md) + * [Uploaded](rules/Uploaded.md) + * [Writable](rules/Writable.md) + +## Banking + + * [Bank](rules/Bank.md) + * [BankAccount](rules/BankAccount.md) + * [Bic](rules/Bic.md) + +## Other + + * [Bsn](rules/Bsn.md) + * [Cnh](rules/Cnh.md) + * [Cnpj](rules/Cnpj.md) + * [Cpf](rules/Cpf.md) + * [Domain](rules/Domain.md) + * [Email](rules/Email.md) + * [HexRgbColor](rules/HexRgbColor.md) + * [Imei](rules/Imei.md) + * [Ip](rules/Ip.md) + * [Json](rules/Json.md) + * [MacAddress](rules/MacAddress.md) + * [NfeAccessKey](rules/NfeAccessKey.md) + * [NotBlank](rules/NotBlank.md) + * [NotOptional](rules/NotOptional.md) + * [Pesel](rules/Pesel.md) + * [Phone](rules/Phone.md) + * [Sf](rules/Sf.md) + * [Url](rules/Url.md) + * [VideoUrl](rules/VideoUrl.md) + * [Zend](rules/Zend.md) + +## Yes/No + + * [No](rules/No.md) + * [Yes](rules/Yes.md) + +## Alphabetically + + * [Age](rules/Age.md) + * [AllOf](rules/AllOf.md) + * [Alnum](rules/Alnum.md) + * [Alpha](rules/Alpha.md) + * [AlwaysInvalid](rules/AlwaysInvalid.md) + * [AlwaysValid](rules/AlwaysValid.md) + * [ArrayVal](rules/ArrayVal.md) + * [ArrayType](rules/ArrayType.md) + * [Attribute](rules/Attribute.md) + * [Bank](rules/Bank.md) + * [BankAccount](rules/BankAccount.md) + * [Between](rules/Between.md) + * [Bic](rules/Bic.md) + * [BoolType](rules/BoolType.md) + * [Bsn](rules/Bsn.md) + * [Call](rules/Call.md) + * [CallableType](rules/CallableType.md) + * [Callback](rules/Callback.md) + * [Charset](rules/Charset.md) + * [Cnh](rules/Cnh.md) + * [Cnpj](rules/Cnpj.md) + * [Cntrl](rules/Cntrl.md) + * [Consonant](rules/Consonant.md) + * [Contains](rules/Contains.md) + * [Countable](rules/Countable.md) + * [CountryCode](rules/CountryCode.md) + * [Cpf](rules/Cpf.md) + * [CreditCard](rules/CreditCard.md) + * [Date](rules/Date.md) + * [Digit](rules/Digit.md) + * [Directory](rules/Directory.md) + * [Domain](rules/Domain.md) + * [Each](rules/Each.md) + * [Email](rules/Email.md) + * [EndsWith](rules/EndsWith.md) + * [Equals](rules/Equals.md) + * [Even](rules/Even.md) + * [Executable](rules/Executable.md) + * [Exists](rules/Exists.md) + * [Extension](rules/Extension.md) + * [Factor](rules/Factor.md) + * [FalseVal](rules/FalseVal.md) + * [Fibonacci](rules/Fibonacci.md) + * [File](rules/File.md) + * [FilterVar](rules/FilterVar.md) + * [Finite](rules/Finite.md) + * [FloatVal](rules/FloatVal.md) + * [FloatType](rules/FloatType.md) + * [Graph](rules/Graph.md) + * [HexRgbColor](rules/HexRgbColor.md) + * [Identical](rules/Identical.md) + * [IdentityCard](rules/IdentityCard.md) + * [Image](rules/Image.md) + * [Imei](rules/Imei.md) + * [In](rules/In.md) + * [Infinite](rules/Infinite.md) + * [Instance](rules/Instance.md) + * [IntVal](rules/IntVal.md) + * [IntType](rules/IntType.md) + * [Ip](rules/Ip.md) + * [IterableType](rules/IterableType.md) + * [Json](rules/Json.md) + * [Key](rules/Key.md) + * [KeyNested](rules/KeyNested.md) + * [KeySet](rules/KeySet.md) + * [KeyValue](rules/KeyValue.md) + * [LanguageCode](rules/LanguageCode.md) + * [LeapDate](rules/LeapDate.md) + * [LeapYear](rules/LeapYear.md) + * [Length](rules/Length.md) + * [Lowercase](rules/Lowercase.md) + * [MacAddress](rules/MacAddress.md) + * [Max](rules/Max.md) + * [Mimetype](rules/Mimetype.md) + * [Min](rules/Min.md) + * [MinimumAge](rules/MinimumAge.md) + * [Multiple](rules/Multiple.md) + * [Negative](rules/Negative.md) + * [NfeAccessKey](rules/NfeAccessKey.md) + * [No](rules/No.md) + * [NoWhitespace](rules/NoWhitespace.md) + * [NoneOf](rules/NoneOf.md) + * [Not](rules/Not.md) + * [NotBlank](rules/NotBlank.md) + * [NotEmpty](rules/NotEmpty.md) + * [NotOptional](rules/NotOptional.md) + * [NullType](rules/NullType.md) + * [Numeric](rules/Numeric.md) + * [ObjectType](rules/ObjectType.md) + * [Odd](rules/Odd.md) + * [OneOf](rules/OneOf.md) + * [Optional](rules/Optional.md) + * [PerfectSquare](rules/PerfectSquare.md) + * [Pesel](rules/Pesel.md) + * [Phone](rules/Phone.md) + * [PhpLabel](rules/PhpLabel.md) + * [Positive](rules/Positive.md) + * [PostalCode](rules/PostalCode.md) + * [PrimeNumber](rules/PrimeNumber.md) + * [Prnt](rules/Prnt.md) + * [Punct](rules/Punct.md) + * [Readable](rules/Readable.md) + * [Regex](rules/Regex.md) + * [ResourceType](rules/ResourceType.md) + * [Roman](rules/Roman.md) + * [ScalarVal](rules/ScalarVal.md) + * [Sf](rules/Sf.md) + * [Size](rules/Size.md) + * [Slug](rules/Slug.md) + * [Space](rules/Space.md) + * [StartsWith](rules/StartsWith.md) + * [StringType](rules/StringType.md) + * [SubdivisionCode](rules/SubdivisionCode.md) + * [SymbolicLink](rules/SymbolicLink.md) + * [Tld](rules/Tld.md) + * [TrueVal](rules/TrueVal.md) + * [Type](rules/Type.md) + * [Uploaded](rules/Uploaded.md) + * [Uppercase](rules/Uppercase.md) + * [Url](rules/Url.md) + * [Version](rules/Version.md) + * [VideoUrl](rules/VideoUrl.md) + * [Vowel](rules/Vowel.md) + * [When](rules/When.md) + * [Writable](rules/Writable.md) + * [Xdigit](rules/Xdigit.md) + * [Yes](rules/Yes.md) + * [Zend](rules/Zend.md) diff --git a/docs/Age.md b/docs/rules/Age.md similarity index 100% rename from docs/Age.md rename to docs/rules/Age.md diff --git a/docs/AllOf.md b/docs/rules/AllOf.md similarity index 100% rename from docs/AllOf.md rename to docs/rules/AllOf.md diff --git a/docs/Alnum.md b/docs/rules/Alnum.md similarity index 100% rename from docs/Alnum.md rename to docs/rules/Alnum.md diff --git a/docs/Alpha.md b/docs/rules/Alpha.md similarity index 100% rename from docs/Alpha.md rename to docs/rules/Alpha.md diff --git a/docs/AlwaysInvalid.md b/docs/rules/AlwaysInvalid.md similarity index 100% rename from docs/AlwaysInvalid.md rename to docs/rules/AlwaysInvalid.md diff --git a/docs/AlwaysValid.md b/docs/rules/AlwaysValid.md similarity index 100% rename from docs/AlwaysValid.md rename to docs/rules/AlwaysValid.md diff --git a/docs/ArrayType.md b/docs/rules/ArrayType.md similarity index 100% rename from docs/ArrayType.md rename to docs/rules/ArrayType.md diff --git a/docs/ArrayVal.md b/docs/rules/ArrayVal.md similarity index 100% rename from docs/ArrayVal.md rename to docs/rules/ArrayVal.md diff --git a/docs/Attribute.md b/docs/rules/Attribute.md similarity index 100% rename from docs/Attribute.md rename to docs/rules/Attribute.md diff --git a/docs/Bank.md b/docs/rules/Bank.md similarity index 100% rename from docs/Bank.md rename to docs/rules/Bank.md diff --git a/docs/BankAccount.md b/docs/rules/BankAccount.md similarity index 100% rename from docs/BankAccount.md rename to docs/rules/BankAccount.md diff --git a/docs/Between.md b/docs/rules/Between.md similarity index 100% rename from docs/Between.md rename to docs/rules/Between.md diff --git a/docs/Bic.md b/docs/rules/Bic.md similarity index 100% rename from docs/Bic.md rename to docs/rules/Bic.md diff --git a/docs/BoolType.md b/docs/rules/BoolType.md similarity index 100% rename from docs/BoolType.md rename to docs/rules/BoolType.md diff --git a/docs/BoolVal.md b/docs/rules/BoolVal.md similarity index 100% rename from docs/BoolVal.md rename to docs/rules/BoolVal.md diff --git a/docs/Bsn.md b/docs/rules/Bsn.md similarity index 100% rename from docs/Bsn.md rename to docs/rules/Bsn.md diff --git a/docs/Call.md b/docs/rules/Call.md similarity index 100% rename from docs/Call.md rename to docs/rules/Call.md diff --git a/docs/CallableType.md b/docs/rules/CallableType.md similarity index 100% rename from docs/CallableType.md rename to docs/rules/CallableType.md diff --git a/docs/Callback.md b/docs/rules/Callback.md similarity index 100% rename from docs/Callback.md rename to docs/rules/Callback.md diff --git a/docs/Charset.md b/docs/rules/Charset.md similarity index 100% rename from docs/Charset.md rename to docs/rules/Charset.md diff --git a/docs/Cnh.md b/docs/rules/Cnh.md similarity index 100% rename from docs/Cnh.md rename to docs/rules/Cnh.md diff --git a/docs/Cnpj.md b/docs/rules/Cnpj.md similarity index 100% rename from docs/Cnpj.md rename to docs/rules/Cnpj.md diff --git a/docs/Cntrl.md b/docs/rules/Cntrl.md similarity index 100% rename from docs/Cntrl.md rename to docs/rules/Cntrl.md diff --git a/docs/Consonant.md b/docs/rules/Consonant.md similarity index 100% rename from docs/Consonant.md rename to docs/rules/Consonant.md diff --git a/docs/Contains.md b/docs/rules/Contains.md similarity index 100% rename from docs/Contains.md rename to docs/rules/Contains.md diff --git a/docs/Countable.md b/docs/rules/Countable.md similarity index 100% rename from docs/Countable.md rename to docs/rules/Countable.md diff --git a/docs/CountryCode.md b/docs/rules/CountryCode.md similarity index 100% rename from docs/CountryCode.md rename to docs/rules/CountryCode.md diff --git a/docs/Cpf.md b/docs/rules/Cpf.md similarity index 100% rename from docs/Cpf.md rename to docs/rules/Cpf.md diff --git a/docs/CreditCard.md b/docs/rules/CreditCard.md similarity index 100% rename from docs/CreditCard.md rename to docs/rules/CreditCard.md diff --git a/docs/CurrencyCode.md b/docs/rules/CurrencyCode.md similarity index 100% rename from docs/CurrencyCode.md rename to docs/rules/CurrencyCode.md diff --git a/docs/Date.md b/docs/rules/Date.md similarity index 100% rename from docs/Date.md rename to docs/rules/Date.md diff --git a/docs/Digit.md b/docs/rules/Digit.md similarity index 100% rename from docs/Digit.md rename to docs/rules/Digit.md diff --git a/docs/Directory.md b/docs/rules/Directory.md similarity index 100% rename from docs/Directory.md rename to docs/rules/Directory.md diff --git a/docs/Domain.md b/docs/rules/Domain.md similarity index 100% rename from docs/Domain.md rename to docs/rules/Domain.md diff --git a/docs/Each.md b/docs/rules/Each.md similarity index 100% rename from docs/Each.md rename to docs/rules/Each.md diff --git a/docs/Email.md b/docs/rules/Email.md similarity index 100% rename from docs/Email.md rename to docs/rules/Email.md diff --git a/docs/EndsWith.md b/docs/rules/EndsWith.md similarity index 100% rename from docs/EndsWith.md rename to docs/rules/EndsWith.md diff --git a/docs/Equals.md b/docs/rules/Equals.md similarity index 100% rename from docs/Equals.md rename to docs/rules/Equals.md diff --git a/docs/Even.md b/docs/rules/Even.md similarity index 100% rename from docs/Even.md rename to docs/rules/Even.md diff --git a/docs/Executable.md b/docs/rules/Executable.md similarity index 100% rename from docs/Executable.md rename to docs/rules/Executable.md diff --git a/docs/Exists.md b/docs/rules/Exists.md similarity index 100% rename from docs/Exists.md rename to docs/rules/Exists.md diff --git a/docs/Extension.md b/docs/rules/Extension.md similarity index 100% rename from docs/Extension.md rename to docs/rules/Extension.md diff --git a/docs/Factor.md b/docs/rules/Factor.md similarity index 100% rename from docs/Factor.md rename to docs/rules/Factor.md diff --git a/docs/FalseVal.md b/docs/rules/FalseVal.md similarity index 100% rename from docs/FalseVal.md rename to docs/rules/FalseVal.md diff --git a/docs/Fibonacci.md b/docs/rules/Fibonacci.md similarity index 100% rename from docs/Fibonacci.md rename to docs/rules/Fibonacci.md diff --git a/docs/File.md b/docs/rules/File.md similarity index 100% rename from docs/File.md rename to docs/rules/File.md diff --git a/docs/FilterVar.md b/docs/rules/FilterVar.md similarity index 100% rename from docs/FilterVar.md rename to docs/rules/FilterVar.md diff --git a/docs/Finite.md b/docs/rules/Finite.md similarity index 100% rename from docs/Finite.md rename to docs/rules/Finite.md diff --git a/docs/FloatType.md b/docs/rules/FloatType.md similarity index 100% rename from docs/FloatType.md rename to docs/rules/FloatType.md diff --git a/docs/FloatVal.md b/docs/rules/FloatVal.md similarity index 100% rename from docs/FloatVal.md rename to docs/rules/FloatVal.md diff --git a/docs/Graph.md b/docs/rules/Graph.md similarity index 100% rename from docs/Graph.md rename to docs/rules/Graph.md diff --git a/docs/HexRgbColor.md b/docs/rules/HexRgbColor.md similarity index 100% rename from docs/HexRgbColor.md rename to docs/rules/HexRgbColor.md diff --git a/docs/Identical.md b/docs/rules/Identical.md similarity index 100% rename from docs/Identical.md rename to docs/rules/Identical.md diff --git a/docs/IdentityCard.md b/docs/rules/IdentityCard.md similarity index 100% rename from docs/IdentityCard.md rename to docs/rules/IdentityCard.md diff --git a/docs/Image.md b/docs/rules/Image.md similarity index 100% rename from docs/Image.md rename to docs/rules/Image.md diff --git a/docs/Imei.md b/docs/rules/Imei.md similarity index 100% rename from docs/Imei.md rename to docs/rules/Imei.md diff --git a/docs/In.md b/docs/rules/In.md similarity index 100% rename from docs/In.md rename to docs/rules/In.md diff --git a/docs/Infinite.md b/docs/rules/Infinite.md similarity index 100% rename from docs/Infinite.md rename to docs/rules/Infinite.md diff --git a/docs/Instance.md b/docs/rules/Instance.md similarity index 100% rename from docs/Instance.md rename to docs/rules/Instance.md diff --git a/docs/IntType.md b/docs/rules/IntType.md similarity index 100% rename from docs/IntType.md rename to docs/rules/IntType.md diff --git a/docs/IntVal.md b/docs/rules/IntVal.md similarity index 100% rename from docs/IntVal.md rename to docs/rules/IntVal.md diff --git a/docs/Ip.md b/docs/rules/Ip.md similarity index 100% rename from docs/Ip.md rename to docs/rules/Ip.md diff --git a/docs/Iterable.md b/docs/rules/Iterable.md similarity index 100% rename from docs/Iterable.md rename to docs/rules/Iterable.md diff --git a/docs/IterableType.md b/docs/rules/IterableType.md similarity index 100% rename from docs/IterableType.md rename to docs/rules/IterableType.md diff --git a/docs/Json.md b/docs/rules/Json.md similarity index 100% rename from docs/Json.md rename to docs/rules/Json.md diff --git a/docs/Key.md b/docs/rules/Key.md similarity index 100% rename from docs/Key.md rename to docs/rules/Key.md diff --git a/docs/KeyNested.md b/docs/rules/KeyNested.md similarity index 100% rename from docs/KeyNested.md rename to docs/rules/KeyNested.md diff --git a/docs/KeySet.md b/docs/rules/KeySet.md similarity index 100% rename from docs/KeySet.md rename to docs/rules/KeySet.md diff --git a/docs/KeyValue.md b/docs/rules/KeyValue.md similarity index 100% rename from docs/KeyValue.md rename to docs/rules/KeyValue.md diff --git a/docs/LanguageCode.md b/docs/rules/LanguageCode.md similarity index 100% rename from docs/LanguageCode.md rename to docs/rules/LanguageCode.md diff --git a/docs/LeapDate.md b/docs/rules/LeapDate.md similarity index 100% rename from docs/LeapDate.md rename to docs/rules/LeapDate.md diff --git a/docs/LeapYear.md b/docs/rules/LeapYear.md similarity index 100% rename from docs/LeapYear.md rename to docs/rules/LeapYear.md diff --git a/docs/Length.md b/docs/rules/Length.md similarity index 100% rename from docs/Length.md rename to docs/rules/Length.md diff --git a/docs/Lowercase.md b/docs/rules/Lowercase.md similarity index 100% rename from docs/Lowercase.md rename to docs/rules/Lowercase.md diff --git a/docs/MacAddress.md b/docs/rules/MacAddress.md similarity index 100% rename from docs/MacAddress.md rename to docs/rules/MacAddress.md diff --git a/docs/Max.md b/docs/rules/Max.md similarity index 100% rename from docs/Max.md rename to docs/rules/Max.md diff --git a/docs/Mimetype.md b/docs/rules/Mimetype.md similarity index 100% rename from docs/Mimetype.md rename to docs/rules/Mimetype.md diff --git a/docs/Min.md b/docs/rules/Min.md similarity index 100% rename from docs/Min.md rename to docs/rules/Min.md diff --git a/docs/MinimumAge.md b/docs/rules/MinimumAge.md similarity index 100% rename from docs/MinimumAge.md rename to docs/rules/MinimumAge.md diff --git a/docs/Multiple.md b/docs/rules/Multiple.md similarity index 100% rename from docs/Multiple.md rename to docs/rules/Multiple.md diff --git a/docs/Negative.md b/docs/rules/Negative.md similarity index 100% rename from docs/Negative.md rename to docs/rules/Negative.md diff --git a/docs/NfeAccessKey.md b/docs/rules/NfeAccessKey.md similarity index 100% rename from docs/NfeAccessKey.md rename to docs/rules/NfeAccessKey.md diff --git a/docs/No.md b/docs/rules/No.md similarity index 100% rename from docs/No.md rename to docs/rules/No.md diff --git a/docs/NoWhitespace.md b/docs/rules/NoWhitespace.md similarity index 100% rename from docs/NoWhitespace.md rename to docs/rules/NoWhitespace.md diff --git a/docs/NoneOf.md b/docs/rules/NoneOf.md similarity index 100% rename from docs/NoneOf.md rename to docs/rules/NoneOf.md diff --git a/docs/Not.md b/docs/rules/Not.md similarity index 100% rename from docs/Not.md rename to docs/rules/Not.md diff --git a/docs/NotBlank.md b/docs/rules/NotBlank.md similarity index 100% rename from docs/NotBlank.md rename to docs/rules/NotBlank.md diff --git a/docs/NotEmpty.md b/docs/rules/NotEmpty.md similarity index 100% rename from docs/NotEmpty.md rename to docs/rules/NotEmpty.md diff --git a/docs/NotOptional.md b/docs/rules/NotOptional.md similarity index 100% rename from docs/NotOptional.md rename to docs/rules/NotOptional.md diff --git a/docs/NullType.md b/docs/rules/NullType.md similarity index 100% rename from docs/NullType.md rename to docs/rules/NullType.md diff --git a/docs/Numeric.md b/docs/rules/Numeric.md similarity index 100% rename from docs/Numeric.md rename to docs/rules/Numeric.md diff --git a/docs/ObjectType.md b/docs/rules/ObjectType.md similarity index 100% rename from docs/ObjectType.md rename to docs/rules/ObjectType.md diff --git a/docs/Odd.md b/docs/rules/Odd.md similarity index 100% rename from docs/Odd.md rename to docs/rules/Odd.md diff --git a/docs/OneOf.md b/docs/rules/OneOf.md similarity index 100% rename from docs/OneOf.md rename to docs/rules/OneOf.md diff --git a/docs/Optional.md b/docs/rules/Optional.md similarity index 100% rename from docs/Optional.md rename to docs/rules/Optional.md diff --git a/docs/PerfectSquare.md b/docs/rules/PerfectSquare.md similarity index 100% rename from docs/PerfectSquare.md rename to docs/rules/PerfectSquare.md diff --git a/docs/Pesel.md b/docs/rules/Pesel.md similarity index 100% rename from docs/Pesel.md rename to docs/rules/Pesel.md diff --git a/docs/Phone.md b/docs/rules/Phone.md similarity index 100% rename from docs/Phone.md rename to docs/rules/Phone.md diff --git a/docs/PhpLabel.md b/docs/rules/PhpLabel.md similarity index 100% rename from docs/PhpLabel.md rename to docs/rules/PhpLabel.md diff --git a/docs/Positive.md b/docs/rules/Positive.md similarity index 100% rename from docs/Positive.md rename to docs/rules/Positive.md diff --git a/docs/PostalCode.md b/docs/rules/PostalCode.md similarity index 100% rename from docs/PostalCode.md rename to docs/rules/PostalCode.md diff --git a/docs/PrimeNumber.md b/docs/rules/PrimeNumber.md similarity index 100% rename from docs/PrimeNumber.md rename to docs/rules/PrimeNumber.md diff --git a/docs/Prnt.md b/docs/rules/Prnt.md similarity index 100% rename from docs/Prnt.md rename to docs/rules/Prnt.md diff --git a/docs/Punct.md b/docs/rules/Punct.md similarity index 100% rename from docs/Punct.md rename to docs/rules/Punct.md diff --git a/docs/Readable.md b/docs/rules/Readable.md similarity index 100% rename from docs/Readable.md rename to docs/rules/Readable.md diff --git a/docs/Regex.md b/docs/rules/Regex.md similarity index 100% rename from docs/Regex.md rename to docs/rules/Regex.md diff --git a/docs/ResourceType.md b/docs/rules/ResourceType.md similarity index 100% rename from docs/ResourceType.md rename to docs/rules/ResourceType.md diff --git a/docs/Roman.md b/docs/rules/Roman.md similarity index 100% rename from docs/Roman.md rename to docs/rules/Roman.md diff --git a/docs/ScalarVal.md b/docs/rules/ScalarVal.md similarity index 100% rename from docs/ScalarVal.md rename to docs/rules/ScalarVal.md diff --git a/docs/Sf.md b/docs/rules/Sf.md similarity index 100% rename from docs/Sf.md rename to docs/rules/Sf.md diff --git a/docs/Size.md b/docs/rules/Size.md similarity index 100% rename from docs/Size.md rename to docs/rules/Size.md diff --git a/docs/Slug.md b/docs/rules/Slug.md similarity index 100% rename from docs/Slug.md rename to docs/rules/Slug.md diff --git a/docs/Space.md b/docs/rules/Space.md similarity index 100% rename from docs/Space.md rename to docs/rules/Space.md diff --git a/docs/StartsWith.md b/docs/rules/StartsWith.md similarity index 100% rename from docs/StartsWith.md rename to docs/rules/StartsWith.md diff --git a/docs/StringType.md b/docs/rules/StringType.md similarity index 100% rename from docs/StringType.md rename to docs/rules/StringType.md diff --git a/docs/SubdivisionCode.md b/docs/rules/SubdivisionCode.md similarity index 100% rename from docs/SubdivisionCode.md rename to docs/rules/SubdivisionCode.md diff --git a/docs/SymbolicLink.md b/docs/rules/SymbolicLink.md similarity index 100% rename from docs/SymbolicLink.md rename to docs/rules/SymbolicLink.md diff --git a/docs/Tld.md b/docs/rules/Tld.md similarity index 100% rename from docs/Tld.md rename to docs/rules/Tld.md diff --git a/docs/TrueVal.md b/docs/rules/TrueVal.md similarity index 100% rename from docs/TrueVal.md rename to docs/rules/TrueVal.md diff --git a/docs/Type.md b/docs/rules/Type.md similarity index 100% rename from docs/Type.md rename to docs/rules/Type.md diff --git a/docs/Uploaded.md b/docs/rules/Uploaded.md similarity index 100% rename from docs/Uploaded.md rename to docs/rules/Uploaded.md diff --git a/docs/Uppercase.md b/docs/rules/Uppercase.md similarity index 100% rename from docs/Uppercase.md rename to docs/rules/Uppercase.md diff --git a/docs/Url.md b/docs/rules/Url.md similarity index 100% rename from docs/Url.md rename to docs/rules/Url.md diff --git a/docs/Version.md b/docs/rules/Version.md similarity index 100% rename from docs/Version.md rename to docs/rules/Version.md diff --git a/docs/VideoUrl.md b/docs/rules/VideoUrl.md similarity index 100% rename from docs/VideoUrl.md rename to docs/rules/VideoUrl.md diff --git a/docs/Vowel.md b/docs/rules/Vowel.md similarity index 100% rename from docs/Vowel.md rename to docs/rules/Vowel.md diff --git a/docs/When.md b/docs/rules/When.md similarity index 100% rename from docs/When.md rename to docs/rules/When.md diff --git a/docs/Writable.md b/docs/rules/Writable.md similarity index 100% rename from docs/Writable.md rename to docs/rules/Writable.md diff --git a/docs/Xdigit.md b/docs/rules/Xdigit.md similarity index 100% rename from docs/Xdigit.md rename to docs/rules/Xdigit.md diff --git a/docs/Yes.md b/docs/rules/Yes.md similarity index 100% rename from docs/Yes.md rename to docs/rules/Yes.md diff --git a/docs/Zend.md b/docs/rules/Zend.md similarity index 100% rename from docs/Zend.md rename to docs/rules/Zend.md