Markdown to Slack
pendingby Tom Ressler
Preserve nested lists and formatting when copying Markdown into Slack.
Markdown to Slack
Copy Markdown from Obsidian into Slack with formatting preserved, including nested lists, bold, italics, links, blockquotes, and code.
Slack is notoriously bad at accepting pasted Markdown directly. This plugin converts your note content into Slack's native rich-text clipboard format before paste, so what you wrote in Obsidian is much closer to what appears in Slack.
Features
- Copy the current selection to Slack.
- Copy the entire current note to Slack.
- Access both actions from the command palette and the editor context menu.
- Preserve nested bullet lists and other formatting that usually breaks on paste.
- Run entirely locally on your machine with no network calls at runtime.
Commands
Copy selection to SlackCopy current note to Slack
How It Works
Markdown to Slack uses @slackfmt/core to convert Markdown into Slack's internal rich-text Delta format, then writes the clipboard payload Slack expects from Chromium and Electron apps.
The plugin is desktop-only because it relies on bundled native clipboard binaries for macOS, Windows, and Linux.
Privacy
This plugin does not send your notes to any external service. Conversion and clipboard writing happen locally inside Obsidian.
Installation
From Obsidian Community Plugins
- Open
Settings -> Community plugins. - Turn off
Restricted modeif needed. - Browse for
Markdown to Slack. - Install and enable the plugin.
Manual installation
-
Download
main.jsandmanifest.jsonfrom the latest GitHub release. -
Create this folder inside your vault:
<your-vault>/.obsidian/plugins/markdown-to-slack/ -
Place
main.jsandmanifest.jsonin that folder. -
Reload Obsidian and enable
Markdown to SlackinSettings -> Community plugins.
Usage
- Open any Markdown note in Obsidian.
- Select the text you want to send to Slack, or leave nothing selected if you want to copy the whole note.
- Run
Copy selection to SlackorCopy current note to Slack. - Paste into the Slack desktop composer.
Development
Requirements
- Node.js 18+
- npm
- Obsidian desktop
Local setup
npm install
npm run build
For watch mode during development:
npm run dev
Copy the built files into your vault plugin directory:
<your-vault>/.obsidian/plugins/markdown-to-slack/
Files to copy:
main.jsmanifest.json
Testing
Good test cases include:
- Deeply nested bullet lists
- Mixed bold, italics, and inline code
- Links
- Blockquotes
- Multi-paragraph selections
Recommended manual test flow:
- Build the plugin and install it into a test vault.
- Enable the plugin in Obsidian desktop.
- Copy a selection with nested lists.
- Paste into Slack desktop.
- Confirm the formatting matches expectations.
Release Process
-
Update the version in
package.json. -
Run:
npm version patch npm run build -
Create a GitHub release for the version tag.
-
Upload these release assets:
main.jsmanifest.json
-
For the first public release, submit the plugin to the Obsidian community plugin list.
Credits
- Built on top of
@slackfmt/core - Inspired by the original
slackfmtproject by Caue Thenorio
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.