1. Одиночная страница из .Rmd

  • RPubs
  • RStudio connect платный, так как позволяет хранить еще и Shiny
  • GitHub pages может хостить и целые сайты, например, тот, который вы сейчас смотрите, так что имеет смысл одиночный .html переназвать index.html1.
  • Собственный/университетский сервер с открытым портом
  • Какой-то из результатов по запросу “Where can I publish my website for free”

2 flexdashboard

Для одиночных страниц придумали пакет flexdashboard, который позволяет создавать одиночную страничку с контролем над расположением объектов на ней. Подробнее см. страницу и GitHub пакета.

3. Сайт в RMarkdown

Подробнее можно прочитать здесь.

Алгоритм создания сайта в RMarkdown не очень то сложный:

  • создайте кучу файлов .Rmd, отвечающих за отдельные страницы (в том числе дефольный index.Rmd) (строго говоря, на этом шаге можно остановиться)
  • создайте макет сайта в файле _site.yml
  • в соответствующей папке скажите rmarkdown::render_site()
  • положите сайт на сервер

3.1 Макет сайта

_site.yml

name: "my-website"
navbar:
  title: "My Website"
  left:
    - text: "Home"
      href: index.html
    - text: "Самое важное на свете"
      href:  1_most_imp.html
    - text: "Самое не важное на свете"
      href: 2_least_imp.html

Обычно я еще добавляю строчку output_dir: docs.

Можно добавить меню:

name: "my-website"
navbar:
  title: "My Website"
  left:
    - text: "Home"
      href: index.html
    - text: "Самое важное на свете"
      href:  1_most_imp.html
    - text: "Самое не важное на свете"
      href: 2_least_imp.html
    icon: fa-gear
    menu:
      - text: "Еще что-то"
        href: 3_something.html
      - text: "И это не забудьте"
        href: 4_not_forget.html

3.2 Общая yml-шапка

Имеет смысл создать файл _output.yml и написать yml-шапку один раз. Например, вот _output.yml для данного сайта:

html_document:
    theme: spacelab
    highlight: pygments
    toc: yes
    toc_depth: 3
    toc_float: yes
    smooth_scroll: false
    df_print: paged
    include:
      after_body: footer.html

Единственное, что здесь необычное, это вот эта вот штуковина:

    include:
      after_body: footer.html

Где footer.html содержит что-нибудь в этом роде:

<p>Copyright &copy; 2016 ICEDAN, Inc. All rights reserved.</p>

  1. Это тупо, что нельзя называть файл, как хочется. В целом это просто традиция, которой GitHub придерживается. Посмотрите еще вот здесь ответы.

© Гарик Мороз 2018 с помощью RMarkdown. Исходный код на GitHub