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

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

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

Переміщення панелі кнопок внизРедагувати

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

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)

Опис тут.