diff options
Diffstat (limited to 'htwrap.sh')
-rwxr-xr-x | htwrap.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/htwrap.sh b/htwrap.sh new file mode 100755 index 0000000..3d68946 --- /dev/null +++ b/htwrap.sh @@ -0,0 +1,78 @@ +#!/bin/sh + +# htwrap -- create standalone HTML document + +usage() { + echo "usage: $0 [-t] [-C] [-c charset] [-d dir] [-l lang] [-v doctype]"\ + 1>&2 + exit 1 +} + +args=`getopt tCc:d:l:v: $*` +[ $? -ne 0 ] && usage +set -- $args + +while [ $# -gt 0 ]; do + case "$1" in + -t) flagt=$1 ;; + -C) flagC=$1 ;; + -c) flagc=$2; shift ;; + -d) flagd=$2; shift ;; + -l) flagl=$2; shift ;; + -v) flagv=$2; shift ;; + --) shift; break ;; + esac + shift +done + +case "$flagv" in +5) echo '<!DOCTYPE html>' + ;; +4) echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd">' + ;; +4s) echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" +"http://www.w3.org/TR/html4/strict.dtd">' + ;; +x|xhtml) + echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' + ;; +xs|xhtmls) + echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' + ;; +'') + echo '<!DOCTYPE html>' + ;; +*) + echo error: unknown doctype "$flagv" 1>&2 + usage + ;; +esac + +echo -n '<html' +[ ! -z "$flagl" ] && echo -n ' lang='"$flagl"'"' +[ ! -z "$flagd" ] && echo -n ' dir="'"$flagd"'"' +echo '>' + +if [ -z "$flagC" ]; then + if [ ! -z "$flagc" ]; then + echo '<meta http-equiv="Content-Type" content="text/html; charset='"$flagc"'">' + else + echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' + fi +fi + +source() { + [ $# -gt 0 ] && cat "$@" || cat +} + +if [ ! -z "$flagt" ]; then # try to retrieve title from <h1> on first line + source "$@" | sed '1s/^<h1>\(.*\)<\/h1>/<title>\1<\/title>\ +&/' +else + source "$@" +fi + +echo '</html>' |