UNPKG

imdone-core

Version:
61 lines (55 loc) 1.66 kB
import Plugin from 'imdone-api' export default class DefaultBoardActionsPlugin extends Plugin { constructor(project) { super(project) } static get pluginName() { return 'DefaultBoardActionsPlugin' } getBoardActions() { const project = this.project const isWindows = process.platform === 'win32' const openIn = isWindows ? 'Explorer' : 'Finder' return [ { title: 'Duplicate card', keys: ['shift+d'], icon: 'clone', action: async (task) => { const timestamp = project.isoDateWithOffset await project.newCard({ list: project.config.getDefaultList(), path: task.relPath, template: task.content.replace(/(\screated:).*(\s)/, `$1${timestamp}$2`), }) project.toast({ message: `"${task.text}" duplicated` }) }, }, { title: 'Copy card to clipboard', keys: ['c'], icon: 'clone', action: (task) => { return project.copyToClipboard(task.content, `"${task.text} markdown" copied to clipboard`) }, }, { title: 'Copy card title to clipboard', keys: ['mod+t'], icon: 'clone', action: (task) => { const title = project.renderMarkdown(task.text, task.fullPath).replaceAll(/<\/*p>/gi, '') return project.copyToClipboard(title, `"${title}" copied to clipboard`) }, }, { title: `Open in ${openIn}`, keys: ['alt+shift+o'], icon: "folder", async action () { await project.openPath(project.path) } } ] } }