You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
648 B
23 lines
648 B
#!/usr/bin/env bash |
|
|
|
tag="$(echo "$1" | tr ' ' '_' | tr 'A-Z' 'a-z')" |
|
|
|
if [ "$tag" == "all" ]; then |
|
find content/blog/ -type f -name '*.md' -not -name 'xxx-*' | sort -r -u | |
|
cut -d '-' -f 2- | cut -d '.' -f 1 |
|
else |
|
find content/blog/ -type f -name '*.md' -not -name 'xxx-*' | sort -r -u | |
|
while read file; do |
|
tags="$(sed -n '/---/,/---/p' "$file" | |
|
sed -n '1,/---/p' | sed '/^---$/d' | |
|
sed '/^$/,$d' | |
|
yq -r 'if ( .tags | type ) == "array" then .tags else [ .tags ] end | join("\n")' | |
|
tr 'A-Z' 'a-z' | tr ' ' '_' |
|
)" |
|
if echo "$tags" | grep -q "$tag"; then |
|
echo "$file" | cut -d '-' -f 2- | cut -d '.' -f 1 |
|
fi |
|
done |
|
|
|
fi |
|
|
|
|