Skip to content

Commit 15f9f7e

Browse files
committed
A Minimal Book Example: sources.
0 parents  commit 15f9f7e

24 files changed

+504
-0
lines changed

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.Rproj.user
2+
.Rhistory
3+
.RData
4+
_publish.R
5+
_book
6+
_bookdown_files
7+
rsconnect

.travis.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: r
2+
cache: packages
3+
pandoc_version: 1.19.2.1
4+
5+
before_script:
6+
- chmod +x ./_build.sh
7+
- chmod +x ./_deploy.sh
8+
9+
script:
10+
- ./_build.sh
11+
- ./_deploy.sh

01-intro.Rmd

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Introduction {#intro}
2+
3+
You can label chapter and section titles using `{#label}` after them, e.g., we can reference Chapter \@ref(intro). If you do not manually label them, there will be automatic labels anyway, e.g., Chapter \@ref(methods).
4+
5+
Figures and tables with captions will be placed in `figure` and `table` environments, respectively.
6+
7+
```{r nice-fig, fig.cap='Here is a nice figure!', out.width='80%', fig.asp=.75, fig.align='center'}
8+
par(mar = c(4, 4, .1, .1))
9+
plot(pressure, type = 'b', pch = 19)
10+
```
11+
12+
Reference a figure by its code chunk label with the `fig:` prefix, e.g., see Figure \@ref(fig:nice-fig). Similarly, you can reference tables generated from `knitr::kable()`, e.g., see Table \@ref(tab:nice-tab).
13+
14+
```{r nice-tab, tidy=FALSE}
15+
knitr::kable(
16+
head(iris, 20), caption = 'Here is a nice table!',
17+
booktabs = TRUE
18+
)
19+
```
20+
21+
You can write citations, too. For example, we are using the **bookdown** package [@R-bookdown] in this sample book, which was built on top of R Markdown and **knitr** [@xie2015].

02-literature.Rmd

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Literature
2+
3+
Here is a review of existing methods.

03-method.Rmd

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Methods
2+
3+
We describe our methods in this chapter.

04-application.Rmd

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Applications
2+
3+
Some _significant_ applications are demonstrated in this chapter.
4+
5+
## Example one
6+
7+
## Example two

05-summary.Rmd

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Final Words
2+
3+
We have finished a nice book.

06-references.Rmd

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
`r if (knitr:::is_html_output()) '
2+
# References {-}
3+
'`

DESCRIPTION

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Package: placeholder
2+
Type: Book
3+
Title: Does not matter.
4+
Version: 0.0.1
5+
Imports: bookdown
6+
Remotes: rstudio/bookdown

Dockerfile

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM conoria/alpine-r-bookdown
2+
3+
WORKDIR /usr/src
4+
5+
COPY . .
6+
7+
RUN R -q -e 'bookdown::render_book("index.Rmd", "bookdown::gitbook")' && mv _book /public

LICENSE

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
CC0 1.0 Universal
2+
3+
Statement of Purpose
4+
5+
The laws of most jurisdictions throughout the world automatically confer
6+
exclusive Copyright and Related Rights (defined below) upon the creator and
7+
subsequent owner(s) (each and all, an "owner") of an original work of
8+
authorship and/or a database (each, a "Work").
9+
10+
Certain owners wish to permanently relinquish those rights to a Work for the
11+
purpose of contributing to a commons of creative, cultural and scientific
12+
works ("Commons") that the public can reliably and without fear of later
13+
claims of infringement build upon, modify, incorporate in other works, reuse
14+
and redistribute as freely as possible in any form whatsoever and for any
15+
purposes, including without limitation commercial purposes. These owners may
16+
contribute to the Commons to promote the ideal of a free culture and the
17+
further production of creative, cultural and scientific works, or to gain
18+
reputation or greater distribution for their Work in part through the use and
19+
efforts of others.
20+
21+
For these and/or other purposes and motivations, and without any expectation
22+
of additional consideration or compensation, the person associating CC0 with a
23+
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24+
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25+
and publicly distribute the Work under its terms, with knowledge of his or her
26+
Copyright and Related Rights in the Work and the meaning and intended legal
27+
effect of CC0 on those rights.
28+
29+
1. Copyright and Related Rights. A Work made available under CC0 may be
30+
protected by copyright and related or neighboring rights ("Copyright and
31+
Related Rights"). Copyright and Related Rights include, but are not limited
32+
to, the following:
33+
34+
i. the right to reproduce, adapt, distribute, perform, display, communicate,
35+
and translate a Work;
36+
37+
ii. moral rights retained by the original author(s) and/or performer(s);
38+
39+
iii. publicity and privacy rights pertaining to a person's image or likeness
40+
depicted in a Work;
41+
42+
iv. rights protecting against unfair competition in regards to a Work,
43+
subject to the limitations in paragraph 4(a), below;
44+
45+
v. rights protecting the extraction, dissemination, use and reuse of data in
46+
a Work;
47+
48+
vi. database rights (such as those arising under Directive 96/9/EC of the
49+
European Parliament and of the Council of 11 March 1996 on the legal
50+
protection of databases, and under any national implementation thereof,
51+
including any amended or successor version of such directive); and
52+
53+
vii. other similar, equivalent or corresponding rights throughout the world
54+
based on applicable law or treaty, and any national implementations thereof.
55+
56+
2. Waiver. To the greatest extent permitted by, but not in contravention of,
57+
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58+
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59+
and Related Rights and associated claims and causes of action, whether now
60+
known or unknown (including existing as well as future claims and causes of
61+
action), in the Work (i) in all territories worldwide, (ii) for the maximum
62+
duration provided by applicable law or treaty (including future time
63+
extensions), (iii) in any current or future medium and for any number of
64+
copies, and (iv) for any purpose whatsoever, including without limitation
65+
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66+
the Waiver for the benefit of each member of the public at large and to the
67+
detriment of Affirmer's heirs and successors, fully intending that such Waiver
68+
shall not be subject to revocation, rescission, cancellation, termination, or
69+
any other legal or equitable action to disrupt the quiet enjoyment of the Work
70+
by the public as contemplated by Affirmer's express Statement of Purpose.
71+
72+
3. Public License Fallback. Should any part of the Waiver for any reason be
73+
judged legally invalid or ineffective under applicable law, then the Waiver
74+
shall be preserved to the maximum extent permitted taking into account
75+
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76+
is so judged Affirmer hereby grants to each affected person a royalty-free,
77+
non transferable, non sublicensable, non exclusive, irrevocable and
78+
unconditional license to exercise Affirmer's Copyright and Related Rights in
79+
the Work (i) in all territories worldwide, (ii) for the maximum duration
80+
provided by applicable law or treaty (including future time extensions), (iii)
81+
in any current or future medium and for any number of copies, and (iv) for any
82+
purpose whatsoever, including without limitation commercial, advertising or
83+
promotional purposes (the "License"). The License shall be deemed effective as
84+
of the date CC0 was applied by Affirmer to the Work. Should any part of the
85+
License for any reason be judged legally invalid or ineffective under
86+
applicable law, such partial invalidity or ineffectiveness shall not
87+
invalidate the remainder of the License, and in such case Affirmer hereby
88+
affirms that he or she will not (i) exercise any of his or her remaining
89+
Copyright and Related Rights in the Work or (ii) assert any associated claims
90+
and causes of action with respect to the Work, in either case contrary to
91+
Affirmer's express Statement of Purpose.
92+
93+
4. Limitations and Disclaimers.
94+
95+
a. No trademark or patent rights held by Affirmer are waived, abandoned,
96+
surrendered, licensed or otherwise affected by this document.
97+
98+
b. Affirmer offers the Work as-is and makes no representations or warranties
99+
of any kind concerning the Work, express, implied, statutory or otherwise,
100+
including without limitation warranties of title, merchantability, fitness
101+
for a particular purpose, non infringement, or the absence of latent or
102+
other defects, accuracy, or the present or absence of errors, whether or not
103+
discoverable, all to the greatest extent permissible under applicable law.
104+
105+
c. Affirmer disclaims responsibility for clearing rights of other persons
106+
that may apply to the Work or any use thereof, including without limitation
107+
any person's Copyright and Related Rights in the Work. Further, Affirmer
108+
disclaims responsibility for obtaining any necessary consents, permissions
109+
or other rights required for any use of the Work.
110+
111+
d. Affirmer understands and acknowledges that Creative Commons is not a
112+
party to this document and has no duty or obligation with respect to this
113+
CC0 or use of the Work.
114+
115+
For more information, please see
116+
<http://creativecommons.org/publicdomain/zero/1.0/>
117+

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This is a minimal example of a book based on R Markdown and **bookdown** (https://github.com/rstudio/bookdown). Please see the page "[Get Started](https://bookdown.org/yihui/bookdown/get-started.html)" at https://bookdown.org/yihui/bookdown/ for how to compile this example into HTML. You may generate a copy of the book in `bookdown::pdf_book` format by calling `bookdown::render_book('index.Rmd', 'bookdown::pdf_book')`. More detailed instructions are available here https://bookdown.org/yihui/bookdown/build-the-book.html.
2+
3+
You can find the preview of this example at https://bookdown.org/yihui/bookdown-demo/.

_bookdown.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
book_filename: "bookdown-demo"
2+
language:
3+
ui:
4+
chapter_name: "Chapter "
5+
delete_merged_file: true

_build.sh

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/sh
2+
3+
set -ev
4+
5+
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::gitbook')"
6+
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::pdf_book')"
7+
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::epub_book')"
8+

_deploy.sh

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
[ -z "${GITHUB_PAT}" ] && exit 0
6+
[ "${TRAVIS_BRANCH}" != "master" ] && exit 0
7+
8+
git config --global user.email "[email protected]"
9+
git config --global user.name "Yihui Xie"
10+
11+
git clone -b gh-pages https://${GITHUB_PAT}@github.com/${TRAVIS_REPO_SLUG}.git book-output
12+
cd book-output
13+
cp -r ../_book/* ./
14+
git add --all *
15+
git commit -m"Update the book" || true
16+
git push -q origin gh-pages

_output.yml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
bookdown::gitbook:
2+
css: style.css
3+
config:
4+
toc:
5+
before: |
6+
<li><a href="./">A Minimal Book Example</a></li>
7+
after: |
8+
<li><a href="https://github.com/rstudio/bookdown" target="blank">Published with bookdown</a></li>
9+
edit: https://github.com/rstudio/bookdown-demo/edit/master/%s
10+
download: ["pdf", "epub"]
11+
bookdown::pdf_book:
12+
includes:
13+
in_header: preamble.tex
14+
latex_engine: xelatex
15+
citation_package: natbib
16+
keep_tex: yes
17+
bookdown::epub_book: default

book.bib

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
@Book{xie2015,
2+
title = {Dynamic Documents with {R} and knitr},
3+
author = {Yihui Xie},
4+
publisher = {Chapman and Hall/CRC},
5+
address = {Boca Raton, Florida},
6+
year = {2015},
7+
edition = {2nd},
8+
note = {ISBN 978-1498716963},
9+
url = {http://yihui.name/knitr/},
10+
}

bookdown-demo.Rproj

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Version: 1.0
2+
3+
RestoreWorkspace: Default
4+
SaveWorkspace: Default
5+
AlwaysSaveHistory: Default
6+
7+
EnableCodeIndexing: Yes
8+
UseSpacesForTab: Yes
9+
NumSpacesForTab: 2
10+
Encoding: UTF-8
11+
12+
RnwWeave: knitr
13+
LaTeX: pdfLaTeX
14+
15+
AutoAppendNewline: Yes
16+
StripTrailingWhitespace: Yes
17+
18+
BuildType: Website

index.Rmd

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: "A Minimal Book Example"
3+
author: "Yihui Xie"
4+
date: "`r Sys.Date()`"
5+
site: bookdown::bookdown_site
6+
output: bookdown::gitbook
7+
documentclass: book
8+
bibliography: [book.bib, packages.bib]
9+
biblio-style: apalike
10+
link-citations: yes
11+
github-repo: rstudio/bookdown-demo
12+
description: "This is a minimal example of using the bookdown package to write a book. The output format for this example is bookdown::gitbook."
13+
---
14+
15+
# Prerequisites
16+
17+
This is a _sample_ book written in **Markdown**. You can use anything that Pandoc's Markdown supports, e.g., a math equation $a^2 + b^2 = c^2$.
18+
19+
The **bookdown** package can be installed from CRAN or Github:
20+
21+
```{r eval=FALSE}
22+
install.packages("bookdown")
23+
# or the development version
24+
# devtools::install_github("rstudio/bookdown")
25+
```
26+
27+
Remember each Rmd file contains one and only one chapter, and a chapter is defined by the first-level heading `#`.
28+
29+
To compile this example to PDF, you need XeLaTeX. You are recommended to install TinyTeX (which includes XeLaTeX): <https://yihui.name/tinytex/>.
30+
31+
```{r include=FALSE}
32+
# automatically create a bib database for R packages
33+
knitr::write_bib(c(
34+
.packages(), 'bookdown', 'knitr', 'rmarkdown'
35+
), 'packages.bib')
36+
```

now.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "static",
3+
"public": true
4+
}

packages.bib

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
@Manual{R-base,
2+
title = {R: A Language and Environment for Statistical Computing},
3+
author = {{R Core Team}},
4+
organization = {R Foundation for Statistical Computing},
5+
address = {Vienna, Austria},
6+
year = {2017},
7+
url = {https://www.R-project.org/},
8+
}
9+
@Manual{R-basr,
10+
title = {basr: Basic, but hopefully useful, functions},
11+
author = {Mathieu Basille and contributions from Samuel Brown and Marc in the box and Clement Calenge and Michael Hallquist and Jean Lobry and Emiel {van Loon} and Kevin Wright},
12+
year = {2018},
13+
note = {R package version 0.12},
14+
url = {http://ase-research.org/basille/basr},
15+
}
16+
@Manual{R-bookdown,
17+
title = {bookdown: Authoring Books and Technical Documents with R Markdown},
18+
author = {Yihui Xie},
19+
year = {2019},
20+
note = {R package version 0.14},
21+
url = {https://CRAN.R-project.org/package=bookdown},
22+
}
23+
@Manual{R-conflicted,
24+
title = {conflicted: An Alternative Conflict Resolution Strategy},
25+
author = {Hadley Wickham},
26+
year = {2019},
27+
note = {R package version 1.0.4.9000},
28+
url = {https://github.com/r-lib/conflicted},
29+
}
30+
@Manual{R-cowsay,
31+
title = {cowsay: Messages, Warnings, Strings with Ascii Animals},
32+
author = {Scott Chamberlain and Amanda Dobbyn},
33+
year = {2018},
34+
note = {R package version 0.7.0},
35+
url = {https://CRAN.R-project.org/package=cowsay},
36+
}
37+
@Manual{R-knitr,
38+
title = {knitr: A General-Purpose Package for Dynamic Report Generation in R},
39+
author = {Yihui Xie},
40+
year = {2019},
41+
note = {R package version 1.25},
42+
url = {https://CRAN.R-project.org/package=knitr},
43+
}
44+
@Manual{R-rmarkdown,
45+
title = {rmarkdown: Dynamic Documents for R},
46+
author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone},
47+
year = {2019},
48+
note = {R package version 1.16},
49+
url = {https://CRAN.R-project.org/package=rmarkdown},
50+
}

preamble.tex

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
\usepackage{booktabs}
2+
\usepackage{amsthm}
3+
\makeatletter
4+
\def\thm@space@setup{%
5+
\thm@preskip=8pt plus 2pt minus 4pt
6+
\thm@postskip=\thm@preskip
7+
}
8+
\makeatother

style.css

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
p.caption {
2+
color: #777;
3+
margin-top: 10px;
4+
}
5+
p code {
6+
white-space: inherit;
7+
}
8+
pre {
9+
word-break: normal;
10+
word-wrap: normal;
11+
}
12+
pre code {
13+
white-space: inherit;
14+
}

0 commit comments

Comments
 (0)