41 lines
1003 B
Bash
41 lines
1003 B
Bash
set -e
|
|
f="$(ls ./*.zip | head -n 1)"
|
|
echo f=$f
|
|
d="$(date -r "$f" +%Y-%m-%d)_$(basename "$f" | sed 's/.zip$//' | sed 's/[^a-zA-Z0-9]/_/g')"
|
|
echo d=$d
|
|
rm -rf "$d"
|
|
mkdir -p "$d"
|
|
7z x -o"$d" "$f"
|
|
|
|
cat "$d"/*.html \
|
|
| sed 's/.*<body/<body/' \
|
|
| sed 's/<\/body>.*/<\/body>/' \
|
|
>> "$d"/index.html
|
|
|
|
tags=($(cat "$d"/index.html | sed '/^$/!{s/<[^>]*>//g;p;}' | grep -o '#[a-zA-Z0-9]*' | grep '[a-zA-Z]' | sed 's/^#//' | sort -u))
|
|
|
|
printf '
|
|
---
|
|
title: "%s"
|
|
date: %s
|
|
draft: true
|
|
tags: [%s]
|
|
---
|
|
' \
|
|
"$(basename "$f" | sed 's/.zip$//' | sed 's/"/\\"/g')" \
|
|
"$(date -u +%Y-%m-%dT%H:%M:%S)-00:00" \
|
|
"$(first=false; for tag in "${tags[@]}"; do true; if $first; then echo -n ","; fi; first=true; echo -n "$tag"; done)" \
|
|
| grep . > "$d/index.md"
|
|
|
|
cat "$d"/index.html >> "$d"/index.md
|
|
rm "$d"/index.html
|
|
|
|
echo >> "$d"/index.md
|
|
|
|
rm "$d"/*.html
|
|
|
|
for ext in png jpg jpeg gif JPG; do find "$d" -name "*.$ext"; done | while read -r line; do
|
|
convert "$line" -ordered-dither o8x8,8,8,4 "$line.2"
|
|
mv "$line.2" "$line"
|
|
done
|