Configuration

Format Support

@cognipeer/to-markdown supports a wide variety of file formats. Each format is handled by a specialized converter optimized for that format’s structure.

Document Formats

PDF Documents (.pdf)

Converts PDF documents to Markdown, preserving text structure and formatting.

const markdown = await convertToMarkdown('./document.pdf');

Features:


Word Documents (.docx)

Converts Microsoft Word documents to Markdown.

const markdown = await convertToMarkdown('./document.docx');

Features:


HTML/HTM (.html, .htm)

Converts HTML web pages to clean Markdown.

const markdown = await convertToMarkdown('./page.html');

Features:


Spreadsheet Formats

Excel (.xlsx, .xls)

Converts Excel spreadsheets to Markdown tables.

const markdown = await convertToMarkdown('./data.xlsx');

Features:

Output Example:

## Sheet1

| Name | Age | City |
| --- | --- | --- |
| John | 30 | NYC |
| Jane | 25 | LA |

CSV (.csv)

Converts CSV files to Markdown tables.

const markdown = await convertToMarkdown('./data.csv');

Features:


Notebook Formats

Jupyter Notebooks (.ipynb)

Converts Jupyter notebooks to Markdown, preserving code and markdown cells.

const markdown = await convertToMarkdown('./analysis.ipynb');

Features:

Output Example:

# Analysis Title

This is a markdown cell.

```python
import pandas as pd
df = pd.read_csv('data.csv')

Results

The data shows…


---

## Presentation Formats

### PowerPoint (.pptx)

Extracts text content from PowerPoint presentations.

```typescript
const markdown = await convertToMarkdown('./presentation.pptx');

Features:


Data Formats

XML/RSS/ATOM (.xml, .rss, .atom)

Converts XML feeds and documents to structured Markdown.

const markdown = await convertToMarkdown('./feed.rss');

Features:

RSS Output Example:

# Blog Title

## Latest Article
Published on: 2025-01-01

Article content here...

Media Formats

Images (.jpg, .jpeg, .png, .gif)

Extracts metadata from image files.

const markdown = await convertToMarkdown('./photo.jpg');

Features:

Note: OCR support planned for future releases.


Audio (.mp3, .wav)

Extracts metadata from audio files.

const markdown = await convertToMarkdown('./song.mp3');

Features:

Note: Speech-to-text support planned for future releases.


Archive Formats

ZIP Archives (.zip)

Processes ZIP archives and converts contained files.

const markdown = await convertToMarkdown('./archive.zip');

Features:


Text Formats

Plain Text (.txt)

Processes plain text files with minimal transformation.

const markdown = await convertToMarkdown('./notes.txt');

Features:


Special Formats

YouTube Pages

Extracts information from YouTube video pages.

const markdown = await convertToMarkdown(htmlBuffer, {
  url: 'https://www.youtube.com/watch?v=...'
});

Features:


Bing Search Results

Converts Bing search results to structured Markdown.

const markdown = await convertToMarkdown(htmlBuffer, {
  url: 'https://www.bing.com/search?q=...'
});

Features:


Format Detection

The library automatically detects file formats using:

  1. File extension (for file paths)
  2. MIME type (for base64 data URLs)
  3. Magic bytes (for buffers without extension)
  4. Fallback to plain text if detection fails

You can force a specific format:

const markdown = await convertToMarkdown(buffer, {
  forceExtension: '.pdf'
});

See Also