.qmd を超お手軽完全無料パブリッシュできる Quarto Pub を使ってみる

R Markdown でちょっとしたドキュメントを書いてサクっと公開したい、というときどうしてますか? もちろん、GitHub のレポジトリを作るのはそれほど大変ではないですが、でも「サクッ」というほどではないですよね。では自前でウェブサイトを作るかというと、それも面倒くさい。

昔話

最近 R を使い始めた人はひょっとするとご存じではないかもしれませんが、昔はRpubsというサービスがよく使われていました。 RPubs は RStudio にも統合されていてそこそこお手軽なのですが、最近は使っている人をまったく見かけません。おそらく、形式が不自由、コードを管理するのにどのみち GitHub を使いたくなる、というあたりが原因なんじゃないかと思っています。

まあでも、ワンクリックで publish できて、誰でも無料で全世界に公開できる、というのはこのサービスの大きな魅力でした。 そんなサービスが果たして Quarto にはあるんでしょうか?

あるんです、これが。Quarto Pub です。

Quarto Pub

Quarto Pub は、RPubs と同じく RStudio 社(もうすぐ Posit 社になりますね)が提供するサービスです。

最近は Hadley もこれを使ってちょっとしたドキュメントを公開したりしてるようです。

RPubs との違いとしては、ドキュメント単位ではなくプロジェクト単位で publish ができます。どういうことかというと、1つのドキュメントに限らず、

  • ウェブサイトやブログ
  • プレゼンテーション

などが publish できる、ということです。今回は1つのドキュメントのケースに絞って話すので割愛しますが、詳しくは公式ドキュメントを読んでください。

とりあえず、ドキュメントを1つ publish するところまでを追ってみましょう。

アカウント登録

まずは、アカウントを作成します。https://quartopub.com/ にアクセスして「Sign Up for Quarto Pub」をクリックすると、以下のような画面になります。 GitHub アカウントか Google アカウントに連携して認証するか、メールアドレスとパスワードを入力して登録するか、いずれかの方法が選べます。 わたしは GitHub にしました。

なお、注意書きにあるように、Firefox でプライバシー保護機能がオンになっているとうまく動作しないようです。私も引っかかりました。 初回の認証のときだけ保護機能をオフにしましょう。一度アカウントを登録してしまえば、あとは再びオンにしても問題ないようです。

Quarto Pubのサインアップ画面

たしか初回だと、この画面の後にアカウント名などを設定する画面が出てきます。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 に publish されたドキュメント

その他

まだあまり使い込めてないですが、便利だと思ったことをいくつか。

  • (これは Quarto Pub は関係ない機能ですが、)code-tools: true にしておくと、コードもそのドキュメントと一緒に公開できるので「ソースコードGitHub で見てください」みたいなことを言わずに済む(参考:Code Tools に関するドキュメント)。
  • --no-render をつけておくと無駄な再 render を防ぐことができる。
  • GitHub Actions も用意されているので、「コードは GitHub で管理して公開は Quarto Pub で」ということも可能(ただしここにはいろんな戦略がありうるので、今のところ何が正解かは不明)

Quarto Pub めちゃくちゃ便利そうなのに日本語圏ではまだ使ってる人みたことないので、もっと使って知見をシェアしていきましょう!