Quartoでサイトを作り直した

個人サイトをQuarto+GitHub Pagesで作り直してみました.
Quarto
Website
GitHub Pages
Author

Hidezo Suganuma

Published

December 7, 2023

Quartoとは

Quarto(https://quarto.org/)はPosit社が開発したオープンソースの文書作成ツールである.Pandocベースで汎用性が高く,RやPython,Juliaなどのコードを埋め込んだ文書を作成することができる.

以前はJekyll+Github Pagesでサイトを作っていたが,コード付きのブログを書くのが少し手間だったのでこちらに乗り換えることにした.もともと実験データの解析や普段の文書作成で利用していたので慣れているというのもある.

公開と作成の手順

基本的には公式ガイドの通りにやればよい.

ローカルでウェブサイトを作成する

まずプロジェクトを作成する.

Terminal
quarto create project blog mysite

quarto previewコマンドでプレビュー可能.

Terminal
cd mysite
quarto preview

Githubにpushする

Github Pagesで公開するために_quarto.ymlを編集する.ここではdocs以下に出力するようにしている.

_quarto.yml
project:
  type: website
  output-dir: docs

Github PagesではデフォルトでJekyllを使用することになっているので,余計な処理をしないようルートディレクトリに.nojekyllファイルを作成する.

Mac/Linux
touch .nojekyll
Windows
copy NUL .nojekyll

指定したディレクトリにHTMLを出力.

Terminal
quarto render

無事にレンダリングされたら,Githubにpushしよう.

Terminal
git add .
git commit -m "first commit"
git push origin master

Github Pagesで公開する

Settings > Pagesからdocsフォルダを公開するよう設定する.

これで完成.

他にもquarto publishコマンドで公開したり,Github Actionsで自動的にレンダリングするようにしたりできるが,今回は割愛.詳細は公式ガイドを参照すればよい.

ポストを追加する

ポストを追加するにはposts以下に新たにディレクトリを追加し,その中にindex.qmdを作成する.ディレクトリ構成の例は以下の通り.

mysite
├── posts
   ├── post1
   │   └── index.qmd
   ├── post2
   │   └── index.qmd
   └── _metadata.yml
├── _quarto.yml
├── index.qmd
└── blog.qmd

以下のようにポスト内容を記述すればよい.

mysite/posts/post1/index.qmd
---
title: "My first post"
description: "Post description"
author: "John Doe"
date: "2023-12-06"
date-modified: "2023-12-07"
categories:
  - news
  - code
  - analysis
---

This is my first post.

categoriesに適当な項目を指定することで各ポストにタグを付加することができる.デフォルトではquarto renderするたびにposts/以下の.qmdファイルが自動的にレンダリングされる.ブラウザから/blog.htmlにアクセスすると,投稿がリストアップされていることを確認できる.

まとめ

せっかくサイトを整備したのでこれからブログ投稿をたくさんしていきたいですね.

いい加減にプロフィール画像を実家の猫から変えなければ…