Довідка:Інструменти/Редагування

На цій сторінці розміщені скрипти, що працюють на сторінках редагування.

Панелі редагування

Переміщення панелі кнопок вниз

під область редагування (демо).

addOnloadHook(function(){
 var toolbar = document.getElementById('toolbar');
 if (!toolbar) return;
 var copywarn = document.getElementById('editpage-copywarn');
 if (!copywarn) return;
 copywarn.parentNode.insertBefore(toolbar, copywarn);
})


Випадаючий список

часто використовуваних шаблонів, при виборі із списку шаблон вставляється в кінець редагованого тексту, а його назва - в опис змін ( демо).

addOnloadHook(function(){
 var specialchars = document.getElementById('editpage-specialchars');
 if (!specialchars) return;
 specialchars.innerHTML = 
  '<select onchange=insertSelected(this)>'
 +'<option>Шаблони</option>'
 +'<option value="subst:welcome">Welcome</option>'
 +'<option value="subst:anon">Anon</option>'
 +'<option value="stub">Stub</option>' // і так далі - доповнюйте самі
 +'</select>' + specialchars.innerHTML;
}); 

function insertSelected(sel){
 if (sel.selectedIndex <= 0) return;
 var insertion = sel.options[sel.selectedIndex].value;
 document.editform.wpTextbox1.value += '{'+'{' + insertion + '}}\n';
 document.editform.wpSummary.value += insertion;
}

Список можна додати і на верхню панель - досить замінити 'editpage-specialchars' на 'toolbar', але при використанні "Переміщення панелі кнопок вниз" він буде там де й панель — знизу

Попередній перегляд

Клавіша миттєвого передперегляду

 InstaView 

що генерується оглядачем, тобто фактично MediaWiki → html парсер; зрозуміло, не розгортає шаблони і має інші обмеження (демо, внизу з'явиться кнопка InstaView).

Встановлення:

importScript('User:Pilaf/instaview.js', 'en');

Документація: en:User:Pilaf/InstaView

Кнопка швидкого передперегляду

  QPreview 

з використанням AJAX: з сервера запрошується і перемальовувався тільки стаття без перезавантаження всієї сторінки, що економить і час, і трафік.

Встановлення:

importScript('User:Alex_Smotrov/qpreview.js','ru');

Документація: qPreview

Редагування

Швидкий перехід

Швидкий перехід до потрібного місця редагованого вікі-коду з області попереднього перегляду. Джерело: ru:Участник:Alex Smotrov/jump2text.js

var editSearch = new function(){

var txtarea
var popup = null
var selText = 

this.onLoad = function(){
 var wikiPreview = document.getElementById('wikiPreview')
 txtarea = document.getElementById('wpTextbox1')
 if (!wikiPreview || !txtarea) return
 addEvent(wikiPreview, 'mouseup', editSearch.onMouseUp)
}

this.onMouseUp = function(e){
 hidePopup()
 if (! (selText = getSelectedText()) ) return
 selText = selText.replace(/^ +/, "").replace(/ +$/, "") //trim spaces
 if (selText.length < 1 || txtarea.value.indexOf(selText) == -1) return //empty or not found selection
 //show popup
 if (!popup) createPopup()
 var coords=getMousePos(e || window.event)
 popup.style.left=coords[0]+5+'px'
 popup.style.top=coords[1]+10+'px'
 popup.style.display='block'
}
 
this.onGo = function(){
 hidePopup()
 selectInTextArea(selText)
}
 
function createPopup(){
 popup=document.createElement('div')
 popup.className = 'popup'
 popup.title='Найти выделенный текст в окошке редактирования' 
 with (popup.style){ position='absolute'; padding='2px'; border='1px outset gray'; 
 zIndex='50'; backgroundColor='#EEEEEE'; cursor='pointer' }
 popup.onclick=editSearch.onGo
 popup.appendChild(document.createTextNode(' ↓ '))
 document.body.appendChild(popup)
}
  
function hidePopup(){
 if (popup) popup.style.display='none'
}
 
function selectInTextArea(text){
 if (txtarea.setSelectionRange) {//Mozilla/Opera
   var selPos = txtarea.value.indexOf(text)
   if (selPos < 0) return
   txtarea.focus()
   txtarea.setSelectionRange(selPos, selPos + text.length)
   //try to scroll texarea next to cursor
   txtarea.scrollTop = txtarea.scrollHeight * selPos / txtarea.value.length - 50
   //try to scroll the window to textarea better 
   if (window.pageYOffset + window.innerHeight < txtarea.offsetHeight + 200) window.scrollTo(0,txtarea.offsetHeight - 50)	  
 }else if (txtarea.createTextRange){ //IE
   var oRange = txtarea.createTextRange()
   if (oRange.findText(text))  oRange.select() 
 }
}
 
 
}//obj
 
 
//Common methods
 
function addEvent(obj, event, func) {
 if (obj.addEventListener) obj.addEventListener( event, func, false )
 else if (obj.attachEvent) obj.attachEvent ('on'+event, func)
} 
 
function getSelectedText(){
 if (window.getSelection) return window.getSelection().toString()
 else if (document.getSelection) return document.getSelection().toString()
 else if (document.selection && document.selection.createRange) return document.selection.createRange().text
 else return null
}
 
function getMousePos(ev){
 var posx = 0, posy = 0
 if (ev.pageX)  
   return [ev.pageX, ev.pageY]
 else if (ev.clientX) 
   return  [ev.clientX + document.body.scrollLeft + document.documentElement.scrollLeft,
            ev.clientY + document.body.scrollTop  + document.documentElement.scrollTop]
 else return null
}
 
 
//load object
if (wgAction=='edit' || wgAction=='submit')
addOnloadHook(editSearch.onLoad)

Інтервікі

Джерело: en:User:Alex Smotrov/iwiki.js.

Скрипт для зміни вигляду інтервікі та швидкого додавання інтервікі-покликів. Докладніше на en:User talk:Alex Smotrov/iwiki.js

var iwDisplayMode = < „1” або „2”> //якщо ви хочете використовувати модифіковані інтервікі
importScript('User:Alex Smotrov/iwiki.js','en')

Підпис

 ~    Зберегти статтю 

Додає кнопку підпису поряд з кнопкою «Зберегти» на потрібних сторінках: тобто на всіх сторінках обговорень і на сторінках Кнайпи Вікіпедії. Нагадує, якщо ви намагаєтеся записати сторінку без підпису.

Встановлення:

importScript('User:Alex_Smotrov/qsig.js','ru');

Документація: qSig

Різне

Виклик Вікіфікатора

Такий скрипт додасть внизу кнопку «Вікіфікатор» (праворуч від кнопки «Показати зміни»). Перед додаванням скрипта Ви можете поміняти для себе текст кнопки або гарячу клавішу виклику.

if (wgAction == 'edit' || wgAction == 'submit')
addOnloadHook(function(){
 var wpDiff = document.getElementById('wpDiff');
 if (!wpDiff) return;
 newBtn = document.createElement('input');
 newBtn.type = 'button'; 
 newBtn.onclick = Wikify;
 newBtn.value = 'Вікіфикатор'; //текст кнопки
 newBtn.accessKey = 'a'; //гаряча клавіша
 wpDiff.parentNode.insertBefore(newBtn, wpDiff.nextSibling);
})

Гарячі клавіші у вікні редагування

ru:User:Alex Smotrov/qkeys.js додає можливість використовувати у вікні редагування гарячі клавіші. Наприклад, Alt+- вставляє —, Alt+" вставляє «» (у Firefox 1.5 та IE).--Ahonc (обг.) 17:36, 14 грудня 2007 (UTC)[відповісти]

Опис тут.