Markdown Renderer for GitHub Hooks Reference
このページは、Markdown Renderer for GitHub が公開している WordPress hooks の一覧です。テーマ、サイト専用プラグイン、アドオンプラグインから、プラグイン本体を編集せずにレンダリング、多言語、アセット読み込み、SEO 出力、設定、メタデータ、パフォーマンス機能を調整できます。
filter はここに記載した型と同じ型を返してください。HTML を生成する場合は出力をエスケープし、レンダリングごとに呼ばれる hook では重い処理を避けてください。
Quick Reference
Rendering and Output
| Hook | Type | Signature | Purpose |
|---|---|---|---|
gfmr_pre_render_markdown | Filter | string $content, array $context | HTML 化する前の Markdown を変更します。 |
gfmr_render_markdown | Filter | string $output, string $content, array $context | shortcode / content 経由で生成された最終 HTML を変更します。 |
gfmr_after_render | Action | string $output, string $content, array $context | Markdown レンダリング完了後に副作用を実行します。 |
gfmr_block_attributes | Filter | array $attributes | ブロック描画前の属性を調整します。 |
gfmr_block_render_output | Filter | string $output, array $attributes, string $content | ブロックの描画済み HTML を変更します。 |
gfmr_iframe_safe_mode | Filter | bool $enabled | ブロック設定内の iframe safe mode を制御します。 |
Diagrams, Syntax Highlighting, and Performance
| Hook | Type | Signature | Purpose |
|---|---|---|---|
gfmr_chart_image_ssr_enabled | Filter | bool $enabled | フロントエンドで Chart.js を画像化してキャッシュする処理を制御します。 |
gfmr_use_prerendered_diagrams | Filter | bool $use_prerendered, array $attributes | ブロックの事前レンダリング済み図表 HTML を使うか制御します。 |
gfmr_shiki_languages | Filter | array $languages | Shiki の対応言語リストを拡張します。 |
gfmr_shiki_themes | Filter | array $themes | 利用できる Shiki テーマを拡張します。 |
gfmr_worker_line_threshold | Filter | int $threshold | Worker レンダリングに切り替えるコード行数のしきい値を設定します。 |
gfmr_worker_config | Filter | array $worker_config | Worker Manager の設定を変更します。 |
gfmr_enable_workers | Filter | bool $enabled | シンタックスハイライト用 Web Worker を有効/無効にします。 |
gfmr_enable_service_worker | Filter | bool $enabled | ベンダーキャッシュ用 Service Worker を有効/無効にします。 |
gfmr_exclude_heavy_pages_from_prerender | Filter | bool $enabled | 重い図表ページをブラウザ prerender 対象から除外します。 |
gfmr_compression_health_assets | Filter | array $assets | Compression Site Health test が確認する bundle を変更します。 |
Multilingual and Language Switcher
| Hook | Type | Signature | Purpose |
|---|---|---|---|
gfmr_multilingual_enabled | Filter | bool $enabled | 多言語機能を有効/無効にします。 |
gfmr_multilingual_enqueue_assets | Filter | bool $enqueue | 多言語用アセットの読み込みを制御します。 |
gfmr_multilingual_url_enabled | Filter | bool $enabled | パスベースの多言語 URL 書き換えを有効/無効にします。 |
gfmr_multilingual_taxonomy_current_language | Filter | string $language, int $post_id, array $settings | 多言語 taxonomy 処理の現在言語判定を上書きします。 |
gfmr_language_switcher_enabled | Filter | bool $enabled, string $context, array $args | HTML 生成前に言語スイッチャーを無効化します。 |
gfmr_language_flag_map | Filter | array $map | 言語コードと旗表示の対応を変更します。 |
gfmr_language_name_map | Filter | array $names | 言語コードと表示名の対応を変更します。 |
gfmr_featured_image_post_types | Filter | array $post_types | 言語別 featured image を扱う投稿タイプを選びます。 |
gfmr_featured_image_thirdparty_multilingual_active | Filter | bool $active | featured image 向けの外部多言語プラグイン検出を上書きします。 |
SEO and Schema
| Hook | Type | Signature | Purpose |
|---|---|---|---|
gfmr_meta_description_enabled | Filter | bool $enabled | 言語別 meta description 機能を有効/無効にします。 |
gfmr_meta_description_post_types | Filter | array $post_types | 言語別 description を扱う投稿タイプを選びます。 |
gfmr_meta_description | Filter | string $description, WP_Post $post, string $lang | 解決済み meta description を変更します。 |
gfmr_meta_description_fallback_to_default | Filter | bool $fallback | 現在言語が空のときにデフォルト言語へ fallback するか制御します。 |
gfmr_meta_description_output_og | Filter | bool $output | og:description の出力を制御します。 |
gfmr_meta_description_output_twitter | Filter | bool $output | twitter:description の出力を制御します。 |
gfmr_meta_description_thirdparty_multilingual_active | Filter | bool $active | 外部多言語プラグイン検出を上書きします。 |
gfmr_meta_description_seo_plugin_active | Filter | bool $active | SEO プラグインとの競合検出を上書きします。 |
gfmr_meta_description_theme_handles | Filter | bool $active | テーマ側 meta description 出力の検出を上書きします。 |
gfmr_schema_data | Filter | array $schema, WP_Post $post | 生成された構造化データを変更します。 |
gfmr_breadcrumb_schema | Filter | array $list, WP_Post $post | 生成された breadcrumb schema を変更します。 |
Settings, Extensions, Metadata, and Licensing
| Hook | Type | Signature | Purpose |
|---|---|---|---|
gfmr_loaded | Action | string $version | プラグイン読み込み後にアドオンを初期化します。 |
gfmr_registered_addons | Filter | array $addons | Extension API にアドオンを登録します。 |
gfmr_feature_flags | Filter | array $flags | feature flag を登録または上書きします。 |
gfmr_frontend_config | Filter | array $config_data | フロントエンドへ渡す設定を拡張します。 |
gfmr_enqueue_assets | Action | string $context | frontend または admin 向けにアドオンのアセットを読み込みます。 |
gfmr_settings_tabs_list | Filter | array $tabs | 設定タブを追加または変更します。 |
gfmr_settings_tabs | Action | string $page_slug, array $tabs | 設定タブ UI を描画します。 |
gfmr_settings_sections | Action | string $page_slug, string $tab_id | 指定タブに独自の設定セクションを描画します。 |
gfmr_post_list_column_post_types | Filter | array $post_types | GFMR Languages 列を表示する投稿タイプを選びます。 |
gfmr_metadata_saved | Action | int $post_id, array $metadata | コードブロック metadata 保存後に処理します。 |
gfmr_metadata_get_metadata | Filter | array $metadata, int $post_id | 保存済みコードブロック metadata の読み出し結果を変更します。 |
gfmr_is_pro_active | Filter | bool $active | Pro 機能が有効であることを free 版側コードに伝えます。 |
gfmr_pro_feature_registered | Action | string $feature_id, array $feature | Pro feature 登録時に処理します。 |
gfmr_pro_feature_unregistered | Action | string $feature_id | Pro feature 削除時に処理します。 |
gfmr_pro_license_changed | Action | No parameters | Pro ライセンス状態の変更後に処理します。 |
Common Examples
Disable the Language Switcher
この filter は言語スイッチャーの HTML 生成前に実行されるため、不要な描画処理も避けられます。
php
add_filter(
'gfmr_language_switcher_enabled',
function ( bool $enabled, string $context, array $args ): bool {
if ( is_singular( 'docs' ) && 'header' === $context ) {
return false;
}
return $enabled;
},
10,
3
);Customize Mermaid or Chart Output
図表を含む描画結果にラッパー属性を追加したい場合は、ブロック出力 filter を使います。返す HTML は必ず安全な形にしてください。
php
add_filter(
'gfmr_block_render_output',
function ( string $output, array $attributes, string $content ): string {
if ( false === strpos( $content, '```mermaid' ) ) {
return $output;
}
return '<div class="docs-diagram-frame">' . $output . '</div>';
},
10,
3
);特定ブロックだけ事前レンダリング済み図表 HTML を使わない場合は、gfmr_use_prerendered_diagrams を使います。
php
add_filter(
'gfmr_use_prerendered_diagrams',
function ( bool $use_prerendered, array $attributes ): bool {
if ( ! empty( $attributes['forceLiveDiagramRender'] ) ) {
return false;
}
return $use_prerendered;
},
10,
2
);Register a Shiki Language or Theme
php
add_filter(
'gfmr_shiki_languages',
function ( array $languages ): array {
$languages[] = 'toml';
return array_values( array_unique( $languages ) );
}
);
add_filter(
'gfmr_shiki_themes',
function ( array $themes ): array {
$themes['docs-dark'] = 'github-dark-dimmed';
return $themes;
}
);Tune Worker-Based Syntax Highlighting
Worker のしきい値は、長いコードブロックをメインスレッド外で処理するタイミングを制御します。
php
add_filter(
'gfmr_worker_line_threshold',
function (): int {
return 12;
}
);Filter Rendered Markdown Output
php
add_filter(
'gfmr_render_markdown',
function ( string $output, string $content, array $context ): string {
if ( empty( $context['post_id'] ) ) {
return $output;
}
return str_replace(
'class="gfmr-markdown-container"',
'class="gfmr-markdown-container docs-rendered-markdown"',
$output
);
},
10,
3
);Add Schema Metadata
php
add_filter(
'gfmr_schema_data',
function ( array $schema, WP_Post $post ): array {
if ( has_term( 'reference', 'category', $post ) ) {
$schema['about'] = 'Developer documentation';
}
return $schema;
},
10,
2
);Register an Add-On
php
add_filter(
'gfmr_registered_addons',
function ( array $addons ): array {
$addons['my-company-docs'] = array(
'name' => 'My Company Docs Enhancer',
'version' => '1.0.0',
'author' => 'My Company',
);
return $addons;
}
);