Loading...
No commits yet
Not committed History
Blame
generate_demo_previews.sh • 2.5 KB
#!/bin/bash
# -*- coding: utf-8 -*-
# Timestamp: "2025-11-10 02:14:17 (ywatanabe)"
# File: ./scripts/maintenance/generate_demo_previews.sh

ORIG_DIR="$(pwd)"
THIS_DIR="$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)"
LOG_PATH="$THIS_DIR/.$(basename $0).log"
echo >"$LOG_PATH"

GRAY='\033[0;90m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

echo_info() { echo -e "${GRAY}INFO: $1${NC}"; }
echo_success() { echo -e "${GREEN}SUCC: $1${NC}"; }
echo_warning() { echo -e "${YELLOW}WARN: $1${NC}"; }
echo_error() { echo -e "${RED}ERRO: $1${NC}"; }
echo_header() { echo_info "=== $1 ==="; }
# ---------------------------------------
# Description: Generate preview images for README from compiled PDFs

# Resolve project root from script location (safe for nested repos)
PROJECT_ROOT="$(cd "$THIS_DIR/../.." && pwd)"

echo_header "Generating Demo Previews for README"

# Output directory
DEMO_DIR="${PROJECT_ROOT}/docs"
mkdir -p "$DEMO_DIR"

# Settings
RESOLUTION=300 # DPI
WIDTH=1200     # Max width in pixels

# Function to convert PDF first page to PNG
convert_pdf_to_preview() {
    local pdf_path="$1"
    local output_path="$2"
    local doc_name="$3"

    if [ ! -f "$pdf_path" ]; then
        echo_warning "Skipping $doc_name: PDF not found at $pdf_path"
        return 1
    fi

    echo_info "Converting $doc_name..."

    # Use ghostscript for best quality
    /usr/bin/gs \
        -dSAFER \
        -dBATCH \
        -dNOPAUSE \
        -sDEVICE=png16m \
        -r${RESOLUTION} \
        -dFirstPage=1 \
        -dLastPage=1 \
        -sOutputFile="$output_path" \
        "$pdf_path" \
        >/dev/null 2>&1

    if [ -f "$output_path" ]; then
        local size=$(du -h "$output_path" | cut -f1)
        echo_success "  Created: $(basename $output_path) (${size})"
        return 0
    else
        echo_error "  Failed to create: $(basename $output_path)"
        return 1
    fi
}

# Generate previews
echo

convert_pdf_to_preview \
    "${PROJECT_ROOT}/01_manuscript/manuscript.pdf" \
    "${DEMO_DIR}/demo-manuscript-preview.png" \
    "Manuscript"

convert_pdf_to_preview \
    "${PROJECT_ROOT}/02_supplementary/supplementary.pdf" \
    "${DEMO_DIR}/demo-supplementary-preview.png" \
    "Supplementary"

convert_pdf_to_preview \
    "${PROJECT_ROOT}/03_revision/revision.pdf" \
    "${DEMO_DIR}/demo-revision-preview.png" \
    "Revision"

echo
echo_success "Demo preview generation complete!"
echo_info "Images saved in: $DEMO_DIR"
echo_info "Use in README.md with:"
echo_info "  <img src=\"docs/demo-manuscript-preview.png\" width=\"600\"/>"

# EOF