PHPackages                             plan2net/link-alchemy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. plan2net/link-alchemy

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

plan2net/link-alchemy
=====================

Rewrite absolute URLs that point to internal pages/files, converting them to internal TYPO3 URLs

14.0.2(2mo ago)37.3k↓41.2%GPL-2.0-or-laterPHPPHP &gt;=8.1

Since Oct 3Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/plan2net/link-alchemy)[ Packagist](https://packagist.org/packages/plan2net/link-alchemy)[ Docs](https://www.plan2.net/)[ RSS](/packages/plan2net-link-alchemy/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (14)Versions (9)Used By (0)

TYPO3 Extension `link_alchemy`
==============================

[](#typo3-extension-link_alchemy)

What does it do?
----------------

[](#what-does-it-do)

The `link_alchemy` extension rewrites external links in TCA `type=link` and RTE text fields that refer to internal TYPO3 pages or files. These links are converted to internal TYPO3 links (`t3://page...`, `t3://file...`).

Installation and configuration
------------------------------

[](#installation-and-configuration)

To install the extension, use Composer:

```
composer require plan2net/link-alchemy
```

No configuration is required. The extension automatically hooks into the DataHandler for TCA fields and into the RTE content transformation process.

Compatibility
-------------

[](#compatibility)

Versions 12.0.0 and higher are compatible with the corresponding TYPO3 versions.

If you already overwrite the class `RteHtmlParser` in your project, you may need to adjust the XCLASS configuration in `ext_localconf.php`.

Usage
-----

[](#usage)

The extension automatically hooks into the RTE content transformation process. No additional setup is required. When RTE content is processed, external links that refer to internal pages or files will be rewritten to use TYPO3's internal link format.

Example
-------

[](#example)

Here is an example of how the extension transforms a link in an RTE text field:

- **Before**: `Link`
- **After**: `Link`

This ensures that links are correctly handled within the TYPO3 CMS environment, providing better integration and consistency.

Internals
---------

[](#internals)

### `Plan2net\LinkAlchemy\Xclass\RteHtmlParser`

[](#plan2netlinkalchemyxclassrtehtmlparser)

This class extends the core `RteHtmlParser` to include custom transformations for internal links.

### `Plan2net\LinkAlchemy\Hooks\DataHandlerHook`

[](#plan2netlinkalchemyhooksdatahandlerhook)

This class handles the transformation of internal links within TCA `type=link` fields.

### `Plan2net\LinkAlchemy\RteTransformation\InternalLinkTransformation`

[](#plan2netlinkalchemyrtetransformationinternallinktransformation)

This class handles the transformation of internal links within the RTE content.

### `Plan2net\LinkAlchemy\Service\UrlParser`

[](#plan2netlinkalchemyserviceurlparser)

This class parses the urls to internal links.

TODO
----

[](#todo)

- Unit-Tests for UrlParser

Acknowledgements
================

[](#acknowledgements)

This extension was inspired by [Georg Ringers](https://github.com/georgringer)'s uri2link extension that only transforms TCA `type=link` fields.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance84

Actively maintained with recent releases

Popularity28

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~111 days

Recently: every ~82 days

Total

6

Last Release

81d ago

Major Versions

12.0.0 → 13.0.02025-05-21

13.1.0 → 14.0.02025-12-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/fdc5d7c9be0f04c0d84c56db1e263fb7cb88c40564a7c293f1a2d4aa543f0115?d=identicon)[plan2net@packagist](/maintainers/plan2net@packagist)

---

Top Contributors

[![richardkrikler](https://avatars.githubusercontent.com/u/57064056?v=4)](https://github.com/richardkrikler "richardkrikler (25 commits)")[![wazum](https://avatars.githubusercontent.com/u/146727?v=4)](https://github.com/wazum "wazum (1 commits)")

---

Tags

typo3typo3-extensionlinkextensiontypo3rteinternal-urls

###  Code Quality

Static AnalysisPsalm

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/plan2net-link-alchemy/health.svg)

```
[![Health](https://phpackages.com/badges/plan2net-link-alchemy/health.svg)](https://phpackages.com/packages/plan2net-link-alchemy)
```

###  Alternatives

[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40529.5k](/packages/wazum-sluggi)[friendsoftypo3/visual-editor

TYPO3 CMS Visual Editor - Brings a modern WYSIWYG editing experience to TYPO3 CMS.

576.1k2](/packages/friendsoftypo3-visual-editor)[quellenform/t3x-iconpack

Provides an iconpack-registry for custom iconpacks.

1552.6k27](/packages/quellenform-t3x-iconpack)[t3brightside/pagelist

TYPO3 CMS extension to create news, events, vacancies and products or just page lists. Demo: microtemplate.t3brightside.com

1121.5k1](/packages/t3brightside-pagelist)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
