mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
The ChangeLog is hard-wrapped at 72 columns, which the GitHub releases page renders verbatim as a ragged right edge. Join the continuation lines of each paragraph and list item, as already done in Infix, and let the browser do the wrapping. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
30 lines
918 B
Bash
Executable File
30 lines
918 B
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Extract the topmost release entry from doc/ChangeLog.md and unwrap
|
|
# its paragraphs, so the GitHub releases page can wrap them to the
|
|
# browser width instead of showing the hard 72-column breaks.
|
|
#
|
|
# Usage: .github/scripts/extract-changelog.sh < doc/ChangeLog.md > release.md
|
|
#
|
|
set -e
|
|
|
|
# The entry sits between the first two underlines, minus the blank
|
|
# line separating it from the next heading.
|
|
awk '/^-----*$/{if (x == 1) exit; x=1;next}x' | head -n -1 |
|
|
|
|
# Blank lines, headings, blockquotes, tables, and list items (at any
|
|
# indent) start a new block, everything else continues the current one.
|
|
awk '
|
|
function flush() { if (buf) print buf; buf = "" }
|
|
{
|
|
if (/^$/) { flush(); print; blank = 1; next }
|
|
if (/^ *([-*] |[0-9]+\. |[>#|])/ || blank || !buf || brk)
|
|
{ flush(); buf = $0 }
|
|
else
|
|
{ sub(/^ +/, ""); buf = buf " " $0 }
|
|
blank = 0
|
|
brk = / $/
|
|
}
|
|
END { flush() }
|
|
'
|