Skills als eigene Bereiche dokumentieren und das ZIP über ein Gitea-Release ausliefern.

This commit is contained in:
Dominic Gundel committed 2026-10-19 15:29:26 +02:00
1 parent b57c458919
commit 55e93e7660
17 files changed
+436 -215

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
# Erzeugt die Skill-Tabelle in README.md zwischen <!-- skills:start --> und <!-- skills:end -->
# neu. Mit -Check wird nur geprueft, ob die Tabelle aktuell ist (Exit-Code 1, wenn nicht).
# Aufruf: scripts\update-index.ps1 [-Check]
param([switch]$Check)
. (Join-Path $PSScriptRoot 'lib.ps1')
$RepoWeb = 'https://git.gundel.dev/dg/claude-skills'
$readme = Join-Path $Root 'README.md'
$current = Read-Text $readme
$lines = $current -split "`n"
$start = [Array]::IndexOf($lines, '<!-- skills:start -->')
$end = [Array]::IndexOf($lines, '<!-- skills:end -->')
if ($start -lt 0 -or $end -lt $start) {
Write-Error 'README.md enthaelt die Marker <!-- skills:start --> / <!-- skills:end --> nicht.'
exit 1
}
$table = @('| Skill | Kurzbeschreibung | Version | Doku | Download |', '|---|---|---|---|---|')
foreach ($n in (Get-SkillNames)) {
$dir = Join-Path $SkillsDir $n
$desc = ''
$skill = Join-Path $dir 'SKILL.md'
if (Test-Path $skill) {
$fm = Get-Frontmatter $skill
if ($null -ne $fm) {
$d = Get-FmValue $fm 'description'
if ($d) { $desc = $d }
}
}
$desc = $desc.Replace('|', '\|')
$ver = Get-SkillVersion $dir
$table += ('| [{0}](skills/{0}/) | {1} | {2} | [README](skills/{0}/README.md) | [{0}-v{2}.zip]({3}/releases/tag/{0}/v{2}) |' -f $n, $desc, $ver, $RepoWeb)
}
$newLines = @()
if ($start -ge 0) { $newLines += $lines[0..$start] }
$newLines += $table
$newLines += $lines[$end..($lines.Count - 1)]
$new = $newLines -join "`n"
if ($Check) {
if ($new -cne $current) {
Write-Host 'README.md ist nicht aktuell - scripts\update-index.ps1 ausfuehren und committen.'
exit 1
}
Write-Host 'README.md ist aktuell.'
}
else {
Write-Text $readme $new
Write-Host 'README.md aktualisiert.'
}