ব্যবহারকারী:RiazACU/AutoEd/whitespace.js

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
//<syntaxhighlight lang=javascript>

function autoEdWhitespace(str) { //MAIN FUNCTION describes list of fixes

    str = str.replace(/\t/g, " ");
    str = str.replace(/^ ? ? \n/gm, "\n");

    // Extra newlines
    if(str.search(/\uE000/g) < 0) { // see[[Private Use Area]]
      // Mark spacing before stub templates
      str = str.replace(/(\n)[ \t]*(\n)[ \t]*(\n\{\{[^{}]*\-stub\}\})/gm, "$1\uE000$2\uE000$3");
      str = str.replace(/(\n)[ \t]*(\n\{\{[^{}]*\-stub\}\})/gm, "$1\uE000$2");
      // Remove extra newlines
      str = str.replace(/(?:[\t ]*\n)+[\t ]*(\n\uE000\n\uE000\n)/gm, "$1");
      str = str.replace(/(\n\n)\n+/gm, "$1");
      str = str.replace(/(\n[\t ]*\n)(?:[\t ]*\n)+/g, "$1");
      // Unmark
      str = str.replace(/\uE000/g, '');
    }

//  str = str.replace(/== ? ?\n\n==/g, "==\n==");
    str = str.replace(/\n\n(\* ?\[?http)/g, "\n$1");
 
    str = str.replace(/^ ? ? \n/gm, "\n");
    str = str.replace(/\n\n\*/g, "\n*");
//  str = str.replace(/[ \t][ \t]+/g, " ");
    str = str.replace(/(=\n[\t ]*\n[\t ]*\n)(?:[\t ]*\n)+/g, "$1");
    str = str.replace(/ \n/g, "\n");
 
    //* bullet points
    if(str.search(/\uE000/g) < 0) { // see[[Private Use Area]]
      str = str.replace(/^(\#)(REDIRECT)/gi, '$1\uE000$2'); // Mark redirects
      str = str.replace(/^([\*#]+:*) /gm, "$1");
      str = str.replace(/^([\*#]+:*)/gm, "$1 ");
      str = str.replace(/[\t ]*\uE000[\t ]*/g,''); // Unmark redirects
    }
 
    //==Headings==
    str = str.replace(/^(={1,4} )[ ]*([^= ][^=]*[^= ])[ ]*( ={1,4})$/gm, "$1$2$3");
    str = str.replace(/^(={1,4})([^= ][^=]*[^= ])[ ]+(={1,4})$/gm, "$1$2$3");
    str = str.replace(/^(={1,4})[ ]+([^= ][^=]*[^= ])(={1,4})$/gm, "$1$2$3");

    return str;
}

//</syntaxhighlight>