Skip to content

Commit 72d8504

Browse files
authored
Merge branch 'main' into xrfxlp/1596-labeler-resync
2 parents 66cf1c9 + 7fe629c commit 72d8504

2 files changed

Lines changed: 42 additions & 8 deletions

File tree

.github/workflows/fern-docs-preview-build.yml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,27 @@ jobs:
6969
if git show-ref --verify --quiet "refs/tags/${version}"; then
7070
mkdir -p "fern/versions/${version}-content"
7171
git archive "refs/tags/${version}" -- docs/ | tar -x --strip-components=1 -C "fern/versions/${version}-content"
72-
find "fern/versions/${version}-content" -name '*.md' -print0 | xargs -0 -r sed -i \
73-
-e 's/{/\\{/g' \
74-
-e 's/}/\\}/g' \
75-
-e 's/</\&lt;/g'
72+
# Escape {, }, < for MDX — but only outside fenced code blocks and inline code spans
73+
find "fern/versions/${version}-content" -name '*.md' -print0 | while IFS= read -r -d '' f; do
74+
awk '
75+
/^````*/ || /^~~~~*/ { fence = !fence; print; next }
76+
fence { print; next }
77+
{
78+
n = split($0, p, "`")
79+
out = ""
80+
for (i = 1; i <= n; i++) {
81+
if (i % 2 == 1) {
82+
gsub(/{/, "\\{", p[i])
83+
gsub(/}/, "\\}", p[i])
84+
gsub(/</, "\\&lt;", p[i])
85+
}
86+
out = out p[i]
87+
if (i < n) out = out "`"
88+
}
89+
print out
90+
}
91+
' "$f" > "${f}.tmp" && mv "${f}.tmp" "$f"
92+
done
7693
echo "Extracted docs from $version"
7794
else
7895
echo "::warning::Tag $version not found — skipping content checkout"

.github/workflows/publish-fern-docs.yml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,27 @@ jobs:
164164
if git show-ref --verify --quiet "refs/tags/${version}"; then
165165
mkdir -p "fern/versions/${version}-content"
166166
git archive "refs/tags/${version}" -- docs/ | tar -x --strip-components=1 -C "fern/versions/${version}-content"
167-
find "fern/versions/${version}-content" -name '*.md' -print0 | xargs -0 -r sed -i \
168-
-e 's/{/\\{/g' \
169-
-e 's/}/\\}/g' \
170-
-e 's/</\&lt;/g'
167+
# Escape {, }, < for MDX — but only outside fenced code blocks and inline code spans
168+
find "fern/versions/${version}-content" -name '*.md' -print0 | while IFS= read -r -d '' f; do
169+
awk '
170+
/^````*/ || /^~~~~*/ { fence = !fence; print; next }
171+
fence { print; next }
172+
{
173+
n = split($0, p, "`")
174+
out = ""
175+
for (i = 1; i <= n; i++) {
176+
if (i % 2 == 1) {
177+
gsub(/{/, "\\{", p[i])
178+
gsub(/}/, "\\}", p[i])
179+
gsub(/</, "\\&lt;", p[i])
180+
}
181+
out = out p[i]
182+
if (i < n) out = out "`"
183+
}
184+
print out
185+
}
186+
' "$f" > "${f}.tmp" && mv "${f}.tmp" "$f"
187+
done
171188
echo "Extracted docs from $version"
172189
else
173190
echo "::error::Tag $version not found — cannot pin frozen docs content"

0 commit comments

Comments
 (0)