User:Erutuon/common.js: difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
back to the previous form |
trying Dixtosa's new functions for skipping to posts |
||
Line 351: | Line 351: | ||
importScript('User:Dixtosa/rhyme.js'); |
importScript('User:Dixtosa/rhyme.js'); |
||
importScript('User:Dixtosa/expandASADRS.js'); |
importScript('User:Dixtosa/expandASADRS.js'); |
||
importScript('User:Dixtosa/sandbox.js'); |
|||
importScript('User:Dixtosa/RushToSubsection.js'); |
|||
// </nowiki> |
// </nowiki> |
Revision as of 16:40, 14 May 2017
// <nowiki>
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
pathoschild.TemplateScript.add([
{
name: 'root cat ',
isMinorEdit: true,
category: 'templates',
script: function(editor) {
var ArabicLetter = '[ءبت-غف-وي]';
var ArabicRoot = RegExp('(' + ArabicLetter + ') (' + ArabicLetter + ') (' + ArabicLetter + ')', 'g');
editorn
.replace(
ArabicRoot,
'\n{{ar-root|$1|$2|$3|notext=1}}'
)
.appendEditSummary('add root category');
}
},
{
name: 'convert to non-gloss def',
isMinorEdit: true,
category: 'templates',
script: function(editor) {
editor
.replace(/# ?(\{\{senseid[^\}]+\}\}) ?(\{\{(?:lb|label)[^\}]+\}\}) ?(.+)/g, '# $1 $2 {{non-gloss definition|$3}}')
.replace(/# ?(\{\{(?:lb|label)[^\}]+\}\}) ?(.+)/g, '# $1 {{non-gloss definition|$2}}')
.replace(/# ?([^\:\*].+)/g, '# {{non-gloss definition|$1}}')
.appendEditSummary('add [[T:non-gloss definition]]');
}
},
{
name: 'selection to non-gloss def',
isMinorEdit: true,
category: 'templates',
script: function(editor) {
editor
.replaceSelection(function(selected) {
var hasNumberedList = selected.includes('#');
if ( hasNumberedList ) { return selected
.replace(/# ?(\{\{senseid[^\}]+\}\}) ?(\{\{(?:lb|label)[^\}]+\}\}) ?(.+)/g, '# $1 $2 {{non-gloss definition|$3}}')
.replace(/# ?(\{\{(?:lb|label)[^\}]+\}\}) ?(.+)/g, '# $1 {{non-gloss definition|$2}}')
.replace(/# ?(.+)/g, '# {{non-gloss definition|$1}}');
} else {
return '{{non-gloss definition|' + selected + '}}';
}
})
.appendEditSummary('add [[T:non-gloss definition]]');
}
},
{
name: 'combine POS cats',
category: 'templates',
isMinorEdit: true,
script: function(editor) {
editor
.replace(/\[\[Category:((?:[A-Z][\w]+ ?)+) ([a-z][^\]]+)\]\]/g, '{{catlangname|{{subst:#invoke:languages/templates|getByCanonicalName|$1}}|$2}}')
.replace(/(.*getByCanonicalName\|([^\|\}]+)}}(?:\|[^\|\}]+)+)}}\n?.*getByCanonicalName\|\2}}((?:\|[^\|\}]+)+)/g, '$1$3')
.replace(/(.*getByCanonicalName\|([^\|\}]+)}}(?:\|[^\|\}]+)+)}}\n?.*getByCanonicalName\|\2}}((?:\|[^\|\}]+)+)/g, '$1$3')
.replace(/(.*getByCanonicalName\|([^\|\}]+)}}(?:\|[^\|\}]+)+)}}\n?.*getByCanonicalName\|\2}}((?:\|[^\|\}]+)+)/g, '$1$3');
}
},
{
name: '\'\'\' → ;',
category: 'formatting',
isMinorEdit: true,
script: function(editor) {
editor.replace(/\'\'\'([^\']+)\'\'\'/g, '; $1');
}
},
{
name: 'chars (grc)',
category: 'templates',
script: function(editor) {
editor.replaceSelection(function(selected){
var hasEquals = selected.includes("=");
var param = '';
if ( hasEquals ) {
param = '2=' + selected;
} else {
param = selected;
}
return '{{subst:chars|grc|' + param + '}}';
});
}
},
{
name: 'templatize categories',
category: 'templates',
script: function(editor) {
editor
.replace(/\[\[Category:(\w+)\:([\w ]+)\]\]\n\[\[Category:\1\:([\w ]+)\]\]\n\[\[Category:\1\:([\w ]+)\]\]/g, '{{C|$1|$2|$3|$4}}')
.replace(/\[\[Category:(\w+)\:([\w ]+)\]\]\n\[\[Category:\1\:([\w ]+)\]\]/g, '{{C|$1|$2|$3}}');
}
},
{
name: 'ar-root nocat',
isMinorEdit: true,
enabled: false,
category: 'templates',
script: function(editor) {
editor
.replace(/(\{\{ar-root\|[^\}]+)/g, '$1|nocat=1')
.appendEditSummary('removed from Arabic category');
}
},
{
name: 'grc verb',
editSummary: '',
script: function(editor) {
editor
.replace(/conj-present(\|form=[^\|\}]+)\|[^\|\}]+(\|[^\|\}]+)\|[^\|\}]+/g, 'conj|pres$1$2')
.replace(/conj-present\|[^\|\}]+(\|[^\|\}]+)\|[^\|\}]+/g, 'conj|pres$1')
.replace(/-(perf)ect[^\|\}]*(\|form[^\|\}]+)\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+)\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+)/g, '|$1$2$3$4')
.replace(/-(perf)ect[^\|\}]*\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+)\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+)/g, '|$1$2$3')
.replace(/-(perf)ect[^\|\}]*/g, '|$1')
.replace(/conj-(imperf)ect(\|form=[^\|\}]+)\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+)/g, 'conj|$1$2$3')
.replace(/conj-(imperf)ect\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+)/g, 'conj|$1$2')
.replace(/-aorist-(\d\|form[^\|\}]+)\|[^\|\}]*\|[^\|\}]*(\|[^\|\}]*)\|[^\|\}]*(\|[^\|\}]+)\|[^\|\}]+\|[^\|\}]+(\|[^\|\}]+\|[^\|\}]+)\|[^\|\}]+/g, '|aor-$1$2$3$4')
.replace(/-aorist-(\d)\|[^\|\}]*\|[^\|\}]*(\|[^\|\}]*)\|[^\|\}]*(\|[^\|\}]*)\|[^\|\}]*\|[^\|\}]+(\|[^\|\}]+\|[^\|\}]+)\|[^\|\}]+/g, '|aor-$1$2$3$4')
.replace(/-aorist-(\d)/g, '|aor-$1')
.replace(/-pluperfect[^\|\}]*(\|form[^\|\}]+)\|[^\|\}]+(\|[^\|\}]+\|[^\|\}]+\|[^\|\}]+)/g, '|plup$1$2')
.replace(/-pluperfect[^\|\}]*\|[^\|\}]+(\|[^\|\}]+\|[^\|\}]+\|[^\|\}]+)/g, '|plup$1')
.replace(/-pluperfect[^\|\}]*/g, '|plup')
.replace(/-(fut)ure(\|form[^\|\}]+)\|[^\|\}]+(\|[^\|\}]+)\|[^\|\}]+((?:\|[^\|\}]+)?)/g, '|$1$2$3$4')
.replace(/-(fut)ure\|[^\|\}]+(\|[^\|\}]+)\|[^\|\}]+(\|[^\|\}]+)/g, '|$1$2$3')
.replace(/-future-/g, '|fut-')
.replace(/-future ?(p?)[a-z]*(?=\|)/g, '|fut$1')
.replace(/([a-z]+)σ/g, '$1')
.replace(/grc-alt/g, 'alter|grc')
.replace(/etyl(\|[\w\-]+)\|grc}} {{m\1/g, 'der|grc$1')
.replace(/grc-cite/g, 'Q|grc')
.replace(/(\{\{m\|[^\|\}]+\|[^\|\}]+\|)\|/g, '$1t=')
.replace(/ I /g, ' to ')
.replace(/\{\{prefix\|([^\|\}]+\|[^\|\}]+)/g, '{{affix|$1-')
.replace(/\|sc=Deva/g, '')
.replace(/\{\{grc-ipa.*/g, '{{grc-IPA|}}')
.replace(/\|gloss/g, '|t')
.replace(/(\{\{...?fix)(\|[^\}]+)\|lang=([\w-]+)/g, '$1|$3$2')
.replace(/titleapp\=\(\{\{grc\-(\w+)\}\}\)/g, 'dial=$1')
.replace(/m\|grc\|([^\|\}]+)\|(?:\||t\=)([^\|\}]+)\}\} \+ \{\{m\|grc\|([^\|\}]+)\|(?:\||t=)([^\|\}]+)/g, 'affix|grc|$1|t1=$2|$3|t2=$4')
.replace(/([^\.] |\()(?:[A-Z][a-z]+ )?[A-Z][a-z]+ \{\{m(\|[^\|\}]+)/g, '$1{{cog$2')
.replace(/con-ε/g, 'con-e')
.replace(/con-α/g, 'con-a')
.replace(/con-ο/g, 'con-o')
.replace(/-νυμι/g, '-numi')
.replace(/-((?:pres|imperf))(?:ent|ect)/g, '|$1')
.replace(/(pres[^\|\}]+)((?:\|form[^\|\}]+)?)(\|[^\|\}]+)\|[^\|\}]+/g, '$1$2$3')
.replace(/(imperf[^\|\}]+)((?:\|form[^\|\}]+)?)\|[^\|\}]+(\|[^\|\}]+)/g, '$1$2$3')
.replace(/(grc-verb)[^\}]+/g, '$1')
.replace(/grc-pron(?:(\|)(?:w=)?)?/g, 'grc-IPA$1')
.replace(/(grc-conj.+)\|[^\}\|]+η[θτ][ιῐ](?=\W)/g, '$1')
.replace(/to am(?=\W)/g, 'to be')
.appendEditSummary('updated conjugation tables and other cleanup, with the help of [[m:TemplateScript|TemplateScript]]');
}
},
{
name: 'etym link cleanup',
isMinorEdit: true,
category: 'templates',
script: function(editor) {
editor
.replace(/\{\{etyl\|([^\|\}]+)\|([^\|\}]+)\}\} (?:\'\')?\[\[([^\]]+)\]\](?:\'\')?/g, '{{der|$2|$1|$3}}')
.appendEditSummary('fix link with the help of [[m:TemplateScript|TemplateScript]]');
}
},
{
name: 'Lua code',
isMinorEdit: true,
category: 'templates',
script: function(editor) {
editor.replaceSelection(function(selected) {
var hasEquals = selected.includes("=");
var param = '';
if ( hasEquals ) {
param = '2=' + selected;
} else {
param = selected;
}
return '{{code|lua|' + param + '}}';
});
},
},
{
name: 'swung dash',
enabled: false,
category: 'characters',
script: function(editor) {
editor.replace(/~/g, '⁓');
}
},
{
name: 'subst',
category: 'templates',
script: function(editor) {
editor.replaceSelection(function (selected) {
return selected
.replace(/\{\{/g, '{{subst:');
});
}
},
{
name: 'der and rel',
category: 'templates',
script: function(editor) {
editor.replaceSelection(
function (selected) {
var sectionType = ( selected.match(/=((?:Der|Rel))/)[1].toLowerCase() || 'der' );
// Use lang in first l template.
var langCode = selected.match(/\{\{l\|([a-z-]+)\|[^\|\}]+/)[1];
var numberOfColumns = ( selected.match(/\{\{top(\d)\}\}/)[1] || '3' );
return selected
.replace(/\n\* ?\{\{l\|[^\|\}]+\|([^\|\}]+)\}\}/g, '\n|$1')
.replace(/\n\{\{[^\}]+\}\}/g, '')
.replace(
/((?:\n\|[^\|\}\n]+)+)/g,
'\n{{' + sectionType + numberOfColumns + '\n|lang=' + langCode + '$1\n}}'
);
}
);
}
},
{
name: 'letters template',
enabled: false,
category: 'templates',
script: function(editor) {
var content = editor.get();
var hasDoc = content.includes('list doc');
var lang = content.match(/l(?:-self)\|([^\|\}]+)/)[1];
var nativeName = content.match(/\|hypernym=(?:\{\{l(?:-self)?\|[^\|\}]+\|)?([^\|\}\n]+)(?:\|[^\|\}]+)?(?:\}\})?/);
var nativeNameParameter = '';
if ( nativeName ) {
nativeNameParameter = '|native name=' + nativeName[1] + '\n';
} else {
nativeNameParameter = '';
}
editor
.replace(
/list helper 2(?:\n\|.+)+\n\|list=/g,
'letters\n|lang=' + ( lang || '' ) + '|sc=Latn\n' + nativeNameParameter
)
.replace(
/(?:<!--[^-]+-->)?(\(?)\{\{l(?:-self)?\|[^\|\}]+\|([^\|\}]+)(?:\|[^\|\}]+)?\}\}\s*\{\{l(?:-self)?\|[^\|\}]+\|([^\|\}]+)(?:\|[^\|\}]+)?\}\}(\)?)(?:,? )?/g,
'|$1$2/$3$4'
)
.replace(
/(?:<!--[^-]+-->)?(\(?)\{\{l(?:-self)?\|[^\|\}]+\|([^\|\}]+)(?:\|[^\|\}]+)?\}\}(\)?)(?:,? )?/g,
'|$1$2$3'
)
.replace(/\|([^\/])\/([^\/])/g, '|$1$2')
.replace(/<!--[^-]+-->(?=\}\})/g, '')
.replace(/(\}\})(<noinclude>)/, '$1<!--\n\n-->$2')
.replace(/\s+$/, '')
.appendEditSummary('converted to [[Template:letters]] with the help of [[m:TemplateScript|TemplateScript]]');
if ( !hasDoc ) {
editor
.append('<!--\n\n--><noinclude>\n{{list doc}}\n</noinclude>')
.appendEditSummary('added [[Template:list doc]] for documentation');
}
}
},
{
name: 'fix T:lang',
enabled: false,
script: function(editor) {
editor
.replace(/\{\{(lang\|[^\|\}]+\|[^\|\}]+)\|\}\}/g, '{{$1}}')
.replace(/\{\{(lang[^\}]+)\|lang=[^\|\}]+([^\}]*)\}\}/g, '{{$1$2}}')
.appendEditSummary('fixing parameters of [[Template:lang]] with the help of [[m:TemplateScript|TemplateScript]]')
.options({ minor: true });
}
},
{
name: 'temporary',
isMinorEdit: true,
// enabled: false,
script: function(editor) {
editor
.replace(/\[\[adverbial accusative\|Adverbial accusative\]\]/g, '{{adverbial accusative|ar}}')
.replace(/Adverbial accusative/g, '{{adverbial accusative|ar}}')
.appendEditSummary('adding [[T:adverbial accusative]], which also categorizes');
}
}/*
{
name: 'related and derived cleanup',
category: 'templates',
script: function(editor) {
editor
.replace()
.replace();
}
},*/
]);
});
syntaxHighlighterConfig = {
externalLinkColor: "#FFCC66", //orange
wikilinkColor: "#E6FFFF", //cyan
};
$(function() {
$("#firstHeading").prop("contenteditable", "true");
$('#firstHeading').keypress(function (e) {
var key = e.which;
if(key == 13) {
window.location = "https://en.wiktionary.org/w/index.php?search=" + $('#firstHeading').text() + "&title=Special%3ASearch&go=Go";
return false;
}
});
});
// From [[w:MediaWiki:Gadget-edittop.js]], with some modifications
var namespace = mw.config.get( 'wgNamespaceNumber' ) ;
if ($.inArray( mw.config.get('wgAction'), [ 'view', 'purge' ]) !== -1 && ( ( namespace >= 2 && namespace < 6 ) || namespace === 10 || namespace === 100 ) ) {
$(function edittop_hook () {
var localtitles = {
en: 'Edit lead section',
};
var our_content = $("#content, #mw_content").first();
var span1 = our_content.find("span.mw-editsection:not(.plainlinks)").first();
if (!span1.length) {
return;
}
var span0 = span1.clone().prop('contenteditable', 'false');
$("#mw_header h1, #content h1").first().append(span0);
span0.find("a").each(function (idx) {
var a = $(this);
a.attr("title", localtitles.en);
if ( !/&(ve|)section=T/.test( a.attr( "href" ) ) ) { // not transcluded
a.attr( "href", a.attr( "href" ).replace( /&(ve|)section=\d+/, "&$1section=0&summary=/*%20top%20*/%20" ) );
} else if ( /&vesection=/.test( a.attr( "href" ) ) ) { // transcluded, VE
a.attr( "href", mw.util.getUrl( mw.config.get( 'wgPageName' ) ) + "?veaction=edit&vesection=0&summary=/*%20top%20*/%20" );
} else { // transcluded, not VE
a.attr( "href", mw.util.getUrl( mw.config.get( 'wgPageName' ) ) + "?action=edit§ion=0&summary=/*%20top%20*/%20" );
}
});
});
}
importScript('User:Dixtosa/AjaxEdit.js');
importScript('User:Dixtosa/rhyme.js');
importScript('User:Dixtosa/expandASADRS.js');
importScript('User:Dixtosa/sandbox.js');
importScript('User:Dixtosa/RushToSubsection.js');
// </nowiki>