# luin/readability

📚 Turn any web page into a clean view

Repository: https://github.com/luin/readability
Canonical: https://ross.abutalabs.com/products/luin-readability
Language: HTML
License Family: other
Topics: readability, gbk, instapaper, jsdom
Last push: 2021-04-03T15:41:02+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 5271, "days_push": 1978, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2519, forks 313 (observed 2026-08-28T04:06:58.250920+00:00)

## What it is
A Node.js library that extracts clean, readable article content from any web page, based on arc90's readability project. It returns the article's main content, title, and DOM, handling encodings like GBK and converting relative URLs to absolute.

## Use cases
- extract main article content from a web page url
- build a read-it-later app like instapaper
- strip ads and clutter from html articles
- parse web pages with gbk or gb2312 encoding
- get clean text and title from news articles for indexing

## When to choose
- you need server-side article extraction in Node.js
- you want a readability port with custom cleaning rules and preprocessing hooks
- you need to handle non-utf8 encodings like GBK

## When to avoid
- you need a maintained library with recent updates and a license
- you need browser-side extraction
- you need JavaScript-rendered (SPA) page content

## Facets
- artifact type: library
- maturity: maintenance
- function: parser, web-scraping, nlp
- domain: web-development, crawlers
- platform: -
- tags: readability, article-extraction, jsdom, content-extraction, reader-mode, natural-language-processing, nodejs

## Member repositories
- luin/readability (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:58.250920+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:26:07.192045+00:00, confidence not recorded.
  - readme: https://github.com/luin/readability (fetched 2026-08-28T04:06:58.250920+00:00, sha 5cfe48712dc5)
- Data as of 2026-08-30T08:39:29.467469+00:00.
