PHPackages                             kaqazstudio/laravel-interlink - 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. kaqazstudio/laravel-interlink

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

kaqazstudio/laravel-interlink
=============================

Add interlink to your published contents.

v0.1.0(4y ago)281MITPHPPHP &gt;=7.2

Since Nov 27Pushed 4y ago1 watchersCompare

[ Source](https://github.com/KaqazStudio/laravel-interlink)[ Packagist](https://packagist.org/packages/kaqazstudio/laravel-interlink)[ Docs](https://github.com/kaqazstudio/laravel-interlink)[ RSS](/packages/kaqazstudio-laravel-interlink/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

[![Quality Score](https://camo.githubusercontent.com/9da7b16dbbeb394b11e324292dd8fd1a56e8d405b31bfdb6635769b61df1e138/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6b6171617a73747564696f2f6c61726176656c2d696e7465726c696e6b2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/kaqazstudio/laravel-interlink)[![Total Downloads](https://camo.githubusercontent.com/321e07108f4b72bdcd7ee18f74c21593dc1e98aab389dbbee4a261796921fc6d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b6171617a73747564696f2f6c61726176656c2d696e7465726c696e6b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/kaqazstudio/laravel-interlink)

**WORK IN PROGRESS, some functionalities may be changed in the future.**

Add internal link to your published assets.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require kaqazstudio/laravel-interlink
```

Manual Registration
-------------------

[](#manual-registration)

If autodiscovery doesn't work, register the package in your project **manually**.

■ Add this line to `config/app.php > providers array`

```
KaqazStudio\LaravelInterlink\ServiceProvider\LaravelInterlinkServiceProvider::class
```

■ Then add the line below to `config/app.php > aliases array`

```
'LaravelInterlink' => KaqazStudio\LaravelInterlink\Facade\LaravelInterlinkFacade::class
```

Use with Facade
---------------

[](#use-with-facade)

Initialize Interlink

```
LaravelInterlink::single();
```

Use without Facade
------------------

[](#use-without-facade)

Initialize Interlink without facade

```
LaravelInterlink::access();
```

Laravel Interlink are available on chains! :)

### Methods

[](#methods)

MethodRequiredTypeDefaultDescription`init`truechainFire the engine`setKeyword`truestringnullSet target keyword`setTitle`falsestring*`keyword`*Replace with the keyword`setLink`truestringnullSet internal link url`rawLink`falseboolfalseSet link url to raw format`setCount`falseintinfiniteCount of link replacement`setPosts`truearraynullSet posts collection`column`truestringnullSet content column`markdown`falseboolfalseMarkDown format for links`blank`falseboolfalseSet links target to `_blank``noFollow`falseboolfalseSet links rel to `nofollow``setCustomAttributes`falsestringnullSet custom html attributes for a tag`process`truechainProcess link internalization`getUpdatedPosts`falsechainGet updated posts as a collection`updatePosts`falsechainDo `update` method on all posts

Example
-------

[](#example)

For example, you want to refer all first **AirPods** words to **/apple-airpods** in all of your published Blog posts.

```
LaravelInterlink::single()
                ->init()                     // Warm engine
                ->setKeyword('AirPods')      // Target Keyword
                ->setLink('/apple-airpods')  // Target url
                ->setCount(1)                // For first word
                ->setPosts(BlogPost::all())  // Get all blog posts
                ->setColumn('body')          // Set `body` column for content target
                ->process()                  // Process internalization
                ->updatePosts();             // Run update on posts!
```

Also, you can get all updated contents as a collection!

So, you MOST use `getUpdatedPosts()` **INSTEAD OF** `updatePosts()`

### Use customized links

[](#use-customized-links)

When you need to use your own format for link you can easily do like this

```
LaravelInterlink::single()
                ...
                ->setLink('Custom-Link')  // Your custom format
                ->rawLink()                                     // Raw link format [+]
                ...
```

Or, Maybe you to add custom html attributes to default link format - "Default a tag"

```
LaravelInterlink::single()
                ...
                ->setCustomAttributes('custom-data="Hello"')  // Raw link format [+]
                ...
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email `dev@kaqaz.studio` instead of using the issue tracker.

Credits
-------

[](#credits)

- [Armin Hooshmand](https://github.com/realmrhex) ([personal site](https://hex.kaqaz.studio))
- [Kaqaz Studio Corp](https://kaqaz.studio)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

1679d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/92265265?v=4)[Kaqaz Studio](/maintainers/KaqazStudio)[@KaqazStudio](https://github.com/KaqazStudio)

---

Top Contributors

[![KaqazStudio](https://avatars.githubusercontent.com/u/92265265?v=4)](https://github.com/KaqazStudio "KaqazStudio (2 commits)")

---

Tags

internal-linkslaravelphplaravelmrhexlaravel-interlinkkaqaz-studio

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kaqazstudio-laravel-interlink/health.svg)

```
[![Health](https://phpackages.com/badges/kaqazstudio-laravel-interlink/health.svg)](https://phpackages.com/packages/kaqazstudio-laravel-interlink)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M345](/packages/psalm-plugin-laravel)[renatomarinho/laravel-page-speed

Laravel Page Speed

2.5k1.7M11](/packages/renatomarinho-laravel-page-speed)[vinkius-labs/laravel-page-speed

Laravel Page Speed

2.5k12.5k1](/packages/vinkius-labs-laravel-page-speed)[emargareten/inertia-modal

Inertia Modal is a Laravel package that lets you implement backend-driven modal dialogs for Inertia apps.

90142.9k](/packages/emargareten-inertia-modal)[wearepixel/laravel-cart

A cart implementation for Laravel

1374.8k](/packages/wearepixel-laravel-cart)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

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