7.13 HTML 出力を Web で共有する

R Markdown を HTML ファイルにレンダリングする魅力的な側面の1つは, これらのファイルをとても簡単にインターネットでホストし, 他のウェブサイトと同様に共有できるということです. この節ではあなたの作成した HTML 文書を共有するオプションを簡単に要約します.

7.13.1 R 特化のサービス

RStudio は R Markdown で作られた様々な種類のコンテンツをインターネットで公開するためのサービスをいくつか提案しています. これらのサービスは特に RStudio IDE または rsconnect パッケージ (Atkins, McPherson, and Allaire 2021) を使って簡単に公開できます.

  • RPubs は静的な単一の R Markdown コンテンツの無料ホスティングを可能とします. RStudio IDE の Publish ボタンまたは rsconnect::rpubsUpload() 関数で簡単に公開できます. 詳細は “Getting Started” のページ (https://rpubs.com/about/getting-started) をご覧ください.

  • ShinyApps.io は R を実行するサーバを要する動的コンテンツのホスティングを可能にします. 例えば Shiny コンポネントを含んでいる29インタラクティブな R Markdown 文書をホストできます. ShinyApp.io は Shiny アプリケーション用の RPubs の類似サービスです. アプリとインタラクティブな R Markdown 文書は RStudio IDE の push ボタンか rsconnect::deployApp() 関数を使って公開できます. 詳細はユーザーガイド (https://docs.rstudio.com/shinyapps.io/) をご覧ください.

  • bookdown.orgbookdown パッケージで書かれた本の無料ホスティングを提案します. bookdown::publish_book() 関数であなたの書籍の静的な出力ファイルを簡単に公開できるでしょう.

  • RStudio Connect は組織団体が自前のサーバで動作させるような企業向け製品です. 作成された広範な種類のコンテンツ (R Markdown 文書, Shiny アプリケーション, API など) を文書レベルでのアクセス制御, 閲覧履歴などといった機能を使いセキュアな環境でホストできます. コンテンツは RStudio Connect に手動でアップロードするか, rsconnect パッケージか, または git ベースのデプロイによって公開できます.

7.13.2 Static website services

端的に言うなら, 単純な静的ウェブサイトは数個の HTML ファイル (典型的にはホームページである index.html), JavaScript, CSS ファイル, そして画像などの追加のコンテンツで構成されます. 一連のファイルは web サーバにそのままホストし, web ブラウザに表示させることができます.

R Markdown が HTML 出力フォーマットでレンダリングされた場合, その結果は静的なウェブサイトとして扱われます. ウェブサイトは単一のスタンドアロンな HTML ファイル (デフォルトオプション self_contained: true を使った場合に得られます) から, ファイルのセット, blogdown パッケージ (静的なウェブサイトジェネレータに依存しています) に基づいたウェブサイトのような洗練されたプロジェクトまで複雑さの点で多岐に及びます. より詳しく知りたいなら, blogdown(Xie, Hill, and Thomas 2017)Section 2.1 on Static Sites を見てください.

結論として, あなたは R 特化のサービスに加え, 多くの無料で使用可能な静的ウェブサイトホスティングサービスを使って HTML 文書をホストできるでしょう. R コミュニティでのよくある選択としては以下があります.

  • GitHub Pages は Github リポジトリから Markdown と HTML コンテンツをそのまま公開する場合は特に簡単です. main ブランチのルートか, main ブランチのdocs/ ディレクトリ, あるいは特定の gh-pages ブランチからコンテンツをホストすることを指定することになるでしょう. 新しいコンテンツの公開は git でリポジトリに新しい HTML ファイルをプッシュするだけで可能です.

  • GitLab Pages は GitHub Pages と類似の機能を GitLab リポジトリに対して提案します. GitLab はリポジトリの public/ ディレクトリに保存されたコンテンツをデプロイします. コンテンツをビルドし公開するには, .gitlab-ci.yml という YAML ファイルで指示を与えなければなりませんが, GitLab は多くの便利なテンプレートを提供してくれます. レンダリングされた HTML コンテンツをホストする例として, https://gitlab.com/pages/plain-html/-/tree/master をご覧ください.

  • Netlify は静的な web コンテンツをビルドしデプロイするプラットフォームです. blogdownpkgdown で作成された web コンテンツに対する選択としてはよく知られていますが, これはあらゆる種類の HTML ファイルをホスティングできます. 公開方法として, ドラッグ・アンド・ドロップ, コマンドライン, あるいは GitHub および GitLab レポジトリから自動公開するといったいくつもの選択があります. 加えて, プルリクエストから web サイトをプレビューするといった多くの役立つ機能も提案されています. 詳細は Netlify のドキュメント (https://docs.netlify.com) や RStudio webinar “Sharing on Short Notice” をご覧ください.

参考文献

Atkins, Aron, Jonathan McPherson, and JJ Allaire. 2021. Rsconnect: Deployment Interface for r Markdown Documents and Shiny Applications. https://github.com/rstudio/rsconnect.
Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown.
Xie, Yihui, Alison Presmanes Hill, and Amber Thomas. 2017. Blogdown: Creating Websites with R Markdown. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/blogdown/.

  1. R Markdown 文書に Shiny コンポネントを含むには, YAML メタデータで runtime: shiny または runtime: shiny_prerendered オプションを設定することもできます. この文書を以前のように HTML 文書にレンダリングすることはできないでしょうが, 代わりに rmarkdown::run() で文書を実行することになります. 詳しく知るには Xie, Allaire, and Grolemund (2018) (Chapter 19, https://bookdown.org/yihui/rmarkdown/shiny-documents.html) をご覧ください.↩︎