From: Daniel Stenberg Date: Thu, 22 Aug 2024 10:47:16 +0000 (+0200) Subject: GHA: trim markdown headers before proselinting X-Git-Tag: curl-8_10_0~151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8c64c882c8ed1b2d0875504687b2162db2b6387;p=thirdparty%2Fcurl.git GHA: trim markdown headers before proselinting Allow interface.md to use more exclamation marks. Closes #14645 --- diff --git a/.github/scripts/trimmarkdownheader.pl b/.github/scripts/trimmarkdownheader.pl new file mode 100755 index 0000000000..9c623730b9 --- /dev/null +++ b/.github/scripts/trimmarkdownheader.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl +# Copyright (C) Daniel Stenberg, , et al. +# +# SPDX-License-Identifier: curl +# +# Given: a libcurl curldown man page +# Outputs: the same file, minus the header +# + +my $f = $ARGV[0]; + +open(F, "<$f") or die; + +my @out; +my $line = 0; +my $hideheader = 0; + +while() { + if($hideheader) { + if(/^---/) { + # end if hiding + $hideheader = 0; + } + push @out, "\n"; # replace with blank + next; + } + elsif(!$line++ && /^---/) { + # starts with a header, strip off the header + $hideheader = 1; + push @out, "\n"; # replace with blank + next; + } + push @out, $_; +} +close(F); + +open(O, ">$f") or die; +for my $l (@out) { + print O $l; +} +close(O); diff --git a/.github/workflows/proselint.yml b/.github/workflows/proselint.yml index 177f247b2e..54075ddf6d 100644 --- a/.github/workflows/proselint.yml +++ b/.github/workflows/proselint.yml @@ -50,8 +50,11 @@ jobs: } JSON + - name: trim headers off all *.md files + run: git ls-files '*.md' | xargs -n1 ./.github/scripts/trimmarkdownheader.pl + - name: check prose - run: git ls-files '*.md' | grep -Ev 'CHECKSRC.md|DISTROS.md|CURLOPT_INTERFACE.md' | xargs proselint README + run: git ls-files '*.md' | grep -Ev 'CHECKSRC.md|DISTROS.md|CURLOPT_INTERFACE.md|interface.md' | xargs proselint README # This is for CHECKSRC and files with aggressive exclamation mark needs - name: create second proselint config @@ -68,4 +71,4 @@ jobs: JSON - name: check special prose - run: proselint docs/CHECKSRC.md docs/libcurl/opts/CURLOPT_INTERFACE.md + run: proselint docs/CHECKSRC.md docs/libcurl/opts/CURLOPT_INTERFACE.md docs/cmdline-opts/interface.md