shallow1992124 downloadsConvert selected Markdown text or active notes into Slack, Discord, and WhatsApp formats, or copy as raw Markdown with one tap.
Format Convert Copy is a lightning-fast Obsidian plugin that converts selected Markdown text or active notes into Slack, Discord, and WhatsApp formats—or copies clean raw Markdown—with a single tap or shortcut.
Designed from the ground up for seamless cross-platform usage across Desktop (macOS, Windows, Linux) and Mobile (iOS, Android).
slack/texty) on Desktop for native code blocks, 5-level nested lists, blockquotes, and formatting, with clean mrkdwn fallback for mobile.**bold**, *italic*, __underline__, ~~strike~~, code fences).*bold*, _italic_, ~strike~, expanded link syntax).share-2, message-square, message-circle, file-text, copy) for one-tap toolbar access.``` / <pre><code>) so tables never misalign in chat apps.$...$) and block math ($$...$$) are protected against accidental formatting (prevents subscripts _ and asterisks * from corrupting formulas).![[screenshot.png|300]], ![[document.pdf]]) are cleanly converted to readable placeholders ([image: screenshot.png], [attachment: document.pdf]).javascript: and data:.| Obsidian Syntax | Slack (Desktop: texty / Mobile: HTML) | Discord | |
|---|---|---|---|
**Bold** / __Bold__ |
*Bold* / <b>Bold</b> |
**Bold** |
*Bold* |
*Italic* / _Italic_ |
_Italic_ / <i>Italic</i> |
*Italic* |
_Italic_ |
~~Strikethrough~~ |
~Strikethrough~ / <s>...</s> |
~~Strikethrough~~ |
~Strikethrough~ |
<u>Underline</u> |
Plain text / <u>Underline</u> |
__Underline__ (native underline) |
Plain text (stripped) |
# Heading |
*Heading* / <b>Heading</b> |
#..### Heading (preserved) / ####..###### (bold fallback) |
*Heading* (bold fallback) |
1. Numbered List |
1. Item (5-level nested list) |
1. Item |
1. Item |
- Bullet / * Bullet |
• Bullet / <ul><li> (5-level nested list) |
- Bullet (deep nesting supported) |
- Bullet (single level) |
- [ ] Task |
☐ Task |
☐ Task |
☐ Task |
- [x] Done |
☑ Done |
☑ ~~Done~~ (strikethrough) |
☑ Done |
`Inline Code` |
`code` / <code>code</code> |
`code` |
`code` |
```Code Block``` |
Native block (Desktop) / <pre><code> (Mobile) |
Native code block (```) |
Monospace block (```) |
> Quote |
Native quote (Desktop) / <blockquote> (Mobile) |
> Quote (native quote) |
> Quote (native quote) |
> [!NOTE] Callout |
Bold-titled quote (Desktop) / <blockquote><b> (Mobile) |
> **[NOTE]** (or > **[Title]**) |
> *[NOTE]* (or > *[Title]*) |
[Title](url) |
<url|Title> / <a href="..."> |
[Title](url) |
Title (url) (auto-expanded) |
[[Note|Alias]] |
Alias |
Alias |
Alias |
![[image.png|300]] |
[image: image.png] |
[image: image.png] |
[image: image.png] |
![[audio.mp3]] |
[media: audio.mp3] |
[media: audio.mp3] |
[media: audio.mp3] |
![[file.pdf]] |
[attachment: file.pdf] |
[attachment: file.pdf] |
[attachment: file.pdf] |
$$E = mc^2$$ |
Protected code block | Protected code block | Protected code block |
$x_1 * y_1$ |
Protected inline code | Protected inline code | Protected inline code |
| Markdown Tables | Monospace code block (auto-aligned) | Monospace code block (auto-aligned) | Monospace code block (auto-aligned) |
Click or tap the ribbon icon (left ribbon on desktop, navigation bar on mobile) to immediately convert and copy:
copy) icon is enabled, allowing you to choose any format on tap.Add Format Convert Copy commands to your Obsidian Mobile Toolbar under Settings > Mobile > Manage toolbar options:
In the file tree, right-click (desktop) or long-press (mobile) any Markdown note to copy its contents:
Right-click inside the editor on desktop to convert and copy text:
Open the Command Palette (Ctrl/Cmd + P) and search for:
Format Convert Copy: Convert and copy for Slack (Japanese: Slack形式に変換してコピー)Format Convert Copy: Convert and copy for Discord (Japanese: Discord形式に変換してコピー)Format Convert Copy: Convert and copy for WhatsApp (Japanese: WhatsApp形式に変換してコピー)Format Convert Copy: Copy as raw Markdown (Japanese: Markdown形式でコピー)Format Convert Copy: Choose format and copy (Show menu) (Japanese: 形式を選択してコピー)shallow1992/obsidian-format-convert-copy.main.js, manifest.json, and styles.css from the Latest Release.format-convert-copy in your vault's plugin directory:
your-vault/.obsidian/plugins/format-convert-copy/Format Convert Copy は、Obsidianで作成したMarkdownノートや選択テキストを、Slack・Discord・WhatsApp の各チャットアプリに最適化された記法(または純粋なMarkdown)にワンタップで変換してクリップボードにコピーするプラグインです。
$E=mc^2$ や $$...$$ のアンダースコアやアスタリスクが斜体・太字に誤変換されるのを防止![[image.png|300]] などのObsidian独自記法を [image: image.png] などの読みやすいテキストに置換javascript: 等の危険なURLスキームを自動サニタイズObsidianのMarkdown記法が、コピー時に各アプリ向けにどのように変換されるかの一覧です。
| 記法・要素 | Obsidian (元の記法) | Slack形式 (PC: texty / モバイル: HTML) | Discord形式 | WhatsApp形式 |
|---|---|---|---|---|
| 太字 | **テキスト** / __テキスト__ |
*テキスト* / <b>テキスト</b> |
**テキスト** |
*テキスト* |
| 斜体 | *テキスト* / _テキスト_ |
_テキスト_ / <i>テキスト</i> |
*テキスト* |
_テキスト_ |
| 打消し線 | ~~テキスト~~ |
~テキスト~ / <s>テキスト</s> |
~~テキスト~~ |
~テキスト~ |
| 下線 | <u>テキスト</u> |
通常テキスト / <u>テキスト</u> |
__テキスト__(Discord下線) |
通常テキスト(タグ除去) |
| 見出し | # 見出し |
*見出し*(太字化) / <b> |
#..### 見出し(維持) / ####..######(太字化) |
*見出し*(太字化) |
| 番号付きリスト | 1. 項目 |
1. 項目(5階層ネスト連番) |
1. 項目 |
1. 項目 |
| 箇条書き | - 項目 / * 項目 |
• 項目 / <ul><li>(5階層ネスト) |
- 項目(深層ネスト対応) |
- 項目(単一階層) |
| 未完了タスク | - [ ] タスク |
☐ タスク |
☐ タスク |
☐ タスク |
| 完了タスク | - [x] 完了 |
☑ 完了 |
☑ ~~完了~~(打消し線で強調) |
☑ 完了 |
| インラインコード | `コード` |
`コード` / <code>コード</code> |
`コード` |
`コード` |
| コードブロック | ```言語\nコード\n``` |
ネイティブ枠(PC: slack/texty) / <pre><code>(モバイル) |
ネイティブコード枠(```) |
等幅コード枠(```) |
| 引用 | > 引用 |
ネイティブ引用枠(PC) / <blockquote>(モバイル) |
> 引用 |
> 引用 |
| Callout | > [!NOTE] 内容 |
太字見出し付き引用枠(PC) / <blockquote><b>(モバイル) |
> **[NOTE]**(または > **[内容]**) |
> *[NOTE]*(または > *[内容]*) |
| Webリンク | [タイトル](URL) |
<URL|タイトル> / <a href="..."> |
[タイトル](URL) |
タイトル (URL)(URL自動展開) |
| Wikilink | [[ノート名|別名]] |
別名(または ノート名) |
別名 |
別名 |
| 画像埋め込み | ![[image.png|300]] |
[image: image.png] |
[image: image.png] |
[image: image.png] |
| メディア埋め込み | ![[audio.mp3]] |
[media: audio.mp3] |
[media: audio.mp3] |
[media: audio.mp3] |
| 添付ファイル | ![[file.pdf]] |
[attachment: file.pdf] |
[attachment: file.pdf] |
[attachment: file.pdf] |
| 数式(ブロック) | $$E = mc^2$$ |
等幅コードブロック保護 | 等幅コードブロック保護 | 等幅コードブロック保護 |
| 数式(インライン) | $x_1 * y_1$ |
インラインコード保護 | インラインコード保護 | インラインコード保護 |
| 表(テーブル) | Markdownテーブル | 等幅コードブロック(列幅自動整列) | 等幅コードブロック(列幅自動整列) | 等幅コードブロック(列幅自動整列) |
slack/texty(Quill Delta JSON)を出力します。Slackアプリがネイティブ内部データとして認識するため、コードブロックの分断や多段リストの崩れを完全に防ぎ、100%の忠実度でリッチテキストコンテナを復元します。<b>, <i>, <a>, <ul>, <ol> 等)を出力します。最大5階層までの美しい多段ネストリスト(黒丸・白丸・四角の自動サイクルやアルファベット・ローマ数字の連番)やインライン装飾をネイティブ描画します。<URL|表示テキスト> 記法に変換され、リンクとして正しくクリックできます。$E = mc^2$)はインラインコード枠、ブロック数式($$...$$)は複数行コードブロック枠として保護され、数式内のアンダースコア(_)やアスタリスク(*)による構文崩れを防止します。#(H1)、##(H2)、###(H3)はそのまま維持し、未対応の ####〜######(H4〜H6)は自動的に太字(**見出し**)へフォールバックして視認性を保ちます。__text__ が下線として機能するため、HTMLの <u> を __text__ に変換します。また、標準Markdownの太字 __text__ は下線と誤認されないよう **text** に自動統一されます。☑ ~~完了~~)を付与します。[タイトル](URL) を認識しないため、タイトル (URL) の形式に自動展開し、受信者がリンクをタップできるようにします。#)がないため、構造を崩さず強調できるよう *見出し* に変換します。- )は単一階層のリストとして出力されます。|)の位置を自動パディングし、等幅コードブロック(```...```)として保護します。_)やアスタリスク(*)が斜体や太字に化けてしまわないよう、自動でコードとして退避・復元します。javascript: や data: などの不正なスクリプトスキームを自動遮断し、XSS攻撃等を未然に防ぎます。Ctrl/Cmd + P から「Slack形式に変換してコピー」などを検索して実行可能。slack/texty): Technical deep-dive into Slack's proprietary Quill Delta clipboard format, block attributes, list nesting constraints, and reverse-engineered architecture.#..###, underline __text__, spoiler ||spoiler||, task strikethroughs).*bold*, _italic_, ~strike~, heading bolding, auto-expanded links title (url)).All build and test tasks are containerized via Docker to guarantee a clean, reproducible environment:
# Run unit tests (Vitest)
docker compose run --rm format-convert npm test
# Build production bundle
docker compose run --rm format-convert npm run build
# Watch mode
docker compose run --rm format-convert npm run dev
This project is licensed under the MIT License.