Skip to content

SyNeto/markitdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MarkItDown

A Brave/Chrome extension that renders Markdown files directly in the browser with GitHub-style themes (light/dark) and GFM support.

Features

  • Renders .md, .markdown, .mdown, .mkd files opened locally or from the web
  • Works on raw.githubusercontent.com and gist.githubusercontent.com
  • GitHub Flavored Markdown: tables, task lists, strikethrough, autolinks
  • Syntax highlighting in fenced code blocks via highlight.js (auto-detects language)
  • Automatic light/dark theme following system preference
  • Toggle between rendered and raw view via toolbar icon
  • No network requests — fully offline, no telemetry

Install (developer mode)

  1. Clone this repository.
  2. Install dependencies and build:
    npm install
    npm run build
  3. Open brave://extensions (or chrome://extensions).
  4. Enable Developer mode (toggle in the top-right corner).
  5. Click Load unpacked and select the project root directory.
  6. For local files: click Details on the MarkItDown extension card, then enable Allow access to file URLs.

Usage

  • Open any .md file locally (file:///...) or a raw Markdown URL.
  • The extension automatically renders the Markdown.
  • Click the extension icon in the toolbar to toggle between rendered and raw view.
  • The badge shows RAW when viewing the source text.

Project structure

markitdown/
├── manifest.json          # MV3 extension manifest
├── src/
│   ├── background.js      # Service worker: toolbar icon click handling
│   └── content.js         # Content script: detection, rendering, toggle
├── styles/
│   ├── markdown.css       # GitHub-style light/dark theme CSS
│   └── hljs-theme.css     # highlight.js theme (light/dark via prefers-color-scheme)
├── vendor/
│   ├── marked-entry.js    # esbuild entry point for bundling marked
│   ├── marked.min.js      # Bundled marked library (generated by build)
│   ├── hljs-entry.js      # esbuild entry point for bundling highlight.js
│   └── hljs.min.js        # Bundled highlight.js library (generated by build)
├── icons/                 # Extension icons (16, 48, 128px)
├── package.json           # Node.js project with build scripts
└── README.md

Permissions

Permission Why
activeTab Allows the service worker to send a toggle message to the active tab when the user clicks the extension icon.

The extension declares content_scripts match patterns for file:///*, *://raw.githubusercontent.com/*, and *://gist.githubusercontent.com/* to automatically inject the renderer on Markdown pages.

Roadmap

  • Persistent interactive checkboxes in task lists (keyed by document hash)
  • KaTeX math rendering ($...$ and $$...$$)
  • Mermaid diagrams (```mermaid fences)
  • Optional table of contents, heading anchors

About

Brave/Chrome extension that renders Markdown files locally with GitHub-style themes, GFM, and offline syntax highlighting.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors