Publishing bookdown output method. Pros and Cons?

bookdown

#1

In @yihui's bookdown: Authoring Books and Technical Documents with R Markdown he lists three methods to deploy an HTML version

a) bookdown.org
b) github
c) own server

I'd be interested of anyone's experience with any of these options including comments on ease of use, sitenaming, cost etc.

My book will use a lot of htmlwidgets to run interactive charts and tables and has image and data directories. If I deploy to my own server, I need to know what folders/files to upload from the file structure . The aforementioned guide just states

Blockquote
For example, you can host the HTML files on your own web server.

which I'd appreciate some expansion on
:
TIA


#2

Everything under the book output directory (by default, _book/) is all you need to upload to your server. That is essentially all the three methods do (or should do).


#3

I used GitHub to host some pages made with rmarkdown::render_site() for my wedding.

Pros

  • It's free.
  • I was already comfortable with using Git and remote repos, so updating is as simple as edit -> commit -> push.
  • GitHub takes care of everything server-side, so I only needed to concern myself with the content.

Cons

  • If you want to use a custom URL, you need to find and pay a DNS service. It only cost me $13 US for a year, though.
  • GitHub will only host "static" web pages. There can still be interactive elements through CSS and JavaScript, but the server won't do anything after handing over the page to the user. So no Shiny.

How I see it, this is your decision flow:

  • If you need to store persistent data or run programs behind the scenes, get a server.
  • If you're comfortable with Git and GitHub, use GitHub pages.
  • Otherwise, publish to bookdown.org.

#4

Thanks - seems to work

BTW for the github out, you list the default configurations. Where can I see all the options available
It wasn't obvious to me if it was on the gitbook site


#5

Thanks for the reply

I do want user interaction but via htmlwidgets so guess I should be OK