From 6ebeec492cc21228ba52a246a7ba9593d5e27292 Mon Sep 17 00:00:00 2001 From: Beatriz Milz <42153618+beatrizmilz@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:55:57 -0300 Subject: [PATCH] Initial commit --- .github/.gitignore | 1 + .github/workflows/render-readme.yaml | 60 ++++++ .gitignore | 5 + README.Rmd | 148 ++++++++++++++ README.md | 70 +++++++ _config.yml | 5 + _layouts/default.html | 61 ++++++ assets/css/fonts.css | 55 +++++ assets/css/rouge-github.css | 209 +++++++++++++++++++ assets/css/style.css | 290 +++++++++++++++++++++++++++ assets/js/main.js | 33 +++ assets/logo.png | Bin 0 -> 23792 bytes assets/render_readme.R | 16 ++ template-pagina-do-curso.Rproj | 22 ++ 14 files changed, 975 insertions(+) create mode 100644 .github/.gitignore create mode 100644 .github/workflows/render-readme.yaml create mode 100644 .gitignore create mode 100644 README.Rmd create mode 100644 README.md create mode 100644 _config.yml create mode 100644 _layouts/default.html create mode 100644 assets/css/fonts.css create mode 100644 assets/css/rouge-github.css create mode 100644 assets/css/style.css create mode 100644 assets/js/main.js create mode 100644 assets/logo.png create mode 100644 assets/render_readme.R create mode 100644 template-pagina-do-curso.Rproj diff --git a/.github/.gitignore b/.github/.gitignore new file mode 100644 index 0000000..2d19fc7 --- /dev/null +++ b/.github/.gitignore @@ -0,0 +1 @@ +*.html diff --git a/.github/workflows/render-readme.yaml b/.github/workflows/render-readme.yaml new file mode 100644 index 0000000..8cb4a60 --- /dev/null +++ b/.github/workflows/render-readme.yaml @@ -0,0 +1,60 @@ +on: + workflow_dispatch: + inputs: + turma: + description: 'turma: codigo da turma. ex: 202110-r4ds-1' + required: true + default: '202110-r4ds-1' + nome_curso: + description: 'nome_curso: Nome do curso' + required: true + default: 'R para Ciência de Dados 1' + download_material: + description: 'download_material: TRUE ou FALSE, se o curso tem zip para baixar' + required: true + default: 'TRUE' + +name: render-readme + +jobs: + render-readme: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v3 + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + cache-version: 2 + packages: + any::knitr + any::rmarkdown + any::fs + any::tibble + any::dplyr + any::glue + any::readr + github::curso-r/CursoRopen + + - name: Execute Script + env: + TURMA: ${{ github.event.inputs.turma }} + NOME_CURSO: ${{ github.event.inputs.nome_curso }} + DOWNLOAD_MATERIAL: ${{ github.event.inputs.download_material }} + run: | + Rscript "assets/render_readme.R" + + - name: Commit results + run: | + git config --local user.name "$GITHUB_ACTOR" + git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" + git add README.Rmd + git add README.md + git add _config.yml + git commit -m "Atualizando README" || echo "No changes to commit" + git push origin || echo "No changes to commit" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4cc09cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata +README.html diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..78c9e1f --- /dev/null +++ b/README.Rmd @@ -0,0 +1,148 @@ +--- +output: github_document +params: + turma: 202102-intro-programacao + nome_curso: ATUALIZANDO.... + download_material: 'TRUE' +--- + + + +```{r, include = FALSE} +knitr::opts_chunk$set(collapse = TRUE, comment = "#>", echo = FALSE, + warning = FALSE, message = FALSE) + +path_to_url <- function(path) { + path |> + tibble::tibble(file = _) |> + dplyr::mutate( + url = file |> + paste0("https://curso-r.github.io/", params$turma, "/", ... = _) |> + paste0("[", fs::path_file(file), "](", ... = _, ")") + ) |> + dplyr::select(url) +} +``` + +## Informações importantes + +```{r results = 'asis'} +# Baixar o ZIP do repo da turma (o repo principal não vai ter os scripts feitos em aula) +if (params$download_material == "TRUE") { + glue::glue("- [Clique aqui](https://github.com/curso-r/{params$turma}/archive/refs/heads/main.zip) para baixar o material do curso.") +} +``` + +- Nosso blog: [https://curso-r.com/blog/](https://curso-r.com/blog/) + +- Nosso fórum: [https://discourse.curso-r.com/](https://discourse.curso-r.com/) + +- Nossos livros: + - [Ciência de Dados em R](https://livro.curso-r.com/) + - [Zen do R](https://curso-r.github.io/zen-do-r/) + - [Programando em Shiny](https://programando-em-shiny.curso-r.com/) + - [Beautiful R](https://curso-r.github.io/beautiful-r/) (em inglês) + + + +## Dúvidas + +Fora do horário de aula ou monitoria: + +- Perguntas gerais sobre o curso deverão ser feitas no Classroom. + +- Perguntas sobre R, principalmente as que envolverem código, deverão ser enviadas no [nosso fórum](https://discourse.curso-r.com/). + +## Slides + +```{r} +"slides/" |> + fs::dir_ls(glob = "*.html", fail = FALSE) |> + path_to_url() |> + dplyr::select(Slide = url) |> + knitr::kable() +``` + + +## Scripts utilizados em aula + +```{r} +"exemplos_de_aula/" |> + fs::dir_ls(fail = FALSE) |> + path_to_url() |> + dplyr::select(Exemplo = url) |> + knitr::kable() +``` +## Práticas + +```{r} +"praticas/" |> + fs::dir_ls(fail = FALSE) |> + path_to_url() |> + dplyr::select(Exemplo = url) |> + knitr::kable() +``` + +## Lição de casa + +```{r} +"exercicios/" |> + fs::dir_ls(fail = FALSE) |> + path_to_url() |> + dplyr::select(Exercício = url) |> + knitr::kable() +``` + + +## Material extra + +Referências extras relacionadas com o conteúdos das aulas, ou materiais que +comentamos quando tiramos dúvidas (não necessariamente são relacionadas com o +conteúdo da aula). + + +```{r echo=FALSE, message=FALSE, warning=FALSE} +arquivo_csv_materiais <- "extras.csv" +if (file.exists(arquivo_csv_materiais)) { + arquivo_csv_materiais |> + readr::read_csv2(show_col_types = FALSE) |> + knitr::kable() +} else { + cat("Em breve!") +} +``` + +## Redes sociais da Curso-R + +- Youtube: https://www.youtube.com/c/CursoR6/featured + +- Instagram: https://www.instagram.com/cursoo_r/ + +- Twitter: https://twitter.com/curso_r + +- Linkedin: https://www.linkedin.com/company/curso-r/ + +- Facebook: https://www.facebook.com/cursodeR + +```{r include = FALSE} +# Criar arquivo _config.yml +if (params$download_material == TRUE) { + content <- glue::glue( + "theme: jekyll-theme-minimal", "\n", + "logo: assets/logo.png", "\n", + "title: {params$nome_curso}", "\n", + "show_downloads: true", "\n", + "link_material: 'https://github.com/curso-r/{params$turma}/archive/refs/heads/main.zip'", + "\n" + ) +} else { + content <- glue::glue( + "theme: jekyll-theme-minimal", "\n", + "logo: assets/logo.png", "\n", + "title: {params$nome_curso}", "\n", + "show_downloads: false", "\n" + ) +} + +readr::write_lines(content, "_config.yml") +``` diff --git a/README.md b/README.md new file mode 100644 index 0000000..749e217 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ + + + +## Informações importantes + +- [Clique + aqui](https://github.com/curso-r/202102-intro-programacao/archive/refs/heads/main.zip) + para baixar o material do curso. + +- Nosso blog: + +- Nosso fórum: + +- Nossos livros: + + - [Ciência de Dados em R](https://livro.curso-r.com/) + - [Zen do R](https://curso-r.github.io/zen-do-r/) + - [Programando em + Shiny](https://programando-em-shiny.curso-r.com/) + - [Beautiful R](https://curso-r.github.io/beautiful-r/) (em + inglês) + +## Dúvidas + +Fora do horário de aula ou monitoria: + +- Perguntas gerais sobre o curso deverão ser feitas no Classroom. + +- Perguntas sobre R, principalmente as que envolverem código, deverão + ser enviadas no [nosso fórum](https://discourse.curso-r.com/). + +## Slides + +| Slide | +|:------| + +## Scripts utilizados em aula + +| Exemplo | +|:--------| + +## Práticas + +| Exemplo | +|:--------| + +## Lição de casa + +| Exercício | +|:----------| + +## Material extra + +Referências extras relacionadas com o conteúdos das aulas, ou materiais +que comentamos quando tiramos dúvidas (não necessariamente são +relacionadas com o conteúdo da aula). + + #> Em breve! + +## Redes sociais da Curso-R + +- Youtube: + +- Instagram: + +- Twitter: + +- Linkedin: + +- Facebook: diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..edc739f --- /dev/null +++ b/_config.yml @@ -0,0 +1,5 @@ +theme: jekyll-theme-minimal +logo: assets/logo.png +title: ATUALIZANDO.... +show_downloads: true +link_material: 'https://github.com/curso-r/202102-intro-programacao/archive/refs/heads/main.zip' diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..366bc85 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,61 @@ + + + + + + + +{% seo %} + + + + + +
+
+ {% if site.logo %} + Logo + {% endif %} + +

{{ site.description | default: site.github.project_tagline }}

+ + {% if site.show_downloads %} + + {% endif %} + +
+ +
+ + +
+
+ +

{{ site.title | default: site.github.repository_name }}

+ + {{ content }} + +
+ +
+ + {% if site.google_analytics %} + + {% endif %} + + diff --git a/assets/css/fonts.css b/assets/css/fonts.css new file mode 100644 index 0000000..fa84901 --- /dev/null +++ b/assets/css/fonts.css @@ -0,0 +1,55 @@ +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: normal; + src: url('../fonts/Noto-Sans-regular/Noto-Sans-regular.eot'); + src: url('../fonts/Noto-Sans-regular/Noto-Sans-regular.eot?#iefix') format('embedded-opentype'), + local('Noto Sans'), + local('Noto-Sans-regular'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.woff2') format('woff2'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.woff') format('woff'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.ttf') format('truetype'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: normal; + src: url('../fonts/Noto-Sans-700/Noto-Sans-700.eot'); + src: url('../fonts/Noto-Sans-700/Noto-Sans-700.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold'), + local('Noto-Sans-700'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.woff2') format('woff2'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.woff') format('woff'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.ttf') format('truetype'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: italic; + src: url('../fonts/Noto-Sans-italic/Noto-Sans-italic.eot'); + src: url('../fonts/Noto-Sans-italic/Noto-Sans-italic.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Italic'), + local('Noto-Sans-italic'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.woff2') format('woff2'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.woff') format('woff'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.ttf') format('truetype'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: italic; + src: url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot'); + src: url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold Italic'), + local('Noto-Sans-700italic'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff2') format('woff2'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff') format('woff'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.ttf') format('truetype'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.svg#NotoSans') format('svg'); +} \ No newline at end of file diff --git a/assets/css/rouge-github.css b/assets/css/rouge-github.css new file mode 100644 index 0000000..e3ff0c8 --- /dev/null +++ b/assets/css/rouge-github.css @@ -0,0 +1,209 @@ +.highlight table td { padding: 5px; } +.highlight table pre { margin: 0; } +.highlight .cm { + color: #999988; + font-style: italic; +} +.highlight .cp { + color: #999999; + font-weight: bold; +} +.highlight .c1 { + color: #999988; + font-style: italic; +} +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; +} +.highlight .c, .highlight .cd { + color: #999988; + font-style: italic; +} +.highlight .err { + color: #a61717; + background-color: #e3d2d2; +} +.highlight .gd { + color: #000000; + background-color: #ffdddd; +} +.highlight .ge { + color: #000000; + font-style: italic; +} +.highlight .gr { + color: #aa0000; +} +.highlight .gh { + color: #999999; +} +.highlight .gi { + color: #000000; + background-color: #ddffdd; +} +.highlight .go { + color: #888888; +} +.highlight .gp { + color: #555555; +} +.highlight .gs { + font-weight: bold; +} +.highlight .gu { + color: #aaaaaa; +} +.highlight .gt { + color: #aa0000; +} +.highlight .kc { + color: #000000; + font-weight: bold; +} +.highlight .kd { + color: #000000; + font-weight: bold; +} +.highlight .kn { + color: #000000; + font-weight: bold; +} +.highlight .kp { + color: #000000; + font-weight: bold; +} +.highlight .kr { + color: #000000; + font-weight: bold; +} +.highlight .kt { + color: #445588; + font-weight: bold; +} +.highlight .k, .highlight .kv { + color: #000000; + font-weight: bold; +} +.highlight .mf { + color: #009999; +} +.highlight .mh { + color: #009999; +} +.highlight .il { + color: #009999; +} +.highlight .mi { + color: #009999; +} +.highlight .mo { + color: #009999; +} +.highlight .m, .highlight .mb, .highlight .mx { + color: #009999; +} +.highlight .sb { + color: #d14; +} +.highlight .sc { + color: #d14; +} +.highlight .sd { + color: #d14; +} +.highlight .s2 { + color: #d14; +} +.highlight .se { + color: #d14; +} +.highlight .sh { + color: #d14; +} +.highlight .si { + color: #d14; +} +.highlight .sx { + color: #d14; +} +.highlight .sr { + color: #009926; +} +.highlight .s1 { + color: #d14; +} +.highlight .ss { + color: #990073; +} +.highlight .s { + color: #d14; +} +.highlight .na { + color: #008080; +} +.highlight .bp { + color: #999999; +} +.highlight .nb { + color: #0086B3; +} +.highlight .nc { + color: #445588; + font-weight: bold; +} +.highlight .no { + color: #008080; +} +.highlight .nd { + color: #3c5d5d; + font-weight: bold; +} +.highlight .ni { + color: #800080; +} +.highlight .ne { + color: #990000; + font-weight: bold; +} +.highlight .nf { + color: #990000; + font-weight: bold; +} +.highlight .nl { + color: #990000; + font-weight: bold; +} +.highlight .nn { + color: #555555; +} +.highlight .nt { + color: #000080; +} +.highlight .vc { + color: #008080; +} +.highlight .vg { + color: #008080; +} +.highlight .vi { + color: #008080; +} +.highlight .nv { + color: #008080; +} +.highlight .ow { + color: #000000; + font-weight: bold; +} +.highlight .o { + color: #000000; + font-weight: bold; +} +.highlight .w { + color: #bbbbbb; +} +.highlight { + background-color: #f8f8f8; +} \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..e3652be --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,290 @@ +@import "fonts"; +@import "rouge-github"; + +body { + background-color: #fff; + padding:50px; + font: 14px/1.5 "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#727272; + font-weight:400; +} + +h1, h2, h3, h4, h5, h6 { + color:#222; + margin:0 0 20px; +} + +p, ul, ol, table, pre, dl { + margin:0 0 20px; +} + +h1, h2, h3 { + line-height:1.1; +} + +h1 { + font-size:28px; +} + +h2 { + color:#393939; + border-bottom: 2px solid #b9b3b3; + padding-bottom: 10px; + margin-top: 70px; +} + +h3, h4, h5, h6 { + color:#494949; + margin-bottom: 20px; + margin-top: 30px; +} + +li > p { + margin-bottom: 5px; +} + +a { + color:#267CB9; + text-decoration:none; +} + +a:hover, a:focus { + color:#069; + font-weight: bold; +} + +a small { + font-size:11px; + color:#777; + margin-top:-0.3em; + display:block; +} + +a:hover small { + color:#777; +} + +.wrapper { + width:860px; + margin:0 auto; +} + +blockquote { + border-left:1px solid #e5e5e5; + margin:0; + padding:0 0 0 20px; + font-style:italic; +} + +code, pre { + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace; + color:#333; +} + +pre { + padding:8px 15px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + overflow-x: auto; +} + +table { + width:100%; + border-collapse:collapse; +} + +th, td { + text-align:left; + padding:5px 10px; + border-bottom:1px solid #e5e5e5; +} + +dt { + color:#444; + font-weight:700; +} + +th { + color:#444; +} + +img { + max-width:100%; +} + +header { + width:270px; + float:left; + position:fixed; + -webkit-font-smoothing:subpixel-antialiased; +} + +ul.downloads { + list-style:none; + height:40px; + padding:0; + background: #f4f4f4; + border-radius:5px; + border:1px solid #e0e0e0; + width:270px; +} + +.downloads li { + width:89px; + float:left; + border-right:1px solid #e0e0e0; + height:40px; +} + +.downloads li:first-child a { + border-radius:5px 0 0 5px; +} + +.downloads li:last-child a { + border-radius:0 5px 5px 0; +} + +.downloads a { + line-height:1; + font-size:11px; + color:#676767; + display:block; + text-align:center; + padding-top:6px; + height:34px; +} + +.downloads a:hover, .downloads a:focus { + color:#675C5C; + font-weight:bold; +} + +.downloads ul a:active { + background-color:#f0f0f0; +} + +strong { + color:#222; + font-weight:700; +} + +.downloads li + li + li { + border-right:none; + width:89px; +} + +.downloads a strong { + font-size:14px; + display:block; + color:#222; +} + +section { + width:500px; + float:right; + padding-bottom:50px; +} + +small { + font-size:11px; +} + +hr { + border:0; + background:#e5e5e5; + height:1px; + margin:0 0 20px; +} + +footer { + width:270px; + float:left; + position:fixed; + bottom:50px; + -webkit-font-smoothing:subpixel-antialiased; +} + +.toc { + margin-top: 40px; + margin-bottom: 30px; +} + +.toc p { + margin-bottom: 5px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width:auto; + margin:0; + } + + header, section, footer { + float:none; + position:static; + width:auto; + } + + header { + padding-right:320px; + } + + section { + border:1px solid #e5e5e5; + border-width:1px 0; + padding:20px 0; + margin:0 0 20px; + } + + header a small { + display:inline; + } + + header ul { + position:absolute; + right:50px; + top:52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap:break-word; + } + + header { + padding:0; + } + + header ul, header p.view { + position:static; + } + + pre, code { + word-wrap:normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding:15px; + } + + .downloads { + width:99%; + } + + .downloads li, .downloads li + li + li { + width:33%; + } +} + +@media print { + body { + padding:0.4in; + font-size:12pt; + color:#444; + } +} \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..3c23b92 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,33 @@ +var sectionHeight = function() { + var total = $(window).height(), + $section = $('section').css('height','auto'); + + if ($section.outerHeight(true) < total) { + var margin = $section.outerHeight(true) - $section.height(); + $section.height(total - margin - 20); + } else { + $section.css('height','auto'); + } +} + +$(window).resize(sectionHeight); + +$(function() { + $("section h2").each(function(){ + $("nav ul").append("
  • " + $(this).text() + "
  • "); + $(this).attr("id",$(this).text().toLowerCase().replace(/ /g, '-').replace(/[^\w-]+/g,'')); + $("nav ul li:first-child a").parent().addClass("active"); + }); + + $("nav ul li").on("click", "a", function(event) { + var position = $($(this).attr("href")).offset().top - 190; + $("html, body").animate({scrollTop: position}, 400); + $("nav ul li a").parent().removeClass("active"); + $(this).parent().addClass("active"); + event.preventDefault(); + }); + + sectionHeight(); + + $('img').on('load', sectionHeight); +}); \ No newline at end of file diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..85d388f08368152c4e96930b08418a2531f0b7f8 GIT binary patch literal 23792 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/render_readme.R b/assets/render_readme.R new file mode 100644 index 0000000..8646bd5 --- /dev/null +++ b/assets/render_readme.R @@ -0,0 +1,16 @@ +CursoRopen::change_rmd_yaml( + "README.Rmd", + params = list( + turma = Sys.getenv("TURMA"), + nome_curso = Sys.getenv("NOME_CURSO"), + download_material = Sys.getenv("DOWNLOAD_MATERIAL") + ), + new_path = "README.Rmd" +) + +rmarkdown::render( + input = "README.Rmd", + output_format = "github_document", + clean = TRUE, + output_file = "README.md" +) diff --git a/template-pagina-do-curso.Rproj b/template-pagina-do-curso.Rproj new file mode 100644 index 0000000..69fafd4 --- /dev/null +++ b/template-pagina-do-curso.Rproj @@ -0,0 +1,22 @@ +Version: 1.0 + +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes +LineEndingConversion: Posix + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageRoxygenize: rd,collate,namespace