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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Панелі редагування[ред. | ред. код]

Переміщення панелі кнопок вниз[ред. | ред. код]

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

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)[відповісти]

Опис тут.