bfgpollara25 downloadsPastes content from Google Docs into Obsidian with bold, italic, headings, lists, links, tables and images preserved instead of collapsed to plain text.
Paste content from Google Docs with formatting preserved instead of collapsed to plain text wrapped in **.
Built with the assistance of the forum thread Copy-pasting from Google Docs loses formatting and wraps text in.
When you copy from Google Docs, the clipboard HTML is wrapped in
<b style="font-weight:normal" id="docs-internal-guid-..."> and uses inline
<span style="font-weight:700"> instead of semantic <strong>. Obsidian's
built-in Turndown-based paste keeps the outer <b> (so everything ends up
bolded) and drops the inner styled spans (so the real bold is lost). Lists
get extra blank lines because Google nests <p> inside each <li>, links
point at google.com/url?q=... redirects, and tables come through as
inline-styled markup.
This plugin sniffs Google Docs HTML on paste and rewrites it into semantic
HTML before handing it to Obsidian's htmlToMarkdown().
<u>), strikethrough,
sub/superscript.<p>-in-<li>
flattening, dropped presentational styles.google.com/url?q=... redirects unwrapped to the destination.<thead> /
<th> so the output is a real Markdown table.<span style="color:...;background-color:...">.Non-Google-Docs pastes are untouched.
This plugin is not (yet) in the community catalog, so install it manually as an unpacked plugin.
Build the plugin
git clone https://github.com/bfgpollara/obsidian-google-docs-paste
cd obsidian-google-docs-paste
npm install
npm run build
This produces main.js next to manifest.json.
Copy the files into your vault
Create a folder for the plugin inside your vault's hidden .obsidian
directory and copy in the three files Obsidian needs:
<YourVault>/.obsidian/plugins/google-docs-paste/
├── main.js ← from step 1
├── manifest.json ← from the repo
└── styles.css ← optional; omit if not present
On macOS / Linux you can symlink instead of copying so rebuilds pick up automatically:
ln -s "$(pwd)" "<YourVault>/.obsidian/plugins/google-docs-paste"
On Windows (PowerShell, admin):
New-Item -ItemType SymbolicLink `
-Path "<YourVault>\.obsidian\plugins\google-docs-paste" `
-Target "<absolute-path-to-this-folder>"
Enable the plugin in Obsidian
.obsidian/plugins/).Try it
Copy any text out of Google Docs, paste into a note. Bold / italic / underline / strike / headings / lists / links / tables should all survive. Pastes from any non-Docs source go through Obsidian's built-in paste handler untouched.
This plugin has been tested on macOS 26 and iOS 26. Other platforms should work but have not been verified directly.
If a paste from Google Docs is not converted as expected, enable the debug option to gather information for a bug report:
_gdocs-paste-debug-<timestamp>.html.Remember to turn the toggle off again once you're done — every paste produces a Notice and a file while it's on.
npm install
npm run dev # esbuild watch → main.js
npm test # vitest, headless
npm run build # production build
With the symlink from the install section above in place, npm run dev
plus Obsidian's Reload app without saving (Ctrl/Cmd+R in dev or via
the BRAT/Hot-Reload plugins) gives you a fast iteration loop.