Marksmith - VS Code/Windsurf向けMarkdown生産性拡張
(rakkunn.github.io)VS CodeとWindsurfでMarkdownを書く際に発生する細かな作業を減らすために作った拡張機能
クリップボードのコンテキスト認識、双方向プレビュー、文書分析機能を1つのパッケージに統合
WindsurfはVS Codeフォークベースのため、同一APIで両方をサポート
作った理由
Web/Wordからコピーしたコンテンツが壊れたHTMLまたはplain textとして入ってくる問題
表データ入力時に外部変換サイトへ依存していた
プレビューとエディタ間で位置同期がないことによるスクロール探索コスト
主な機能
- Smart Paste
HTML → Markdown: TurndownエンジンにGFM表・コードブロックルールのオーバーライドを適用
TSV自動変換: Excel/Google Sheetsからコピーした表を正規表現ベースのパイプラインでMarkdownテーブルに変換
選択テキストの上にURLを貼り付けると [selected](url) 形式で自動ラップ
- Bi-directional Preview
変更時に全体を再レンダリング → KaTeXのちらつきやスクロールジャンプの問題が発生
インクリメンタルアップデート(incremental DOM patch)方式に変更
コンパイル段階で各HTMLノードに data-line 属性を注入してソース行をマッピング
プレビュークリック時に postMessage でエディタへ行番号を渡す → カーソル移動
- Document X-Ray(サイドバーダッシュボード)
日英混在文書の文字数/読了時間を推定(英語 200wpm、日本語 500文字/分基準)
見出しツリーのパースに基づくアウトライン + クリックナビゲーション
文書内の外部リンクに対する非同期404ヘルスチェック
現在の対応範囲
リンター/フォーマッター統合
KaTeX、Mermaidレンダリング
HTML/PDFエクスポート
今後の計画
大規模文書のパフォーマンス最適化(incremental parsing)
AIアシスト連携(要約、文章校正)
Obsidian Vault互換モード
技術メモ
VS Code Extension APIのWebviewはエディタと分離されたサンドボックス
双方向通信時にデバウンスやメッセージバッチングがないと大きな文書で性能低下が発生
アーキテクチャ設計によって同じ機能でもパフォーマンス差が大きい
リンク
GitHub: https://github.com/RAKKUNN/Marksmith
Page: https://rakkunn.github.io/MarkSmith/
たくさんのフィードバックとレビューをお願いします!!
ありがとうございます。
まだコメントはありません。