R Markdown でちょっとしたドキュメントを書いてサクっと公開したい、というときどうしてますか? もちろん、GitHub のレポジトリを作るのはそれほど大変ではないですが、でも「サクッ」というほどではないですよね。では自前でウェブサイトを作るかというと、それも面倒くさい。
昔話
最近 R を使い始めた人はひょっとするとご存じではないかもしれませんが、昔はRpubsというサービスがよく使われていました。 RPubs は RStudio にも統合されていてそこそこお手軽なのですが、最近は使っている人をまったく見かけません。おそらく、形式が不自由、コードを管理するのにどのみち GitHub を使いたくなる、というあたりが原因なんじゃないかと思っています。
まあでも、ワンクリックで publish できて、誰でも無料で全世界に公開できる、というのはこのサービスの大きな魅力でした。 そんなサービスが果たして Quarto にはあるんでしょうか?
あるんです、これが。Quarto Pub です。
Quarto Pub
Quarto Pub は、RPubs と同じく RStudio 社(もうすぐ Posit 社になりますね)が提供するサービスです。
最近は Hadley もこれを使ってちょっとしたドキュメントを公開したりしてるようです。
If you missed the webinar, I've posted my talk notes at https://t.co/SZGIVtQ8JO — read to get quick a overview of the bigger improvements coming to the tidyverse over the next few months https://t.co/lqmidggZeW
— Hadley Wickham (@hadleywickham) 2022年10月28日
RPubs との違いとしては、ドキュメント単位ではなくプロジェクト単位で publish ができます。どういうことかというと、1つのドキュメントに限らず、
- ウェブサイトやブログ
- プレゼンテーション
- 本
などが publish できる、ということです。今回は1つのドキュメントのケースに絞って話すので割愛しますが、詳しくは公式ドキュメントを読んでください。
とりあえず、ドキュメントを1つ publish するところまでを追ってみましょう。
アカウント登録
まずは、アカウントを作成します。https://quartopub.com/ にアクセスして「Sign Up for Quarto Pub」をクリックすると、以下のような画面になります。 GitHub アカウントか Google アカウントに連携して認証するか、メールアドレスとパスワードを入力して登録するか、いずれかの方法が選べます。 わたしは GitHub にしました。
なお、注意書きにあるように、Firefox でプライバシー保護機能がオンになっているとうまく動作しないようです。私も引っかかりました。 初回の認証のときだけ保護機能をオフにしましょう。一度アカウントを登録してしまえば、あとは再びオンにしても問題ないようです。
たしか初回だと、この画面の後にアカウント名などを設定する画面が出てきます。Quarto Pub で publish されるドキュメントは
https://<ユーザー名>.quarto.pub/...
に公開されることになるので、覚えやすいユーザー名がいいでしょう。私は GitHub の ID は yutannihilation
ですが、Quarto では yutani
にしました。
認証
は、すっとばしてまずは publish しましょう。
publish
publish には Quarto CLI を使います(以下、 quarto
コマンドがインストールされていてパスが通っているものとして話を進めます)。
単一の .qmd ファイルを publish するには、以下のコマンドを実行します。
quarto publish quarto-pub /path/to/file.qmd
初回の実行ではまず、認証が行われます。 初回しか出ないのであまり覚えてないんですが、たしかブラウザが開かれてインタラクティブに認証する、みたいなやつだったと思います。 指示に従っていればすんなり認証できたはずです。
そして認証が終わるとドキュメントが render されます。
quarto.cmd publish quarto-pub ./quarto_test3.qmd ? Publish with account <メールアドレス> (Y/n) » Yes ? Publish with name 'quarto-test3'? (Y/n) » Yes [>] Creating quarto-pub document Rendering for publish: processing file: quarto_test3.qmd |.............. | 20% ordinary text without R code |............................ | 40% label: unnamed-chunk-1 |.......................................... | 60% ordinary text without R code |........................................................ | 80% label: unnamed-chunk-2 (with options) List of 1 $ echo: logi FALSE |......................................................................| 100% ordinary text without R code output file: quarto_test3.knit.md pandoc to: html output-file: quarto_test3.html standalone: true section-divs: true html-math-method: mathjax wrap: none default-image-extension: png metadata document-css: false link-citations: true date-format: long lang: en editor: visual title: Quarto Test3 [>] Preparing to publish document [>] Uploading files (complete) [>] Deploying published document [>] Published document: https://quartopub.com/sites/yutani/quarto-test3 [>] Account site updated: https://yutani.quarto.pub
するとブラウザが開き、完成したドキュメントが表示されます。
これで終わりです。めちゃくちゃお手軽じゃないですか?
その他
まだあまり使い込めてないですが、便利だと思ったことをいくつか。
- (これは Quarto Pub は関係ない機能ですが、)
code-tools: true
にしておくと、コードもそのドキュメントと一緒に公開できるので「ソースコードは GitHub で見てください」みたいなことを言わずに済む(参考:Code Tools に関するドキュメント)。 --no-render
をつけておくと無駄な再 render を防ぐことができる。- GitHub Actions も用意されているので、「コードは GitHub で管理して公開は Quarto Pub で」ということも可能(ただしここにはいろんな戦略がありうるので、今のところ何が正解かは不明)
Quarto Pub めちゃくちゃ便利そうなのに日本語圏ではまだ使ってる人みたことないので、もっと使って知見をシェアしていきましょう!