Previewmaker.prototype.firstBit = function() {
try{
if (mw.config.get("wgNamespaceNumber") !== 0){
// dont't be givin' me no subsequent paragraphs, you hear me?
/// first we "normalize" section headings, removing whitespace after, adding before
var d = this.data;
if (getValueOf('popupPreviewCutHeadings')) {
this.data = this.data.replace(RegExp('\\s*(==+*==+)\\s*', 'g'), '\n\n$1 ');
/// then we want to get rid of paragraph breaks whose text ends badly
this.data = this.data.replace(RegExp('() *\\n{2,}', 'g'), '$1\n');
this.data = this.data.replace(RegExp('^*'), '');
stuff = (RegExp('^(|\\n)*')).exec(this.data);
if (stuff) {
d = stuff;
}
if (!getValueOf('popupPreviewFirstParOnly')) {
d = this.data;
}
/// now put \n\n after sections so that bullets and numbered lists work
d = d.replace(RegExp('(==+*==+)\\s*', 'g'), '$1\n\n');
}
// superfluous sentences are RIGHT OUT.
// note: exactly 1 set of parens here needed to make the slice work
d = d.parenSplit(RegExp('(+*\\s)', 'g'));
// leading space is bad, mmkay?
d = d.replace(RegExp('^\\s*'), '');
var notSentenceEnds = RegExp('(|etc|sic|Dr|Mr|Mrs|Ms|St|no|\\]*|\\s)$', 'i');
d = this.fixSentenceEnds(d, notSentenceEnds);
var maxChars=getValueOf('popupMaxPreviewCharacters');
var n = getValueOf('popupMaxPreviewSentences');
var dd;
do {
dd = this.firstSentences(d, n);
--n;
}
while (dd.length > maxChars && n > 0);
this.data = dd;
} else {
//TODO: Limit this override to urls that start with http://*.wiktionary.org/
//TODO: extend the above section to also preview Wikipedia links
var charsWikt = 0;
var linesWikt = this.data.split('\n');
for (jWikt = 0; jWikt < linesWikt.length; jWikt++) {
linesWikt = linesWikt.replace(/\{\{transitive}}/g, '');
linesWikt = linesWikt.replace(/\{\{countable}}/g, '');
linesWikt = linesWikt.replace(/\{\{cattag\|(.*?)}}/g, "");
linesWikt = linesWikt.replace(//g, "'");
if (linesWikt.search(/^/) == -1) {
if (linesWikt.search(/^==/) == -1) {
linesWikt = '';
}
}
charsWikt += linesWikt.length;
}
if (charsWikt < 2) {
linesWikt = "No properly formatted content";
}
var maxChars = getValueOf('popupMaxPreviewCharacters');
var n = getValueOf('popupMaxPreviewSentences');
var dd = '';
for (jWikt = 0; jWikt < linesWikt.length; jWikt++) {
if (linesWikt !== '') {
dd += linesWikt + '\n';
}
if (dd.length < maxChars) {
this.data = dd;
}
}
}
}
catch (e) {
console.log("error from mess with popups: ", e);
}
};