مستخدم:HitomiAkane/ar2arz.js
المظهر
ملحوظه: بعد التسييف، ممكن تحتاج تفضى كاش البراوزر بتاعك عشان تشوف التغييرات اللى عملتها، بالطريقه دى:
- فايرفوكس وسفارى: دوس ⇧ Shift مع Reload او Ctrl-F5 او Ctrl-R (اللى هو: Command-R على ماكنتوش)
- جوجل كروم: دوس Ctrl-Shift-R (اللى هو: Command-Shift-R على ماكنتوش)
- انترنت اكسبلورر: دوس Ctrl مع Refresh فى نفس الوقت، او Ctrl-F5
- كونكرر: دوس Reload او F5
- اوبرا: فضى الكاش من Tools → Preferences
mw.loader.load('//arz.wikipedia.org/wiki/User:HitomiAkane/ar2arzReplace.js?action=raw&ctype=text/javascript');
ve.ui.myARZCommand = function VeUimyARZCommand() {
ve.ui.myARZCommand.super.call(this,'myARZ' /*Command name*/);
};
OO.inheritClass( ve.ui.myARZCommand, ve.ui.Command );
ve.ui.myARZCommand.prototype.execute = function () {
searchAndReplace();
return true;
};
ve.ui.commandRegistry.register( new ve.ui.myARZCommand() );
ve.ui.myARZTool = function VeUimyARZTool() {
ve.ui.myARZTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.myARZTool, ve.ui.Tool );
ve.ui.myARZTool.static.name = 'myARZ';
ve.ui.myARZTool.static.group = 'insert';
ve.ui.myARZTool.static.title = 'تمصير';
ve.ui.myARZTool.static.icon = 'hieroglyph';
ve.ui.myARZTool.static.commandName = 'myARZ';
ve.ui.toolFactory.register( ve.ui.myARZTool );
function searchAndReplace( fromText, toText, replaceAll, matchCase ) {
var surfaceModel, fragment, wikitext, data = [], onCompleteText;
surfaceModel = ve.init.target.getSurface().getModel();
fragment = surfaceModel.getFragment();
if ( fragment.getSelection().isCollapsed() ) {
surfaceModel.setLinearSelection(
new ve.Range( 0, surfaceModel.getDocument().data.getLength() )
);
fragment = surfaceModel.getFragment();
onCompleteText = true;
}
if ( ve.init.target.getSurface().getMode() === 'source' ) {
// Source mode
wikitext = fragment.getText( true ).replace( /^\n/, '' ).replace( /\n\n/g, '\n' );
wikitext = replaceThis( wikitext );
wikitext.split( '' ).forEach( function ( c ) {
if ( c === '\n' ) {
data.push( { type: '/paragraph' } );
data.push( { type: 'paragraph' } );
} else {
data.push( c );
}
} );
if ( onCompleteText ) {
fragment.insertContent( wikitext );
} else {
fragment.insertContent( data );
}
if ( onCompleteText ) {
fragment.collapseToStart().select();
}
return true;
}
}
ve.ui.triggerRegistry.register(
'myARZ',{
mac: new ve.ui.Trigger( 'cmd+shift+y' ),
pc: new ve.ui.Trigger( 'ctrl+shift+y' )
}
);