#!/bin/sh
-_EXEC="${_EXEC:-.}"
+_EXEC="${_EXEC:-${0%/*}/}"
_DATA="${_DATA:-.}"
. "$_EXEC"/cgilite/cgilite.sh
. "$_EXEC"/cgilite/file.sh
. "$_EXEC"/session_lock.sh
+git init "$_DATA" >/dev/null
+
yield_page(){
page="$1"
printf '%s\r\n' 'Content-Type: text/html; charset=utf-8' \
webnote.css) FILE "$_EXEC/webnote.css";;
'') yield_page <<-EOF
[form .new action=new [button type=submit New Note]
- [ul .recent
- $({ COOKIE pages; echo; } |tr \ \\n |while read page; do
- [ "$(printf %s "$page" |checkid)" ] && printf '[li [a href="./%s" . %s]]' "$page" "$page"
- done)]
+ $(if [ "$(COOKIE pages)" ]; then
+ printf '[h2 Recent Pages][ul .recent'
+ for page in $(COOKIE pages); do
+ [ -f "$_DATA/$(printf %s "$page" |checkid)" ] && printf '[li [a href="./%s" . %s]]' "$page" "$page"
+ done
+ printf ']'
+ fi)
]
EOF
return 0
new)
newid="$(timeid)"
touch "$_DATA/$newid"
+ git -C "$_DATA" add "$newid" >/dev/null
+ git -C "$_DATA" commit -m "new note \"${newid}\"" "$newid" >/dev/null
REDIRECT "./$newid"
;;
esac
doc="$_DATA/$(printf %s ${PATH_INFO##*/} |checkid)"
if [ ! -f "$doc" ]; then
- REDIRECT "${PATH_INFO%%/*}/"
+ REDIRECT "${PATH_INFO%/*}/"
return 0
fi
if temp=$(CHECK_SLOCK "$doc"); then
RELEASE_SLOCK "$doc"
POST document >"${doc}"
+ git -C "$_DATA" commit -m "update note ${doc##*/} \"$(sed '1{s;\r;;; q;}' "$doc")\"" "${doc##*/}" >/dev/null
REDIRECT "$PATH_INFO"
else
yield_page <<-EOF
esac
COOKIE pages |tr \ \\n |grep -qF "${doc##*/}" \
-|| SET_COOKIE +$((90 * 86400)) pages="$(COOKIE pages && printf ' %s' "${doc##*/}" || printf '%s' "${doc##*/}")"
+|| SET_COOKIE +$((90 * 86400)) pages="$(COOKIE pages && printf ' %s' "${doc##*/}" || printf '%s' "${doc##*/}")" Path="${PATH_INFO%/*}/"
yield_page <<-EOF
[form method=POST
[input type=hidden name=session_key value="$SESSION_KEY"]
[button type=submit name=action value=edit Edit]
]
- [div .text
- $(HTML <"$doc")
- ]
+ [div .text . $(markdown <"$doc")]
EOF