laforceit-blog/scripts/process-content-links.sh

59 lines
1.6 KiB
Bash

#!/bin/bash
# Configuration
BLOG_CONTENT_PATH="src/content"
ASSETS_PATH="public/assets"
BLOG_SOURCE="src/content/blog"
# Create necessary directories if they don't exist
mkdir -p "$BLOG_CONTENT_PATH/posts"
mkdir -p "$BLOG_CONTENT_PATH/configurations"
mkdir -p "$BLOG_CONTENT_PATH/projects"
mkdir -p "$ASSETS_PATH/images"
# Function to process markdown files
process_markdown() {
local file="$1"
local filename=$(basename "$file")
# Convert Obsidian wiki-links to markdown links
sed -i 's/\[\[/[/g; s/\]\]/]/g' "$file"
# Update image paths
sed -i 's/\(!\[.*\](\)attachments\//\1\/assets\/images\//g' "$file"
echo "Processed $filename"
}
# Function to categorize content
categorize_content() {
local file="$1"
local filename=$(basename "$file")
# Read the frontmatter to determine the category
if grep -q "category: configuration" "$file"; then
cp "$file" "$BLOG_CONTENT_PATH/configurations/"
process_markdown "$BLOG_CONTENT_PATH/configurations/$filename"
elif grep -q "category: project" "$file"; then
cp "$file" "$BLOG_CONTENT_PATH/projects/"
process_markdown "$BLOG_CONTENT_PATH/projects/$filename"
else
cp "$file" "$BLOG_CONTENT_PATH/posts/"
process_markdown "$BLOG_CONTENT_PATH/posts/$filename"
fi
}
# Process all markdown files in the blog directory
for file in "$BLOG_SOURCE"/*.md; do
if [ -f "$file" ]; then
categorize_content "$file"
fi
done
# Ensure images are in place
if [ -d "$BLOG_SOURCE/images" ]; then
cp -r "$BLOG_SOURCE/images/"* "$ASSETS_PATH/images/"
fi
echo "Content processing complete"