View Single Post
Black Rose
Veteran Member
Join Date: Feb 2011
Location: Stockholm, Sweden
Old 01-22-2021 , 20:01   Re: forum bbcode suggestions
Reply With Quote #4

https://chrome.google.com/webstore/d...gnaaelnpjljija (or something similar)

Nothing fancy.
It doesn't add line numbers to edits or new posts, only existing posts on page load.
Edit to your liking.

PHP Code:
var lineHeight 0;
var 
listAlreadyDone = [];
var 
listSpoilers = [];

function 
CalculateLineHeight(element)
{
    var 
temp element.cloneNode(false);
    
temp.innerHTML 'a<br>b';
    
element.parentNode.insertBefore(tempelement);
    var 
retVal temp.offsetHeight 2.0;
    
temp.parentNode.removeChild(temp);
    
    return 
retVal;
}

function 
CreateLineCountBeforeElement(element)
{
    if ( 
listAlreadyDone.includes(element) )
        return;
    if ( ! 
lineHeight )
        
lineHeight CalculateLineHeight(element);
    
    if ( ! 
lineHeight )
        return;
    
    var 
numLines Math.ceil(element.offsetHeight lineHeight);
    
    if ( ! 
numLines )
        return;

    var 
tempDiv document.createElement('div');
    
    for ( var 
<= numLines i++ )
        
tempDiv.innerHTML += '&nbsp;<br>';
    
    
tempDiv.className 'LineCount';
    
tempDiv.style.float 'left';
    
tempDiv.style.textAlign 'right';
    
tempDiv.style.color 'grey';
    
tempDiv.style.borderRight "1px dotted grey";
    
tempDiv.style.marginRight '6px';
    
tempDiv.style.userSelect 'none';

    
element.parentNode.insertBefore(tempDivelement);

    
// Add copy button...

    
var CodeBoxHeader element;
    while ( 
true ) {
        
CodeBoxHeader CodeBoxHeader.parentNode;

        if ( 
CodeBoxHeader.getElementsByClassName('smallfont').length ) {
            
CodeBoxHeader CodeBoxHeader.getElementsByClassName('smallfont')[0];
            break;
        }
    }

    
CodeBoxHeader.style.marginBottom '8px';

    var 
tempButton document.createElement('button');
    
tempButton.style.float 'right';
    
tempButton.className 'smallfont';
    
tempButton.value listAlreadyDone.length;
    
tempButton.innerHTML 'Copy to clipboard';

    
tempButton.addEventListener("click", function() {
        
CopyCode(this.value);
    });

    
CodeBoxHeader.appendChild(tempButton);

    
listAlreadyDone.push(element);
}

function 
CopyCode(index)
{
    var 
range document.createRange();
    
range.selectNode(listAlreadyDone[index]);
    
window.getSelection().addRange(range);

    try {
        
document.execCommand('copy');
    } catch (
err) {
        
alert('An error occured while copying text to clipboard');
    }

    
setTimeout('window.getSelection().removeAllRanges()'100);
}

function 
CheckForNewCodeBoxes() {

    var 
inputElements document.getElementsByTagName('input');


    for ( var 
inputElements.length i++ )
    {
        if ( 
inputElements[i].value == 'Show' )
        {
            
listSpoilers.push(inputElements[i])
            
inputElements[i].click();
        }
    }

    var 
CodeBoxesPawn document.getElementsByClassName('pawn');
    
    for ( var 
CodeBoxesPawn.length i++ )
        
CreateLineCountBeforeElement(CodeBoxesPawn[i]);
    
    var 
CodeBoxesCode document.getElementsByTagName('pre');
    
    for ( var 
CodeBoxesCode.length i++ )
    {
        if ( 
CodeBoxesCode[i].getElementsByClassName('pawn').length )
            continue;

        if ( 
CodeBoxesCode[i].getElementsByTagName('code').length )
            continue;
        
        
CodeBoxesCode[i].innerHTML '<code><code>' CodeBoxesCode[i].innerHTML '</code></code>';
    }
    
    var 
CodeBoxesPHP document.getElementsByTagName('code'); // Which also now includes the normal "Code" boxes.
    
    
for ( var CodeBoxesPHP.length i+=)
    {
        
CreateLineCountBeforeElement(CodeBoxesPHP[i]);
        
CodeBoxesPHP[i].style.display 'block';
    }

    for ( var 
listSpoilers.length i++ )
           
listSpoilers[i].click();

    
listSpoilers.length 0;
}

CheckForNewCodeBoxes(); 
Attached Thumbnails
Click image for larger version

Name:	Untitled-1.png
Views:	52
Size:	93.7 KB
ID:	186624  
__________________

Last edited by Black Rose; 01-23-2021 at 08:55.
Black Rose is offline