利用者:Yaakiyu.jp/common.js

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
  • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
  • Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
(function() {
    var conf = mw.config.get(['wgAction', 'wgPageContentModel']);
    if (!['edit', 'submit'].includes(conf.wgAction)) return;
    if (['javascript', 'css'].includes(conf.wgPageContentModel)) return;

    // --- 1. 公式がビルド済みのリソースを Load.php から直接拝借する ---
    // 他の Wiki から持ってくることで、依存関係(Tag等)が解決済みのコードを取得できます
    var resourceBase = 'https://www.mediawiki.org/w/load.php?debug=false&lang=ja&modules=';
    var modules = [
        'ext.CodeMirror.v6',       // 本体
        'ext.CodeMirror.v6.lib',
        'ext.CodeMirror.v6.mode.mediawiki' // Wiki記法定義
    ].join('|');

    // --- 2. スクリプトの読み込み ---
    var script = document.createElement('script');
    script.src = resourceBase + modules;
    script.onload = function() {
        var myTextarea = document.getElementById('wpTextbox1');
        // Load.php 経由で読み込むと、mw.loader 経由で実行されるため少し待機が必要な場合があります
        mw.loader.using( [ 'ext.CodeMirror.v6', 'ext.CodeMirror.v6.mode.mediawiki' ], function (require) {
            const CodeMirror = require( 'ext.CodeMirror.v6' );
            const { mediawiki } = require( 'ext.CodeMirror.v6.mode.mediawiki' );
            const cm = new CodeMirror( myTextarea, mediawiki() );
            cm.initialize();
		    // 見た目の補正
		    var style = document.createElement('style');
		    style.innerHTML = '.CodeMirror { border: 1px solid #a2a9b1; min-height: 450px; }';
		    document.head.appendChild(style);
        });
    };
    document.head.appendChild(script);

})();