NotePlan / NotePlan/plugins

We need a reliable way to open a note by filename and replace the contents

Offen
#368 3 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@EduardMe arbeitet bereits daran.

Seit 30.11.2022.

API bug P-5
Vorherrschende Sprache
JavaScript
Sterne
204
Forks
82
Ø Merge
22 Std. 27 Min.
Gemergte PRs (30 T.)
3

Beschreibung

@dwertheimer: "I need a function I can call that will open a file with a certain filename whether it exists or not. No matter what, I can rely on getting a note back."

@jgclark and I have several plugins where the plugin needs to be able to create a note at a specific filename and replace that note's content reliably. I have tried many different approaches and have had challenges getting this to work 100% of the time because of the race conditions with notes being created and a "# " being immediately added to the note.

Lots of discussion on Discord: https://discord.com/channels/763107030223290449/1033958465326026822/1045726596679598092

@eduardme one way you can help me accomplish this objective would be to give us an API or a parameter that allows me to 1) create/open a note with a specific filename and 2) immediately set the content to XXX
Hoping that if you're doing it on the Swift side, it will be more reliable.
So, if the note does not exist, it gets created with the content
If the file does exist, the content is replaced
Maybe this would work if you add a "content" parameter to the end of Editor.openNoteByFilename
We should also have a DataStore version of this functionality as well

/**
* Opens a note using the given filename
* @param {String} filename       - Filename of the note file (can be without extension), but has to include the relative folder such as `folder/filename.txt`.
* @param {Boolean} newWindow      - (optional) Open note in new window (default = false)?
* @param {Number} highlightStart  - (optional) Start position of text highlighting
* @param {Number} highlightEnd    - (optional) End position of text highlighting
* @param {Boolean} splitView      - (optional) Open note in a new split view (Note: Available from v3.4)
* @param {Boolean} createIfNeeded - (optional) Create the note with the given filename if it doesn't exist (only project notes, v3.5.2+)
* @param {String} content /* dbw added */ - Content to fill the note (replaces contents if the note already existed)
* @return {Promise} Note?         - When the note has been opened, a promise will be returned with the note object
*/
.openNoteByFilename(filename, newWindow, highlightStart, highlightEnd, splitView, createIfNeeded, content /*dbw added*/)
```js

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.