{"id":36972156,"url":"https://github.com/plan2net/link-alchemy","last_synced_at":"2026-01-13T21:55:17.440Z","repository":{"id":257808306,"uuid":"862307279","full_name":"plan2net/link-alchemy","owner":"plan2net","description":"Rewrite absolute URLs that point to internal pages/files, converting them to internal TYPO3 URLs","archived":false,"fork":false,"pushed_at":"2025-12-21T09:19:01.000Z","size":55,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-23T02:12:16.036Z","etag":null,"topics":["typo3","typo3-extension"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plan2net.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-24T11:39:00.000Z","updated_at":"2025-12-21T09:15:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"b80bfc1a-72d4-4637-8875-f2dd7459156b","html_url":"https://github.com/plan2net/link-alchemy","commit_stats":null,"previous_names":["plan2net/link-alchemy"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/plan2net/link-alchemy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plan2net%2Flink-alchemy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plan2net%2Flink-alchemy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plan2net%2Flink-alchemy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plan2net%2Flink-alchemy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plan2net","download_url":"https://codeload.github.com/plan2net/link-alchemy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plan2net%2Flink-alchemy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28401965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["typo3","typo3-extension"],"created_at":"2026-01-13T21:55:17.288Z","updated_at":"2026-01-13T21:55:17.435Z","avatar_url":"https://github.com/plan2net.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TYPO3 Extension `link_alchemy`\n\n## What does it do?\n\nThe `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...`).\n\n## Installation and configuration\n\nTo install the extension, use Composer:\n\n```bash\ncomposer require plan2net/link-alchemy\n```\n\nNo configuration is required. The extension automatically hooks into the DataHandler for TCA fields and into the RTE content transformation process.\n\n## Compatibility\n\nVersions 12.0.0 and higher are compatible with the corresponding TYPO3 versions.\n\nIf you already overwrite the class `RteHtmlParser` in your project, you may need to adjust the XCLASS configuration in `ext_localconf.php`.\n\n## Usage\n\nThe 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.\n\n## Example\n\nHere is an example of how the extension transforms a link in an RTE text field:\n\n- **Before**: `\u003ca href=\"https://example.com/internal-page\"\u003eLink\u003c/a\u003e`\n- **After**: `\u003ca href=\"t3://page?uid=123\"\u003eLink\u003c/a\u003e`\n\nThis ensures that links are correctly handled within the TYPO3 CMS environment, providing better integration and consistency.\n\n## Internals\n\n### `Plan2net\\LinkAlchemy\\Xclass\\RteHtmlParser`\n\nThis class extends the core `RteHtmlParser` to include custom transformations for internal links.\n\n### `Plan2net\\LinkAlchemy\\Hooks\\DataHandlerHook`\n\nThis class handles the transformation of internal links within TCA `type=link` fields.\n\n### `Plan2net\\LinkAlchemy\\RteTransformation\\InternalLinkTransformation`\n\nThis class handles the transformation of internal links within the RTE content.\n\n### `Plan2net\\LinkAlchemy\\Service\\UrlParser`\n\nThis class parses the urls to internal links.\n\n## TODO\n\n- [ ] Unit-Tests for UrlParser\n\n# Acknowledgements\n\nThis extension was inspired by [Georg Ringers](https://github.com/georgringer)'s uri2link extension that only transforms TCA `type=link` fields.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplan2net%2Flink-alchemy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplan2net%2Flink-alchemy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplan2net%2Flink-alchemy/lists"}