Skip to content
name: Convert Notebooks and Update Book
on:
push:
paths:
- 'notebooks/**.ipynb'
jobs:
convert-and-copy:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Checkout the Linear_Algebra_with_Python repository
uses: actions/[email protected]
- name: Install Quarto
run: |
wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.5.56/quarto-1.5.56-linux-amd64.tar.gz
tar -xvzf quarto-1.5.56-linux-amd64.tar.gz
sudo cp -r quarto-1.5.56/* /usr/local/
- name: Convert Notebooks to QMD
run: |
mkdir -p converted_chapters
for notebook in notebooks/*.ipynb; do
quarto convert "$notebook" -o "converted_chapters/$(basename "$notebook" .ipynb).qmd"
done
- name: Checkout the weijie-chen.github.io repository
uses: actions/[email protected]
with:
repository: weijie-chen/weijie-chen.github.io
path: book_repo
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token.
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository.
- name: Copy Converted QMD Files to Book Repository
run: |
mkdir -p book_repo/linear-algebra-with-python-book/chapters
cp converted_chapters/*.qmd book_repo/linear-algebra-with-python-book/chapters/
- name: Update Table of Contents in index.html
run: |
toc=""
for chapter in book_repo/linear-algebra-with-python-book/chapters/*.qmd; do
chapter_name=$(basename "$chapter" .qmd)
toc="$toc<li>$chapter_name</li>\n"
done
sed -i '/<section class="table-of-contents">/,/<\/section>/{//!d}' book_repo/linear-algebra-with-python-book/index.html
sed -i "/<section class=\"table-of-contents\">/a $toc" book_repo/linear-algebra-with-python-book/index.html
- name: Remove extraheader to avoid conflicts with PAT
run: git config --unset-all http.https://github.com/.extraheader
- name: Commit and Push Changes
run: |
cd book_repo
git config user.name "GitHub Actions"
git config user.email "[email protected]"
git add linear-algebra-with-python-book/chapters/*
git add linear-algebra-with-python-book/index.html
git commit -m "Updated chapters and Table of Contents"
git push origin main:master