Created
October 20, 2021 18:50
-
-
Save GitMurf/3a5688d40b013a2e5b8dc5b43481f7f1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%* | |
//v1.0 | |
let cmEditorAct = this.app.workspace.activeLeaf.view.editor; | |
let curLine = cmEditorAct.getCursor().line; | |
cmEditorAct.setSelection({ line: curLine, ch: 0 }, { line: curLine, ch: 9999 }); | |
let dueDateStr = await tp.system.prompt("Due Date"); | |
let parseResult; | |
let parseResultLink; | |
if(dueDateStr) { | |
let nlDatesPlugin = this.app.plugins.getPlugin('nldates-obsidian'); | |
parseResult = nlDatesPlugin.parseDate(dueDateStr); | |
if(parseResult){parseResultLink = '[' + '[' + parseResult.formattedString + ']]';} | |
} | |
let fileFrom = '[' + '[' + tp.file.title + ']]'; | |
let createdOn = '[' + '[' + tp.date.now('YYYY-MM-DD') + ']]'; | |
let selectedText = tp.file.selection(); | |
let origSelectText = selectedText; | |
selectedText = selectedText.replace(/[ ]*[\-\*] /, '').trim(); | |
selectedText = selectedText.replace(/[ ]*\[ \][ ]*/, '').trim(); | |
let selectedTextTitle = selectedText.replace(/[\.#\*"\/\\<>\:\|\[\]\?]/gim, '').trim().slice(0, 255); | |
let newFileName = "TASK_" + tp.date.now('YYYY_MM_DD_hhmmss') + " - " + selectedText; | |
newFileName = newFileName.replace(/[\.#\*"\/\\<>\:\|\[\]\?]/gim, '').trim().slice(0, 255); | |
let useSource = ''; | |
const actFile = this.app.workspace.getActiveFile(); | |
if(actFile) {useSource = actFile.path} | |
let vaultRootPath = this.app.fileManager.getNewFileParent(useSource).path; | |
let bTasksFolder = await this.app.vault.adapter.exists(vaultRootPath + '/tasks', false); | |
if(!bTasksFolder){await this.app.vault.createFolder(vaultRootPath + '/tasks');} | |
let newFilePath = vaultRootPath + '/tasks/' + newFileName + ".md"; | |
let fileContentsToAdd = '---'; | |
fileContentsToAdd += ` | |
title: ${selectedTextTitle} | |
date created: ${tp.date.now('YYYY-MM-DDTHH:mm:ssZ')} | |
due date: [` | |
if(parseResultLink){fileContentsToAdd += parseResult.formattedString} | |
fileContentsToAdd += `] | |
categories: task | |
--- | |
` | |
fileContentsToAdd += '- [ ] ' + selectedText; | |
fileContentsToAdd += '\n\n---'; | |
if(parseResultLink) { | |
fileContentsToAdd += ` | |
Due Date: ${parseResultLink}`; | |
} | |
fileContentsToAdd += ` | |
Task created on ${createdOn} at ${tp.date.now("h:mm A")} from ${fileFrom}`; | |
let newFileObj = await this.app.vault.create(newFilePath, fileContentsToAdd); | |
await this.app.workspace.openLinkText(newFileObj.basename, newFileObj.path, true); | |
const finalText = origSelectText.replace(/([ ]*[\-\*] )?.*/, '$1' + '![' + '[' + newFileName + ']]') | |
tR = finalText; | |
%> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment