adam-p/markdown-here
Google Chrome, Firefox, and Thunderbird extension that lets you write email in Markdown and render it before sending.
How markdown-here is put together
Markdown Here is a browser/mail-client extension (Chrome, Firefox/Thunderbird WebExtensions, Opera) that converts Markdown written in rich-text email compose boxes into styled HTML before sending. The codebase is plain vanilla JavaScript with no build-time framework: shared logic lives in src/common (markdown rendering via a vendored marked.js, syntax highlighting via vendored highlight.js, options storage, HTML-to-text conversion), while thin per-platform entry points live in src/chrome (background script, content script). A small Node.js utility package under utils/ builds the distributable extension bundles into zip archives. Data flow: the content script detects editable compose elements in webmail pages, sends the Markdown to the background script for rendering (marked + highlight.js + user CSS from options-store), and swaps the rendered HTML back into the compose element; toggling reverts HTML to Markdown.
Languages
Frameworks
Infrastructure
Major components
Chrome/WebExtension background layer
src/chrome/backgroundscript.js handles extension lifecycle, context menus, toolbar button, hotkey handling, and message routing between content scripts and rendering.
Content script / page injection
src/chrome/contentscript.js finds editable compose elements in webmail pages, intercepts toggle requests, and swaps Markdown/HTML in and out of the DOM.
Core markdown-here engine
src/common/markdown-here.js implements the convert/revert toggle logic, selection handling, signature exclusion, and forgotten-render prompt behavior.
Markdown renderer pipeline
src/common/markdown-render.js combines the marked parser, highlight.js code highlighting, TeX math support, and user-defined CSS into final rendered HTML.
Options system
src/common/options-store.js persists user settings (styles, hotkey, math config) to extension storage with cross-browser sync; options.html/options.js/options-iframe provide the settings UI.
HTML-to-text conversion
src/common/mdh-html-to-text.js and jsHtmlToText.js convert composed HTML back to Markdown when reverting a rendered block.
Shared common logic & permissions
src/common/common-logic.js holds cross-platform helpers and src/common/content-permissions.js manages which sites/content contexts the extension may operate on.
Build/packaging utilities
utils/build.js plus archiver/glob packages the src tree into distributable extension zips per target store.
No digest this week
1 weeksWeek of
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required