A Brave/Chrome extension that renders Markdown files directly in the browser with GitHub-style themes (light/dark) and GFM support.
- Renders
.md,.markdown,.mdown,.mkdfiles opened locally or from the web - Works on
raw.githubusercontent.comandgist.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
- Clone this repository.
- Install dependencies and build:
npm install npm run build
- Open
brave://extensions(orchrome://extensions). - Enable Developer mode (toggle in the top-right corner).
- Click Load unpacked and select the project root directory.
- For local files: click Details on the MarkItDown extension card, then enable Allow access to file URLs.
- Open any
.mdfile 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.
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
| 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.
- Persistent interactive checkboxes in task lists (keyed by document hash)
- KaTeX math rendering (
$...$and$$...$$) - Mermaid diagrams (
```mermaidfences) - Optional table of contents, heading anchors