Skip to content

Markdown Renderer for GitHub Hooks Reference

このページは、Markdown Renderer for GitHub が公開している WordPress hooks の一覧です。テーマ、サイト専用プラグイン、アドオンプラグインから、プラグイン本体を編集せずにレンダリング、多言語、アセット読み込み、SEO 出力、設定、メタデータ、パフォーマンス機能を調整できます。

filter はここに記載した型と同じ型を返してください。HTML を生成する場合は出力をエスケープし、レンダリングごとに呼ばれる hook では重い処理を避けてください。

Quick Reference

Rendering and Output

HookTypeSignaturePurpose
gfmr_pre_render_markdownFilterstring $content, array $contextHTML 化する前の Markdown を変更します。
gfmr_render_markdownFilterstring $output, string $content, array $contextshortcode / content 経由で生成された最終 HTML を変更します。
gfmr_after_renderActionstring $output, string $content, array $contextMarkdown レンダリング完了後に副作用を実行します。
gfmr_block_attributesFilterarray $attributesブロック描画前の属性を調整します。
gfmr_block_render_outputFilterstring $output, array $attributes, string $contentブロックの描画済み HTML を変更します。
gfmr_iframe_safe_modeFilterbool $enabledブロック設定内の iframe safe mode を制御します。

Diagrams, Syntax Highlighting, and Performance

HookTypeSignaturePurpose
gfmr_chart_image_ssr_enabledFilterbool $enabledフロントエンドで Chart.js を画像化してキャッシュする処理を制御します。
gfmr_use_prerendered_diagramsFilterbool $use_prerendered, array $attributesブロックの事前レンダリング済み図表 HTML を使うか制御します。
gfmr_shiki_languagesFilterarray $languagesShiki の対応言語リストを拡張します。
gfmr_shiki_themesFilterarray $themes利用できる Shiki テーマを拡張します。
gfmr_worker_line_thresholdFilterint $thresholdWorker レンダリングに切り替えるコード行数のしきい値を設定します。
gfmr_worker_configFilterarray $worker_configWorker Manager の設定を変更します。
gfmr_enable_workersFilterbool $enabledシンタックスハイライト用 Web Worker を有効/無効にします。
gfmr_enable_service_workerFilterbool $enabledベンダーキャッシュ用 Service Worker を有効/無効にします。
gfmr_exclude_heavy_pages_from_prerenderFilterbool $enabled重い図表ページをブラウザ prerender 対象から除外します。
gfmr_compression_health_assetsFilterarray $assetsCompression Site Health test が確認する bundle を変更します。

Multilingual and Language Switcher

HookTypeSignaturePurpose
gfmr_multilingual_enabledFilterbool $enabled多言語機能を有効/無効にします。
gfmr_multilingual_enqueue_assetsFilterbool $enqueue多言語用アセットの読み込みを制御します。
gfmr_multilingual_url_enabledFilterbool $enabledパスベースの多言語 URL 書き換えを有効/無効にします。
gfmr_multilingual_taxonomy_current_languageFilterstring $language, int $post_id, array $settings多言語 taxonomy 処理の現在言語判定を上書きします。
gfmr_language_switcher_enabledFilterbool $enabled, string $context, array $argsHTML 生成前に言語スイッチャーを無効化します。
gfmr_language_flag_mapFilterarray $map言語コードと旗表示の対応を変更します。
gfmr_language_name_mapFilterarray $names言語コードと表示名の対応を変更します。
gfmr_featured_image_post_typesFilterarray $post_types言語別 featured image を扱う投稿タイプを選びます。
gfmr_featured_image_thirdparty_multilingual_activeFilterbool $activefeatured image 向けの外部多言語プラグイン検出を上書きします。

SEO and Schema

HookTypeSignaturePurpose
gfmr_meta_description_enabledFilterbool $enabled言語別 meta description 機能を有効/無効にします。
gfmr_meta_description_post_typesFilterarray $post_types言語別 description を扱う投稿タイプを選びます。
gfmr_meta_descriptionFilterstring $description, WP_Post $post, string $lang解決済み meta description を変更します。
gfmr_meta_description_fallback_to_defaultFilterbool $fallback現在言語が空のときにデフォルト言語へ fallback するか制御します。
gfmr_meta_description_output_ogFilterbool $outputog:description の出力を制御します。
gfmr_meta_description_output_twitterFilterbool $outputtwitter:description の出力を制御します。
gfmr_meta_description_thirdparty_multilingual_activeFilterbool $active外部多言語プラグイン検出を上書きします。
gfmr_meta_description_seo_plugin_activeFilterbool $activeSEO プラグインとの競合検出を上書きします。
gfmr_meta_description_theme_handlesFilterbool $activeテーマ側 meta description 出力の検出を上書きします。
gfmr_schema_dataFilterarray $schema, WP_Post $post生成された構造化データを変更します。
gfmr_breadcrumb_schemaFilterarray $list, WP_Post $post生成された breadcrumb schema を変更します。

Settings, Extensions, Metadata, and Licensing

HookTypeSignaturePurpose
gfmr_loadedActionstring $versionプラグイン読み込み後にアドオンを初期化します。
gfmr_registered_addonsFilterarray $addonsExtension API にアドオンを登録します。
gfmr_feature_flagsFilterarray $flagsfeature flag を登録または上書きします。
gfmr_frontend_configFilterarray $config_dataフロントエンドへ渡す設定を拡張します。
gfmr_enqueue_assetsActionstring $contextfrontend または admin 向けにアドオンのアセットを読み込みます。
gfmr_settings_tabs_listFilterarray $tabs設定タブを追加または変更します。
gfmr_settings_tabsActionstring $page_slug, array $tabs設定タブ UI を描画します。
gfmr_settings_sectionsActionstring $page_slug, string $tab_id指定タブに独自の設定セクションを描画します。
gfmr_post_list_column_post_typesFilterarray $post_typesGFMR Languages 列を表示する投稿タイプを選びます。
gfmr_metadata_savedActionint $post_id, array $metadataコードブロック metadata 保存後に処理します。
gfmr_metadata_get_metadataFilterarray $metadata, int $post_id保存済みコードブロック metadata の読み出し結果を変更します。
gfmr_is_pro_activeFilterbool $activePro 機能が有効であることを free 版側コードに伝えます。
gfmr_pro_feature_registeredActionstring $feature_id, array $featurePro feature 登録時に処理します。
gfmr_pro_feature_unregisteredActionstring $feature_idPro feature 削除時に処理します。
gfmr_pro_license_changedActionNo parametersPro ライセンス状態の変更後に処理します。

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;
    }
);