最小JS例
window.LC_API.registerPlugin({
name: 'my-plugin-id',
displayName: '表示名',
version: '1.0.0',
type: 'js',
description: '何をするプラグインか',
priority: 100,
async init(context) {
const api = context.api || window.LC_API;
// 初期化。DOMが必要なら onDOMReady / afterRouteRender 側に分ける。
},
dispose() {
// addEventListener / setInterval / 追加DOM / style を片付ける。
},
hooks: {
afterRouteRender(payload) {
// payload.route を見て必要な画面だけ処理する。
},
afterAnswerEval(payload) {
// payload.evaluationResult を見て判定後の補助表示をする。
}
}
});
完全フック一覧(本体に定義されている全フック)
現在の本体に定義されているフックをすべて列挙しています。payloadの中身はフックごとに違うため、最初は console.log(payload) で確認してください。
beforeAppInit
AppStore初期化処理の直前。保存データ読込前提の処理には向きません。グローバル準備向け。
afterAppInit
AppStore初期化後。assets/stats/settings/pluginsを読めます。重いDOM操作はonDOMReady以降推奨。
onAppReady
本体初期化・画面表示・プラグイン読込後。通常の初期DOM追加はここが最も扱いやすいです。
beforeHomeRender
ホーム描画前。統計値やバナー表示を差し替える準備に使います。
onHomeRender
ホーム表示中/直後の拡張。ホームカードや小さな情報表示の追加向け。
afterHomeRender
ホーム描画完了後。実DOMを取得してボタン追加する場合に安全です。
beforeLibraryRender
教材ライブラリ描画前。教材一覧の補助状態を準備します。
afterLibraryRender
教材ライブラリ描画後。教材カードへのバッジ追加などに使います。
beforeEditorRender
教材編集画面描画前。編集対象データを確認できます。
afterEditorRender
教材編集画面描画後。フォーム横の補助UI追加に使います。
beforeSettingsRender
設定画面描画前。独自設定の準備向け。
afterSettingsRender
設定画面描画後。設定DOMへ説明やボタンを追加する場合に使います。
beforeRouteChange
画面遷移前。未保存確認・一時状態保存・タイマー停止など。
onRouteChange
画面遷移時の汎用通知。route名に応じた処理分岐向け。
afterRouteRender
画面描画後の汎用通知。routeとDOMを見てUI追加する定番フック。
beforeSave
AppStore保存前。保存データ検査向け。ここで重い非同期処理は避けます。
afterSave
AppStore保存後。保存完了後のログ・同期予約向け。
onStoreUpdate
プラグインストア状態更新時。ストア一覧の再集計など。
onError
本体/プラグインのエラー通知。ユーザー通知やログ保存に使います。
onApiRequest
apiFetch前。GAS等への通信を観察する用途。機密情報の扱いに注意。
onApiResponse
apiFetch後。レスポンスログや簡易監視向け。
onDOMReady
DOM構築後。軽いDOM追加・イベント登録向け。
onModalOpen
モーダル表示時。modal idを見て補足説明を追加できます。
onModalClose
モーダル閉鎖時。追加UIや一時状態の片付け向け。
beforeSessionStart
学習セッション開始前。出題プールや設定の確認向け。
onQuestionStart
1問開始時。タイマーや補助表示の開始向け。
afterSessionStart
セッション開始後。学習中UIの追加向け。
beforeSessionFinish
セッション終了前。集計前の最終処理向け。
onSessionFinish
セッション終了時。結果集計やログ保存向け。
afterSessionFinish
セッション終了後。結果画面表示後の補助UI向け。
beforeQuestionSelect
次の問題選択前。出題順や候補の観察向け。
afterQuestionSelect
次の問題選択後。選ばれた問題の記録向け。
beforeQuestionRender
問題表示前。表示直前の補助情報準備向け。
afterQuestionRender
問題表示後。Blank/Sort/Typingなどの表示DOM調整向け。
beforeAnswerInputRead
回答欄から値を読む直前。入力補正の準備向け。
afterAnswerInputRead
回答欄から値を読んだ直後。読み取った入力のログ向け。
onLearnSubmitBeforeEval
回答送信後・判定前。入力補助や判定前ログ向け。
beforeAnswerEval
正誤判定直前。qItem/inputを読めます。判定改変は慎重に。
afterAnswerEval
正誤判定直後。evaluationResultを参照して補助表示や分析に使います。
onLearnSubmitAfterEval
判定後・結果画面前。スコア更新後処理の観察向け。
onAnswerSubmit
回答送信後の汎用通知。細かい判定タイミングに依存しない処理向け。
beforeScoreUpdate
学習スコア更新前。アイテム状態変更前の記録向け。
afterScoreUpdate
学習スコア更新後。新しいreps/ef/nextDateを参照できます。
beforeCheckRender
結果画面描画前。結果表示の補助情報準備向け。
afterCheckRender
結果画面描画後。復習ボタンや説明追加向け。
onDictSearch
辞書検索時。検索語のログや別辞書連携向け。
beforeDictResultRender
辞書結果描画前。結果整形の準備向け。
afterDictResultRender
辞書結果描画後。補足リンク追加向け。
onAssetLoad
教材読込時。教材データの確認や移行処理向け。
onAssetCreate
教材作成時。初期タグ付与などに使えます。
onAssetDelete
教材削除時。関連するプラグインデータ削除向け。
beforeAssetSave
教材保存前。入力検証やメタデータ補正向け。
afterAssetSave
教材保存後。保存完了通知や同期予約向け。
onPluginInstall
プラグイン導入時。初回セットアップや注意表示向け。
beforePluginLoad
プラグイン読込前。安全チェックやログ向け。
afterPluginLoad
プラグイン読込後。読込結果の確認向け。
beforePluginEnable
プラグイン有効化前。依存チェック向け。
afterPluginEnable
プラグイン有効化後。初期UI表示向け。
beforePluginDisable
プラグイン無効化前。状態保存や停止準備向け。
afterPluginDisable
プラグイン無効化後。無効化結果の通知向け。
beforePluginDispose
dispose実行前。片付け前ログ向け。
afterPluginDispose
dispose実行後。片付け漏れ確認向け。
beforePluginListRender
プラグイン一覧描画前。リスト補助データ準備向け。
afterPluginListRender
プラグイン一覧描画後。各プラグイン行へのUI追加向け。
onStoreViewOpen
ストア画面を開いた時。ストア更新や案内表示向け。
beforeStoreRender
ストア描画前。フィルタや並び替え補助向け。
afterStoreRender
ストア描画後。カードへの追加表示向け。
onItemOptionsRender
問題編集フォームのオプション欄描画時。独自設定項目追加向け。
完全一覧: beforeAppInit, afterAppInit, onAppReady, beforeHomeRender, onHomeRender, afterHomeRender, beforeLibraryRender, afterLibraryRender, beforeEditorRender, afterEditorRender, beforeSettingsRender, afterSettingsRender, beforeRouteChange, onRouteChange, afterRouteRender, beforeSave, afterSave, onStoreUpdate, onError, onApiRequest, onApiResponse, onDOMReady, onModalOpen, onModalClose, beforeSessionStart, onQuestionStart, afterSessionStart, beforeSessionFinish, onSessionFinish, afterSessionFinish, beforeQuestionSelect, afterQuestionSelect, beforeQuestionRender, afterQuestionRender, beforeAnswerInputRead, afterAnswerInputRead, onLearnSubmitBeforeEval, beforeAnswerEval, afterAnswerEval, onLearnSubmitAfterEval, onAnswerSubmit, beforeScoreUpdate, afterScoreUpdate, beforeCheckRender, afterCheckRender, onDictSearch, beforeDictResultRender, afterDictResultRender, onAssetLoad, onAssetCreate, onAssetDelete, beforeAssetSave, afterAssetSave, onPluginInstall, beforePluginLoad, afterPluginLoad, beforePluginEnable, afterPluginEnable, beforePluginDisable, afterPluginDisable, beforePluginDispose, afterPluginDispose, beforePluginListRender, afterPluginListRender, onStoreViewOpen, beforeStoreRender, afterStoreRender, onItemOptionsRender