Skip to main content
awesome-lint-extra

PyPI Release License Stars


Custom linter for awesome lists. Validates entry format, alphabetical order, badge presence, and URL hosts.

Designed as a complement or replacement for awesome-lint when your list uses advanced formatting (clickable badges, custom tags, etc.) that the standard linter doesn't support.

Checks

  • Entry format — - [Name](url) ... - Description.
  • Description style — starts with capital letter, ends with period, doesn't repeat the project name
  • Alphabetical order — entries sorted within each section/subsection
  • No duplicate URLs — each project listed only once
  • URL host validation — only approved git hosting domains (configurable)
  • Badge presence — optionally require shields.io badges (stars, language, license, etc.)
  • Custom tag badges — require colored tag badges (e.g. EU regulation, Spanish institution)
  • ToC consistency — table of contents matches actual sections

Usage as GitHub Action

name: CI
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: GeiserX/awesome-lint-extra@main
        with:
          require_badges: 'true'
          badge_types: '["stars", "last-commit", "language", "license"]'
          check_alphabetical: 'true'

Install from PyPI

pip install awesome-lint-extra

Then run from any directory containing a README.md:

awesome-lint-extra

Usage locally (without installing)

python3 lint.py

Configuration

Create .awesomerc.json in your repo root to configure checks. See .awesomerc.example.json for all options.

Allowed hosts

By default, the linter accepts URLs from major git hosting platforms:

  • github.com, gitlab.com, codeberg.org, gitea.com, sr.ht, bitbucket.org, framagit.org, salsa.debian.org, sourceforge.net, and more

Override with the allowed_hosts config option or action input:

- uses: GeiserX/awesome-lint-extra@main
  with:
    allowed_hosts: '["github.com", "gitlab.com", "my-gitea.example.com"]'

Requiring badges

Set require_badges: true and specify which badge types are required:

{
  "require_badges": true,
  "badge_types": ["stars", "language", "license"]
}

Supported badge types: stars, last-commit, language, license.

Custom tag badges

If your list uses colored tag badges (e.g., EU regulation tags), you can require them by specifying a hex color:

- uses: GeiserX/awesome-lint-extra@main
  with:
    require_custom_tags: '003399'

Or in .awesomerc.json:

{
  "require_custom_tags": "003399"
}

This checks that each entry has at least one shields.io badge with the specified color.

License

GPL-3.0

Metadata

Release files for awesome-lint-extra 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awesome-lint-extra 1.0.0
File Size Uploaded
awesome_lint_extra-1.0.0.tar.gz 20.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for awesome-lint-extra 1.0.0
File Interpreter ABI Platform
awesome_lint_extra-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.8 kB

Release files / awesome_lint_extra-1.0.0.tar.gz

Download URL awesome_lint_extra-1.0.0.tar.gz
Size 20.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7712b9047f00eec87e0db9d404604a4978fc57922e9559c49cf4abd6c86a0a5d
BLAKE2b-256 checksum
How to use checksums
dc84c80b3dcc6b00118923a6184d718bdf70d13d2d3adf5f3b54d8186e148446
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / awesome_lint_extra-1.0.0-py3-none-any.whl

Download URL awesome_lint_extra-1.0.0-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01779844d9b23ae86e224e335abae160014710195cc0e273ae88ca62c49d43c8
BLAKE2b-256 checksum
How to use checksums
9460e56e760c828297a2a7d8b407e6022793e20e56b2da590817b5ad1ab304d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page