Search code examples
rrstudiohugoblogdownnetlify

Drafts rendered by netlify when draft: true in yaml


I am running at blogdown site from this github repo hosted by Netlify at https://timmastny.rbind.io/

In website2/content/blog/ I have two posts

2018-01-16-git-blogdown-project-workflow.Rmd

and 2018-01-13-bayesian-meta-analysis-powerlifting.Rmd

You can see that in the YAML of both posts, I have draft: true and in the second one I even have publishdate: '2018-01-20' which is in the future as of this post.

However, with these changes pushed to github and Netlify deployed with a clean cache, on my actual website I still see the posts: https://timmastny.rbind.io/

What am I missing about draft: true?

I've read sections 2.3.1 and D.3 of the books, but I'm not sure. I've also updated Hugo to 0.32.4 and am on the latest version of blogdown.


Edit: I've deleted the public folder and added public to gitignore. Netlify had a 16 minute build which was published. But on the actual website I get a Page Not Found error.

Here's the log: https://app.netlify.com/sites/timmastny/deploys/5a60c299df99532a0147c3d7

Here's my deploy settings on Netlify. They should match the suggestions in 3.1 of the blogdown book:

Deploy settings

Repository: https://github.com/tmastny/website2

Build command: hugo

Publish directory: public

Production branch: master

Branch deploys: Deploy only the production branch and its deploy previews

Public deploy logs: Logs are public

Build environment variables: HUGO_VERSION 0.32.4


Solution

  • I am going to assume you are using public as your deploy folder for Netlify.

    Issue #1

    Your public folder is in your repository, so it is checked out to the Netlify site and when you run your build your posts already exist in that folder, so they are always going to be deployed.

    Solution #1

    Delete the public folder from your project and add a .gitignore for the public folder.

    The deploy should build the public folder fresh on each deploy, so it can compare the CDN with your build and copy the correct files only.

    Issue #2 (updated question)

    The Hugo theme is set to theme = "hugo-xmin" in the config.toml. When checking out the repository from GitHub, this theme folder is empty. It would be empty on Netlify as well, so the build becomes invalid.

    Solution #2

    Changed to a valid theme theme = "hugo-lithium-theme" in the config.toml and the build starts to create your site pages.

    Original Issue

    When updating draft: true in .Rmd does not ignore on build.

    Solution (for Original)

    Hugo is not processing your content for .Rmd, it is using your content from the processed .html files created. So you need to make sure you are committing the content for those files with draft: true in them to your repository before a build.