lifecycle

Words of caution: this is still a WIP. Use carefully, and don't forger to backup your bookdwon before using the app.

backyard

The goal of backyard is to provide a visual backend for Bookdown projects.

Why {backyard}?

The main idea is that, with a {backyard} backend, users can focus on writing and don't have to know anything about Markdown and/or about R & {bookdown} to get involved in the writing of a bookdown. This would facilitate collaboration between those who use R and those who don't.

Once deployed, a {backyard} backend is easy to access and use, and is suitable for tech/non-tech people.

When would you need {backyard}

There are many situations where you might need {backyard}. Here are few ideas:

How is a {backyard} backend organized?

Launch

backyard::run_app() (without any parameter filled) opens an invite box that can either be used for creating a new bookdown (point to the folder where you want your bookdown to be saved, and add a folder name), then the default Bookdown template is used, or to point to an Index.Rmd of a bookdown already present on the machine.

You can pass to backyard::run_app() the location of the index.Rmd (then the app is launched for this bookdown), or the location of your home (for the folder selection invite, default is .).

About

This first page gives you a quick overview of the book. Nothing fancy here.

Chapters

This tabs has 3 other tabs

Options

The idea of this tab is that non-tech people don't want to enter too many technical details, hence they have “textual” content to see. If you want to dig into the tech, two tabs can be used to do that?

Design

Installation

You can install the dev version of backyard with:

remotes::install_github("ColinFay/backyard")

Deploy

The best way to collaborate with this is to deploy this app on a server.

Here a minimalist Docker file that can launch a {backyard} backend:

FROM rocker/tidyverse

MAINTAINER Colin FAY "contact@colinfay.me"

RUN R -e "install.packages('remotes', repos = 'https://cran.rstudio.com/')"
RUN R -e "remotes::install_github('ColinFay/backyard')"

# Create a folder just for bookdowns
RUN mkdir /usr/home/bookdown

EXPOSE 2811

CMD R -e "backyard::run_app(host = '0.0.0.0', home = '/usr/home/bookdown')"

You can find this dockerfile in the inst/ folder of the package.

If you only wants to share one bookdown (assuming the boookdown is in the same dir as the Dockerfile):

FROM rocker/tidyverse

MAINTAINER Colin FAY "contact@colinfay.me"

RUN R -e "install.packages('remotes', repos = 'https://cran.rstudio.com/')"
RUN R -e "remotes::install_github('ColinFay/backyard')"

RUN mkdir /usr/local/bookdown

COPY bookdown /usr/bookdown/bookdown

EXPOSE 2811

CMD R -e "backyard::run_app(indexrmd = '/usr/bookdown/bookdown',host = '0.0.0.0')"

Notes on Docker

Known limitations

This project is still experimental, so there might be bugs in the interface. Here are some we know of:

TODO

Please note that the 'backyard' project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.