docs/scripts/format-all-tabpanes.sh

66 lines
2.2 KiB
Bash

#!/bin/bash
# Script to find all markdown files with tabpane shortcodes and format them
# Usage: ./format-all-tabpanes.sh [directory]
# Set the directory to search (default to current directory)
SEARCH_DIR="${1:-.}"
# Check if format-tabpane.sh script exists
SCRIPT_PATH="$(dirname "$0")/format-tabpane.sh"
if [ ! -f "$SCRIPT_PATH" ]; then
echo "Error: format-tabpane.sh script not found at $SCRIPT_PATH"
echo "Make sure format-tabpane.sh is in the same directory as this script."
exit 1
fi
# Make sure format-tabpane.sh is executable
if [ ! -x "$SCRIPT_PATH" ]; then
echo "Making format-tabpane.sh executable..."
chmod +x "$SCRIPT_PATH"
fi
echo "Searching for markdown files with tabpane shortcodes in: $SEARCH_DIR"
echo "============================================================"
# Find all .md files and check for tabpane shortcodes
processed_count=0
found_count=0
# Use find to get all .md files, then check each one for tabpane shortcodes
while IFS= read -r -d '' file; do
# Check if the file contains a tabpane shortcode with parameters
# This pattern matches tabpane with at least one non-whitespace character between "tabpane" and "%}}"
if grep -q '{{% tabpane [^%]*[^[:space:]%][^%]*%}}' "$file"; then
found_count=$((found_count + 1))
echo ""
echo "Found tabpane in: $file"
echo "Processing..."
# Call the format-tabpane.sh script on this file
if "$SCRIPT_PATH" "$file"; then
processed_count=$((processed_count + 1))
echo "✓ Successfully processed: $file"
else
echo "✗ Failed to process: $file"
fi
echo "----------------------------------------"
fi
done < <(find "$SEARCH_DIR" -name "*.md" -type f -print0)
echo ""
echo "Summary:"
echo "========"
echo "Found $found_count markdown files with tabpane shortcodes"
echo "Successfully processed $processed_count files"
if [ $found_count -eq 0 ]; then
echo "No markdown files with tabpane shortcodes found in $SEARCH_DIR"
elif [ $processed_count -eq $found_count ]; then
echo "All files processed successfully!"
else
failed_count=$((found_count - processed_count))
echo "Warning: $failed_count files failed to process"
fi