panache 2.43.1

An LSP, formatter, and linter for Markdown, Quarto, and R Markdown
name: Documentation

on:
  workflow_dispatch:
  push:
    tags:
      - "v*"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  CARGO_TERM_COLOR: always

jobs:
  docs:
    name: Build Documentation
    runs-on: ubuntu-latest
    permissions:
      pages: write
      id-token: write

    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    steps:
      - name: Check out repository
        uses: actions/checkout@v6

      - name: Set up Rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: 1.94.1
          targets: wasm32-unknown-unknown

      - name: Install wasm-pack
        uses: taiki-e/install-action@wasm-pack

      - name: Build playground WASM bundle
        run: |
          wasm-pack build crates/panache-wasm --target web
          rm -rf docs/playground/pkg
          cp -r crates/panache-wasm/pkg docs/playground/
          rm -f docs/playground/pkg/.gitignore

      - uses: r-lib/actions/setup-r@v2
        with:
          use-public-rspm: true

      - uses: r-lib/actions/setup-r-dependencies@v2
        with:
          extra-packages: any::rmarkdown, any::bookdown

      - name: Set up Quarto
        uses: quarto-dev/quarto-actions/setup@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Restore timestamps
        uses: chetan/git-restore-mtime-action@v2

      - name: Render Quarto Project
        uses: quarto-dev/quarto-actions/render@v2
        with:
          path: docs

      - name: Setup Pages
        uses: actions/configure-pages@v6

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v5
        with:
          path: docs/_site

      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v5

      - name: Submit sitemap to IndexNow
        uses: bojieyang/indexnow-action@v2
        with:
          sitemap-location: https://panache.bz/sitemap.xml
          key: d8f6b1cafaee4cbc8aec36e0b9b5bb01
          failure-strategy: error

  lighthouse:
    name: Lighthouse Audit
    needs: docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Audit URLs using Lighthouse
        run: npx unlighthouse-ci --site https://panache.bz --build-static