hlyang1992220 downloadsConvert pasted LaTeX delimiters and recover exact math source from rich text while preserving Markdown formatting.
Install, enable, and paste. Math Paste Bridge automatically converts LaTeX math from ChatGPT, Codex, and other sources to Obsidian's native math syntax. It adds no hotkeys, commands, settings, or conversion notifications. It only processes newly pasted content; existing notes are not scanned or rewritten.
| Copied content | Inserted into Obsidian |
|---|---|
\(x\) |
$x$ |
\[x + y\] |
A display math block with $$ on separate lines |
Bare TeX such as \tau_t in prose |
$\tau_t$ |
Algebra without backslash commands, such as y_t=m_{t+H}-m_t in prose |
$y_t=m_{t+H}-m_t$ |
A formula-only line such as \text{age}_t=t-\tau_t |
A display math block with $$ on separate lines |
| Rendered HTML with a preserved LaTeX annotation | The original TeX, enclosed in the appropriate math delimiters |
Check the official Community Plugins page for review status and installation availability. Use the version offered there when installation is available, then enable Math Paste Bridge in Obsidian.
For a specific version, download main.js and manifest.json from the same GitHub release, put both in <vault>/.obsidian/plugins/math-paste-bridge/, then reload Obsidian and enable the plugin. Use your vault's custom configuration folder if it differs from .obsidian. Download the built release assets, not just the source archive.
Paste a response containing math into the note editor as usual. The plugin converts eligible formulas silently, including recognizable LaTeX expressions whose math delimiters are missing, preserving surrounding formatting where the copied HTML supports it. If no eligible formula is found, normal Obsidian paste continues. ChatGPT/Codex rendering and the system clipboard remain unchanged.
Clipboard Markdown and Obsidian's internal copy marker take priority over HTML. Already converted Markdown uses native paste, so copying it again does not reprocess its HTML alternative or lose formulas such as $y$.
Code, existing $...$ / $$...$$ math, URLs, and Markdown links are protected. Formula examples copied inside a code fence remain code; paste without the outer fence when you want them to render. Exact formula sources from HTML may be converted inside link labels.
Pasting into existing code or math, pasting files, and pasting with multiple selections retain native paste behavior.
HTML recovery uses exact LaTeX annotations preserved by KaTeX, MathML, or MathJax. Existing dollar and backslash delimiters are matched across inline HTML nodes before bare TeX recovery, so a formula is wrapped only once. HTML code and table-cell boundaries are not crossed.
Display math in tables and table formulas containing unescaped | characters are skipped to avoid breaking rows. Ordinary inline table formulas such as \(+2\text{ bp}\) are supported. TeX commands such as \lvert and \rvert avoid literal table separators.
Bare TeX recovery requires a complete simple expression with a recognized math command or TeX subscript/superscript syntax. Formula-only lines become display math; expressions in prose become inline math, including the left-hand side of an equation. Lone unmarked variables, ordinary parentheses, incomplete expressions, and unsupported commands are left as copied.
If the TeX source itself is missing, copy again from the original response. The plugin does not reconstruct formulas from screenshots or visual glyphs. A lone y requires math delimiters or a preserved HTML math annotation; plain text alone cannot distinguish it from an ordinary letter or restore lost bold formatting.
Desktop and mobile loading are permitted, but mobile devices have not been tested. Clipboard behavior can vary by platform.
Conversion runs locally and only handles the current paste. The plugin makes no network requests, sends no content to a service, and does not poll or modify the system clipboard. Installing or updating through the plugin directory or GitHub uses those services separately.
Node.js and npm are required for development:
npm ci
npm test
npm run build
The build writes main.js in the repository root. The paste handler is in src/main.js, Markdown conversion in src/convert.js, HTML extraction in src/html.js, cross-node delimiter protection in src/html-delimiters.js, and bare TeX recognition in src/latex.js. Regression tests are in test/. The installed plugin does not need npm dependencies.
Release tags must exactly match manifest.json's version, for example 1.0.6. Attach the corresponding built main.js and manifest.json to that release. Publishing a GitHub release and being accepted into the Community Plugins directory are separate steps.
Disable the plugin in Obsidian, then delete its math-paste-bridge plugin folder. Previously converted formulas remain ordinary Obsidian math and do not depend on this plugin to render.
MIT, copyright 2026 hlyang1992.