line="${line#*>}"
tag="${tag}>"
fi
-
+
+ ### Image embedding for Inline styles
+ while expr "$tag" : '.*<[^>]*style="[^"]*url("\?[^)]\+\.\(png\|jpg\|jpeg\|gif\|svg\)"\?)'; do
+ pre="${tag%%url(*)*}"
+ post="${tag#*url(*)}"
+ file="${tag#${pre}url(}" file="${file%)$post}"
+ file="${file#"}" file="${file%"}"
+ echo Inlining Image "$file" >&2
+ if [ -r "$file" ]; then
+ tag="${pre}url('data:image/${file##*.};base64,$(base64 <"${file}" |tr -d \\n)')${post}"
+ fi
+ done >/dev/null
+
+ ### Tag Processing
case $tag in
- *\<head\>*|\*\<head\ *\>)
+ *\<head\>*|\*\<head\ *\>) # Inline styles into head
printf '%s<meta name="viewport" content="width=device-width">
<style type="text/css"><!--\n' "${tag%${tag#*<head*>}}"
cat "${0%/*}/clickslide.css"
printf '\n--></style>%s' "${tag#*<head*>}"
tag='' depth=$((depth + 1))
;;
- *\<slide\ *id=\"?*\"*\>*)
+ *\<slide\ *id=\"?*\"*\>*) # Count slide id, insert "next" button
prev="$next"
next="${tag#*<slide }" next="${next#*id=\"}" next="${next%\"*}"
next="autoslide${idoff}"
"${tag%<slide*}" "$next" "$idoff" "$next" "${tag#*<slide}"
tag='' depth=$((depth + 1))
;;
- *\</slide\>*)
+ *\</slide\>*) # Insert "previous" button
printf '%s</div><a class="prevslide" href="#%s">previous</a>%s' \
"${tag%</slide>*}" "$prev" "${tag#*</slide>}"
tag='' depth=$((depth - 1))
;;
- *\<*class=\"uncover\"*\>*)
- #printf '%s<li></li>' "$tag"
- printf '%s' "$tag"
- tag='' depth=$((depth + 1))
- ucdepth=$depth
- ;;
- *\<body*\>*)
+ *\<body*\>*) # Insert toplevel link
printf '%s<a href="#" class="toplevel">overview</a>' "$tag"
tag='' depth=$((depth + 1))
;;
- *\</body*\>*)
+ *\</body*\>*) # Insert total slide count
printf '<span class="count">%i</span>%s' "$idoff" "$tag"
tag='' depth=$((depth - 1))
;;
+ *\<*class=\"uncover\"*\>*) # Insert checkboxes in "uncover" lists
+ #printf '%s<li></li>' "$tag"
+ printf '%s' "$tag"
+ tag='' depth=$((depth + 1))
+ ucdepth=$depth
+ ;;
*\</*\>*)
printf %s "$tag"
tag='' depth=$((depth - 1))
]
]
[slide [h2 Simplifying HTML]
- Maintain the flexibility of plain HTML. Decrease the verbosity of the code. [br]
- [pre style="display: inline-block; width: 46%;"
+ Maintain the flexibility of plain HTML. Decrease verbosity of the code. [br]
+ [pre style="display: inline-block; width: 46%; background-image: url(exb0_light.jpg);"
\<html\>
\<head\>
\<title\>Demo\</title\>
\</body\>
\</html\>
]
- [pre style="display: inline-block; width: 46%;"
+ [pre style="display: inline-block; width: 46%; background-image: url(exb3_light.jpg);"
\[html
\[head
\[title Demo\]