HeadingLevelService

Der HeadingLevelService ermöglicht es Headline-Tags (<h1>, <h2>, …) automatisch je nach Überschriften-Level automatisch zu setzten.

Dafür wird in den Renderern die Methode

$this->headline = $this->createHeadlineFor('headline');

verwendet.

Siehe Z.B. im Paragraph-Renderer

Die Headline wird nur automatisch gesetzt, wenn der HeadingLevelService vorher aktiviert wurde.

Dies erfolgt mit der Methode

$startLevel = 2;
$this->getHeadlineLevelService()->activate($startLevel);

Deaktiviert wird sie wieder mit

$this->getHeadlineLevelService()->deactivate();

Siehe z.B. im Main-Renderer

Renderer die eine Überschrift definiere und untergeordnete Renderer aufrufen die auch Überschriften rendern, müssen das Überschriften-Level erhöhen, damit für die untergeordneten Renderer der passende Tag erstellt werden kann.

Dies wird mit folgenden Methoden gemacht:

$this->getHeadlineLevelService()->openLevel();

um ein Level zu erhöhen und

$this->getHeadlineLevelService()->closeLevel();

um das Level wieder zurück zu setzten.

Siehe z.B. im Section-Rendeer

Aktiviert wird der HeadingLevelService z.Z. nur im Main-Renderer.

Der aktuelle Level wird zur Zeit nur vom Section-Rendeer gesetzt.

Damit ist der Fall abgedeckt. das die Überschrift z.B. eines Text-Abschnitts außerhalb einer Sektion <h2> verwendet und automatisch innerhalb einer Sektion mit Überschrift <h3>.

Ausserhab des Content-Bereiches gibt es kein automatisches HeadingLevel.