Skip to content

Commit 07a1cc5

Browse files
committed
pages update from test
1 parent 658b84c commit 07a1cc5

1 file changed

Lines changed: 51 additions & 105 deletions

File tree

.github/workflows/pages.yml

Lines changed: 51 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -3,66 +3,39 @@ name: Deploy to GitHub Pages
33
on:
44
push:
55
branches: ["main"]
6-
workflow_dispatch:
7-
repository_dispatch:
8-
types: [visibility_changed]
96

107
permissions:
118
contents: read
129
pages: write
1310
id-token: write
14-
deployments: write
1511

1612
concurrency:
1713
group: "pages"
1814
cancel-in-progress: false
1915

2016
jobs:
21-
check-visibility:
17+
check:
2218
runs-on: ubuntu-latest
2319
outputs:
24-
is_private: ${{ steps.check.outputs.is_private }}
20+
pages_enabled: ${{ steps.check.outputs.pages_enabled }}
2521
steps:
26-
- name: Check repo visibility
22+
- name: Check if Pages is enabled
2723
id: check
28-
run: |
29-
if [ "${{ github.event.repository.private }}" = "true" ]; then
30-
echo "is_private=true" >> "$GITHUB_OUTPUT"
31-
echo "::warning::Repository is private — Pages deployment will be skipped"
32-
else
33-
echo "is_private=false" >> "$GITHUB_OUTPUT"
34-
fi
35-
36-
teardown:
37-
runs-on: ubuntu-latest
38-
needs: check-visibility
39-
if: needs.check-visibility.outputs.is_private == 'true'
40-
steps:
41-
- name: Remove GitHub Pages deployments
4224
env:
4325
GH_TOKEN: ${{ github.token }}
44-
REPO: ${{ github.repository }}
4526
run: |
46-
echo "Repository is private — removing existing Pages deployments"
47-
DEPLOYMENTS=$(gh api "repos/${REPO}/deployments?environment=github-pages&per_page=100" --jq '.[].id' 2>/dev/null || true)
48-
if [ -z "$DEPLOYMENTS" ]; then
49-
echo "No existing Pages deployments found"
50-
exit 0
27+
HTTP_CODE=$(gh api "repos/${{ github.repository }}/pages" --silent -i 2>/dev/null | head -1 | awk '{print $2}')
28+
if [ "$HTTP_CODE" = "200" ]; then
29+
echo "pages_enabled=true" >> "$GITHUB_OUTPUT"
30+
else
31+
echo "pages_enabled=false" >> "$GITHUB_OUTPUT"
32+
echo "::notice::GitHub Pages is not enabled — skipping. Enable it in Settings → Pages → Source → GitHub Actions."
5133
fi
52-
for ID in $DEPLOYMENTS; do
53-
echo "Deactivating deployment ${ID}..."
54-
gh api --method POST -H "Accept: application/vnd.github+json" \
55-
"repos/${REPO}/deployments/${ID}/statuses" -f state=inactive 2>/dev/null || true
56-
echo "Deleting deployment ${ID}..."
57-
gh api --method DELETE -H "Accept: application/vnd.github+json" \
58-
"repos/${REPO}/deployments/${ID}" 2>/dev/null || true
59-
done
60-
echo "All Pages deployments removed"
6134
6235
build:
6336
runs-on: ubuntu-latest
64-
needs: check-visibility
65-
if: needs.check-visibility.outputs.is_private == 'false'
37+
needs: check
38+
if: needs.check.outputs.pages_enabled == 'true'
6639
steps:
6740
- name: Checkout
6841
uses: actions/checkout@v4
@@ -76,7 +49,6 @@ jobs:
7649
run: |
7750
set -e
7851
79-
OWNER="${REPO_FULL%%/*}"
8052
REPO="${REPO_NAME}"
8153
DESC="${REPO_DESC:-$REPO}"
8254
BASE_URL="/${REPO}"
@@ -98,9 +70,7 @@ jobs:
9870
[ -f "$lf" ] && cp "$lf" "${STAGE}/"
9971
done
10072
101-
# Copy assets/ folder if it exists (favicon, images, etc.)
10273
if [ -d "assets" ]; then
103-
mkdir -p "${STAGE}/assets"
10474
find ./assets -type f \( -name '*.svg' -o -name '*.png' -o -name '*.ico' -o -name '*.jpg' -o -name '*.webp' \) \
10575
| while read -r f; do
10676
dest="${STAGE}/${f#./}"
@@ -166,14 +136,12 @@ jobs:
166136
body{font-family:'IBM Plex Sans',-apple-system,sans-serif;color:var(--text-primary);background:var(--bg-page);line-height:1.7}
167137
a{color:var(--link);text-decoration:none}
168138
a:hover{text-decoration:underline}
169-
170139
.site-header{background:var(--bg-header);border-bottom:1px solid var(--border);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
171140
.site-title{font-size:16px;font-weight:500;color:var(--text-primary);text-decoration:none}
172141
.site-nav{display:flex;gap:20px;flex-wrap:wrap}
173142
.site-nav a{font-size:14px;color:var(--text-secondary);text-decoration:none;padding:4px 0}
174143
.site-nav a:hover{color:var(--text-primary)}
175144
.site-nav a.active{color:var(--text-primary);font-weight:500;border-bottom:2px solid var(--accent)}
176-
177145
.container{max-width:820px;margin:32px auto;padding:0 24px}
178146
.content{background:var(--bg-content);border:1px solid var(--border);border-radius:6px;padding:32px}
179147
.content h1{font-size:24px;font-weight:500;margin:0 0 16px;border-bottom:1px solid var(--border);padding-bottom:8px}
@@ -189,15 +157,14 @@ jobs:
189157
.content th,.content td{border:1px solid var(--border);padding:8px 12px;text-align:left}
190158
.content th{background:var(--bg-code);font-weight:500}
191159
.content img{max-width:100%}
192-
193160
code{font-family:'IBM Plex Mono',monospace !important;font-size:13px !important;background:var(--inline-code-bg) !important;color:var(--inline-code-text) !important;padding:2px 6px;border-radius:4px}
194161
pre{background:var(--bg-code) !important;border:1px solid var(--border);border-radius:6px;padding:16px;overflow-x:auto;margin:8px 0 16px;line-height:1.5;color:var(--text-primary)}
195162
pre code{background:transparent !important;color:inherit !important;padding:0;border-radius:0}
196163
pre[class*="language-"]{background:var(--bg-code) !important;padding:12px 16px;margin:8px 0 16px;color:var(--text-primary)}
197164
pre[class*="language-"] code,code[class*="language-"]{background:transparent !important;color:inherit !important}
165+
.token{background:none !important;text-shadow:none !important}
198166
.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6a737d !important;font-style:italic}
199167
.token.punctuation{color:#24292f !important}
200-
.token.namespace{opacity:.7}
201168
.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#005cc5 !important}
202169
.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#032f62 !important}
203170
.token.operator,.token.entity,.token.url{color:#d73a49 !important}
@@ -214,29 +181,25 @@ jobs:
214181
.token.function,.token.class-name{color:#d2a8ff !important}
215182
.token.regex,.token.important,.token.variable{color:#ffa657 !important}
216183
}
217-
218-
.token{background:none !important;text-shadow:none !important}
219-
220184
details>summary{list-style:none}
221185
details>summary::-webkit-details-marker{display:none}
222-
223-
.release{border:1px solid var(--border);border-radius:6px;margin-bottom:8px}
224-
.release>summary{padding:12px 16px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px}
225-
.release>summary::before{content:'';display:inline-block;width:0;height:0;border-left:5px solid var(--text-muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform 0.15s;flex-shrink:0}
226-
.release[open]>summary::before{transform:rotate(90deg)}
186+
.collapsible{border:1px solid var(--border);border-radius:6px;margin-bottom:8px}
187+
.collapsible>summary{padding:12px 16px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px}
188+
.collapsible>summary::before{content:'';display:inline-block;width:0;height:0;border-left:5px solid var(--text-muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform 0.15s;flex-shrink:0}
189+
.collapsible[open]>summary::before{transform:rotate(90deg)}
190+
.collapsible-body{padding:0 16px 16px;font-size:14px;color:var(--text-secondary);line-height:1.7}
191+
.collapsible-body h1{font-size:20px;border:none;padding:0;margin:0 0 12px}
192+
.collapsible-body h2{font-size:16px;border:none;padding:0;margin:16px 0 8px}
193+
.collapsible-body h3{font-size:14px;margin:12px 0 6px}
194+
.collapsible-body ul{padding-left:20px}
195+
.collapsible-body li{margin-bottom:2px;font-size:13px}
196+
.collapsible-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}
197+
.collapsible-body p:empty{display:none}
198+
.collapsible-body strong{color:inherit}
227199
.release-tag{font-family:'IBM Plex Mono',monospace;font-weight:500;color:var(--link)}
228200
.release-date{font-size:13px;color:var(--text-muted)}
229201
.release-sha{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text-muted);margin-left:auto;text-decoration:none}
230202
.release-latest{font-size:11px;padding:2px 8px;border-radius:16px;background:var(--badge-bg);color:var(--badge-text);font-weight:500}
231-
232-
.release-body{padding:0 16px 16px;font-size:14px;color:var(--text-secondary);line-height:1.7}
233-
.release-body h2,.release-body h3{font-size:14px;font-weight:500;color:var(--text-primary);margin:12px 0 4px;border:none;padding:0}
234-
.release-body ul{padding-left:20px}
235-
.release-body li{margin-bottom:2px;font-size:13px}
236-
.release-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}
237-
.release-body p:empty{display:none}
238-
.release-body strong{color:inherit}
239-
240203
.release-assets{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
241204
.release-assets>summary{padding:0;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;gap:6px}
242205
.release-assets>summary::before{content:'';display:inline-block;width:0;height:0;border-left:4px solid var(--text-muted);border-top:3px solid transparent;border-bottom:3px solid transparent;transition:transform 0.15s;flex-shrink:0}
@@ -246,7 +209,7 @@ jobs:
246209
.release-asset-size{color:var(--text-muted);font-size:11px}
247210
.release-asset-hash{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-muted);word-break:break-all;display:block;margin-top:1px}
248211
.release-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:13px}
249-
212+
.doc-cmd-name{font-family:'IBM Plex Mono',monospace;font-weight:500;color:var(--text-primary)}
250213
.loading{text-align:center;padding:32px;color:var(--text-muted);font-size:14px}
251214
@media(max-width:640px){.site-header{padding:12px 16px}.container{padding:0 12px;margin:16px auto}.content{padding:20px}}
252215
</style>
@@ -315,16 +278,28 @@ jobs:
315278
title: Docs
316279
permalink: /docs/
317280
---
318-
# Function reference
281+
# Exported Commands
282+
283+
<p style="font-size:14px;color:var(--text-secondary);margin-bottom:24px">
284+
Command documentation generated by
285+
<a href="{{ site.github_repo }}/actions">GitHub Actions</a>,
286+
stored in
287+
<a href="{{ site.github_repo }}/tree/main/docs"><code>docs/</code></a>.
288+
</p>
289+
319290
{% assign doc_pages = site.pages | where_exp: "p", "p.path contains 'docs/'" | where_exp: "p", "p.name != 'index.md'" | sort: "title" %}
291+
320292
{% if doc_pages.size > 0 %}
321-
<ul>
322293
{% for doc in doc_pages %}
323-
<li><a href="{{ doc.url | relative_url }}"><code>{{ doc.title }}</code></a> — {{ doc.description | default: doc.title }}</li>
294+
<details class="collapsible">
295+
<summary><span class="doc-cmd-name">{{ doc.title }}</span></summary>
296+
<div class="collapsible-body">
297+
{{ doc.content }}
298+
</div>
299+
</details>
324300
{% endfor %}
325-
</ul>
326301
{% else %}
327-
<p><em>No function documentation found yet.</em></p>
302+
<p><em>No exported commands found. Documentation is generated automatically when functions are added to the module.</em></p>
328303
{% endif %}
329304
DOCSEOF
330305
echo "Created docs/index.md"
@@ -397,8 +372,8 @@ jobs:
397372
} else {
398373
if (inList) { out += '</ul>'; inList = false; }
399374
var trimmed = L.trim();
400-
if (trimmed === '---') { out += '<hr>'; }
401-
else if (trimmed !== '') { out += '<p>' + inline(L) + '</p>'; }
375+
if (trimmed === '---') out += '<hr>';
376+
else if (trimmed !== '') out += '<p>' + inline(L) + '</p>';
402377
}
403378
}
404379
if (inList) out += '</ul>';
@@ -419,62 +394,36 @@ jobs:
419394
var d = new Date(r.published_at).toLocaleDateString('en-GB', {day:'numeric',month:'short',year:'numeric'});
420395
var latest = i === 0 ? ' <span class="release-latest">latest</span>' : '';
421396
var openAttr = i === 0 ? ' open' : '';
422-
423397
var sha = r.target_commitish || '';
424398
var shortSha = sha.length >= 7 ? sha.substring(0, 7) : '';
425399
var shaHtml = shortSha ? '<a class="release-sha" href="https://github.com/' + repo + '/commit/' + sha + '">' + shortSha + '</a>' : '';
426-
427400
var allAssets = r.assets || [];
428401
var srcZip = 'https://github.com/' + repo + '/archive/refs/tags/' + r.tag_name + '.zip';
429402
var srcTar = 'https://github.com/' + repo + '/archive/refs/tags/' + r.tag_name + '.tar.gz';
430-
431403
var assetsHtml = '<details class="release-assets" open><summary>Assets (' + (allAssets.length + 2) + ')</summary>';
432404
for (var j = 0; j < allAssets.length; j++) {
433405
var a = allAssets[j];
434406
var isHash = /\.(sha256|sha512|md5|sha1)$/i.test(a.name);
435-
assetsHtml += '<div class="release-asset">'
436-
+ '<a href="' + a.browser_download_url + '">' + a.name + '</a>'
437-
+ ' <span class="release-asset-size">' + (a.size / 1024).toFixed(1) + ' KB</span>'
438-
+ (isHash ? '<span class="release-asset-hash" data-hash-url="' + a.browser_download_url + '"></span>' : '')
439-
+ '</div>';
407+
assetsHtml += '<div class="release-asset"><a href="' + a.browser_download_url + '">' + a.name + '</a> <span class="release-asset-size">' + (a.size / 1024).toFixed(1) + ' KB</span>' + (isHash ? '<span class="release-asset-hash" data-hash-url="' + a.browser_download_url + '"></span>' : '') + '</div>';
440408
}
441409
assetsHtml += '<div class="release-asset"><a href="' + srcZip + '">Source code</a> <span class="release-asset-size">(zip)</span></div>';
442410
assetsHtml += '<div class="release-asset"><a href="' + srcTar + '">Source code</a> <span class="release-asset-size">(tar.gz)</span></div>';
443411
assetsHtml += '</details>';
444-
445412
var footer = '<div class="release-footer"><a href="https://github.com/' + repo + '/releases/tag/' + encodeURIComponent(r.tag_name) + '">View release</a></div>';
446-
447-
html += '<details class="release"' + openAttr + '>'
448-
+ '<summary>'
449-
+ '<span class="release-tag">' + esc(r.tag_name) + '</span>'
450-
+ latest
451-
+ ' <span class="release-date">' + d + '</span>'
452-
+ shaHtml
453-
+ '</summary>'
454-
+ '<div class="release-body">'
455-
+ md(r.body)
456-
+ assetsHtml
457-
+ footer
458-
+ '</div></details>';
413+
html += '<details class="collapsible"' + openAttr + '><summary><span class="release-tag">' + esc(r.tag_name) + '</span>' + latest + ' <span class="release-date">' + d + '</span>' + shaHtml + '</summary><div class="collapsible-body">' + md(r.body) + assetsHtml + footer + '</div></details>';
459414
}
460415
461416
c.innerHTML = html;
462417
463418
document.querySelectorAll('[data-hash-url]').forEach(function(span) {
464-
getHash(span.getAttribute('data-hash-url')).then(function(h) {
465-
span.textContent = h || '';
466-
});
419+
getHash(span.getAttribute('data-hash-url')).then(function(h) { span.textContent = h || ''; });
467420
});
468421
469422
function doHighlight() {
470-
if (typeof Prism !== 'undefined' && Prism.highlightAll) {
471-
Prism.highlightAll();
472-
} else {
473-
setTimeout(doHighlight, 300);
474-
}
423+
if (typeof Prism !== 'undefined' && Prism.highlightAll) Prism.highlightAll();
424+
else setTimeout(doHighlight, 300);
475425
}
476426
setTimeout(doHighlight, 300);
477-
478427
} catch(e) {
479428
c.innerHTML = '<p>Unable to load releases. Visit <a href="https://github.com/' + repo + '/releases">GitHub</a> directly.</p>';
480429
}
@@ -499,15 +448,14 @@ jobs:
499448
for lf in LICENSE LICENSE.txt; do
500449
[ -f "$lf" ] && LICENSE_SRC="$lf" && break
501450
done
502-
503451
if [ -n "$LICENSE_SRC" ]; then
504452
if ! ([ -f "LICENSE.md" ] && head -1 LICENSE.md | grep -q '^\-\-\-'); then
505453
TEMP=$(mktemp)
506454
printf -- '---\nlayout: default\ntitle: License\npermalink: /license/\n---\n\n# License\n\n```\n' > "$TEMP"
507455
cat "$LICENSE_SRC" >> "$TEMP"
508456
printf '\n```\n' >> "$TEMP"
509457
mv "$TEMP" LICENSE.md
510-
echo "Created LICENSE.md from ${LICENSE_SRC}"
458+
echo "Created LICENSE.md"
511459
fi
512460
elif [ -f "LICENSE.md" ] && ! head -1 LICENSE.md | grep -q '^\-\-\-'; then
513461
TEMP=$(mktemp)
@@ -534,7 +482,6 @@ jobs:
534482
fi
535483
536484
echo "::endgroup::"
537-
538485
echo "Final site source contents:"
539486
find . -type f | sort
540487
@@ -556,7 +503,6 @@ jobs:
556503
url: ${{ steps.deployment.outputs.page_url }}
557504
runs-on: ubuntu-latest
558505
needs: build
559-
if: needs.build.result == 'success'
560506
steps:
561507
- name: Deploy to GitHub Pages
562508
id: deployment

0 commit comments

Comments
 (0)