MediaWiki:Citizen.js: Porovnání verzí
MediaWiki interface page
More actions
Bez shrnutí editace značka: revertováno |
Bez shrnutí editace značka: revertováno |
||
| Řádek 1: | Řádek 1: | ||
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky */ | /* 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) ===== | // ===== Shift+Enter = měkký zlom řádku (funguje ve VE i ve 2017 wikitext editoru) ===== | ||
mw.loader.using( 'ext.visualEditor.desktopArticleTarget.init' ).then( function () { | mw.loader.using( 'ext.visualEditor.desktopArticleTarget.init' ).then( function () { | ||
// 1) Zkratka Shift+Enter | // 1) Zkratka Shift+Enter | ||
if ( !ve.ui.triggerRegistry.lookup( 'mwSoftBreak' ) ) { | if ( !ve.ui.triggerRegistry.lookup( 'mwSoftBreak' ) ) { | ||
| Řádek 8: | Řádek 7: | ||
} | } | ||
// | // Pomůcka pro registraci příkazu jen pokud chybí | ||
function ensureCmd( registry, name, args ) { | function ensureCmd( registry, name, args ) { | ||
if ( registry && !registry.lookup( name ) ) { | if ( registry && !registry.lookup( name ) ) { | ||
registry.register( new ve.ui.Command( name, 'content', 'insert', { | registry.register( new ve.ui.Command( name, 'content', 'insert', { | ||
args: args, supportedSelections: [ 'linear' ] | args: args, | ||
supportedSelections: [ 'linear' ] | |||
} ) ); | } ) ); | ||
} | } | ||
} | } | ||
// 2) VE | // 2) Vizuální režim (VE) – vlož DM uzel break => <br> | ||
ensureCmd( ve.ui.commandRegistry, 'mwSoftBreak', [ { type: 'break' } ] ); | ensureCmd( ve.ui.commandRegistry, 'mwSoftBreak', [ { type: 'break' } ] ); | ||
// 3) 2017 wikitext – vlož doslova "<br />" | // 3) 2017 wikitext režim – vlož doslova "<br />" | ||
ensureCmd( ve.ui.wikitextCommandRegistry, 'mwSoftBreak', [ '<br />', true, true ] ); | ensureCmd( ve.ui.wikitextCommandRegistry, 'mwSoftBreak', [ '<br />', true, true ] ); | ||
// 4) Po aktivaci editoru | // 4) Po aktivaci editoru příkaz připoj k aktuálnímu povrchu + fallback pro klávesu | ||
mw.hook( 've.activationComplete' ).add( function () { | mw.hook( 've.activationComplete' ).add( function () { | ||
var surface = ve.init.target && ve.init.target.getSurface && ve.init.target.getSurface(); | var surface = ve.init.target && ve.init.target.getSurface && ve.init.target.getSurface(); | ||
if ( surface && surface.addCommands ) | if ( surface && surface.addCommands ) surface.addCommands( [ 'mwSoftBreak' ] ); | ||
var node = surface && surface.$element && surface.$element[0]; | var node = surface && surface.$element && surface.$element[0]; | ||
if ( !node || node._mwSoftBreakBound ) return; | if ( !node || node._mwSoftBreakBound ) return; | ||
node._mwSoftBreakBound = true; | node._mwSoftBreakBound = true; | ||
// Capture posluchač – kdyby registry z nějakého důvodu nestihly naskočit | |||
node.addEventListener( 'keydown', function (e) { | node.addEventListener( 'keydown', function (e) { | ||
if ( e.key === 'Enter' && e.shiftKey ) { | if ( e.key === 'Enter' && e.shiftKey ) { | ||
e.preventDefault(); | e.preventDefault(); | ||
e.stopImmediatePropagation(); | e.stopImmediatePropagation(); | ||
try { | try { surface.execute( 'content', 'insert', [ { type: 'break' } ] ); } catch (err) {} | ||
} | } | ||
}, true ); | }, true ); | ||
} ); | } ); | ||
} ); | } ); | ||
Verze z 9. 10. 2025, 17:32
/* 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 (funguje ve VE i ve 2017 wikitext editoru) =====
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' } );
}
// Pomůcka pro registraci příkazu jen pokud chybí
function ensureCmd( registry, name, args ) {
if ( registry && !registry.lookup( name ) ) {
registry.register( new ve.ui.Command( name, 'content', 'insert', {
args: args,
supportedSelections: [ 'linear' ]
} ) );
}
}
// 2) Vizuální režim (VE) – vlož DM uzel break => <br>
ensureCmd( ve.ui.commandRegistry, 'mwSoftBreak', [ { type: 'break' } ] );
// 3) 2017 wikitext režim – vlož doslova "<br />"
ensureCmd( ve.ui.wikitextCommandRegistry, 'mwSoftBreak', [ '<br />', true, true ] );
// 4) Po aktivaci editoru příkaz připoj k aktuálnímu povrchu + fallback pro klávesu
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' ] );
var node = surface && surface.$element && surface.$element[0];
if ( !node || node._mwSoftBreakBound ) return;
node._mwSoftBreakBound = true;
// Capture posluchač – kdyby registry z nějakého důvodu nestihly naskočit
node.addEventListener( 'keydown', function (e) {
if ( e.key === 'Enter' && e.shiftKey ) {
e.preventDefault();
e.stopImmediatePropagation();
try { surface.execute( 'content', 'insert', [ { type: 'break' } ] ); } catch (err) {}
}
}, true );
} );
} );