Skip to content

Commit

Permalink
btrfs-progs: ci: build html manual page previews if source changed
Browse files Browse the repository at this point in the history
Similar to the manual page on terminal preview, also do the html output
that will be on the RTD page. Due to the way how it's displayed in the
CI action summary the CSS is missing and there are some visual
artifacts, e.g. in the option lists or special characters.

Issue: #824
Signed-off-by: David Sterba <[email protected]>
  • Loading branch information
kdave committed Jul 30, 2024
1 parent ef8e050 commit fb9c0fe
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
12 changes: 11 additions & 1 deletion .github/workflows/devel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,17 @@ jobs:
run: ./autogen.sh && CC=${{ matrix.compiler }} ./configure
- name: Documentation
run: make V=1 -C Documentation
- name: Generate manual pages preview
- name: Generate manual pages preview (html)
if: ${{ matrix.compiler == 'gcc' }}
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
for file in ${ALL_CHANGED_FILES}; do
echo "$file was changed, generate preview to summary"
Documentation/html-preview.sh "$file" >> $GITHUB_STEP_SUMMARY
done
- run: echo '<hr>' >> $GITHUB_STEP_SUMMARY
- name: Generate manual pages preview (man)
if: ${{ matrix.compiler == 'gcc' }}
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
Expand Down
41 changes: 41 additions & 0 deletions Documentation/html-preview.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/sh
# Generate manual page preview as rendered by 'make html', removed some styling
# so there can be visual artifacts, usable for CI summary

if ! [ -f "$1" ]; then
exit 0
fi

prefix=Documentation/
here=$(pwd)

if [ "$(basename \"$here\")" = 'Documentation' ]; then
prefix=
fi

fn="$1"
bn=$(basename "$fn" .rst)
html=$(find "${prefix}"_build/html -name "$bn".'html')

if ! [ -f "$html" ]; then
#echo "ERROR: cannot find html page '$html' from bn $bn fn $fn <br/>"
exit 0
fi

cat << EOF
<details>
<summary>$fn</summary>
EOF

# Up to <div itemprop="articleBody">, before that there's left bar navigation

cat "$html" | sed -e 's/^\s\+//' | awk '
/^<div itemprop=.articleBody.>/ { doit=1; next; }
/^<\/body>/ { doit=0; next; }
doit==1 { print; }'

cat << EOF
</details>
EOF

0 comments on commit fb9c0fe

Please sign in to comment.