Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Statistics Counter Module statistics_counter crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module automatically converts EUR-Lex links into direct URLs for the EU Publications Office (Cellar). This is useful for crawlers that cannot bypass EUR-Lex's JavaScript-based bot challenge, as Cellar provides direct access to the documents. The module can transform various EUR-Lex link formats into their corresponding Cellar URLs.

Turns a EUR-Lex link into the matching EU Publications Office (Cellar) URL. Cellar serves the same document over plain HTTP, so a crawler can read it.

Why

EUR-Lex is behind a bot challenge. The challenge needs JavaScript, so a server side HTTP client cannot pass it. Cellar is the repository behind EUR-Lex. It needs no challenge, no token and no account.

This module adds one AI Automator type. The automator reads a EUR-Lex link from a base field, and writes the Cellar URL into a link field. A crawler automator then reads that URL.

How the URL is built

The module pads the OJ number to five digits.

Source Result .../eli/C/2026/2425/oj .../resource/oj/C_202602425 .../eli/C/2026/511/oj .../resource/oj/C_202600511

The module reads these source formats:

  • ELI paths in the C/year/number shape, on eur-lex.europa.eu or data.europa.eu
  • Links with a uri parameter, such as ?uri=OJ:C_202602425 or ?uri=CELEX:32016R0679
  • URLs that already point to publications.europa.eu, which stay the same

An older ELI such as /eli/reg/2016/679/oj maps to a CELEX number that the URL does not hold. For these the module asks the Cellar SPARQL endpoint, and it stores the answer for 30 days.

Requirements

  • Drupal 10.4+ / 11.x / 12.x
  • AI ^1.4, with the ai_automators submodule enabled
  • One link field for the source URL, and one link field for the result

How to use

  1. Add a link field for the result.
  2. Open the settings of this field.
  3. Enable the AI Automator and select EC URL Transformer: EUR-Lex to Cellar URL.
  4. Set the base field to the link field that holds the EUR-Lex URL.
  5. Give this automator a lower weight than the crawler that reads the result.

Reading the result

The client that reads a Cellar URL must send two headers:

Accept: application/xhtml+xml
Accept-Language: eng

Accept-Language takes ISO 639-2 codes, such as eng, fra or nld. Cellar uses this header to select the language of the document.

Activity

Tracked releases
2
Tracked since
Aug 2026
Latest release
4 days ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0 Stable Aug 19, 2026
1.0.x-dev Dev Aug 18, 2026