App icon 1Writer

New File with L2 section.

Shared by Chan-gu Lee, @stratosphere631

Split current file into two files based on L2 markdown section. Select L2 section from list of L2 headers, and then current L2 section will be removed from current file and new File will be create with the Section.

Script

var txt=editor.getText();
var ptn=/^## +.*$/gm
var headers=txt.match(ptn);
ui.list("Select L2 header", headers, false,
  function(selectedValues, selectedIndices)
  {
    if (!selectedValues) return;
    if (!selectedIndices) return;
    if (selectedIndices[0]!=headers.length-1)
    {
      var begin=txt.search(selectedValues);
      var next=headers[selectedIndices[0]+1];
	  var end=txt.search(next);
      splitFileWithSelectedRange(begin, end);
    }
    else
    {
      var begin=txt.search(selectedValues);
      var end=txt.length;
      splitFileWithSelectedRange(begin, end);
    }
    
  }
);
function splitFileWithSelectedRange(begin, end) {
  var txt=editor.getTextInRange(begin, end);
  editor.replaceTextInRange(begin, end, "");
  editor.newFile(txt);
}