+
+theme_editor(){
+ local page="$1" title
+ title="${page%/}"; title="${title##*/}"
+
+ # Important! Web Server response including newline
+ printf "%s\r\n" "Content-Type: text/html; charset=utf-8" ""
+
+ cat <<-EOF
+ <!DOCTYPE HTML>
+ <html><head>
+ $(theme_head)
+ <title>$(HTML "${title}")</title>
+ </head><body id="$(HTML "$page")" class="editor">
+ $(theme_header)
+ <main><form method=POST>
+ <input type=hidden name=session_key value="${SESSION_KEY}"/>
+ <textarea name=pagetext>$(wiki_text "$page" |HTML)</textarea>
+ <button type=submit name=action value=update>Update</button>
+ <button type=submit name=action value=cancel>Cancel</button>
+ </form></main>
+ $(theme_footer)
+ </body></html>
+ EOF
+}
+
+theme_login(){
+ theme_page '[wiki]/login/'
+}
+
+theme_register(){
+ theme_page '[wiki]/register/'
+}
+
+theme_404(){
+ printf "%s\r\n" "Status: 404 Not Found"
+
+ theme_page '[wiki]/404/'
+}