Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Custom Markup Block

255 sites Security covered Drupal 8–11
View on drupal.org

This module provides a block where you can add custom HTML or markup directly. The markup is saved as configuration rather than content, making it easily deployable and version-controlled, particularly useful with Layout Builder and similar tools.

Simple module that provides a block with a single filtered text area where you can add custom markup to be rendered. When you add the block to a region, you specify the markup required and that markup will get rendered as the block content. The block contents are stored entirely in configuration, being ported in the staging process with no additional requirements.

How is this different to a core custom block?

This does not create an entity, the markup will be saved as config, so it can be deployed and version controlled.

Where would I use this?

You could use it to create a copyright text block, or a button block, anywhere you require some random markup in a block that needs to be in config/version controlled.

It is particular useful in combination with Layout Builder, Page Manager or the upcoming Experience Builder to create simple markup blocks within any configured display.

Requirements

Just Drupal core.

Usage

As simple as adding a new custom markup block in any place that allows it, for instance, at the theme block structure ( Structure -> Block layout ).

Related modules

Similar modules:

  • Simple Block

    Provides a way for creating static and simple blocks. Only a title and a body allowed, config entities are no "fieldable". Simple blocks are entirely stored in the site configuration, so cannot be managed as content by editors or non-admin users.

  • Fixed Block Content

    Provides a way of having permanent custom content blocks without broken instances if the block does not exist. A new fixed block type acts as a wrapper for the content block. If the custom block disappears, this module will re-create it as a new empty block or with a default content stored in config.

  • Recreate Block Content

    A simpler approach that also solves the broken block content instances. It simply creates a new empty custom block when missing with the same IDs but with no default content.

Depends on

Dependencies of the latest stable release

  • filter Drupal core

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
1
Tracked since
Apr 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Dormant

Releases

Version Type Core Release date
8.x-1.3 Stable 8–11 Apr 11, 2025