diff --git a/docs/rules/README.md b/docs/rules/README.md
index 4343ba647..7c42350d2 100644
--- a/docs/rules/README.md
+++ b/docs/rules/README.md
@@ -257,6 +257,7 @@ For example:
| [vue/require-name-property](./require-name-property.md) | require a name property in Vue components | | :hammer: |
| [vue/script-indent](./script-indent.md) | enforce consistent indentation in `
+ `
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ `,
+ options: [
+ [
+ { blankLine: 'never', prev: 'br', next: 'img' },
+ { blankLine: 'always', prev: 'br', next: 'img' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
A
+ B
+ C
+
+
+ `,
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ }
+ ],
+ invalid: [
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 5,
+ column: 11
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 7,
+ column: 11
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 7,
+ column: 13
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 9,
+ column: 13
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 10,
+ column: 13
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 6,
+ column: 11
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ output: `
+
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 6,
+ column: 11
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 10,
+ column: 15
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 15,
+ column: 9
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 7,
+ column: 13
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'always', prev: '*', next: '*' },
+ { blankLine: 'never', prev: 'br', next: '*' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 8,
+ column: 13
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'always', prev: '*', next: '*' },
+ { blankLine: 'never', prev: '*', next: 'br' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 9,
+ column: 13
+ },
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 11,
+ column: 13
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 6,
+ column: 11
+ },
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 9,
+ column: 11
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 8,
+ column: 13
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'never', prev: '*', next: '*' },
+ { blankLine: 'always', prev: 'br', next: 'div' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+
+
![]()
+
+
+
+ `,
+ output: `
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 5,
+ column: 11
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 7,
+ column: 11
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 9,
+ column: 11
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'always', prev: '*', next: '*' },
+ { blankLine: 'never', prev: 'br', next: 'div' },
+ { blankLine: 'never', prev: 'br', next: 'img' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
![]()
+
+
+
+
+
+
+
+ `,
+ output: `
+
+
+
![]()
+
+
+
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 8,
+ column: 11
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'always', prev: 'br', next: 'div' },
+ { blankLine: 'always', prev: 'div', next: 'br' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
![]()
+
+
+
+
+
+
+
+ `,
+ output: `
+
+
+
![]()
+
+
+
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 9,
+ column: 11
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'always', prev: 'br', next: 'div' },
+ { blankLine: 'always', prev: 'br', next: 'br' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
![]()
+
+
+
+
+
+
+
+
+ `,
+ output: `
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 5,
+ column: 11
+ },
+ {
+ message: 'Expected blank line before this tag.',
+ line: 8,
+ column: 11
+ },
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 10,
+ column: 11
+ }
+ ],
+ options: [
+ [
+ { blankLine: 'always', prev: '*', next: '*' },
+ { blankLine: 'never', prev: 'br', next: 'br' }
+ ]
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+ `,
+ output: `
+
+
+
![]()
+
+
+
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 11,
+ column: 11
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: 'br', next: 'br' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 7,
+ column: 11
+ }
+ ],
+ options: [[{ blankLine: 'always', prev: '*', next: 'br' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 4,
+ column: 18
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+ `,
+ output: `
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Expected blank line before this tag.',
+ line: 4,
+ column: 23
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
A
+
+ C
+
+
+ `,
+ output: `
+
+
+
A
+ C
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 6,
+ column: 12
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
A
+ B
+
+ C
+
+
+ `,
+ output: `
+
+
+
A
+ B
+ C
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 7,
+ column: 12
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
A
+
+
+ B
+ C
+
+
+ `,
+ output: `
+
+
+
A
+ B
+ C
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 8,
+ column: 12
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
A
+
+
+ B
+
+
+ C
+
+
+ `,
+ output: `
+
+
+
A
+ B
+ C
+
+
+ `,
+ errors: [
+ {
+ message: 'Unexpected blank line before this tag.',
+ line: 10,
+ column: 12
+ }
+ ],
+ options: [[{ blankLine: 'never', prev: '*', next: '*' }]]
+ }
+ ]
+})