מדיה ויקי:Gadget-EditToolbar.js

מתוך מורה הנבוכים
גרסה מ־16:11, 26 באוגוסט 2018 מאת Hamore (שיחה | תרומות) (יצירת דף עם התוכן "** SOURCE: he.wikipedia.org/wiki/MediaWiki:Gadget-EditToolbar.js **: function ExEditToolbar(){ var customButtons; mw.loader.using(['mediawiki.toolbar'],func...")
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)
קפיצה אל: ניווט, חיפוש

הערה: לאחר השמירה, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר: להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: לפתוח תפריט ← הגדרות (במחשב מק: Opera ← העדפות) ואז ללחוץ על פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files.
/***
SOURCE: he.wikipedia.org/wiki/MediaWiki:Gadget-EditToolbar.js
***/
function ExEditToolbar(){
	var customButtons;
	mw.loader.using(['mediawiki.toolbar'],function(){
		function addBtn( location, imageFile, tagOpen, sampleText, tagClose, speedTip ) {
		    mw.toolbar.addButton( ((location == 1) ? "//he.wikipedia.org/" : "//upload.wikimedia.org/" ) + imageFile,speedTip,tagOpen,tagClose,sampleText);
		}
		

		$(function() {
			 var toolbar = document.getElementById('toolbar');
			 if (!toolbar) return;

			 addBtn(0, "wikipedia/commons/c/c9/Button_strike.png", "<s>", "טקסט זה יסומן כמחוק", "</s>", "קו חוצה");
			 addBtn(0, "wikipedia/commons/1/1e/Button_font_color.png", '<span style="color: ColorName;">', "טקסט צבוע", "</span>", "טקסט צבוע");
			 addBtn(0, "wikipedia/commons/8/89/Button_bigger.png", '<big>', "טקסט מוגדל", "</big>", "טקסט מוגדל");
			 addBtn(0, "wikipedia/commons/0/0d/Button_smaller.png", '<small>', "טקסט מוקטן", "</small>", "טקסט מוקטן");
			 addBtn(0, "wikipedia/commons/6/6a/Button_sup_letter.png", "<sup>", "כתב עילי", "</sup>", "כתב עילי");
			 addBtn(0, "wikipedia/commons/a/aa/Button_sub_letter.png", "<sub>", "כתב תחתי", "</sub>", "כתב תחתי");
			 addBtn(0, "wikipedia/he/5/5f/Button_center.png", '<div style="text-align: center;">\n', "טקסט ממורכז", "\n</div>\n", "טקסט ממורכז");
			 addBtn(0, "wikipedia/commons/e/ea/Button_align_left.png", '<div class="mw-content-ltr">\n', "טקסט מיושר לשמאל", "\n</div>\n", "טקסט מיושר לשמאל");
			 addBtn(0, "wikipedia/he/1/13/Button_enter.png", "{{ש}}\n", "", "", "שורה חדשה");
			 addBtn(0, "wikipedia/commons/6/60/Button_insert_table.png", '{| class="wikitable" border="1"\n|-\n! כותרת 1\n! כותרת 2\n! כותרת 3\n|-\n| שורה 1, תא 1\n| שורה 1, תא 2\n| שורה 1, תא 3\n|-\n| שורה 2, תא 1\n| שורה 2, תא 2\n| שורה 2, תא 3\n|}\n', "", "", "טבלה");
			 addBtn(0, "wikipedia/he/1/12/Button_gallery.png", "<gallery>\n", "קובץ:PictureFileName.jpg|תיאור התמונה\nקובץ:PictureFileName.jpg|תיאור התמונה", "\n</gallery>\n", "גלריית תמונות");
			 addBtn(0, "wikipedia/he/2/23/Button_code.png", '<syntaxhighlight lang="LanguageName">\n', "טקסט זה יעוצב כמו קוד של ויקי או של שפת תכנות", "\n<\/syntaxhighlight>\n", "עיצוב קוד מקור");
			 addBtn(0, "wikipedia/commons/a/ac/Button_ref.PNG", "{{הערה|", "נא להזין את הערת השוליים כאן", "}}", "הערת שוליים");
			 addBtn(0, "wikipedia/he/3/34/Button_hide_comment.png", "<!-- ", "טקסט זה יוצג רק במצב עריכה", " -->", "הערה מוסתרת");
			 addBtn(0, "wikipedia/commons/c/c8/Button_redirect.png", "#הפניה [[", "שם דף היעד", "]]", "הפניה");
		});
			
	});

	function addToWikiEditor(){
		/* Math editor  */
		function mathDialog(tag, boxtitle, help){
			// Override user preference, otherwise mathjax enabler will just skip init
			mw.loader.using(['jquery.ui.dialog'],function(){
				var mathEditor=$('<div>');
				var mathInput=$('<textarea>', { dir:'ltr', rows: 8, cols: 40 }).css('width', '100%').appendTo(mathEditor);
				var displayOptions=$('<div>הצגה ממורכזת</div>').appendTo(mathEditor);
				var mathPreviewDiv=$('<div>').appendTo(mathEditor);
				var mathPreviewSpan=$('<span>', { dir: "ltr", 'class' : "tex" }).appendTo(mathPreviewDiv);
				var blockDisplay=$('<input type="checkbox" />').prependTo(displayOptions);
				mathEditor.dialog( {
					title: boxtitle, 
					height: 0.5 * $('body').height(),
					width: 0.5 * $('body').width(),
					buttons: {
						'הוספה': function(){
							$("#wpTextbox1").textSelection('encapsulateSelection', {replace: true, peri: '<' + tag +
								(blockDisplay.prop('checked')? ' display="block"' : '')+'>'+mathInput.val()+'</' + tag + '>'});
							$(this).dialog('close');
						},
						'עזרה':function(){window.open(mw.util.getUrl(help));
						},
						'ביטול': function(){ $(this).dialog('close');}
					} // buttons
				});
				
				function updatePreview() {
					api.get( {
						action: 'parse',
						prop: 'text',
						text: '<' + tag + '>' + mathInput.val() + '</' + tag + '>',
						contentmodel: 'wikitext'
					} )
					.done( function(d) {
						mathPreviewSpan.html(d.parse.text['*']);
						$( 'p', mathPreviewSpan ).css( { overflow: 'auto' } );
					} );					
				}
				mathInput
					.on( 'keyup', updatePreview )
					.on( 'paste', function() { setTimeout( updatePreview, 0 ) } ); // We need to do it after the event has been processed: We get the trigger before the content is actually updated.
				
				
				var api=new mw.Api();
				var selection = $("#wpTextbox1").textSelection( 'getSelection' );
				// Insert the selected text into the equation editor
				var mathRgx=new RegExp('<' + tag + '>(.*)<\/' + tag + '>');
				if(selection && mathRgx.test(selection)){
					mathInput.val(mathRgx.exec(selection)[1]);
					mathInput.keyup();
				}
			});
		}
		
			$('#wpTextbox1').on('wikiEditor-dialogs-loaded-insert-file',function(){
				$( '#wikieditor-toolbar-file-dialog' )
					.dialog( {
						open: function() {
							$( '#wikieditor-toolbar-file-format' ).val( 'ממוזער' );
						}
					} );
			});

			/* Strikethrough */
			$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
				'section': 'main',
				'group': 'format',
				'tools': {
					'strikethrough': {
						label: 'קו חוצה',
						type: 'button',
						filters: [ 'body.ns-4, body.ns-talk' ],
						icon: '//upload.wikimedia.org/wikipedia/he/8/8d/NewInlineBtn.png',
						action: {
							type: 'encapsulate',
							options: {
								pre: '<s>',
								peri: 'טקסט זה יסומן כמחוק',
								post: '</s>'
							}
						}
					}
				}
			} );

			/* Add new group to "Advanced" menu */
			$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
				'section': 'advanced',
				'groups': {
					'more': {
						'label': ""
					}
				}
			} );

			$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
				'section': 'advanced',
				'group': 'more',
				'tools': {
					/* Math formula */
					'formula': {
						label: 'נוסחה מתמטית (LaTeX)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Nuvola_apps_edu_mathematics_blue-p.svg/22px-Nuvola_apps_edu_mathematics_blue-p.svg.png',
						action: {type: 'callback', execute: (function () {return mathDialog('math', 'הוספת משוואה', 'עזרה:נוסחאות מתמטיות'); }) }
					},

					/* Colored text */
					'fontcolor': {
						label: 'טקסט צבוע',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/2/26/NewColorBtn.png',
						action: {
							type: 'encapsulate',
							options: {
								pre: '<span style="color: ColorName;">',
								peri: 'טקסט צבוע',
								post: '</span>'
							}
						}
					},

					/* Center-aligned text */
					'centeralign': {
						label: 'טקסט ממורכז',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Gnome-format-justify-center.svg/22px-Gnome-format-justify-center.svg.png',
						action: {
							type: 'encapsulate',
							options: {
								pre: '<div style="text-align: center;">\n',
								peri: 'טקסט ממורכז',
								post: '\n</div>\n'
							}
						}
					},

					/* Left-aligned text */
					'leftalign': {
						label: 'טקסט מיושר לשמאל',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Gnome-format-justify-left.svg/22px-Gnome-format-justify-left.svg.png',
						action: {
							type: 'encapsulate',
							options: {
								pre: '<div class="mw-content-ltr">\n',
								peri: 'טקסט מיושר לשמאל',
								post: '\n</div>\n'
							}
						}
					},

					/* Hidden note */
					'hiddennote': {
						label: 'הערה מוסתרת',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Gnome-document-new.svg/22px-Gnome-document-new.svg.png',
						action: {
							type: 'encapsulate',
							options: {
								pre: '<!-- ',
								peri: 'טקסט זה יוצג רק במצב עריכה',
								post: ' -->'
							}
						}
					},

					/* Code design */
					'sourcetags': {
						label: 'עיצוב קוד מקור',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/6/66/Utilities-terminal.svg/22px-Utilities-terminal.svg.png',
						action: {
							type: 'encapsulate',
							options: {
								pre: '<syntaxhighlight lang="LanguageName">\n',
								peri: 'טקסט זה יעוצב כמו קוד של ויקי או של שפת תכנות',
								post: '\n</syntaxhighlight>\n'
							}
						}
					}
				}
			} );
	}

	if ( mw.user.options.get('usebetatoolbar')) {
		mw.loader.using(['ext.wikiEditor'],function(){
			if ($('#wikiEditor-ui-toolbar').length === 1) addToWikiEditor(); // In case it loaded after toolbar initaliztion
			else $( '#wpTextbox1' ).on( 'wikiEditor-toolbar-doneInitialSections', addToWikiEditor);
		} );
	}
}
if ( ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) + 1 ) &&
		!$( '#wpTextbox1' ).prop( 'readonly' )
	) {
	$(document).ready(ExEditToolbar);
}