dsh-md-export
Manifest valid★ 1DSH web plugin (dsh-better-sidebar companion): adds an export button to the markdown editor toolbar — one-click export of the current .md file to standalone HTML (with mermaid diagrams inlined) or PDF (via browser print dialog)
dsh-md-export
简体中文:README.zh.md
DSH (DeepSeek Harness) Web plugin — Markdown export extension for dsh-better-sidebar.
Adds an Export button to the Markdown file viewer toolbar in better-sidebar. Click it to open a dropdown with two choices:
- 📄 Save HTML (same directory) — Renders the current
.mdfile into a standalone.htmland writes it directly next to the .md file (Markdown tables / code blocks / Mermaid diagrams all inlined; layout follows the original md preview theme — not A4 print-oriented) - 🖨️ Export PDF (print) — Opens the browser print dialog (the printed content is the rendered document); choose "Save as PDF" to produce a PDF
Features
- Zero-dependency, keeps built-in behavior: does not replace better-sidebar's built-in Markdown preview/edit (preview, edit, save and Mermaid rendering all remain); it only appends an export button to the toolbar
- What you see is what you get: the exported HTML is taken directly from the built-in previewer's rendered DOM (including Mermaid SVG) — no second rendering pass
- Saves next to the .md: writes the HTML into the md's directory via better-sidebar's
/sidebar/api/fs.writechannel (same basename,.htmlextension); falls back to a browser download if session detection fails - Layout follows the original md preview: the exported HTML uses the current preview theme's colors and typography (dark/light auto-follow), content width adapts — no A4 paper size
- Edit-mode friendly: if you are in edit mode with unsaved content, export automatically switches to preview first
- Auto-follow: the button appears on the Markdown toolbar whenever the file or preview/edit mode changes
Prerequisites
- DSH
dsh webrunning - dsh-better-sidebar installed (or the aggregator package
@linxin666/dsh-web-ui-allthat brings it in)
Install
dsh plugin --profile web add <dsh-md-export-0.1.0.tgz>
After installing, restart dsh web (a new bundle needs a host-side reload), then hard-refresh the browser (Cmd/Ctrl+Shift+R).
Open any
.mdfile in the sidebar — the "Export ▾" button appears right next to the "Preview | Edit" toggle.
Usage
- Open any
.mdfile in better-sidebar (e.g.docs/AOI端保存图片逻辑.md) - Click the "Export ▾" button on the toolbar
- Choose:
- Save HTML (same dir): the HTML is written next to the md (e.g.
docs/AOI端保存图片逻辑.html), layout matches the md preview - Export PDF (print): the print dialog opens; choose "Save as PDF"
- Save HTML (same dir): the HTML is written next to the md (e.g.
Development
node --check lib/client.js # syntax check (hand-written single-file client bundle, no build step)
lib/index.js— host-side placeholder plugin (emptyapply, so the loader entry mounts)lib/client.js— client logic: MutationObserver watches the markdown toolbar → injects the export button + dropdown → grabs the preview DOM → saves next to the md via/sidebar/api/fs.write/ triggers print
Implementation notes
| Step | How |
|---|---|
| Button injection | MutationObserver watches document.body, finds .nArs4W_editorModeToggle (Markdown/HTML previewer toolbar) and injects when the current file is .md |
| Path resolution | Takes the md absolute path from the .nArs4W_editorPathInput title attribute; the output is the same directory + same basename + .html |
| Session detection | Scans localStorage keys dsh-sidebar:v1:*, picks the newest sessionId |
| Save to same dir | POST /sidebar/api/fs.write (payload: sessionId + absolute path + HTML content); falls back to a browser download on failure |
| HTML layout | Reads colors/fonts from .nArs4W_editorMd and the page theme; exported content width adapts (non-A4) |
| PDF export | Writes the same HTML into a hidden iframe → window.print() → user chooses "Save as PDF" in the print dialog |
Known limitations
- PDF export relies on the browser print feature (Chrome/Edge both support "Save as PDF"); it does not generate a
.pdfbinary directly, so PDF cannot be saved to the md directory - HTML save-to-same-dir depends on session detection (localStorage); in edge cases it falls back to a browser download
- Depends on better-sidebar's internal CSS class names (
nArs4W_prefix); if a major better-sidebar upgrade changes the class names, this plugin needs a sync update - Only applies to
.mdfiles;.markdownextension is also supported
License
MIT
Comments
Loading…
From the same category
by tt-a1i
Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export.
★ 70.9k
↓ 3.5k/wk
MIT
JavaScript
Sep 24, 2026
dsh plugin --profile agent add @tt-a1i/archify-dshDeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.
★ 41.7k
↓ 236/wk
MIT
Aug 24, 2026
dsh plugin --profile web add dsh-plugin-reactive-resumeby Tencent
Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.
★ 29.5k
↓ 838/wk
NOASSERTION
Go
Sep 24, 2026
dsh plugin --profile web add @wxg-prc-cpg/dsh-weknoraby anywhere-labs
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 28.8k
↓ 167/wk
MIT
TypeScript
Sep 24, 2026
dsh plugin --profile web add dsh-plugin-desktopdeepseek-harness-desktop is a interface plugin for DeepSeek Harness. See the repository documentation for its documented capabilities.
★ 28.6k
MIT
by titanwings
Distilly — Distill how they think into reusable Skills for any Agent or Bot. Formerly Colleague Skill(原同事 Skill).
★ 25k
MIT
TypeScript
Sep 22, 2026