Action

Wiki Wrapper

Posted by AutonomyGaps, Last update over 4 years ago

If a selection is present, wrap the text in double square brackets (bidirectional, wiki-style links). If no selection, scan text for last brackets and close it if last one was an open brackets, or insert open brackets if not.

Steps

  • script

    // Based on AgileTortoise's "Smart Brackets"
    // 2020-06-16 Adapted by Joel Anderson for wiki-style links
    // If a selection is present, wrap the text.
    //
    // If no selection, scan text for last open or close and
    // close it if last one was an open, or
    // insert open if not.
    
    var open = "[[";
    var close = "]]";
    
    var range = editor.getSelectedRange();
    var priorText = editor.getTextInRange(0, range[0]);
    
    if (range[1] > 0) { 
     //text selected, wrap it!
     editor.setSelectedText(open + editor.getSelectedText() + close);
     editor.setSelectedRange(range[0] + range[1] + open.length + close.length, 0);
    }
    else {
     // no selection, find last 
     var lastOpen = priorText.lastIndexOf(open);
     var lastClose = priorText.lastIndexOf(close);
     
     if	(lastOpen == -1 || lastClose > lastOpen) { // no close, use open
       editor.setSelectedText(open);
       editor.setSelectedRange(range[0]+open.length, 0);
     }
     else { // close last open
       editor.setSelectedText(close);
       editor.setSelectedRange(range[0]+close.length, 0);
     }
    }
    

Options

  • After Success Nothing
    Notification Error
    Log Level Error
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.