| 123456789101112131415161718 |
- # Extract code block from a <details> section identified by data-file attribute.
- # Usage: extract_code <file> <data-file>
- # Example: extract_code ch01.md "main.cpp"
- extract_code() {
- local file="$1" name="$2"
- local output
- output=$(awk -v name="$name" '
- $0 ~ "data-file=\"" name "\"" { found=1; next }
- found && /^```/ && !inside { inside=1; next }
- inside && /^```/ { exit }
- inside { print }
- ' "$file")
- if [ -z "$output" ]; then
- echo "ERROR: extract_code: no match for data-file=\"$name\" in $file" >&2
- return 1
- fi
- printf '%s\n' "$output"
- }
|