Skip to main content

academic-website-builder

Build a clean, modern, CV-driven academic website for a researcher, professor, postdoc, or grad student. Generates three distinct design mock-ups (minimal dark, light academic, bold modern) from a CV, lets the person preview all three and modify any of them, then has them pick one — producing a self-contained site that is genuinely easy to keep updated (edit one data file, or drop in a new CV, and re-run one build command). Use this whenever someone wants to create, build, design, generate, refresh, or deploy an academic or faculty website, a researcher/scholar personal homepage, a "website from my CV/resume", a professor or lab landing page, or wants to update a site previously built with this skill. Trigger even when they don't say "skill" — e.g. "make me a personal academic site", "turn my CV into a website", "I need a faculty page", "update my academic website with my new papers".

الانتقال إلى التثبيت

معلومات المصدر

المستودع
thinkingwithagents/thinkingwithagents.github.io
آخر نشاط في المصدر
١٥ يونيو ٢٠٢٦ في ١٣:٢٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
12 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
academic-website-builder
description
Build a clean, modern, CV-driven academic website for a researcher, professor, postdoc, or grad student. Generates three distinct design mock-ups (minimal dark, light academic, bold modern) from a CV, lets the person preview all three and modify any of them, then has them pick one — producing a self-contained site that is genuinely easy to keep updated (edit one data file, or drop in a new CV, and re-run one build command). Use this whenever someone wants to create, build, design, generate, refresh, or deploy an academic or faculty website, a researcher/scholar personal homepage, a "website from my CV/resume", a professor or lab landing page, or wants to update a site previously built with this skill. Trigger even when they don't say "skill" — e.g. "make me a personal academic site", "turn my CV into a website", "I need a faculty page", "update my academic website with my new papers".
# Academic Website Builder Most academics have no time and no interest in fighting with web tooling. This skill turns a CV into a polished personal website and — crucially — leaves behind something they can keep current themselves by editing **one plain data file** (or dropping in a fresh CV) and running **one command**. No frameworks, no build pipeline to learn, no servers required. ## What it produces A self-contained site folder the person owns and can deploy anywhere: ``` <site>/ cv-data.json <- the single source of truth (everything on the site lives here) build.py <- run `python build.py` to (re)generate the site; no dependencies templates/ <- the three theme templates (edit these to change a design) CV/ <- the source CV (PDF), linked as a download index.html <- the LIVE site: the chosen theme (this is what you deploy) preview.html <- a chooser page showing all three themes side by side site-minimal-dark.html site-light-academic.html site-bold-modern.html README.md <- plain-language "how to update & deploy" for the academic ``` The three themes are real, distinct visual identities, not recolors of one template: - **minimal-dark** — twilight charcoal + iris accent; research as a typed "ledger". Restrained, design-forward. - **light-academic** — cool paper + pine green, literary serif, card-based. Scholarly, à la Chetty. - **bold-modern** — full-width bands, oversized display type, a press "ticker". High-impact, public-facing. ## The core idea (why updates are easy) `build.py` reads `cv-data.json` and renders **all three themes** plus the chooser. The academic never edits HTML to change content. Adding a paper = adding one object to a JSON list; fixing a title = editing one string; switching the whole design = changing `"theme"`. Then `python build.py` rebuilds in a second. A whole-CV refresh means re-extracting the new CV into `cv-data.json` (Claude does this) and rebuilding. **Always generate all three themes and let the person choose at the end** — seeing the real options beside their own content is far more useful than picking a theme up front. Let them request changes to any one. ## Workflow ### 1 — Gather inputs (keep it short; academics are busy) - Locate the CV (PDF/DOCX) in the working directory or ask for the path. Read it. - Ask the small set of intake questions in `references/intake.md` (profile links, public email, bio depth, photo, deploy target). Do **not** ask which theme up front — all three get built. - If they mention an existing website, offer to fetch it (WebFetch) and merge contact details/links. ### 2 — Extract the CV into `cv-data.json` - Read `references/cv-data-schema.md` for the field-by-field shape, and `assets/cv-data.example.json` for a complete worked example (a fictional but realistic economist's CV — use it as the pattern, not the content). - Extract faithfully: exact titles, venues, coauthors, years; classify each publication into one of `under_revision`, `peer_reviewed`, `working_paper`, `in_progress`, `policy_report`; flag 3–4 as `featured`; capture press notes as `badge`/`tag`. Draft the bio (see `references/intake.md`); apply the `avoid-ai-writing` skill so it doesn't read as AI prose. - Show the person the key extracted facts (name, title, counts, featured picks, bio) and let them correct before building. LLM extraction is reliable but not perfect — a quick human confirm is worth it. ### 3 — Scaffold the site folder Copy the engine and templates next to the new `cv-data.json` so the site is portable and self-contained: ``` # from the chosen <site> folder cp "<skill>/scripts/build.py" build.py mkdir -p templates && cp "<skill>/assets/templates/"*.html templates/ mkdir -p CV && cp "<the CV>" CV/ # match site.cv_file in cv-data.json cp "<skill>/assets/README.template.md" README.md ``` Write the extracted `cv-data.json` into `<site>/cv-data.json`. ### 4 — Build all three and review Run `python build.py`. Open `preview.html` to show all three themes side by side (the chooser embeds live previews). Walk through each. If a preview tool is available, screenshot each for a quick visual check. ### 5 — Let them modify any theme - **Content** (any theme): edit `cv-data.json`, rebuild. This covers ~90% of requests. - **Design** of a specific theme: edit `templates/<theme>.html` (colors live in the `:root` CSS variables near the top; layout is plain HTML). Keep the template's `{{tokens}}` intact — see the engine note below. - Treat the three themes as strong starting points, not constraints. For substantive redesigns, apply the `frontend-design` skill's principles and make deliberate choices for *this* person rather than templated defaults. ### 6 — Choose the live theme Set `"theme"` in `cv-data.json` to their pick (or pass `--theme`), rebuild. `index.html` is now their site. ### 7 — Deploy Walk them through `references/deployment.md` (GitHub Pages is the recommended free default; Netlify / Cloudflare Pages are easy alternatives; reuse an existing domain if they have one). ### 8 — Updating later (the promise of this skill) Point them to `README.md` and `references/updating.md`. Two paths: (a) edit `cv-data.json` + `python build.py`; (b) hand Claude a new CV → re-extract into `cv-data.json` (preserving `site`, `links`, `photo`) → rebuild. Switching theme, adding a photo (`site.photo`), and adding profile links are all one-line edits. ## How the templates work (template engine) `build.py` includes a tiny, dependency-free template engine. Templates use: `{{ field }}` (HTML-escaped value), `{{{ field }}}` (raw), `{{#each list}}…{{/each}}`, `{{#if key}}…{{/if}}`, `{{#unless key}}…{{/unless}}`. It supports **one level of `{{#each}}` and no nested `{{#if}}`** — keep conditionals flat (precompute combined values in `build.py`'s `prepare_context` if you need a conditional inside a conditional). CSS/JS use single braces and never collide with `{{ }}`. The fields available to templates are exactly what `prepare_context` builds; read it before adding a new token. ## Reference files - `references/intake.md` — the intake questions, bio-drafting guidance, profile-link and deploy options. - `references/cv-data-schema.md` — every `cv-data.json` field, with the publication `type` taxonomy. - `references/deployment.md` — GitHub Pages / Netlify / Cloudflare Pages, custom domains, analytics. - `references/updating.md` — the edit-and-rebuild loop, theme switching, photos, links, new-CV refresh. - `assets/cv-data.example.json` — a full, worked example (use as the extraction pattern). - `assets/README.template.md` — plain-language guide that ships inside the generated site. - `scripts/build.py` — the build engine; read `prepare_context` to see all template fields.
عرض على GitHub