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). Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Content First

498 sites Security covered Drupal 10–11
View on drupal.org

This module provides a "Content First" tab on nodes and menus to view their plain text content without any design or layout distractions. It allows you to copy or download content as simple HTML or Markdown, and a sub-module helps audit content structure for accessibility and SEO. It also offers a Drush command to export nodes and menus as Markdown files.

The Content First module provides a simple tool for viewing the plain text content of any node without design, media, or layout distractions. It helps content teams, editors, and designers focus on what matters most: the content itself.

Whether you're drafting, reviewing, or rethinking your site's messaging, this module supports a true "content-first" approach by giving you a clean, layout-free version of your page.

Content First: Features

Content tab

The content first module adds a new tab to every node page. That tab shows a clean, structured text version of the page content.

From this tab, you can:

  • View all text content (without layout noise): Markdown and simple HTML formats
  • Copy it with one click
  • Download it as plain text: Markdown and simple HTML

No configuration. No views to build. Just access to the content.

Markdown content visualization


(simple) HTML content visualization


Headings tree visualization

Headings tree visualization, including missing headers (SEO/Accessibility)

Content export

The module allows to select multiple content and download them all at once into a .zip so you can process the data elsewhere.


Menu visualization

Available since 2.1.0. The module adds a Content First tab to every menu edit page (/admin/structure/menu/manage/{menu}). That tab renders the full menu tree as plain Markdown, respecting the current content language, so you can copy or download the site navigation as structured text — useful for AI prompts, documentation, or content audits.

Drush export command

Available since 2.1.0. The content-first:export command (alias cf:export) exports nodes and menus as individual Markdown files to a local folder. Key options:

  • --entity=node|menu|all — choose what to export (default: all)
  • --bundles — filter by content type or menu machine name
  • --status — filter by published/enabled state
  • --language — limit to specific language codes (nodes only)
  • --folder — output path (defaults to private://content_first/)
  • --rewrite-links — convert internal page links to local filenames for Obsidian or similar tools
  • --assets-base-url — make relative asset URLs absolute (images, PDFs, etc.)
  • --flatten-properties — flatten nested YAML front-matter keys with a dash separator (e.g. meta-title instead of meta: {title: ...}), required for tools like Obsidian that do not support nested YAML

Node files are named after the content path alias; menu files follow the pattern menu-{langcode}-{menu-id}.md.

Content First Audit: Features (sub-module)

Available since 2.0.2. The optional Content First Audit sub-module persists heading analysis results on every node save and provides site-wide reporting. It stores the H1 count and heading hierarchy validity per node and language, and includes:

  • An admin report at /admin/reports/content-first listing all nodes with their heading health, filterable by title, content type, language, H1 count, and hierarchy status.
  • An overview page at /admin/reports/content-first-audit with a summary.
  • A node overview page at /node/[NID]/content-first/audit with a node summary.
  • A status report entry on /admin/reports/status summarizing nodes without H1, with multiple H1s, or with broken heading hierarchy.

Use cases:

  • Content strategy and copywriting review sessions (human or AI)
  • Pre-design content validation
  • Content audits or UX writing sprints
  • Minimal reading interface for accessibility reviews
  • Bulk Markdown export for AI pipelines, knowledge bases, and Obsidian vaults

Usage

Install and enable the module.

  • Assign the View Content First tab permission to the appropriate roles.
  • Navigate to any node page — you'll see a new "Content First" tab.
  • Click the tab to view the stripped-down, text-only version of the node.
  • No additional configuration is needed.

Depends on

Dependencies of the latest stable release

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
37
Tracked since
Mar 2025
Latest release
6 days ago
Releases (12 mo)
23 ▲ from 14
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
2.3.1 Stable 10–11 Aug 26, 2026
2.3.0 Stable 10–11 Jul 30, 2026
2.2.2 Stable 10–11 Jun 8, 2026
2.2.1 Stable 10–11 May 28, 2026
2.2.0 Stable 10–11 May 26, 2026
2.1.4 Stable 10–11 May 12, 2026
2.1.3 Stable 10–11 May 8, 2026
2.0.6 Stable 10–11 May 8, 2026
2.1.2 Stable 10–11 May 7, 2026
2.1.1 Stable 10–11 May 7, 2026
2.1.0 Stable 10–11 May 6, 2026
2.0.5 Stable 10–11 Apr 29, 2026
2.0.4 Stable 10–11 Apr 29, 2026
2.0.3 Stable 10–11 Mar 6, 2026
2.0.2 Stable 10–11 Mar 6, 2026
1.0.6 Stable 10–11 Feb 12, 2026
2.0.1 Stable 10–11 Feb 12, 2026
2.0.0 Stable 10–11 Feb 11, 2026
2.x-dev Dev 10–11 Feb 11, 2026
1.0.5 Stable 10–11 Dec 5, 2025
1.0.4 Stable 10–11 Nov 26, 2025
1.0.3 Stable 10–11 Nov 19, 2025
1.0.2 Stable 10–11 Sep 8, 2025
1.0.1 Stable 10–11 Aug 12, 2025
1.0.0 Stable 10–11 Aug 12, 2025
1.0.0-beta11 Pre-release 10–11 Aug 6, 2025
1.0.0-beta10 Pre-release 10–11 Aug 6, 2025
1.0.0-beta9 Pre-release 10–11 Jul 23, 2025
1.0.0-beta4 Pre-release 10–11 Jul 23, 2025
1.0.0-beta8 Pre-release 10–11 Jul 21, 2025
1.0.0-beta7 Pre-release 10–11 Jul 18, 2025
1.0.0-beta6 Pre-release 10–11 Jul 18, 2025
1.0.0-beta5 Pre-release 10–11 May 29, 2025
1.0.0-beta3 Pre-release 10–11 Apr 2, 2025
1.0.0-beta2 Pre-release 10–11 Mar 26, 2025
1.0.0-beta1 Pre-release 10–11 Mar 25, 2025
1.x-dev Dev 10–11 Mar 25, 2025