Skip to content

Commit e2d322d

Browse files
committed
Extract individual pages
1 parent 68b73fc commit e2d322d

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

.github/workflows/generate-images-drawio.yml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ jobs:
2323
- name: Check out repository
2424
uses: actions/checkout@v4
2525

26-
- name: Set up Xvfb & draw.io desktop
26+
- name: Set up xmlstarlet, Xvfb & draw.io desktop
2727
run: |
2828
wget -q https://github.com/jgraph/drawio-desktop/releases/download/v${{ env.DRAWIO_VERSION }}/drawio-amd64-${{ env.DRAWIO_VERSION }}.deb
2929
sudo apt-get update
30-
sudo apt-get install --yes --no-install-recommends xvfb ./drawio-amd64-${{ env.DRAWIO_VERSION }}.deb
30+
sudo apt-get install --yes --no-install-recommends xmlstarlet xvfb ./drawio-amd64-${{ env.DRAWIO_VERSION }}.deb
3131
3232
- name: Prepare output folder
3333
run: |
@@ -40,15 +40,22 @@ jobs:
4040
export DISPLAY=:42
4141
Xvfb :42 -nolisten unix &
4242
43-
for ext in png svg; do
44-
# The chromium args need to be specified last because of whatever
45-
drawio --export --recursive --format $ext "${{ env.DRAWIO_SRC }}" --no-sandbox --disable-gpu --disable-dev-shm-usage
43+
while read -r file; do
44+
page=0
4645
47-
rsync -v --recursive --include="*.$ext" --filter="-! */" "${{ env.DRAWIO_SRC }}"/* "${{ env.DRAWIO_OUT }}"
46+
while read -r pagename; do
47+
for ext in png svg; do
48+
# The chromium args need to be specified last because of whatever
49+
drawio --export -p $page -o "${file/.drawio/-$pagename}.$ext" "$file" --no-sandbox --disable-gpu --disable-dev-shm-usage
50+
done
4851
49-
# Nuke the exported files so that draw.io desktop doesn't attempt to use them as input files on the next loop pass
50-
find "${{ env.DRAWIO_SRC }}" -name "*.$ext" -exec rm -v "{}" \;
51-
done
52+
page=$((page + 1))
53+
54+
# For whatever reason xmlstarlet doesn't end its output with a newline so we append one with echo to not lose the last line
55+
done < <(xml sel -t -v "//diagram/@name" "$file"; echo)
56+
done < <(find "${{ env.DRAWIO_SRC }}" -name "*.drawio")
57+
58+
rsync -v --recursive --include="*.png" --include="*.svg" --filter="-! */" "${{ env.DRAWIO_SRC }}"/* "${{ env.DRAWIO_OUT }}"
5259
5360
- name: Add & Commit
5461
uses: EndBug/add-and-commit@v9

0 commit comments

Comments
 (0)