技術仕様 - Markdown Renderer for GitHub
Markdown Renderer for GitHub プラグインの詳細な技術情報とバージョン仕様です。
基本情報
| 項目 | 仕様 |
|---|---|
| 現在のバージョン | 2.7.0 |
| ライセンス | GPL-2.0-or-later |
| PHP要件 | 8.1 以上 |
| WordPress要件 | 6.0 以上 |
| JavaScriptエンジン | モダン ES Modules + Web Workers |
テクノロジースタック
本プラグインは、堅牢なPHPバックエンド処理とダイナミックなJavaScriptフロントエンドを組み合わせたハイブリッドアーキテクチャで構築されています。サーバーサイドレンダリングとバックグラウンドスレッドによる処理をサポートしています。
バックエンド (PHP)
- コントローラー:
GFMR_Renderer(Singleton) - アセット管理: 高度な機能検出機能を備えた
GFMR_Asset_Manager - メタデータ: レンダリング最適化のためのカスタム投稿メタ (
_gfmr_code_metadata) - キャッシュ: パフォーマンス向上のための WordPress Transient API
- SSRエンジン: コードブロックとMermaid図のPHPベースのSSRパイプライン
フロントエンド (JavaScript)
- コアエンジン:
gfmr-core.js - ビルドツール:
@wordpress/scripts(Webpack/Viteベース) - 動的読み込み: Intersection Observer による重量級ライブラリの遅延読み込み
- Web Workers: メインスレッドをブロックしないバックグラウンドシンタックスハイライト
- 非同期レンダリング: SSRとクライアントサイドハイドレーションの並列レンダリングパイプライン
採用ライブラリ
| ライブラリ | バージョン | 用途 |
|---|---|---|
markdown-it | 14.1.0 | コアのMarkdownパース |
shiki | 1.x | VS Codeグレードのシンタックスハイライト |
mermaid | 10.x | 図表レンダリング (フローチャート等) |
katex | 0.13+ | 数式レンダリング (LaTeX) |
chart.js | 4.x | データビジュアライゼーション (棒グラフ、円グラフ等) |
| PlantUML | サーバーサイド | PlantUMLによるUML図表レンダリング |
パフォーマンス設計
本プラグインは、パフォーマンスを最優先に設計されています。
- 選択的読み込み: 投稿コンテンツ内に特定の機能(コードブロックやMermaid図表など)が検出された場合にのみ、アセットを読み込みます。
- 遅延レンダリング: ShikiやMermaidなどの重いライブラリは、必要になった時点で非同期に読み込まれます。
- 最適化されたメタデータ: 投稿保存時にコードブロックのメタデータを事前計算し、フロントエンドの処理時間を短縮します。
- キャッシュ戦略: レンダリング済みのアセットや機能検出結果は、WordPressのトランジエント機能を使用してキャッシュされます。
- Web Workerハイライト: シンタックスハイライトをバックグラウンドのWeb Workerで実行し、メインスレッドをブロックしません。
- SSR並列パイプライン: コードブロックと図表をサーバーサイドで部分的にレンダリングし、クライアントの負担を軽減して初期ロード時間を改善します。
開発フロー
- テスト: バックエンド用 PHPUnit、E2E用 Playwright
- リンター: PHPCS (WordPress基準)、ESLint、Stylelint
- CI/CD: 自動テストと透明性のための GitHub Actions