Skip to content

Fix markdown and documentation linting violations in template rules#2367

Closed
Copilot wants to merge 43 commits intocopilot/port-lint-rules-to-eslint-pluginfrom
copilot/update-eslint-plugin-dependencies
Closed

Fix markdown and documentation linting violations in template rules#2367
Copilot wants to merge 43 commits intocopilot/port-lint-rules-to-eslint-pluginfrom
copilot/update-eslint-plugin-dependencies

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 29, 2026

PR #2365 introduced 30 linting violations blocking CI merge. Fixed formatting and missing documentation requirements.

Changes

Markdown formatting violations (MD031/MD032)

  • Added blank lines around lists and code fences in 19 rule documentation files

Inline HTML (MD033)

  • Escaped <a> tag: [MDN: \<a\> - The Anchor element](...)

Bare URL detection (MD034)

  • Wrapped template syntax in backticks in rule meta:
    description: 'disallow obscure array access patterns like `[email protected]`'

Missing eslint-doc-generator requirement

  • Added Config section to template-no-multiple-empty-lines documenting the max option:
    ## Config
    
    - `max` (default: `1`): Maximum number of consecutive empty lines allowed

22 files changed, +113/-71 lines.

Original prompt

Branch off of #2365


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@NullVoxPopuli NullVoxPopuli changed the base branch from master to copilot/port-lint-rules-to-eslint-plugin January 29, 2026 04:09
Copilot AI changed the title [WIP] Update dependencies for ESLint plugin Fix linting errors in documentation and rule metadata Jan 29, 2026
Copilot AI requested a review from NullVoxPopuli January 29, 2026 04:19
Copilot AI and others added 21 commits January 29, 2026 04:27
…nd template-no-positive-tabindex rules

Co-authored-by: NullVoxPopuli <[email protected]>
…bute, no-partial, no-action

Co-authored-by: NullVoxPopuli <[email protected]>
…lper, no-abstract-roles, no-aria-hidden-body

Co-authored-by: NullVoxPopuli <[email protected]>
…les, link-rel-noopener, no-unnecessary-concat (20/127 total)

Co-authored-by: NullVoxPopuli <[email protected]>
…ments, no-args-paths, no-unnecessary-curly-strings (25/127 total)

Co-authored-by: NullVoxPopuli <[email protected]>
…tton, require-valid-alt-text (32/127)

Co-authored-by: NullVoxPopuli <[email protected]>
Copilot AI and others added 15 commits January 29, 2026 04:27
…, no-link-to-positional-params (58/127 total: 46%)

Co-authored-by: NullVoxPopuli <[email protected]>
…ous-glimmer-paths (61/127 total: 48%)

Co-authored-by: NullVoxPopuli <[email protected]>
Implemented rules:
- template-no-nested-interactive
- template-no-invalid-role
- template-no-redundant-landmark-role
- template-require-lang-attribute
- template-require-media-caption
- template-no-form-action
- template-no-route-action
- template-no-trailing-spaces
- template-no-multiple-empty-lines
- template-no-redundant-fn
- template-no-shadowed-elements
- template-table-groups
- template-require-context-role
- template-require-presentational-children
- template-no-nested-landmark
- template-no-passed-in-event-handlers
- template-no-down-event-binding
- template-no-pointer-down-event-binding
- template-no-inline-event-handlers
- template-style-concatenation

Each rule includes implementation, tests, and documentation.
Total template rules now: 82 (was 62)

Co-authored-by: NullVoxPopuli <[email protected]>
Co-authored-by: NullVoxPopuli <[email protected]>
…SDoc) - 101/127 total (79%)

Co-authored-by: NullVoxPopuli <[email protected]>
- template-attribute-order: Enforce consistent attribute ordering
- template-no-aria-unsupported-elements: Disallow ARIA on unsupported elements
- template-no-duplicate-landmark-elements: Disallow duplicate landmarks without labels
- template-no-invalid-link-text: Disallow invalid link text like "click here"
- template-no-unsupported-role-attributes: Disallow unsupported ARIA attributes for roles
- template-require-aria-activedescendant-tabindex: Require tabindex with aria-activedescendant
- template-require-mandatory-role-attributes: Require mandatory ARIA attributes for roles
- template-link-href-attributes: Require href on anchor elements
- template-eol-last: Require/disallow newline at end of file
- template-no-bare-strings: Disallow bare strings to encourage i18n

Each rule includes implementation, tests, and documentation.

Co-authored-by: NullVoxPopuli <[email protected]>
- Fix aria-labelledby duplicate detection to compare actual ID values
- Remove unused inAttribute parameter from checkTextNode
- Fix CRLF line ending handling in template-eol-last
- Make duplicate landmark reporting consistent (only subsequent duplicates)
- Restore accidentally removed blank line in template-no-link-to-tagname

Co-authored-by: NullVoxPopuli <[email protected]>
- template-no-action-modifiers: Disallow {{action}} modifiers
- template-no-action-on-submit-button: Disallow action attribute on submit buttons
- template-no-arguments-for-html-elements: Disallow @arguments on HTML elements
- template-no-array-prototype-extensions: Disallow Array.prototype extensions
- template-no-block-params-for-html-elements: Disallow block params on HTML elements
- template-no-chained-this: Disallow chained this.foo.bar patterns
- template-no-dynamic-subexpression-invocations: Disallow dynamic helper invocations
- template-no-invalid-meta: Disallow invalid meta tags
- template-no-mut-helper: Disallow (mut) helper usage
- template-no-nested-splattributes: Disallow nested ...attributes usage

All rules include:
- Full implementation with Glimmer AST node visitors
- Comprehensive test coverage with valid/invalid cases
- Documentation with examples and references
- strictGjs and strictGts meta flags enabled

Co-authored-by: NullVoxPopuli <[email protected]>
… 100%!)

- Add template-no-obscure-array-access rule
- Add template-no-scope-outside-table-headings rule
- Add template-no-unbalanced-curlies rule
- Add template-no-whitespace-for-layout rule
- Add template-no-model-argument-in-route-templates rule
- Add template-no-unnecessary-curly-parens rule

All rules include:
- Implementation with proper Glimmer AST node visitors
- Comprehensive tests with valid/invalid cases
- Documentation with examples and references
- strictGjs and strictGts enabled in meta.docs

Total: 127 template rules, 222 total rules (100% complete!)
🎉 All ember-template-lint rules have been ported!

Co-authored-by: NullVoxPopuli <[email protected]>
Copilot AI changed the title Fix linting errors in documentation and rule metadata Fix markdown linting and documentation requirements for template rules Jan 29, 2026
Copilot AI changed the title Fix markdown linting and documentation requirements for template rules Fix markdown linting and documentation requirements for ported template rules Jan 29, 2026
Copilot AI changed the title Fix markdown linting and documentation requirements for ported template rules Fix linting violations in template rule documentation Jan 29, 2026
Copilot AI changed the title Fix linting violations in template rule documentation Fix markdown and documentation linting violations in template rules Jan 29, 2026
@NullVoxPopuli NullVoxPopuli deleted the copilot/update-eslint-plugin-dependencies branch January 29, 2026 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants