aboutsummaryrefslogtreecommitdiff
path: root/htwrap.sh
diff options
context:
space:
mode:
Diffstat (limited to 'htwrap.sh')
-rwxr-xr-xhtwrap.sh78
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>'