“MediaWiki:Gadget-site-lib.codemirror.js”的版本间差异

// 使用Wikiplus小工具快速编辑
(// 使用Wikiplus小工具快速编辑)
 
(未显示同一用户的5个中间版本)
if (name == 'wiki') {
promise[ name ] = mw.config.get( 'extCodeMirrorConfig' ) ? Promise.resolve() : // 兼容CodeMirror扩展
mw.loader.using('ext.CodeMirror.data');
$.get({ dataType: 'json', cache: true,
url: '//cdn.jsdelivr.net/gh/bhsd-harry/LLWiki@1.6/json/gadget-CodeMirror.json'
}).then(function(config) { mw.config.set( 'extCodeMirrorConfig', config ); },
function(reason) { throw reason; }
);
} else {
promise[ name ] = $.get({['clike', dataType:'css', 'scripthtmlmixed', cache:'javascript', true'php', 'xml'].includes(name)
? mw.loader.using('ext.CodeMirror.lib.mode.' + name)
url: '//cdn.jsdelivr.net/npm/codemirror@5.35.0/mode/' + name + '/' + name + '.min.js'
: $.get({ dataType: 'jsonscript', cache: true,
});
url: '//cdn.jsdelivr.net/npm/codemirror@5.35.0/mode/' + name + '/' + name + '.min.js'
});
}
}
* @Source: [https://codemirror.net/addon/runmode/runmode.js]
* @EditedBy: [[User:Bhsd]]
* @Param {HTMLElementjQuery} $pre, 有Wikitext代码的HTML元素,通常为<pre>或<code>jQuery对象
* @Param {Boolean} force, 是否不执行默认的懒加载
*/
const render = function(objtarget) {
observer.unobserve( obj.target );
const mode = CodeMirror.getMode({mwConfig: mw.config.get( 'extCodeMirrorConfig' )}, 'mediawiki'),
$target = $(obj.target),
lines = CodeMirror.splitLines( $target.text().trim() ),
state = mode.startState(),
);
}
$('<span>', { text: stream.current()}).addClass(, class: style.filter(function(ele) {
return !ele.startsWith( 'line-' );
}).map(function(ele) { return 'cm-' + ele; }).join( ' ' ) }).appendTo( $line );
stream.start = stream.pos;
}
}).css('padding-left', (content.length + start - 1).toString().length + 2.5 + 'ch').appendTo( $target );
} else { $target.append( content ); }
},;
CodeMirror.runmode = function($pre, force) {
callback = function(entries) { entries.filter(function(obj) { return obj.isIntersecting; }).forEach( render ); },
CodeMirror.download( 'wiki' ).then(function() { $pre.toArray().forEach( render ); });
observer = new IntersectionObserver(callback, {threshold: 0.01}); // jshint ignore: line
CodeMirror.runmode = function(pre, force) {
CodeMirror.download( 'wiki' ).then(function() {
if (force) { render( {target: pre} ); }
else { observer.observe( pre ); }
});
};
//</nowiki>
16,874

个编辑