MediaWiki:Citizen.js
MediaWiki interface page
More actions
Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
- Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5.
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky */
// ===== Shift+Enter = měkký zlom řádku (VE i 2017 wikitext) =====
mw.loader.using( 'ext.visualEditor.desktopArticleTarget.init' ).then( function () {
// 1) Zkratka Shift+Enter
if ( !ve.ui.triggerRegistry.lookup( 'mwSoftBreak' ) ) {
ve.ui.triggerRegistry.register( 'mwSoftBreak', { pc: 'shift+enter', mac: 'shift+enter' } );
}
// Helper – registrace příkazu, pokud není
function ensureCmd( registry, name, args ) {
if ( registry && !registry.lookup( name ) ) {
registry.register( new ve.ui.Command( name, 'content', 'insert', {
args: args, supportedSelections: [ 'linear' ]
} ) );
}
}
// 2) VE (vizuální režim) – uzel {type:'break'} = <br>
ensureCmd( ve.ui.commandRegistry, 'mwSoftBreak', [ { type: 'break' } ] );
// 3) 2017 wikitext – vlož doslova "<br />"
ensureCmd( ve.ui.wikitextCommandRegistry, 'mwSoftBreak', [ '<br />', true, true ] );
// 4) Po aktivaci editoru přidej příkaz a fallback capture handler
mw.hook( 've.activationComplete' ).add( function () {
var surface = ve.init.target && ve.init.target.getSurface && ve.init.target.getSurface();
if ( surface && surface.addCommands ) {
surface.addCommands( [ 'mwSoftBreak' ] );
}
// Fallback: když by registrace selhala, chytneme klávesu dřív než VE
var node = surface && surface.$element && surface.$element[0];
if ( !node || node._mwSoftBreakBound ) return;
node._mwSoftBreakBound = true;
node.addEventListener( 'keydown', function (e) {
if ( e.key === 'Enter' && e.shiftKey ) {
e.preventDefault();
e.stopImmediatePropagation();
try {
// VE vizuální režim
surface.execute( 'content', 'insert', [ { type: 'break' } ] );
} catch (err) {
// 2017 wikitext – nouzově nic neděláme, o to se postará příkaz výše
}
}
}, true ); // capture = true
} );
} );