edit_post() for editing existing post YAML metadata via dialog
date-modified to today on every save.bak backup before modificationedit_post() handles title changes interactively:
_old-slug.bak/ (hidden from Quarto rendering by the leading _) and
its index.qmd has draft: true set as an additional safety signal;
the new file is opened automatically in the editortitle: field is updated; the directory name stays
unchangedadd_coins() now uses rstudioapi::getSourceEditorContext() instead of
rstudioapi::getActiveDocumentContext(), so it resolves the target file
correctly even when the R Console has focusadd_coins() auto-resolves a directory argument to the index.qmd file
inside it, with a clear error if no such file exists\donttest{} example of add_coins() uses tempfile() instead of
tempdir(), so repeated runs no longer hit a stale COinS chunk and a
readline() prompt in a non-interactive contextescape_yaml_dq(); all text fields (title, subtitle,
author, image-alt) are safe for special charactersedit_post() now splices text with
str_locate()/str_sub() instead of str_replace(): ICU replacement
strings treat backslash and $ as escape characters, which silently
undid the quote escaping on every editreadr::read_file() reads in binary mode,
so files with CRLF line endings caused the YAML-replacement regex to
silently fail on Windows; line endings are now normalised (CRLF -> LF)
immediately after reading in both edit_post() and add_coins()quartopost to qpostquartopost() to qpost()add_coins() for COinS metadata generationadd_coins() gains a file_path argument, so it can be used outside RStudio/Positron by passing the target file explicitlyquartopost.* prefix to qpost.*Added configuration settings
Added checks for user input
NEWS.md file to track changes to the package.