Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions np.Templating/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

See Plugin [Documentation](https://noteplan.co/templates/docs) for details on available commands and use case.

## [2.0.11] 2025-07-31 @dwertheimer
- Fix getFolder to handle <select XXX> and to honor folder attribute in quick-note templates

## [2.0.10] 2025-07-30 @dwertheimer
- Fix quick-note with frontmatter

Expand Down
34 changes: 28 additions & 6 deletions np.Templating/lib/core/templateManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* -----------------------------------------------------------------------------------------*/

import { log, logError, logDebug, logWarn } from '@helpers/dev'
import { chooseOption, chooseFolder } from '@helpers/userInput'
import { chooseOption, chooseFolder, showMessageYesNo } from '@helpers/userInput'
import pluginJson from '../../plugin.json'
import FrontmatterModule from '../support/modules/FrontmatterModule'
import { normalizeToNotePlanFilename } from '../utils'
Expand Down Expand Up @@ -519,10 +519,32 @@ export async function templateExists(title: string = ''): Promise<boolean> {
export async function getFolder(folder: string = '', promptMessage: string = 'Select folder'): Promise<string> {
let selectedFolder = folder
const folders = DataStore.folders
if (/select|choose/i.test(folder) || Editor?.type === 'Calendar' || selectedFolder.length === 0) {
selectedFolder = await chooseFolder(promptMessage, false, true)
} else if (folder == '<current>') {
const currentFilename = Editor.note?.filename
const isSelectFolder = /<select|<choose/i.test(folder)
const startFolder =
(folder.startsWith('<select ') || folder.startsWith('<SELECT ') || folder.startsWith('<choose ') || folder.startsWith('<CHOOSE ')) && folder.endsWith('>')
? folder.slice(7, -1).trim()
: ''
const isCurrentFolder = /<current>/i.test(folder)
let folderExists = (!isSelectFolder && folders.includes(folder)) || (isSelectFolder && startFolder && folders.includes(startFolder))
logDebug(
pluginJson,
`getFolder: folder="${folder}" promptMessage="${promptMessage}" selectedFolder="${selectedFolder}" isSelectFolder="${String(isSelectFolder)}" folderExists="${String(
folderExists,
)}"`,
)
let createFolder = false
if (selectedFolder && !isSelectFolder && !folderExists && !isCurrentFolder) {
const wantToCreateFolder = await showMessageYesNo(`Folder "${folder}" does not exist. Create it?`, ['Yes', 'No'], 'Create Folder?')
if (wantToCreateFolder === 'No') {
selectedFolder = ''
} else {
folderExists = true // let it through and the note will be created in the new folder
}
}
if ((isSelectFolder && !startFolder) || (!isCurrentFolder && !folderExists) || (isCurrentFolder && Editor.type === 'Calendar')) {
const startFolder = (selectedFolder = await chooseFolder(promptMessage, false, true))
} else if (isCurrentFolder) {
const currentFilename = Editor?.filename

if (typeof currentFilename === 'undefined') {
selectedFolder = await chooseFolder(promptMessage, false, true)
Expand All @@ -533,7 +555,7 @@ export async function getFolder(folder: string = '', promptMessage: string = 'Se
selectedFolder = parts.join('/')
}
}
} else if ((folder.startsWith('<select ') || folder.startsWith('<SELECT ') || folder.startsWith('<choose ') || folder.startsWith('<CHOOSE ')) && folder.endsWith('>')) {
} else if (startFolder) {
// find the value inside the <select> tag
// get everything after <select and before > including spaces
const f = folder.slice(7, -1).trim()
Expand Down
4 changes: 2 additions & 2 deletions np.Templating/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"noteplan.minAppVersion": "3.9.10",
"plugin.id": "np.Templating",
"plugin.name": "📒 Templating",
"plugin.version": "2.0.10",
"plugin.lastUpdateInfo": "2.0.10: fix quick-note with frontmatter",
"plugin.version": "2.0.11",
"plugin.lastUpdateInfo": "2.0.11: fix getFolder to handle <select XXX> and to honor folder attribute in quick-note templates",
"plugin.description": "Templating Plugin for NotePlan",
"plugin.author": "Mike Erickson ( codedungeon)",
"plugin.dependencies": [],
Expand Down
Loading