PHPackages                             paessler/anchorlink - 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. paessler/anchorlink

ActiveNeos-plugin[Utility &amp; Helpers](/categories/utility)

paessler/anchorlink
===================

Extends the Neos CKE5 link-editor custom anchor link option

1.0.0(1y ago)4139MITJavaScript

Since Jan 26Pushed 1y ago4 watchersCompare

[ Source](https://github.com/PaesslerAG/Paessler.Anchorlink)[ Packagist](https://packagist.org/packages/paessler/anchorlink)[ RSS](/packages/paessler-anchorlink/feed)WikiDiscussions main Synced 1mo ago

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

Paessler.AnchorLink
===================

[](#paessleranchorlink)

Extends the Neos CKE5 link-editor with server-side resolvable anchor links.

[![anchorlink](https://user-images.githubusercontent.com/837032/72664973-de351880-3a14-11ea-8d2b-a379b7c7bb47.gif)](https://user-images.githubusercontent.com/837032/72664973-de351880-3a14-11ea-8d2b-a379b7c7bb47.gif)

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

[](#installation)

1. Install the package: `composer require paessler/anchorlink`
2. Enable additional linking options with such config:

```
"Neos.NodeTypes.BaseMixins:TextMixin": # Or other nodetype
  properties:
    text:
      ui:
        inline:
          editorOptions:
            linking:
              anchorLink: true
```

3. For all content nodetypes that you would like to be able to link to, inherit from `Paessler.AnchorLink:AnchorMixin`, e.g.:

```
Neos.Neos:Content: # Or other nodetype
  superTypes:
    Paessler.AnchorLink:AnchorMixin: true
```

4. Adjust the rendering for those nodes to insert anchors before them, e.g. there is included a Fusion processor to help with that:

```
prototype(Neos.Neos:Content).@process.anchor = Paessler.AnchorLink:AnchorLinkAugmenter

```

Note: this will add an `id` attribute to the corresponding output. For this to work reliably the corresponding prototype should render a single root element. Otherwise an additional wrapping `div` element will be rendered. Also the rendered content must not already contain an `id` attribute because it would be merged with the one from the augmentor in that case.

Configuration
-------------

[](#configuration)

It's possible to configure the content node nodetype that is used for linking. Also it's possible to use a different property for the anchor value and the label via Settings.yaml.

These are the defaults:

```
Paessler:
  AnchorLink:
    # Only nodes of this type will appear in the "Choose link anchor" selector
    contentNodeType: "Paessler.AnchorLink:AnchorMixin"
    # Eel Expression that returns the anchor (without leading "#") for a given node
    anchor: ${node.properties.anchor || node.name}
    # Eel Expression that returns the label to be rendered in the anchor selector in the Backend
    label: ${node.label}
    # Eel Expression that returns a group for the anchor selector (empty string == no grouping)
    group: ${I18n.translate(node.nodeType.label)}
    # Eel Expression that returns an icon for the anchor selector (empty string = no icon)
    icon: ${node.nodeType.fullConfiguration.ui.icon}
```

It's possible to disable the searchbox or adjust its threshold via Settings.yaml, the default settings are:

```
Neos:
  Neos:
    Ui:
      frontendConfiguration:
        "Paessler.AnchorLink":
          displaySearchBox: true
          threshold: 0
```

Low-level Customization
-----------------------

[](#low-level-customization)

Finally, it is possible to create a completely custom anchor nodes resolver.

Create a class implementing `AnchorLinkResolverInterface` that would take the current content node, link and a searchTerm and return an array of options for the link anchor selector and configure it in `Objects.yaml` like this:

```
'Paessler\AnchorLink\Controller\AnchorLinkController':
  properties:
    resolver:
      object: Your\Custom\AnchorLinkResolver

```

Development
-----------

[](#development)

If you need to adjust anything in this package, just do so and then rebuild the code like this:

```
cd Resources/Private/JavaScript/AnchorLink
yarn && yarn build

```

And then commit changed filed including Plugin.js

About
-----

[](#about)

The package is based on the `DIU.Neos.AnchorLink` package. We thank the DIU team for all the efforts.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% 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 ~137 days

Total

2

Last Release

707d ago

Major Versions

0.1.0 → 1.0.02024-06-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/8d4896466e55d1b9d648fc4baea282c7f69a2491ade1320eccd3ce70ce5166f7?d=identicon)[Paessler Webs Team](/maintainers/Paessler%20Webs%20Team)

---

Top Contributors

[![pKallert](https://avatars.githubusercontent.com/u/91674611?v=4)](https://github.com/pKallert "pKallert (3 commits)")[![MiauzGenau](https://avatars.githubusercontent.com/u/46249106?v=4)](https://github.com/MiauzGenau "MiauzGenau (1 commits)")

### Embed Badge

![Health badge](/badges/paessler-anchorlink/health.svg)

```
[![Health](https://phpackages.com/badges/paessler-anchorlink/health.svg)](https://phpackages.com/packages/paessler-anchorlink)
```

###  Alternatives

[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

1494.4k6](/packages/shel-neos-colorpicker)[yoast/yoast-seo-for-neos

Yoast SEO for Neos CMS

24164.8k](/packages/yoast-yoast-seo-for-neos)[shel/neos-hyphens

A plugin for Neos CMS which provides hyphens for the inline editor

20200.7k1](/packages/shel-neos-hyphens)[techdivision/ckstyles

Neos package which enables you adding your custom style classes for the CkEditor with a simple Yaml configuration

21166.3k](/packages/techdivision-ckstyles)[sitegeist/silhouettes

Preconfigure property-silhuettes that can be applied to various properties of multiple NodeTypes.

16157.5k](/packages/sitegeist-silhouettes)[psmb/flatnav

Custom navigation module for Neos CMS

2541.7k](/packages/psmb-flatnav)

PHPackages © 2026

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