Difference between revisions 137630 and 138274 on testwiki

/// PerfektesChaos/js/WikisyntaxTextMod/?O.js
// WikisyntaxTextMod:  Objects for wiki syntax specific code
/// 2012-06-1627 [email protected]
/// Fingerprint: #0#0#
/// <nowiki>
/* jshint curly:true, latedef:true, laxbreak:true,
           trailing:true, undef:true, white:false  */
/* global mw: true, mediaWiki: false                                   */
/*jslint   plusplus: true, regexp: true, sloppy: true, unparam: true,
           vars: true, white: true, maxerr: 50 */
/*globals  mw: true, mediaWiki: false                                  */


if (typeof(mediaWiki) !== "object") {   // disconnected
   mw  =  { libs:   { WikiSyntaxTextMod:  { }
                    },
            log:    function () {}
          };
}
if (typeof(mw.libs.WikiSyntaxTextMod) !== "object") {   // isolated
   mw.libs.WikiSyntaxTextMod  =  { };
}
if (typeof(mw.libs.WikiSyntaxTextMod.o) !== "object") {
   mw.libs.WikiSyntaxTextMod.o  =  { };
}
mw.libs.WikiSyntaxTextMod.o.vsn  =  -4.612;
if (typeof(mw.libs.WikiSyntaxTextMod.bb) !== "object") {
   mw.libs.WikiSyntaxTextMod.bb  =  { };
}
if (typeof(mw.libs.WikiSyntaxTextMod.debugging) !== "object") {
   mw.libs.WikiSyntaxTextMod.debugging  =  { debugging: false };
}

(contracted; show full)   //       >< .score
   //        < .lead
   //        < .slang
   //       .extend()
   //    .str.trimL()
   //    .l10n.lang.flop()
   //    .str.trimR()
   // 2012-06-
027 [email protected]
   var learnt  =  false;
   var left    =  false;
   var r       =  false;
   var s       =  this.score.substr(0, ahead);
   var slang   =  false;   // language specification
   var story;              // heading part of article title
   s  =  WSTM.str.trimL(s, false);
   if (s.length < ahead) {
      story   =  s;
      learnt  =  true;
   }   // trimmed
   story  =  WSTM.l10n.lang.flop(s);
   if (! story) {
      slang  =  WSTM.str.trimR(s, false).toLowerCase();
      if (slang !== s) {
         learnt  =  true;
      }
   }   // matching lang?
mw.log(WSTM.debugging,".o.Wikilink.language  "+story,0);
   if (! slang) {
      if (this.justify) {
         switch (this.justify) {
            case  1 :
               slang   =  false;
               learnt  =  story;
               break;
            case  2 :
               slang   =  "en";
               learnt  =  true;
               break;
         }   // switch this.justify
         left  =  true;
      }
   }
   if (slang === WSTM.g.projLang) {
      slang   =  false;
      learnt  =  true;
   }
   if (learnt || slang || story) {   // language or similar identified
      this.score  =  WSTM.str.trimL(this.score.substr(ahead + 1),
                                    false);
      if (story) {
         this.score  =  story + ":" + this.score;
         slang       =  false;
      } else {
         this.score  =  WSTM.str.trimL(this.score, ;
         if (left) {
               this.score  =  s + ":" + this.score;
         }
      }
      if (slang) {
         this.slang  =  slang + ":";
         r           =  true;
      }
      this.extend(1);
      this.justify  =  false;
   } else {
(contracted; show full)          &&  this.justify === 2) {  // no lang, but needed
         this.slang  =  "en:";
         this.extend(1);
         this.lead  =  true;
      }
      if (this.slang) {   // lang detected
         // 200A   8203  ZERO WIDTH SPACE  used in bo:
         // 200B   8204  ZERO WIDTH NON-JOINER  used in Farsi, kn:
, mzn:
         // 200C   8205  ZERO WIDTH JOINER      used in ml:
         if (this.score.indexOf("&#x200A;") >= 0) {
            re  =  new RegExp("&#x200A;", "g");
            s           =  String.fromCharCode(8203);
            if (re.test(this.score)) {
               this.score  =  this.score.replace(re, s);
            }
         }
         if (this.score.indexOf("&zw") >= 0) {
            re  =  new RegExp("&zwnj;", "g");
            if (re.test(this.score)) {
(contracted; show full)
// Emacs
// Local Variables:
// encoding: iso-8859-1-dos
// fill-column: 80
// End:

/// EOF </nowiki>   WikiSyntaxTextMod/?O.js