Distill: project skeleton/yml source for metadata?

I tried out the distill package a while back, and left a bunch of feedback comments as a github issue.

I didn't realise until more recently that distill is in the RStudio stable of products, so I'm copying over my feedback to this new post here, and let's see if there is anyone who can assist me with understanding how to use distill better.

I absolutely admit that I wrote this in a frustrated mood, and I'm sorry about that.

Project skeleton/yml source for metadata

or: how to get rid of Nora Jones and Spacely Sprockets...

New user of distill here.

  • I used the RStudio "New RMarkdown" procedure to create a new article in my distill project. I was dismayed to find that none of the YAML options I had already used in my existing index.Rmd (eg author) were used in the new article.
  • I realised that this is because it just uses the default skeleton from the package inst directory - this process would not be aware of any settings internal to the current project.
  • So then I thought, I'll use a distill script to create a new article. That should be able to read off environment settings such as author name. But no. There is no distill::create_article() script. Only create_post(). This is a terminological confusion for newbies, as the RStudio menu procedure refers to 'articles' not 'posts'. And the distill website 'Basics' page also refers to articles not posts. There is also the function distill::distill_article() that uses this terminology.
  • It's not clear what the difference is between an article and a post, if any.
  • The example given on the distill website (rmarkdown::draft("article.Rmd", "distill_article", package = "distill")) is helpful because you can pass edit = TRUE to it. However I was once again dismayed that upon using edit = TRUE for a second time, the skeleton was unchanged from the original default: the changes I had made in my first usage of edit were not persistent.
  • It's not clear to me how to set up persistent default metadata options or a default template for new articles within the current project.
  • It would be great if there were a project file, like _site.yml, where these metadata options could be set, if desired, so that distill::create_post() would read them in when creating a new article within the current project.
  • The documentation says

#' @param author Post author. Automatically drawn from previous post if not provided.

but this did not work for me (I had already set up my name as metadata in my initial index.Rmd but when creating a new post (article) the author name appeared as "Unknown".)

  • It would also be good I think if there was a function distill::create_article(), either as an alias to create_post() or with its own slightly different defaults (I'm assuming here that articles within a technical writing website are often going to be set up quite differently to posts within a blog site. But I accept that this is a matter of personal preference.)