Skip to content

Latest commit

 

History

History
486 lines (377 loc) · 20.1 KB

File metadata and controls

486 lines (377 loc) · 20.1 KB

PasteMD

PasteMD

Release Downloads License AtomGitStars Python 3.12+ Platform

English | 简体中文 | 日本語

Featured|HelloGitHub

❤️ スポンサー

Atlas Cloud Atlas Cloud は、開発者が単一の AI API で動画生成、画像生成、LLM API にアクセスできるフルモーダル AI 推論プラットフォームです。複数ベンダーとの連携を管理する代わりに、一度接続するだけで、あらゆるモダリティに対応した 300 以上の厳選モデルを統合的に利用できます。
Atlas Cloud の新しい Coding Plan プロモーションで、より予算にやさしい API アクセスを確認できます:https://www.atlascloud.ai/console/coding-plan

論文やレポートを書いていると、ChatGPT / DeepSeek などの AI サイトからコピーした数式が Word で文字化けしませんか?Markdown の表を Excel に貼り付けると崩れませんか?PasteMD はその問題を解決するためのツールです。

I am good

常駐トレイの小さなツール: クリップボードの Markdown を読み取り、Pandoc で DOCX に変換し、Word/WPS のカーソル位置に自動挿入します。

✨ 機能:Markdown 表をスマートに認識し、Excel にワンクリック貼り付け!

✨ 機能:HTML リッチテキストをスマートに認識し、Web 上の AI 返信を Word/WPS にワンクリック貼り付け!

✨ 新機能:アプリ拡張(HTML+Markdown/HTML/Markdown/LaTeX/ファイル貼り付け)。アプリ/ウィンドウタイトルでマッチ可能(例:語雀/QQ)。

✨ 新機能:変換強化:変換タイプごとの Pandoc Filters 設定、LaTeX 構文と単独の $...$ 数式ブロックの自動修正。


機能紹介

デモ

Markdown → Word/WPS

デモ動画

Web の AI 返信 → Word/WPS

HTMLデモ

Markdown 表 → Excel

Excelデモ

設定画面

設定デモ

  • グローバルホットキー(既定 Ctrl+Shift+B)で Markdown → DOCX を一発変換。
  • ✨ Markdown 表を自動認識し、Excel に貼り付け。
  • ✨ アプリ拡張:アプリごとに HTML+Markdown/HTML/Markdown/LaTeX/ファイル貼り付けを設定し、ウィンドウタイトルでマッチ可能。
  • ✨ 変換強化:変換タイプ別に Pandoc Filters を追加し、一部 LaTeX 構文と単独 $...$ 数式ブロックを自動修正。
  • 前面アプリが Word/WPS かを自動判定。
  • 必要に応じて Word/Excel を自動起動。
  • トレイメニューから、ファイル保持やログ/設定の閲覧が可能。
  • システム通知に対応。
  • ブラックウィンドウなし、ノンブロッキングで安定稼働。

📊 AI サイト互換性テスト

主要 AI チャットサイトでのコピー&貼り付け互換性テスト結果:

AI サイト Markdown のコピー
(数式なし)
Markdown のコピー
(数式あり)
Web 内容のコピー
(数式なし)
Web 内容のコピー
(数式あり)
Kimi ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ⚠️ 数式が表示不可
DeepSeek ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応
通义千问 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ⚠️ 数式が表示不可
豆包* ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応
智谱清言
/ChatGLM
✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応
ChatGPT ✅ 完全対応 ⚠️ 数式がコード表示 ✅ 完全対応 ✅ 完全対応
Gemini ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応
Grok ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応
Claude ✅ 完全対応 ✅ 完全対応 ✅ 完全対応 ✅ 完全対応

凡例:

  • 完全対応:書式/スタイル/数式が正しく表示
  • ⚠️ 数式がコード表示:数式が LaTeX コードとして表示されるため、Word/WPS の数式エディタで修正が必要
  • ⚠️ 数式が表示不可:数式が失われるため、Word/WPS の数式エディタで再入力が必要
  • 豆包:Web 内容(数式あり)をコピーする前に、ブラウザで「クリップボードの読み取り許可」を有効化してください(URL 左側のアイコンから設定可能)

テスト方法:

  1. Markdown のコピー:AI 返信内の「コピー」ボタンを押す(Markdown 形式。サイトによっては HTML も含む)
  2. Web 内容のコピー:AI 返信内容を直接選択してコピー(HTML リッチテキスト)

🚀 使い方

  1. 実行ファイルをダウンロード(Releases ページ):

    • PasteMD_vx.x.x.exeポータブル版。事前に Pandoc をインストールし、コマンドラインで実行できる必要があります。
      未インストールの場合は Pandoc 公式サイト から導入してください。
      (提供終了。必要なら自前でビルド)
    • PasteMD_pandoc-Setup.exe統合インストーラ。Pandoc 同梱で追加設定不要。
  2. Word/WPS/Excel を開き、挿入したい位置にカーソルを置く。

  3. Markdown または Web 内容 をクリップボードにコピーし、Ctrl+Shift+B を押す。

  4. 変換結果が自動で挿入されます:

    • Markdown 表 → Excel に自動貼り付け(Excel が開いている場合)
    • 通常 Markdown/Web 内容 → DOCX に変換して Word/WPS に挿入
  5. 右下に成功/失敗の通知が表示されます。


⚙️ 設定

初回実行時にユーザーデータディレクトリへ config.json が生成されます(Windows:%APPDATA%\\PasteMD\\config.json、MacOS:~/Library/Application Support/PasteMD/config.json)。手動で編集可能です:

{
  "hotkey": "<ctrl>+<shift>+b",
  "pandoc_path": "pandoc",
  "reference_docx": null,
  "save_dir": "%USERPROFILE%\\Documents\\pastemd",
  "keep_file": false,
  "notify": true,
  "startup_notify": true,
  "enable_excel": true,
  "excel_keep_format": true,
  "paste_delay_s": 0.3,
  "no_app_action": "open",
  "md_disable_first_para_indent": true,
  "html_disable_first_para_indent": true,
  "html_formatting": {
    "strikethrough_to_del": true
  },
  "move_cursor_to_end": true,
  "Keep_original_formula": false,
  "enable_latex_replacements": true,
  "fix_single_dollar_block": true,
  "language": "zh-CN",
  "pandoc_request_headers": [
    "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
  ],
  "pandoc_filters": [],
  "pandoc_filters_by_conversion": {
    "md_to_docx": [],
    "html_to_docx": [],
    "html_to_md": [],
    "md_to_html": [],
    "md_to_rtf": [],
    "md_to_latex": []
  },
  "extensible_workflows": {
    "html": {
      "enabled": true,
      "apps": [],
      "keep_formula_latex": true
    },
    "md": {
      "enabled": true,
      "apps": [],
      "html_formatting": {
        "css_font_to_semantic": true,
        "bold_first_row_to_header": true
      }
    },
    "latex": {
      "enabled": true,
      "apps": []
    },
    "file": {
      "enabled": true,
      "apps": []
    }
  }
}

項目説明:

  • hotkey:グローバルホットキー。例 <ctrl>+<alt>+v
  • pandoc_path:Pandoc 実行ファイルのパス。
  • reference_docx:Pandoc 参照テンプレート(任意)。
  • save_dir:生成ファイルを保持する場合の保存先。
  • keep_file:生成した DOCX を保持するか。
  • notify:システム通知を表示するか。
  • startup_notify:起動時に通知を表示するか。
  • enable_excel:Markdown 表の自動認識と Excel 貼り付けを有効化(既定 true)。
  • excel_keep_format:Excel 貼り付け時に Markdown 書式(太字/斜体/コードなど)を保持(既定 true)。
  • paste_delay_s:貼り付け前の遅延秒数(Windows ではクリップボード更新に時間がかかる場合があります)。
  • no_app_action:対象アプリ(Word/Excel など)が検出されない場合の既定動作(既定 "open")。選択肢:open=自動で開く、save=保存のみ、clipboard=クリップボードへコピー、none=何もしない。
  • md_disable_first_para_indent:Markdown 変換時、先頭段落の特殊書式を無効化し正文スタイルに統一(既定 true)。
  • html_formatting:HTML リッチテキスト変換時の整形オプション。
    • strikethrough_to_del:取り消し線 ~~ を <del> に変換して正しく表示(既定 true)。
  • html_disable_first_para_indent:HTML 変換時、先頭段落の特殊書式を無効化(既定 true)。
  • move_cursor_to_end:挿入後にカーソルを末尾へ移動(既定 true)。
  • Keep_original_formula:元の数式(LaTeX コード)を保持。
  • enable_latex_replacements:互換性のない LaTeX 構文を自動修正(例:{\\kern 10pt}\\qquad へ置換)。
  • fix_single_dollar_block:単独行の $ ... $ 数式ブロックを自動認識し $$ ... $$ に修正。
  • language:表示言語。zh-CN は簡体字中国語、en-US は英語、ja-JP は日本語。
  • pandoc_request_headers:Pandoc がリモート資源をダウンロードする際のリクエストヘッダー(1 行 1 ヘッダー)。
  • pandoc_filters:カスタム Pandoc Filter のリスト。.lua スクリプトや実行ファイルを指定し、順番に実行されます。高度な変換に使用。既定は空。例:["%APPDATA%\\npm\\mermaid-filter.cmd"] で Mermaid 図をサポート。
  • pandoc_filters_by_conversion:変換タイプ別の Filters 設定(例:md_to_docxhtml_to_md など)。
  • extensible_workflows:アプリ拡張設定(アプリ/ウィンドウタイトルでマッチして貼り付け方式を切替)。詳細は下記。

変更後はトレイメニューの 「設定/ホットキーを再読み込み」 で即反映されます。


🔧 高度な機能:Pandoc Filters のカスタマイズ

Pandoc Filter とは?

Pandoc Filter は、変換処理中に内容をカスタマイズするためのプラグインです。PasteMD は複数の Filter を順に適用できます。

例:Mermaid 図のサポート

Markdown で Mermaid 図を使いたい場合は、mermaid-filter が便利です。

1. mermaid-filter をインストール

npm install --global mermaid-filter

前提: Node.js が必要です

⚠️ トラブルシューティング:Chrome のダウンロード失敗

mermaid-filter のインストール時に Chromium をダウンロードします。失敗する場合は手動でダウンロードしてください:

手順 1:必要な Chromium バージョンの確認

次のファイルを開きます:%APPDATA%\npm\node_modules\mermaid-filter\node_modules\puppeteer-core\lib\cjs\puppeteer\revisions.d.ts

以下のような記述を探します:

chromium: "1108766";

あるいはエラー出力の例:

npm error Error: Download failed: server returned code 502. URL: https://npmmirror.com/mirrors/chromium-browser-snapshots/Win_x64/1108766/chrome-win.zip

Win_x64/1108766 のような番号がバージョンです。

この番号(例:1108766)をメモしてください。

手順 2:Chromium をダウンロード

上記バージョンに合わせてダウンロード:

https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/1108766/chrome-win.zip

(URL 内の 1108766 を置き換えてください)

手順 3:指定ディレクトリへ解凍

ダウンロードした chrome-win.zip を以下へ解凍:

%USERPROFILE%\.cache\puppeteer\chrome\win64-1108766\chrome-win

(ディレクトリ内の 1108766 も置き換え)

解凍後、次の場所に chrome.exe があることを確認: %USERPROFILE%\.cache\puppeteer\chrome\win64-1108766\chrome-win\chrome.exe

2. PasteMD に設定

方法 1:設定画面から

  • PasteMD 設定 → 変換タブ → Pandoc Filters
  • 「追加...」をクリック
  • Filter を選択:%APPDATA%\npm\mermaid-filter.cmd
  • 保存

方法 2:設定ファイルの編集

{
  "pandoc_filters": [
    "%APPDATA%\\npm\\mermaid-filter.cmd"
  ]
}

3. 動作確認

以下の Markdown をコピーして PasteMD で変換:

```mermaid
graph LR
    A[開始] --> B[処理]
    B --> C[終了]
```

Mermaid 図が画像として Word に挿入されます。

その他の Filter 参考


🧩 アプリ拡張(カスタム貼り付けワークフロー)

設定 → アプリ拡張 でアプリごとの貼り付け方式を設定し、ウィンドウタイトル(正規表現)でマッチ可能です:

  • HTML / Markdown / LaTeX / ファイル:対象アプリに最適な貼り付け方式を選択
    • HTML/Markdown は語雀などのリッチテキストノートに適合
    • LaTeX は Overleaf などの学術サイトに適合
    • ファイルは QQ/WeChat など添付として貼り付けるアプリに適合

ヒント:同一アプリには 1 つのワークフローのみ推奨(競合回避)。ウィンドウ名を分けたい場合は「ウィンドウ名マッチ」を使ってください。

設定例(抜粋):

Windows では id は通常 exe パス、macOS では bundle id(設定画面で追加すると自動入力されるので推奨)。

{
  "extensible_workflows": {
    "html": {
      "enabled": true,
      "apps": [
        {
          "name": "语雀",
          "id": "/path/语雀.exe",
          "window_patterns": []
        }
      ],
      "keep_formula_latex": true
    },
    "latex": {
      "enabled": true,
      "apps": [
        {
          "name": "chrome",
          "id": "/path/chrome.exe",
          "window_patterns": [
            ".*overleaf.*"
          ]
        }
      ]
    },
    "file": {
      "enabled": true,
      "apps": [
        {
          "name": "QQ",
          "id": "/path/qq.exe",
          "window_patterns": []
        }
      ]
    }
  }
}

トレイメニュー

  • 快捷表示:現在のグローバルホットキー(読み取り専用)。
  • ホットキーを有効化:グローバルホットキーのオン/オフ。
  • ポップアップ通知:システム通知のオン/オフ。
  • 無アプリ時の動作:Word/WPS/Excel が検出されない場合の既定動作(自動で開く/保存のみ/クリップボードへコピー/なし)。
  • 挿入後にカーソルを末尾へ移動:挿入後のカーソル移動のオン/オフ。
  • HTML 整形:取り消し線 ~~ を <del> に変換 など、HTML 自動整形。
  • ホットキー設定:UI で新しいホットキーを録音して保存(即時反映)。
  • 生成ファイルを保持:オンにすると save_dir へ DOCX を保存。
  • 保存先フォルダを開く、ログを見る、設定を編集、設定/ホットキーを再読み込み。
  • バージョン:現在のバージョン表示、更新確認、更新時はダウンロードページを開く。
  • 終了:アプリを終了。

📦 ソースから実行 / パッケージ化

Python 3.12(64bit)推奨。

pip install -r requirements.txt
python main.py

PyInstaller の場合:

pyinstaller --clean -F -w -n PasteMD
  --icon assets\icons\logo.ico
  --add-data "assets\icons;assets\icons"
  --add-data "pastemd\i18n\locales\*.json;pastemd\i18n\locales"
  --add-data "pastemd\lua;pastemd\lua"
  --hidden-import plyer.platforms.win.notification
  main.py

生成された実行ファイルは dist/PasteMD.exe に出力されます。


⭐ Star

Star してくれたみなさん、いつもありがとうございます!もっと多くの方に届くように頑張ります。4096 stars 目標です。

likeyou

Star History Chart

🍵 サポート/投げ銭

ご意見やアイデアがあれば issue でぜひ教えてください!🤯🤯🤯

PasteMD ユーザー交流グループにも参加歓迎:

PasteMD交流群二维码
PasteMD QQ 交流群に参加

このツールが役に立てば嬉しいです。作者にコーヒーを一杯ごちそうしてもらえると、さらに開発の励みになります。ありがとうございます!

flower

支付宝 微信
支付宝打赏 微信打赏

License

This project is licensed under the GNU Affero General Public License v3.0. Third-party licenses are listed in THIRD_PARTY_NOTICES.md.