# MarkdownHeaderTextSplitter

> **Class** in `langchain_text_splitters`

📖 [View in docs](https://reference.langchain.com/python/langchain-text-splitters/markdown/MarkdownHeaderTextSplitter)

Splitting markdown files based on specified headers.

## Signature

```python
MarkdownHeaderTextSplitter(
    self,
    headers_to_split_on: list[tuple[str, str]],
    return_each_line: bool = False,
    strip_headers: bool = True,
    custom_header_patterns: dict[str, int] | None = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `headers_to_split_on` | `list[tuple[str, str]]` | Yes | Headers we want to track |
| `return_each_line` | `bool` | No | Return each line w/ associated headers (default: `False`) |
| `strip_headers` | `bool` | No | Strip split headers from the content of the chunk (default: `True`) |
| `custom_header_patterns` | `dict[str, int] \| None` | No | Optional dict mapping header patterns to their levels.  For example: `{"**": 1, "***": 2}` to treat `**Header**` as level 1 and `***Header***` as level 2 headers. (default: `None`) |

## Constructors

```python
__init__(
    self,
    headers_to_split_on: list[tuple[str, str]],
    return_each_line: bool = False,
    strip_headers: bool = True,
    custom_header_patterns: dict[str, int] | None = None,
) -> None
```

| Name | Type |
|------|------|
| `headers_to_split_on` | `list[tuple[str, str]]` |
| `return_each_line` | `bool` |
| `strip_headers` | `bool` |
| `custom_header_patterns` | `dict[str, int] \| None` |


## Properties

- `return_each_line`
- `headers_to_split_on`
- `strip_headers`
- `custom_header_patterns`

## Methods

- [`aggregate_lines_to_chunks()`](https://reference.langchain.com/python/langchain-text-splitters/markdown/MarkdownHeaderTextSplitter/aggregate_lines_to_chunks)
- [`split_text()`](https://reference.langchain.com/python/langchain-text-splitters/markdown/MarkdownHeaderTextSplitter/split_text)

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/f0c5a28fa05adcda89aebcb449d897245ab21fa4/libs/text-splitters/langchain_text_splitters/markdown.py#L23)