«ميدياويكي:Common.js»: الفرق بين المراجعتين

من Sudan Memory
اذهب إلى: تصفح، ابحث
 
(٤٨ مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر ١: سطر ١:
 
/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */
 
/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */
 +
 +
console.log("Entering Common.js");
  
 
$(function () {
 
$(function () {
     function splitTrailingText(input) {
+
     if (document.querySelectorAll('.abyat').length > 0) {
        const regex = /^(.*?[\u0620-\u064Aa-zA-Z])([^\u0620-\u064Aa-zA-Z]*)$/;
+
         var script = document.createElement('script');
        const matches = input.match(regex);
+
         script.src = "https://abdallagafar.github.io/poemFormat/poemFormat.js";
 
+
        script.addEventListener('load', function() {                           // Now the external script is loaded and its functions are ready to be used
        if (matches && matches.length > 1) {
+
             document.querySelectorAll('.abyat').forEach(function(poem) {       // Search for poems
            const alphabeticPart = matches[1];
+
                 poem.innerHTML = poemFormat(poem);
            const nonAlphabeticPart = matches[2];
+
             });
            return { alphabeticPart: alphabeticPart, nonAlphabeticPart: nonAlphabeticPart };
+
            console.log('Processed ' + poemFormatGrossCounter + ' beit.');
        }
+
        return { alphabeticPart: input, nonAlphabeticPart: '' };
+
    }
+
    function parsePoem(text, vWidth) {
+
         let lines = text.split('\n');
+
         let formattedLines = lines.map(line => {
+
            if (line.trim() === "") {
+
                // Replace empty lines with a line break
+
                return '<br>';
+
            } else if (line.startsWith(' ')) { // Check for lines starting with two or more spaces
+
                const { alphabeticPart, nonAlphabeticPart } = splitTrailingText(line.trim());
+
                return `<p class="vTail"><span class="vTail" style="width:${vWidth}px">${alphabeticPart}</span><span class="vTrailer">${nonAlphabeticPart}</span></p>`;
+
             } else if (line.startsWith('--') && line.endsWith('--')) { // Check for lines delimited with '--'
+
                 return `<p class="vMid" style="width:${vWidth}px">` + line.substring(2, line.length - 2).trim() + '</p>';
+
             } else {
+
                return `<p class="vHead" style="width:${0.9*vWidth}px">` + line.trim() + '</p>'; // Default to a regular paragraph for other lines
+
            }
+
 
         });
 
         });
         return formattedLines.join('');
+
         document.head.appendChild(script);                                     // Append the script element to the document's head to start loading the script
 
     }
 
     }
 
    var poems = document.querySelectorAll('.poem');                        // Find all div elements with the class 'poem'
 
    poems.forEach(function(poem) {                                          // Loop through each poem element and format it
 
        var vWidth = poem.getAttribute('vWidth') || 350;                    // Verse width, default is for quads
 
        poem.innerHTML = parsePoem(poem.innerText, vWidth);
 
    });
 
  
 
     var toggler = document.getElementsByClassName("treeBranch");
 
     var toggler = document.getElementsByClassName("treeBranch");

المراجعة الحالية بتاريخ ١٧:٣٥، ٢٦ مارس ٢٠٢٤

/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */
 
console.log("Entering Common.js");
 
$(function () {
    if (document.querySelectorAll('.abyat').length > 0) {
        var script = document.createElement('script');
        script.src = "https://abdallagafar.github.io/poemFormat/poemFormat.js";
        script.addEventListener('load', function() {                            // Now the external script is loaded and its functions are ready to be used
            document.querySelectorAll('.abyat').forEach(function(poem) {        // Search for poems
                poem.innerHTML = poemFormat(poem);
            });
            console.log('Processed ' + poemFormatGrossCounter + ' beit.');
        });
        document.head.appendChild(script);                                      // Append the script element to the document's head to start loading the script
    }
 
    var toggler = document.getElementsByClassName("treeBranch");
    var i;
 
    for (i = 0; i < toggler.length; i++) {
        toggler[i].addEventListener("click", function() {
            this.parentElement.querySelector(".treeBranch-nested").classList.toggle("treeBranch-active");
            this.classList.toggle("treeBranch-down");
        });
    }
}());