Migrate every remaining pattern to the new author system#143
Open
RichardLitt wants to merge 3 commits into
Open
Migrate every remaining pattern to the new author system#143RichardLitt wants to merge 3 commits into
RichardLitt wants to merge 3 commits into
Conversation
Tighten .markdownlint.yaml to require `style: dash` for the markdownlint MD004 (ul-style) rule, then run `npm run lint-fix` to normalize all existing patterns to use `-` as the unordered list marker (previously a mix of `-`, `*`, and `+`). Pure auto-fix — no content changes, no whitespace changes beyond the bullet character itself. Confirmed `npm run lint` passes afterwards. Prep for the upcoming bulk authors migration; consistent bullet markers make the Contributors-section parser much simpler.
Hand-fix four patterns whose Contributors sections didn't fit the standard "bullet list of authors followed by optional prose" shape, so the upcoming bulk migration can parse them consistently. - event-tabling.md, ospo-student-ambassador-program.md: contributor entries were paragraph-form rather than a bulleted list. Convert each line to a `-` bullet. Also strip the `my-orcid?orcid=` query prefix from the Nouha Elyazidi ORCID URL so it matches the canonical `https://orcid.org/<id>` form. - source-industry-mentors-for-the-icorps-program.md: the Zach Chandler line had a stray `](<https://orcid.org/...>` fragment left over from a half-applied markdown link. Remove the trailing junk so only the canonical ORCID URL remains. - template-for-1-1-campus-consultations.md: a bullet read "Duane O'Brien consulted on the design of the CMU OSPO project consultation template", which is acknowledgement prose rather than a structured contributor entry. Move it out of the bullet list and into a "Thanks to Duane O'Brien…" sentence below the list. No semantic changes — same people credited, same ORCIDs, same prose.
Convert all remaining patterns' Contributors sections to the authors.yml + frontmatter model introduced in #141. Adds 28 new authors to authors.yml (the 9 seeded in #141 stay unchanged) and populates the `authors:` frontmatter on 41 patterns. Migration was driven by a one-off Python script (not committed) that: - Parses each pattern's `## Contributors & Acknowledgement` / `Acknowledgements` section, skipping any "in alphabetical order" preamble. - Extracts (name, affiliation, orcid) from each bullet using regex-based ORCID detection and a name/affiliation parser that handles both `Name, Affiliation, <orcid>` and `Name (Affiliation), <orcid>` shapes. - Strips academic titles (Dr./Prof./etc.) before slug generation and before name-based deduplication, so "Dr. Angela Newell" maps to the existing `angela-newell` slug instead of creating a duplicate. - Folds diacritics for slug generation via unicodedata.normalize (NFKD + combining-character strip), so "David Pérez-Suárez" becomes `david-perez-suarez` rather than `david-p-rez-su-rez`. - Dedupes by ORCID first, then by case-insensitive name; backfills missing ORCID or affiliation on existing records when a later pattern provides one. - Preserves any trailing prose under the Contributors heading (e.g. AI-use disclaimers, "Special thanks to X for ..." notes). Skipped (no Contributors section, intentionally left untouched): framework-managing-university-oss.md, lunch-and-learn.md, open-research-community-accelerator.md, open-source-catalog.md, open-source-software-prize.md, open-source-survey.md, oss-tutorials-using-authoring-tools.md, summer-internship-program.md, integrating-oss-into-institutional-software-pathways.md. Verified: - `mkdocs build --strict --site-dir /tmp/patterns_site` clean. - All 37 author pages generate; each lists the patterns the author contributed to. - Preserved prose still renders on individual-consultations-office-hours.md (Duane O'Brien thanks), source-industry-mentors-for-the-icorps-program.md (Jeffrey Young thanks), project-rolodex.md (Megan Forbes thanks), and the several patterns with "A note on AI use" paragraphs. - `npm run lint` passes (one MD012 stray blank line in project-rolodex.md auto-fixed by `lint-fix`).
ee1b07b to
4780eb6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on top of #141. Closes the migration work it started.
What this changes
#141 introduced the new author system but only migrated two patterns as proof-of-concept. This PR finishes the job — every remaining pattern that lists contributors now uses the new system, and every contributor has their own page on the site.
What you'll see after this merges
authors.ymlfile at the root of the repo.What contributors do going forward
Same flow as #141 described: add yourself once to
authors.yml, then list your slug in any pattern you contribute to. CONTRIBUTING.md already has the instructions.How this PR is organised
Three commits, each independently reviewable:
MD004: { style: dash }to.markdownlint.yamland runsnpm run lint-fix. Every unordered list across the repo now uses-. Pure marker-character change, no other edits.authors:frontmatter; 28 new contributors get added toauthors.yml; the legacy contributor bullet lists are removed (the hook re-renders them at build time).What to click on the preview site
/authors/— the index now lists all 37 contributors./authors/ciara-flanagan/— Ciara appears on 36 patterns; her page now shows all of them./authors/david-perez-suarez/— note the diacritic handling: the slug isdavid-perez-suarezand the displayed name has the accents./individual-consultations-office-hours/— Contributors section ends with "Thanks to Duane O'Brien for consulting on the design…" (this paragraph used to be a misplaced bullet; it's now preserved as proper prose)./source-industry-mentors-for-the-icorps-program/— similarly preserves the "Special thanks to Jeffrey Young…" paragraph.What's intentionally left alone
Nine patterns have no Contributors section at all (no authors listed yet). They build cleanly under the new system — the hook simply leaves them as-is, with no Contributors section rendered. Those patterns are:
framework-managing-university-oss,lunch-and-learn,open-research-community-accelerator,open-source-catalog,open-source-software-prize,open-source-survey,oss-tutorials-using-authoring-tools,summer-internship-program,integrating-oss-into-institutional-software-pathways.Stacking
This PR is stacked on top of #141 — merge that one first. Once #141 is in, GitHub will auto-rebase this onto
main. Independent of #142 (the ORCID icons PR); the two can merge in either order.🤖 Generated with Claude Code