From a672396c6af2472ac26ead930f1611e63e947dc8 Mon Sep 17 00:00:00 2001 From: Jennifer Power Date: Thu, 8 Oct 2026 19:38:45 -0400 Subject: [PATCH 1/3] docs: update maintainer roster Add Jason Meridith as a maintainer and move Travis Truman to emeritus. Assisted-by: OpenCode (OpenAI, GPT 5.6 Terra) Signed-off-by: Jennifer Power --- _data/maintainers.yml | 6 +++++- community/maintainers.md | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/_data/maintainers.yml b/_data/maintainers.yml index 36cb8a6..6c19800 100644 --- a/_data/maintainers.yml +++ b/_data/maintainers.yml @@ -8,7 +8,11 @@ maintainers: - name: Eddie Knight organization: Sonatype github: eddie-knight + - name: Jason Meridith + organization: Chainguard + github: jmeridith + +emeritus: - name: Travis Truman organization: CVS Health github: trumant - diff --git a/community/maintainers.md b/community/maintainers.md index 00b1f89..3cf6926 100644 --- a/community/maintainers.md +++ b/community/maintainers.md @@ -8,9 +8,17 @@ Gemara is maintained by a group of contributors across the community. These folks review contributions, guide the project's direction, and are happy to help you get started. +## Active Maintainers + {% for maintainer in site.data.maintainers.maintainers %} - {{ maintainer.name }}, {{ maintainer.organization }} (@{{ maintainer.github }}) {% endfor %} +## Emeritus Maintainers + +{% for maintainer in site.data.maintainers.emeritus %} +- {{ maintainer.name }}, {{ maintainer.organization }} (@{{ maintainer.github }}) +{% endfor %} + Want to get involved? See the [Contributing guide](/community/contributing) or come find us on [Slack](https://openssf.slack.com/archives/C09A9PP765Q). From d12e8b23680c27561166631573b21b70432a3180 Mon Sep 17 00:00:00 2001 From: Jennifer Power Date: Thu, 8 Oct 2026 19:38:59 -0400 Subject: [PATCH 2/3] fix: preserve Liquid output during term linking Skip Liquid output and tag expressions when inserting term links. Assisted-by: OpenCode (OpenAI, GPT 5.6 Terra) Signed-off-by: Jennifer Power --- tools/internal/cmd/termlinker.go | 5 +++++ tools/internal/cmd/termlinker_test.go | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tools/internal/cmd/termlinker_test.go diff --git a/tools/internal/cmd/termlinker.go b/tools/internal/cmd/termlinker.go index bc60034..a920bd5 100644 --- a/tools/internal/cmd/termlinker.go +++ b/tools/internal/cmd/termlinker.go @@ -354,6 +354,7 @@ func processLine(line string, termInfos []TermInfo, defPath string) string { // Find all existing markdown links, inline code, and HTML tags to skip linkPattern := regexp.MustCompile(`\[([^\]]+)\]\([^\)]+\)`) inlineCodePattern := regexp.MustCompile("`[^`]+`") + liquidPattern := regexp.MustCompile(`\{\{.*?\}\}|\{%.*?%\}`) // Match HTML tags: , , , , etc. // This regex matches opening tags, closing tags, and self-closing tags htmlTagPattern := regexp.MustCompile(`<[^>]+>`) @@ -537,6 +538,7 @@ func processLine(line string, termInfos []TermInfo, defPath string) string { // Rebuild skip ranges after each replacement linkRanges := linkPattern.FindAllStringIndex(result, -1) codeRanges := inlineCodePattern.FindAllStringIndex(result, -1) + liquidRanges := liquidPattern.FindAllStringIndex(result, -1) htmlRanges := htmlTagPattern.FindAllStringIndex(result, -1) // Find HTML tag pairs (opening and closing tags) to skip ALL content between them @@ -550,6 +552,9 @@ func processLine(line string, termInfos []TermInfo, defPath string) string { for _, r := range codeRanges { skipRanges = append(skipRanges, rangeInfo{start: r[0], end: r[1]}) } + for _, r := range liquidRanges { + skipRanges = append(skipRanges, rangeInfo{start: r[0], end: r[1]}) + } // Add HTML tags themselves for _, r := range htmlRanges { skipRanges = append(skipRanges, rangeInfo{start: r[0], end: r[1]}) diff --git a/tools/internal/cmd/termlinker_test.go b/tools/internal/cmd/termlinker_test.go new file mode 100644 index 0000000..47e3ba5 --- /dev/null +++ b/tools/internal/cmd/termlinker_test.go @@ -0,0 +1,23 @@ +package cmd + +import ( + "regexp" + "testing" +) + +func TestProcessContentPreservesLiquidOutput(t *testing.T) { + termInfos := []TermInfo{{ + OriginalTerm: "organization", + Slug: "organization", + Regex: regexp.MustCompile(`(?i)\borganization\b`), + }} + for _, content := range []string{ + "{{ maintainer.organization }}", + "{{ organization | append: \"}\" }}", + "{% assign organization = \"100%\" %}", + } { + if got := processContent(content, termInfos, "../model/02-definitions.html"); got != content { + t.Fatalf("processContent() = %q, want %q", got, content) + } + } +} From 6802cc5225e4843730001999b032d2d4098b821e Mon Sep 17 00:00:00 2001 From: Eddie Knight <21176439+eddie-knight@users.noreply.github.com> Date: Thu, 8 Oct 2026 19:43:53 -0500 Subject: [PATCH 3/3] Apply batched suggestions from code review Co-authored-by: Jason Meridth Signed-off-by: Eddie Knight <21176439+eddie-knight@users.noreply.github.com> --- _data/maintainers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/maintainers.yml b/_data/maintainers.yml index 6c19800..0758764 100644 --- a/_data/maintainers.yml +++ b/_data/maintainers.yml @@ -8,9 +8,9 @@ maintainers: - name: Eddie Knight organization: Sonatype github: eddie-knight - - name: Jason Meridith + - name: Jason Meridth organization: Chainguard - github: jmeridith + github: jmeridth emeritus: - name: Travis Truman