Skip to content

update layout

update layout #113

Workflow file for this run

name: Deploy Jekyll site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # full history for jekyll-last-modified-at
- name: Setup Ruby
# https://github.com/ruby/setup-ruby/releases/tag/v1.207.0
uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4
with:
ruby-version: '3.3' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Set post dates from git if missing
run: |
python3 - <<'PYEOF'
import subprocess, os, re
posts_dir = "docs/_posts"
for fname in os.listdir(posts_dir):
if not fname.endswith(".md"):
continue
fpath = os.path.join(posts_dir, fname)
with open(fpath, "r") as f:
content = f.read()
# Skip if date already in front matter
fm_match = re.match(r'^---\n(.*?)\n---', content, re.DOTALL)
if fm_match and re.search(r'^date:\s*.+', fm_match.group(1), re.MULTILINE):
continue
# Get first commit date for this file
result = subprocess.run(
["git", "log", "--follow", "--format=%as", "--", fpath],
capture_output=True, text=True
)
dates = result.stdout.strip().splitlines()
if not dates:
continue
commit_date = dates[-1] # oldest commit
# Inject into front matter
content = content.replace("---\n", f"---\ndate: {commit_date}\n", 1)
with open(fpath, "w") as f:
f.write(content)
print(f"Set date {commit_date} for {fname}")
PYEOF
- name: Build with Jekyll
run: bundle exec jekyll build --source docs --destination _site --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v3
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4