Longxiao Zhang47 downloadsNormalize ChatGPT Deep Research markdown exports by removing unreadable inline markers.
Deep Research Formatter is an Obsidian plugin for cleaning Markdown exported from ChatGPT Deep Research.
Deep Research exports often contain inline marker tokens such as citation, entity, and URL annotations that are readable inside ChatGPT but noisy in plain Markdown. This plugin removes or rewrites those markers so the document is easier to read in Obsidian, including both private-use marker wrappers and exported 【...†...】 citation blocks.
cite markers entirely.【...†...】 citation blocks entirely.entity markers with their readable label.url markers with their readable label.src/: plugin source codetests/: automated testsmanifest.json: Obsidian plugin manifestversions.json: Obsidian version compatibility mapmain.js: compiled plugin entry filenpm install
Create a production build:
npm run build
This compiles the plugin to main.js in the repository root and the CLI to dist/cli.js.
Start esbuild in watch mode:
npm run dev
Run the automated tests:
npm test
If you also want a TypeScript-only check:
npx tsc --noEmit
npm run build.<your-vault>/.obsidian/plugins/deep-research-formatter/
main.js
manifest.json
versions.json
Settings -> Community plugins.Restricted mode if needed.Deep Research Formatter.Open a Markdown note exported from Deep Research, then use the Command Palette in Obsidian.
Available commands:
清理当前笔记中的 Deep Research 标记清理当前选区中的 Deep Research 标记Command behavior:
You can also format a vault directory, or any subdirectory inside it, from the command line:
npm run format:vault -- /path/to/your/vault
CLI behavior:
.md files under the target directory..obsidian/, .git/, and node_modules/.1 for invalid arguments and 2 when one or more files fail to process.Show the CLI help text:
npm run format:vault -- --help
The current implementation recognizes the marker wrapper used in Deep Research exports and handles these marker types:
cite: removed【...†...】 citation blocks: removedentity: replaced with readable texturl: replaced with readable text