Publishing
To get your Quarto webpage to show up with the url
yourname.github.io/yourrepo
you have a few steps.
Turn on GitHub Pages for your repo
- Turn on GitHub Pages under Settings > Pages . You will set pages to be made from the gh-pages branch and the root directory.
- Turn on GitHub Actions under Settings > Actions > General
The GitHub Action will automatically recreate your website when you push to GitHub after you do the initial gh-pages
set-up
Do your first publish to gh-pages
The first time you publish to gh-pages
, you need to do so locally.
- On your local computer, open a terminal window and
cd
to your repo directory. Here is what thatcd
command looks like for me. You command will look different because your local repo will be somewhere else on your computer.
cd ~/Documents/GitHub/NOAA-quarto-simple
- Publish to the
gh-pages
. In the terminal type
quarto publish gh-pages
This is going to render your webpage and then push the _site
contents to the gh-pages
branch.
Don’t like using gh-pages
?
In some cases, you don’t want your website on the gh-pages
branch. For example, if you are creating releases and you want the website pages archived in that release, then you won’t want your website pages on the gh-pages
branch.
Here are the changes you need to make if you to avoid gh-pages
branch.
- At the top of
_quarto.yml
add the following:
project:
type: website
output-dir: docs
- On GitHub under Settings > Pages set pages to be made from the
main
branch and the docs directory. - Make sure
docs
is not listed in.gitignore
- Publish the site the first time locally using
quarto publish
from the terminal - Change the GitHub Action because you can’t use
quarto publish gh-pages
. You’ll need to push to the main branch yourself (in the GitHub Action)
on:
push:
branches: main
name: Render and Publish
jobs:
build-deploy:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Set up R (needed for Rmd)
uses: r-lib/actions/setup-r@v2
- name: Install packages (needed for Rmd)
run: Rscript -e 'install.packages(c("rmarkdown", "knitr", "jsonlite"))'
- name: Set up Quarto
uses: quarto-dev/quarto-actions/setup@v2
with:
# To install LaTeX to build PDF book
# tinytex: true
# uncomment below and fill to pin a version
# version: 0.9.600
- name: Render Quarto Project
uses: quarto-dev/quarto-actions/render@v2
with:
to: html
- name: Set up Git
run: |
git config --local user.email "actions@github.com"
git config --local user.name "GitHub Actions"
- name: Commit all changes and push
run: |
git add -A && git commit -m 'Build site' || echo "No changes to commit"
git push origin || echo "No changes to commit"