Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Delete a section by its heading

Goal: Drop a section you no longer want — e.g. remove a “Deprecated” section before publishing docs — while leaving the rest of the document intact.

Prerequisites: The section module, via -A or nodes.

Query

$ mq -A 'section::filter_sections(fn(s): section::title(s) != "Deprecated";)' README.md

Or with nodes:

import "section"
| nodes
| section::filter_sections(fn(s): section::title(s) != "Deprecated";)

Input

# Introduction

Welcome to the project.

## Installation

Run the following command.

## Deprecated

Do not use this anymore.

Output

# Introduction

Welcome to the project.

## Installation

Run the following command.

Notes

  • filter_sections keeps a section when the predicate returns true, so the same pattern works for any condition — e.g. matching against a list of titles to drop, instead of a single != check.
  • section::collect (flattening section objects back to plain Markdown nodes) isn’t needed here — mq expands section objects to Markdown automatically in query output. It’s only required when consuming section objects from Rust or other embedding code; see the equivalent note in Extract a section by its heading.