about summary refs log tree commit diff stats
path: root/st.sh
diff options
context:
space:
mode:
Diffstat (limited to 'st.sh')
-rw-r--r--st.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/st.sh b/st.sh new file mode 100644 index 0000000..8274526 --- /dev/null +++ b/st.sh
@@ -0,0 +1,47 @@
1### st.sh
2
3# utilities
4echo()(printf '%s\n' "$*")
5
6handle_input() { # handle_input "$@"
7 # handle input --- args or stdin
8 test -n "$1" && printf '%s' "$*"
9 if read -r first_line
10 then echo "$first_line"; cat
11 else echo
12 fi
13}
14
15# authoring commands
16nb() { # comment mechanism
17 :
18}
19
20# html
21attr(){ # attr [NAME|VALUE] ATTR_STRING
22 case "$1" in
23 (name) echo "${2%%=*}" ;;
24 (value) echo "${2#*=}" ;;
25 esac
26}
27
28html_el(){ # el TAG [ATTRS...] [TEXT...] [< INPUT]
29 tag="$1"; attrs= ; text=
30 shift
31 for arg
32 do
33 case "$arg" in
34 (*=*) attrs="$attrs ${arg%%=*}=${arg#*=}"; shift ;;
35 (*) break ;;
36 esac
37 done
38
39 printf '<%s%s>%s' "$tag" "$attrs"
40 handle_input "$@" | sed '$s,$,</'"$tag"'>,'
41}
42
43alias p='html_el p'
44alias a='html_el a'
45alias h1='html_el h1'
46alias blockquote='html_el blockquote'
47alias bq=blockquote