quarto publishコマンド
quarto publish quarto-pub.qmd
WebsiteやBookをRenderし、HTMLを作成した後、そのHTMLをWeb上に公開すれば、世界中の人達がそのWebsiteやBookを読むことができます。HTMLをWeb上で公開するというのは、Webに繋がったコンピュータ(Webサーバー)にHTMLファイルを置き、Web上でこのHTMLファイルにアクセスができるようにすることです。このHTMLの公開のことをデプロイ
と呼びます。
デプロイをするためには、Webサーバーが必要となります。自前でWebサーバーを準備することもできますが、通常はWebサーバーを運用しているサービスを利用することになります。
Webサーバーを運用しているサービスには、Amazon web serviseやMicrosoft Azureなどがありますが、いずれも有料です。Quartoで作成したHTML(Webサーバーで演算を行わないので、静的なHTMLと呼ばれます)をデプロイするのであれば、これらの有料サービスではなく、無料のサービスを利用することができます。
無料のサービスには、Positが運営しているQuarto専用のサービスであるQuarto Pubや、もっと汎用的にHTMLの公開に用いることができるGithub Pagesなどがあります。
これらの無料のサービスでは公開したHTMLは基本的にはWeb上に完全に公開されます。企業内など、特定のユーザーのみがアクセスできる設定にはできません。また、アクセス数に制限があり、高頻度でアクセスされると表示が遅くなったり、表示できなくなったりします。また、HTMLのサイズにも制限があります。
とは言え、個人で作成するようなWebsiteやBookではアクセス制限に到達したり、HTMLのサイズが大きくなりすぎることはあまりないと思います。Quartoで作成したHTMLを公開する場合、とりあえずはQuarto pubかGithub Pagesでデプロイすることを検討するとよいでしょう。
Quarto Pubは上記の通り、Positが運営しているサービスで、Rstudioを用いていれば簡単にHTMLをデプロイすることができます。
Quarto Pubにデプロイする場合、まずはQuarto Pubにアカウントを作成する必要があります。まずはQuarto Pubのホームページにアクセスし、「Sign Up」を選択しましょう。Quarto PubのログインにはGoogleやGithubのアカウントを用いることもできます。
Quarto Pubにアカウントを作成した後、TerminalでWebsiteやBookのProjectのディレクトリに移動した後、quarto publish
コマンドを用いることでそのProject内の.qmdファイルがHTMLにRenderされ、そのHTMLがQuarto Pubにデプロイされます。
quarto publishコマンド
quarto publish quarto-pub.qmd
quarto publish
コマンドを入力すると、Terminal上でQuarto Pubへの認証が行われます。必要な情報を入力すると、作成したQuarto PubのアカウントにProjectの.qmdもしくは指定した.qmdファイルがHTMLにRenderされた後、デプロイされます。
上記のQuarto Pubの認証では、アクセストークン(Access Token)というものが要求されます。アクセストークンは上記のQuarto Pubのアカウントにログインし、アカウント内のページから取得することができます。認証の途中で入力を求められるため、コピーしておいてテキストとしてTerminalで貼り付けるとよいでしょう。詳細についてはQuartoのGuideのページをご参照ください。
Quarto Pubにログインすると、デプロイしたProjectの一覧が表示されます。このページから、デプロイしたページに移動したり、デプロイしたProjectを削除することができます。
Github Pagesは、リモートリポジトリサービスであるGithubが運用している、静的なHTMLをデプロイするためのサービスです。Github PagesではGithubのリモートリポジトリに保存したHTMLを公開することができます。
Githubの使い方についてはこのテキストの範囲を越えるため詳細については説明しませんが、Github Pagesを用いるために最低限必要なことのみ以下のcalloutブロックで説明します。
Githubを使い始める前に、まずはGitをインストールしましょう。Gitの公式ページからインストーラーをダウンロードし、インストールします。
Githubが提供しているGithub DesktopにもGitが含まれています。Githubを使う前提であれば、Github Desktopをダウンロードし、インストールしてもよいでしょう。
Gitをインストールすると、TerminalからGitのコマンドを利用できるようになります。Gitのコマンドを利用して、Terminalからユーザー名とメールアドレスを登録します。
ユーザー名は、以下のようにuser.name
として文字列で指定して登録します。以下の例ではユーザー名は「XXXXX」となります。
Gitにユーザー名を登録する
git config --global user.name "XXXXX"
同様に、メールアドレスはuser.email
として文字列で指定して登録します。以下の例ではメールアドレスは「XXXXX.@xjorv.com」となります。
Gitにメールアドレスを登録する
git config --global user.email "XXXXX.@xjorv.com"
次に、Githubのアカウントを作成します。
作成したアカウントでGithubにログインし、リモートリポジトリを作成します。リモートリポジトリとは、開発しているプログラムを保存するWeb上のフォルダのようなものです。
Githubのアカウントのページで「repositories」のタブに移動すると、「new」というボタンがあります。このボタンを押すことでレポジトリ作成のページに移行します。
この「Create a new repository」のページ上で、Repository nameをつけます。Repository nameは英語名で、スペースを入れないものとします。仮に「test」というリポジトリを作成します。
また、Github Pagesで広くネットにWebsiteを公開する場合、レポジトリはPublic、つまり誰でも閲覧できる形で作成する必要があります。
TerminalでProjectのディレクトリに移動し、git init
と入力します。このコマンドを用いることで、Gitに必要なファイルがそのディレクトリに作成されます。
gitの初期設定
git init
次に、ディレクトリ内に保存されているファイルをcommitします。commitは、現在作成しているファイルの内容を記録することを指します。後ほどファイルを変更した時には、commitした点と変更した点を比較したり、commitした時点のファイルを復活させたりすることができます。
commitの詳細についてはgitのtutorialやサル先生のGit入門をご参照下さい。
ディレクトリ内のすべてのファイルをcommitするためには、まずgit add
コマンドを実行し、その後、git commit
コマンドを実行します。
引き続き、TerminalでProjectのディレクトリに移動して、以下のように入力します。-A
はすべてのファイルをcommitできるように準備するためのコマンドです。
git add
git add -A
次に、commitを行います。commitではcommitメッセージの入力が必要です。以下のように入力し、commitメッセージを追加します。
git commit
git commit -m "commit message"
Web上のリモートリポジトリであるGithubと自分のPC(ローカル)で機能するローカルレポジトリであるGitを関連付けることで、Terminalから簡単にGithubへとファイルを転送することができるようになります。
Github上に作成したリモートリポジトリに移動すると以下のように関連付けの方法が表示されます。
上記のコマンドに従い、git remote
コマンドを実行します。
git remote
git remote add origin https://github.com/sb8001at-oss/test.git
これでcommitしたレポジトリをリモートリポジトリにアップロードする準備が整いました。
リモートリポジトリとの関連付けが終わったら、ファイルをリモートリポジトリにpush(アップロード)します。git push
コマンドを用いて、先ほどのリモートリポジトリにファイルをアップロードします。
git push
git push origin main
pushを行うと、Githubのリモートリポジトリのページからファイルが見えるようになります。
GithubのリモートリポジトリにファイルをPushしたら、次にリモートリポジトリのページからGithub Pagesの設定を行います。
Githubにログインし、ファイルをPushしたリモートリポジトリに移動します。次に、上のタブから「Setting」を選択し、左のカラムから「Pages」を選択します。選択すると以下のようなページに移動します。
このページでBranchをmain
(上の図ではmaster
になっています)、/(root)
もしくは/docs
から選択します。rootの場合はProjectのディレクトリにあるHTMLを、/docsの場合はProjectのディレクトリに作成した/docsのディレクトリ内のHTMLをそれぞれデプロイすることになります。
QuartoではRenderで出力するHTMLは_site
や_book
のフォルダ内に保存されるため、以下のようにYAMLでdocs
フォルダに保存するようにしておくとよいでしょう。
HTMLを出力するフォルダを設定する
project:
type: book
output-dir: docs
フォルダを選択し、「Save」を選択すると、HTMLがデプロイされます。少し待って、表示されるページのリンクを選択すれば、作成したHTMLにWeb上でアクセスできます。
QuartoのGuideでは、HTMLをデプロイするためのサービスの例として、Neltify、Posit Connect、Posit Cloud、Confluence、hugging face、Firebase、Site44、Amazon S3などが挙げられています。いずれもそれぞれ使い方が異なり、有料のものも含まれています。作成するページのトラフィックが非常に大きいようならこれらのサービスを用いることを検討してみてもよいでしょう。また、日本ではさくらインターネットなどのクラウドサービスを用いてもデプロイすることができます。
作成したページのアクセスを解析するサービスがGoogle Analyticsです。Google Analyticsを利用するには、まずGoogleのアカウントでGoogle Analyticsにログインします。次に、設定の画面からアカウントとプロパティを作成します。このプロパティがページへのアクセスを測定する機能に相当します。
プロパティには、tracking IDかtag measurement IDがあります。このIDのいずれかを以下のようにYAMLを設定することで、Google Analyticsのページからアクセスを解析することができます。
Google Analyticsを用いる
book:
google-analytics: "G-XXXXXXXXXX"
Quarto PubやGithub Pagesに登録したウェブページはそのままではGoogleの検索にはかかりません。この検索の設定を行うためのツールがGoogle Search Consoleです。Google Search Consoleにページを登録し、sitemapというものを作成すると、Googleの検索にページが登録されるようになります。詳しくは、こちらのnoteの記事や、Qiitaの記事をご参照下さい。