User:Visarga/monobook.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
![]() | The accompanying .css page for this skin can be added at User:Visarga/monobook.css. |
//TODO - improvements
//- optimize speed - don't use regexes, extract the last word with substring()
//- optimize size - declare correct spellings like this w('Śiva,Śakti,...');
// - automatically deduce the non-diacritics correspondent
//- matching to be case insensitive, preserve case for the first letter
//- auto build dictionary in a webpage
// - detect all diacritic words from the textarea, add to dictionary
var c;
var vLetters=new Array('ā|ā','Ā|Ā','ū|ū','ū|ū','ī|ī','Ī|Ī','ḷ|ḷ','Ḷ|Ḷ','ṃ|ṃ','Ṃ|Ṃ','ḥ|ḥ','Ḥ|Ḥ',"Ś|Ś","ś|ś",'ṣ|ṣ','Ṣ|Ṣ','ṇ|ṇ','Ṇ|Ṇ','ñ|ñ','Ñ|Ñ','ṭ|ṭ','Ṭ|Ṭ','ḍ|ḍ','Ḍ|Ḍ','ṝ|ṝ','Ṝ|Ṝ','Ḹ|Ḹ','ḹ|ḹ');
var sLetters='';
var Letters=[];
for (c=0; c<vLetters.length; c++) {
var vLine=vLetters[c].split('|');
if (sLetters != '') { sLetters=sLetters+'|'; }
sLetters=sLetters+vLine[0];
Letters[vLine[0]]=vLine[1];
}
var rxLetters=new RegExp('('+sLetters+')', "ig");
var vWords=new Array(
'Siva|Śiva','tantraloka|tantrāloka','Sakti|Śakti','Saivism|Śaivism','sakti|śakti','vivarana|vivaraṇa','para-trisika|parā-trīśikā','kasmir|kaśmir','pratyabhijna|pratyabhijñā','maya|māyā','purusa|puruṣa','anda|aṇḍa','ahamkara|ahaṃkāra','prakasa|prakāśa','prakrti|prakṛti','vidya|vidyā','prithvi|pṛithvī','siva|śiva','vak|vāk','kala|kāla',
'jnana|jñāna','Isvara|Īśvara','sadasiva|sadāśiva','kancukas|kañcukas','Ananda|Ānanda','sutra|sūtra','raga|rāga','isvara|īśvara','Sastra|Śāstra','Sambhunatha|Śambhunātha','vayu|vāyu','samkhya|sāṃkhya','payu|pāyu','kundalini|kuṇḍalinī','kriya|kriyā','bhatta|bhaṭṭa','anu|aṇu','suddha|śuddha','Akasa|Ākāśa','Saktipat|Śaktipāt',
'spanda-karikas|spanda-kārikās','paravak|pārāvak','pani|pāni','pasu|paśu','narayana|nārāyaṇa','mahabhutas|mahābhūtas','karika|kārikā','kala|kalā','iccha|icchā','hrdaya|hṛdaya','vac|vāc','vimarsa|vimarśa','vaikhari|vaikharī','tantrasara|tantrasāra','svatantrya|svātantrya','stavacintamani|stavacintāmaṇi','pratyabhijnahrdayam|pratyabhijñahṛdayam','pratyabhijna|pratyabhijña','para-trisika-vivarana|parā-trīśikā-vivaraṇa','malinivijaya|mālinīvijaya',
'ksemaraja|kṣemarāja','Suddha|Śuddha','akasa|ākāśa','Siva-Sakti|Śiva-Śakti','tanmatras|tanmātras','sparsa|sparśa','somananda|somānanda','pasa|pāśa','pratibha|pratibhā','paramartasra|paramārtasra','madhyama|madhyamā','karma|kārma','kancuka|kañcuka','karna|karṇa','antahkarana|antaḥkaraṇa','amba|ambā','Ṛsi|Ṛṣi','sivopanisad|śivopaniṣad','Sivasutra|Śivasūtra','Agama|Āgama',
'yogini|yoginī','vimarsini|vimarśinī','vijnana|vijñāna','upayah|upāyaḥ','tivra-tivra-saktipata|tīvra-tīvra-śaktipāta','tivra-manda-saktipata|tīvra-manda-śaktipāta','tivra-madhya-saktipata|tīvra-madhya-śaktipāta','srsti|sṛṣṭi','rupa|rūpa','prthvi|pṛthvī','pasianti|paśiantī','paratrisika|parātrīśikā','paramarthasara|paramārthasāra','natyasastra|nāṭyaśāstra','mayiya|māyīya','matrka|mātṛkā','mudra|mudrā','madhya-tivra-saktipata|madhya-tīvra-śaktipāta','madhya-manda-saktipata|madhya-manda-śaktipāta','madhya-madhya-saktipata|madhya-madhya-śaktipāta',
'ksemaraja|kṣemaraja','jnanendriyas|jñānendriyas','jnanam|jnānam','duti|dūtī','bija|bīja','bhutiraja|bhūtirāja','bandhah|bandhaḥ','apara|aparā','aham|ahaṃ','abhinavabharati|abhinavabhāratī','Isvarapratyabhijna-vivrti-vimarsini|Īśvarapratyabhijñā-vivṛti-vimarśini','Isvarapratyabhijna-vimarsini|Īśvarapratyabhijñā-vimarśini','Isvarapratyabhijna|Īśvarapratyabhijñā','Sambhavopaya|Śāmbhavopāya','Saktopaya|Śāktopāya','Sakta|Śākta','Anavopaya|Āṇavopāya','anavamala|āṇavamala','Suddha-vidya|Śuddha-vidyā','Sripurvasastra|Śrīpūrvaśāstra',
'srotra|śrotra','srota|śrota','Srikanthanath|Śrikanthanath','anava|ānava','Anava|Ānava','Anandavardhana|Ānandavardhana','ananda|ānanda','akasic|ākāśic','Sivasaktyavinabhava-stotra|Śivaśaktyavinābhāva-stotra','sivarahasyagama|śivarahasyagama','Sivadrsti|Śivadṛṣṭi','Sivadrstya-locana|Śivadṛṣtyā-locana','Siddhanta|Śiddhānta','agamas|āgamas','abhasana|ābhāsana','abhasa|ābhāsa','sadadhvan|ṣaḍādhvān','Sankara|Śañkara','Sat|Ṣat','Sambhunatha|Śambhunatha',
'saktipata|śaktipāta','Saktipata|Śaktipāta','sakticalana|śakticalana','Saivists|Śaivists','sabda|śabda','Sabda|Śabda','yoginibhu|yoginībhū','yogini-vaktra|yoginī-vaktra','yogesvaridatta|yogeśvaridatta','yogesvar|yogeśvar','vamanatha|vāmanātha','vakyapadiya|vākyapadīya','vyapakatva|vyāpakatva','visuddha|viśuddha','vimarsana|vimarśana','vimala|vimalā','vimalakala|vimalakalā','vilapana|vilāpana','vijnanabhairava|vijñānabhairava','vijnana|vijñana',
'vedanta|vedānta','vatasika|vatasikā','vaisnavas|vaiṣṇavas','upayas|upāyas','unmesa|unmeṣa','ullasa|ullāsa','tivra|tīvra','trisulabija|triśūlābija','tantravatadhanika|tantravaṭadhānikā','tantraraja-tantra|tantrarāja-tantra','tanmatra|tanmātra','sutras|sūtras','samarasya|sāmarasya','susupti|suṣupti','sphurana|sphuraṇa','sphuratta|sphurattā','siddha-yogesvari-mata-tantra|siddha-yogeśvarī-mata-tantra','samskaras|saṃskāras','samskara|saṃskāra','samkoca|saṃkoca',
'samhara|saṃhāra','samhara|saṃhara','sarvakartrtva|sarvakartṛtva','sarvajnatva|sarvajñatva','saivagama|saivāgama','ramadeva|rāmadeva','rudrayamala|rudrayāmala','rudra-yamala-tantra|rudra-yāmala-tantra','rasana|rasanā','rahasyapancadasika|rahasyapañcadaśikā','prthivi|pṛthivi','pata|pāta','purnatva|pūrṇatva','purvatantra|pūrvatantra','purvapancika|pūrvapañcikā','pada|pāda','puryastaka|puryaṣtaka','prakasa-vimarsa|prakāśa-vimarśa','prakirnkavivarana|prakīrṇkavivaraṇa','prakriya|prakriyā',
'pasyanti|paśyanti','paratrisikavivarana|parātrīśikāvivaraṇa','paratrisika-laghuvrtti|parātrīśikā-laghuvṛtti','paratrika|parātrika','parapara|parāpara','paramarsa|parāmarśa','para-sakti|parā-śakti','para-pravesika|parā-prāvesikā','para-apara|parā-aparā','para|parā','paryantapancasika|paryantapañcāśīkā','paramarthadvadasika|paramārthadvādaśikā','paramarthacarca|paramārthacarcā','paramesvara|parameśvara','paramasiva|paramaśiva','padarthapravesa-nirnaya-tika|padārthapraveśa-nirṇaya-ṭīkā','natha|nātha','nitya-sodasika-arnava|nityā-ṣoḍaśika-arṇava','nirnaya|nirṇaya','narasimhagupta|narasiṃhagupta',
'malinivijaya-varttika|mālinīvijayā-varttika','mrgendra|mṛgendra','mula|mulā','moksa|mokṣa','mandalam|maṇḍalam','matravirya|matravīrya','mantresvara|mantreśvara','mantra-mahesvara|mantra-maheśvara','mahadeva|mahādeva','mahabhuta|mahābhūta','mahabhuta|mahābhutā','mahopadesa-vimsatika|mahopadeśa-viṃśatikā','madhyadesa|madhyadeśa','madhuraja|madhurāja','lalitaditya|lalitāditya','laksmasnagupta|lakṣmasṇagupta','laghvi|laghvī','kavyakautukavivarana|kāvyakauṭukavivaraṇa','karikas|kārikās','kara|kāra',
'kalikula|kālīkula','kali|kālī','kalidasa|kālidāsa','ksema|kṣema','kularnava-tantra|kulārṇava-tantra','kathamukha-tilaka|kathāmukha-tilaka','kailasa|kailaśa','jagrat|jāgrat','jnanarnava|jñānārṇava','jnanendriya|jñānendriya','jnanana|jñānana','isvara|iśvara','ichha|ichhā','hrdayam|hṛdayam','heart-bija|heart-bīja','haridasa|haridāsa','ghrana|ghrāṇa','ghatakarpara|ghaṭakarpara','ghata-karpara-kulaka-vivrti|ghaṭa-karpara-kulaka-vivṛti','drsti|dṛṣṭi',
'dhvanyalokalocana|dhvanyālokalocana','dhvanyaloka|dhvanyāloka','devistotravivarana|devīstotravivaraṇa','dehasthadevatacakra-stotra|dehasthadevatācakra-stotra','cit-ananda|cit-ānanda','cit-Ananda|cit-Ānanda','cidananda|cidānanda','camatkara|camatkāra','caksu|cakṣu','bijavasthapana|bījāvasthapāna','brahmanda|brahmāṇḍa','bodhapancadasika|bodhapañcadaśikā','bhedabhedopaya|bhedābhedopāya','bhedabheda|bhedābheda','bhedavada-vidarana|bhedavāda-vidāraṇa','bhattacaryya|bhaṭṭācāryya','bhartrhari|bhartṛhari','bhagavadgitartha-samgraha|bhagavadgītārtha-saṃgraha','bhagavadgita|bhagavadgītā','asvini|aśvini',
'asuddha-vidya|aśuddha-vidyā','avidya|avidyā','asphuta|asphuṭa','anuttarastika|anuttarāṣṭikā','anupaya|anupāya','ahamkara|ahaṃkara','ahamkara|ahamkāra'
);
var sWords='';
var mapWords=[];
for (c=0; c<vWords.length; c++) {
var vLine=vWords[c].split('|');
if (vLine[0].length<3) { continue; }
if (sWords != '') { sWords=sWords+'|'; }
sWords=sWords+vLine[0];
mapWords[vLine[0]]=vLine[1];
}
var rxWords=new RegExp('('+sWords+')$', "i");
function keyHandler1(event)
{
if (event.keyCode == 32) {
var tb = document.editform.wpTextbox1;
var text = tb.value;
var sel1 = tb.selectionStart;
var sel2 = tb.selectionEnd;
var scroll = tb.scrollTop;
var text1=text.substring(0,sel1);
var text2=text.substring(sel1);
text1 = text1.replace(rxWords, function ($0, $1) { if (mapWords[$0]) { return mapWords[$0]; } else { return $0; } } );
text = text1 + text2;
if (tb.value != text) {
tb.value = text;
tb.setSelectionRange(sel1,sel2);
tb.scrollTop = scroll;
}
}
}
function keyHandler2(event)
{
var tb = document.editform.wpTextbox1;
var text = tb.value;
var sel1 = tb.selectionStart;
var sel2 = tb.selectionEnd;
var scroll = tb.scrollTop;
var text1=text.substring(0,sel1);
var text2=text.substring(sel1);
text1 = text1.replace(rxLetters, function ($0, $1) { if (mapLetters[$0]) { return mapLetters[$0]; } else { return $0; } } );
text = text1 + text2;
if (tb.value != text) {
tb.value = text;
tb.setSelectionRange(sel1,sel2);
tb.scrollTop = scroll;
}
}
document.onkeydown = keyHandler1;
document.onkeyup = keyHandler2;