Skip to content

技術仕様 - Markdown Renderer for GitHub

Markdown Renderer for GitHub プラグインの詳細な技術情報とバージョン仕様です。

基本情報

項目仕様
現在のバージョン1.7.1
ライセンスGPL-2.0-or-later
PHP要件8.1 以上
WordPress要件6.0 以上
JavaScriptエンジンモダン ES Modules

テクノロジースタック

本プラグインは、堅牢なPHPバックエンド処理とダイナミックなJavaScriptフロントエンドを組み合わせたハイブリッドアーキテクチャで構築されています。

バックエンド (PHP)

  • コントローラー: GFMR_Renderer (Singleton)
  • アセット管理: 高度な機能検出機能を備えた GFMR_Asset_Manager
  • メタデータ: レンダリング最適化のためのカスタム投稿メタ (_gfmr_code_metadata)
  • キャッシュ: パフォーマンス向上のための WordPress Transient API

フロントエンド (JavaScript)

  • コアエンジン: gfmr-core.js
  • ビルドツール: @wordpress/scripts (Webpackベース)
  • 動的読み込み: Intersection Observer による重量級ライブラリの遅延読み込み

採用ライブラリ

ライブラリバージョン用途
markdown-it14.1.0コアのMarkdownパース
shiki1.xVS Codeグレードのシンタックスハイライト
mermaid10.x図表レンダリング (フローチャート等)
katex0.13+数式レンダリング (LaTeX)

パフォーマンス設計

本プラグインは、パフォーマンスを最優先に設計されています。

  1. 選択的読み込み: 投稿コンテンツ内に特定の機能(コードブロックやMermaid図表など)が検出された場合にのみ、アセットを読み込みます。
  2. 遅延レンダリング: ShikiやMermaidなどの重いライブラリは、必要になった時点で非同期に読み込まれます。
  3. 最適化されたメタデータ: 投稿保存時にコードブロックのメタデータを事前計算し、フロントエンドの処理時間を短縮します。
  4. キャッシュ戦略: レンダリング済みのアセットや機能検出結果は、WordPressのトランジエント機能を使用してキャッシュされます。

開発フロー

  • テスト: バックエンド用 PHPUnit、E2E用 Playwright
  • リンター: PHPCS (WordPress基準)、ESLint、Stylelint
  • CI/CD: 自動テストと透明性のための GitHub Actions