@@ -367,14 +367,43 @@ jobs:
367367 sed "s|{{VERSION}}|${{ needs.extract-version.outputs.version }}|g" README.md > ./pages-content/README.md
368368 echo "✅ README.md processed with version ${{ needs.extract-version.outputs.version }}"
369369
370- # Extract the most recent changelog entry verbatim (just remove emojis)
370+ # Extract the most recent changelog entry in keepachangelog.com format
371371 echo "📋 Extracting latest changelog entry..."
372372 if [ -f "drafts/current/specifications/CHANGELOG.md" ]; then
373- # Get the first changelog entry and remove emojis
373+ # Get the first changelog entry and format it cleanly like keepachangelog.com
374374 sed -n '/^## \[/,/^## \[/p' drafts/current/specifications/CHANGELOG.md | \
375375 sed '$d' | \
376- sed 's/🎉\|✨\|🔧\|⬆️\|🏗️\|📊\|🎯\|⚠️\|🐍\|🚀\|🛡️\|🎨\|🧪\|📋\|👥\|💰\|📦\|🔄\|📚//g' \
377- > ./pages-content/recent-changes.html
376+ sed 's/🎉\|✨\|🔧\|⬆️\|🏗️\|📊\|🎯\|⚠️\|🐍\|🚀\|🛡️\|🎨\|🧪\|📋\|👥\|💰\|📦\|🔄\|📚//g' | \
377+ sed 's/^## \[\([^]]*\)\] - \(.*\)/<h3>\1 - \2<\/h3>/' | \
378+ sed 's/^### \(.*\)/<h4>\1<\/h4>/' | \
379+ sed 's/^#### \(.*\)/<h5>\1<\/h5>/' | \
380+ sed 's/^- \(.*\)/<li>\1<\/li>/' | \
381+ sed '/^$/d' | \
382+ awk '
383+ BEGIN { in_list = 0 }
384+ /<h[45]>/ {
385+ if (in_list) { print "</ul>"; in_list = 0 }
386+ print $0
387+ if (getline && /<li>/) {
388+ print "<ul>"
389+ print $0
390+ in_list = 1
391+ }
392+ next
393+ }
394+ /<li>/ {
395+ if (!in_list) { print "<ul>"; in_list = 1 }
396+ print $0
397+ next
398+ }
399+ /^[^<]/ {
400+ if (in_list) { print "</ul>"; in_list = 0 }
401+ if (NF > 0) print "<p>" $0 "</p>"
402+ next
403+ }
404+ { print $0 }
405+ END { if (in_list) print "</ul>" }
406+ ' > ./pages-content/recent-changes.html
378407 echo "✅ Latest changelog entry extracted and formatted"
379408 else
380409 echo "<p>No changelog available</p>" > ./pages-content/recent-changes.html
@@ -503,28 +532,44 @@ jobs:
503532 line-height: 1.6;
504533 color: #333;
505534 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
535+ background: white;
536+ padding: 20px;
537+ border-radius: 4px;
538+ border: 1px solid #e1e4e8;
539+ }
540+ .changelog-content h3 {
541+ color: #24292e;
542+ margin: 0 0 15px 0;
543+ font-size: 1.4em;
544+ font-weight: 600;
545+ border-bottom: 1px solid #e1e4e8;
546+ padding-bottom: 8px;
506547 }
507548 .changelog-content h4 {
508- color: #333;
509- margin-top: 20px;
510- margin-bottom: 8px;
549+ color: #24292e;
550+ margin: 20px 0 8px 0;
511551 font-size: 1.1em;
512552 font-weight: 600;
513553 }
554+ .changelog-content h5 {
555+ color: #24292e;
556+ margin: 15px 0 6px 0;
557+ font-size: 1em;
558+ font-weight: 600;
559+ }
514560 .changelog-content ul {
515- margin: 8px 0 20px 0;
561+ margin: 8px 0 16px 0;
516562 padding-left: 20px;
517563 }
518564 .changelog-content li {
519- margin-bottom: 4px ;
565+ margin-bottom: 6px ;
520566 line-height: 1.5;
521567 }
522568 .changelog-content p {
523569 margin: 12px 0;
524570 line-height: 1.6;
525571 }
526572 .changelog-content strong {
527- color: #0366d6;
528573 font-weight: 600;
529574 }
530575 </style>
0 commit comments