Imported from crimair/markdown_to_textile (
AGENTS.md). Install upstream withnpx skills add crimair/markdown_to_textile. Copyright stays with the author.
Markdown/TSV to Textile Paster
プロジェクト概要
Chrome 拡張機能(Manifest V3)。Web ページのテキスト入力エリアにおいて、クリップボード内の Markdown またはタブ区切りデータ(Excel 等)を Textile 構文に自動変換して挿入する。
ファイル構成
├── manifest.json # 拡張機能定義
├── background.js # サービスワーカー(右クリックメニュー管理)
├── content.js # コンテンツスクリプト(キーボード監視・変換実行)
├── lib/
│ └── converter.js # Markdown / TSV -> Textile 変換ロジック
├── images/
│ ├── icon.svg # アイコン元データ
│ ├── icon16.png # アイコン (16x16)
│ ├── icon32.png # アイコン (32x32)
│ ├── icon48.png # アイコン (48x48)
│ └── icon128.png # アイコン (128x128)
├── test/
│ ├── test.js # Node.js 自動テスト(converter.js のみ検証)
│ └── manual_test.html # ブラウザ手動テストページ
└── spec.md # 仕様書
開発・ビルド
- 外部ライブラリなし。Vanilla JS のみ。
lib/converter.jsを修正したらnode test/test.jsで自動テストを実行すること。- アイコン変更時は
images/icon.svgを編集し、以下を実行して PNG を再生成:cd images magick icon.svg -resize 16x16 icon16.png magick icon.svg -resize 32x32 icon32.png magick icon.svg -resize 48x48 icon48.png magick icon.svg -resize 128x128 icon128.png
インストール・デバッグ手順
chrome://extensions/を開く- 右上「デベロッパーモード」を ON
- 「パッケージ化されていない拡張機能を読み込む」→ 本フォルダを選択
- 既存タブでは 必ずリロード してからテスト
- コード修正後は拡張機能カード右下の「再読み込み」ボタンをクリック
- Service Worker のキャッシュ問題がある場合は、DevTools → Application → Service Workers → 「Update on reload」にチェック
テスト
- 自動テスト:
node test/test.js - 手動テスト: ローカルサーバで
test/manual_test.htmlを開く(file://では Clipboard API が制限されるためhttp://localhostが必須)
リリース手順
- バージョン番号を
manifest.jsonで更新 node test/test.jsが全 PASS であることを確認- 不要なファイル(
.claude/,test/,.git/等)は含めない images/icon*.pngとimages/icon.svgが含まれていることを確認- Chrome ウェブストアへ
.zipアップロードする場合は、プロジェクトルートのファイルを zip 化:./scripts/create-release.sh
認証用ノート(審査担当者向け / Notes for certification)
Dashboard の「Notes for certification」欄に貼り付ける。顧客には非表示。
本拡張機能は、ユーザーのクリップボードにコピーした Markdown または Excel/Google スプレッドシートのタブ区切りデータを、Web ページのテキスト入力欄(textarea / input / contenteditable)に Textile 形式に変換して挿入するツールです。
【テスト手順】
1. 任意の Web ページのテキスト入力欄(textarea など)を開きます。
2. Markdown テキスト(例:「**太字**」や「# 見出し」)をコピーします。
3. 入力欄にフォーカスして Ctrl+Shift+V(Mac は Cmd+Shift+V)を押すか、右クリックメニューから「Textileとしてペースト」を選択します。
4. Textile 形式(「*太字*」「h1. 見出し」など)に変換されて挿入されることを確認してください。
【テスト用ファイル】
リポジトリ内の test/manual_test.html をローカルサーバ(python3 -m http.server など)で開くと、想定変換結果と比較できる手動テストページが表示されます。
【権限について】
・clipboardRead:クリップボードからコピーした Markdown/TSV を読み取るために必要です。外部送信は一切ありません。
・contextMenus:右クリックメニューに「Textileとしてペースト」「Textileテーブルとしてペースト」を追加するために必要です。
・activeTab / scripting:ユーザーの明示的な操作(ショートカットキーまたは右クリック)があったタブにのみ、変換に必要なスクリプトを一時的に注入するために使用します。すべてのサイトに常駐しません。
単一用途の説明(Chrome Web Store 審査用)
Dashboard の「単一用途の説明」欄に貼り付ける。
クリップボードにコピーした Markdown またはタブ区切りデータを、Web ページのテキスト入力欄に Textile 形式に変換して挿入する拡張機能です。
Chrome Web Store 掲載用テキスト
Dashboard の「説明」欄に貼り付ける。
日本語
クリップボードにコピーした Markdown やタブ区切りデータを、Web のテキスト入力欄に Textile 形式に変換してペーストできます。
【主な機能】
・Ctrl + Shift + V で即座に Markdown を Textile に変換&ペースト
・右クリックメニューから「Textileとしてペースト」「Textileテーブルとしてペースト」を選択可能
・textarea / input / contenteditable(Redmine などのリッチエディタ)で動作
【対応 Markdown】
見出し、太字、斜体、リンク、画像、コード(インライン/ブロック)、リスト、引用、水平線など
【プライバシー】
すべての処理はブラウザ内で完結。外部サーバーへのデータ送信は一切ありません。
☕ 開発を支援する: https://ko-fi.com/crimair001122
English
Paste clipboard Markdown or tab-separated data as Textile format into any web text field.
【Features】
・Ctrl + Shift + V — instant Markdown to Textile conversion and paste
・Right-click menu: "Paste as Textile" and "Paste as Textile Table"
・Works on textarea, input, and contenteditable elements (e.g., Redmine)
【Supported Markdown】
Headings, bold, italic, links, images, inline/block code, lists, blockquotes, horizontal rules
【Privacy】
All processing runs locally in your browser. No data is ever sent to external servers.
☕ Support development: https://ko-fi.com/crimair001122
プライバシーポリシー URL
https://crimair.github.io/markdown_to_textile/privacy.html
権限の使用理由(Chrome Web Store 審査用)
Dashboard の「権限の使用理由」欄に貼り付ける。
clipboardRead
ユーザーのクリップボード内の Markdown またはタブ区切りデータを読み取り、Textile 形式に変換して Web ページのテキスト入力欄に貼り付けるために必要です。読み取ったデータはブラウザ内で完結し、外部サーバーに送信することはありません。
contextMenus
Web ページのテキスト入力欄上で右クリックした際に、「Textileとしてペースト」「Textileテーブルとしてペースト」の2つのメニューを提供するために必要です。ユーザーの利便性向上のための機能です。
activeTab
ユーザーが明示的な操作(右クリックまたはCtrl+Shift+V)を行ったタブに対してのみ、変換処理に必要なスクリプトを一時的に注入して実行するために必要です。すべてのサイトに常駐するのではなく、ユーザーのアクションがあるタブのみにアクセスします。
scripting
activeTab 権限と組み合わせて、ユーザーが操作したタブに対して Textile 変換エンジン(lib/converter.js)とペースト処理(content.js)を動的に注入するために必要です。これにより、広範囲なホスト権限を持たずに任意のページで動作させることができます。