Files
awesome-quant/.claude/skills/sync-site/SKILL.md
T
Wilson Freitas 157e6cbd79 Rename default branch from master to main
Update GitHub Actions workflow, skill files, and shell scripts
to reference 'main' instead of 'master'.
2026-03-22 10:18:19 -03:00

2.6 KiB

name, description
name description
sync-site Sync site/index.qmd with README.md content. Use this skill whenever README.md has been updated and the site needs to reflect those changes — after merging PRs, editing entries, adding libraries, or any modification to README.md. Also triggers for "update site", "sync site", "deploy site", "update qmd", or mentions of site/index.qmd being out of date.

Sync Site

Update site/index.qmd to match the current README.md content, then commit and push.

How it works

site/index.qmd is composed of two parts:

  1. YAML frontmatter (lines 1-11) — Quarto metadata that never changes. Preserve it exactly as-is.
  2. Body content — Everything from ## Python to the end of the file. This must match README.md from the ## Python heading onward.

The preamble in README.md (title, badges, language table of contents) is intentionally excluded from index.qmd because the Quarto frontmatter replaces it.

Steps

1. Extract the frontmatter from index.qmd

Read site/index.qmd and capture everything up to and including the closing --- and the blank line + description + badge lines that follow it (lines 1-16).

The header looks like this:

---
title: "Awesome Quant"
...
---

A curated list of insanely awesome libraries, packages and resources for Quants (Quantitative Finance).

[![](https://awesome.re/badge.svg)](https://awesome.re)

2. Extract the body from README.md

Read README.md and capture everything starting from the line ## Python (inclusive) to the end of the file.

3. Combine and write

Concatenate the frontmatter header and the README body, then write to site/index.qmd.

Use a shell script for reliability:

# Extract line number where "## Python" starts in README.md
START=$(grep -n '^## Python' README.md | head -1 | cut -d: -f1)

# Extract frontmatter + preamble from index.qmd (up to the badge line)
END=$(grep -n 'awesome.re/badge' site/index.qmd | head -1 | cut -d: -f1)

# Combine: header from qmd + body from README
{ head -n "$END" site/index.qmd; echo; tail -n +"$START" README.md; } > site/index.qmd.tmp
mv site/index.qmd.tmp site/index.qmd

4. Verify

Run a quick diff to confirm the update looks correct:

# Show line count to sanity-check
wc -l site/index.qmd

# Optionally diff the body portion to confirm they match
diff <(tail -n +"$START" README.md) <(sed -n "$((END+2)),\$p" site/index.qmd)

5. Commit and push

Stage, commit, and push the change:

git add site/index.qmd
git commit -m "Sync site/index.qmd with README.md"
git push origin main