This page describes a modification to Wikit to add a "Preview" button to the editing page in the web interface. I ([sm]) have not tried it with caching of pages, but it works great without the caching. Below is a context diff of the change. It is to the file web.tcl, version dated 2004-01-10. ---- *** web.tcl.old Fri Jan 23 13:08:45 2004 --- web.tcl Fri Jan 23 13:16:14 2004 *************** *** 280,285 **** --- 280,290 ---- SavePage $N $C $host $name } # end of change, 03-09-2003 + # If a preview of the saved page is requested, generate + # that page instead. + if {$editAction == "Preview"} { + set cmd Preview + } mk::file commit wdb # a general improvement: redirect through a fetch again *************** *** 387,393 **** } cgi_body bgcolor=#ffffff { ! cgi_h2 [Wiki - $N] cgi_form $::script_name/$N { cgi_export O=$origtag --- 392,398 ---- } cgi_body bgcolor=#ffffff { ! cgi_h2 "Edit $name" cgi_form $::script_name/$N { cgi_export O=$origtag *************** *** 401,408 **** p # thx Alistair Grant, see http://mini.net/tcl/9747 #submit_button "= Save " - # Create Save and Cancel buttons submit_button "Action=Save" cgi_puts " [nbspace] " submit_button "Action=Cancel" --- 406,415 ---- p # thx Alistair Grant, see http://mini.net/tcl/9747 #submit_button "= Save " + # Create Preview, Save, and Cancel buttons + submit_button "Action=Preview" + cgi_puts " [nbspace] " submit_button "Action=Save" cgi_puts " [nbspace] " submit_button "Action=Cancel" *************** *** 418,423 **** --- 425,485 ---- } } + Preview { # called to generate a preview page + cgi_head { + cgi_http_equiv Content-type "text/html; charset=utf-8" + cgi_title "Preview of $name" + cgi_meta name=robots content=noindex,nofollow + cgi_http_equiv Pragma no-cache + cgi_http_equiv Expire "Mon, 04 Dec 1999 21:29:02 GMT" + stylesheet + if {$N != "2" && [info exists ::env(WIKIT_BASE)]} { + cgi_base href=$::env(WIKIT_BASE) + } + } + + cgi_body bgcolor=#ffffff { + cgi_h2 "Preview of $name" + + set U "" + foreach {Content U} [Expand_HTML $C] break + p $Content + + hr noshade + + cgi_h2 "Re-edit $name" + p + + cgi_form $::script_name/$N { + cgi_export O=$origtag + catch { + set z "http://$::env(HTTP_HOST)$::env(REDIRECT_URL)" + regsub {@$} $z {} z + cgi_export Z=$z + } + textarea C=$C rows=30 cols=72 wrap=virtual \ + style=width:100% + p + # thx Alistair Grant, see http://mini.net/tcl/9747 + #submit_button "= Save " + # Create Preview, Save, and Cancel buttons + submit_button "Action=Preview" + cgi_puts " [nbspace] " + submit_button "Action=Save" + cgi_puts " [nbspace] " + submit_button "Action=Cancel" + # end of change, 03-09-2003 + if {$date != 0} { + cgi_puts " [nbspace] [nbspace] [nbspace] " + cgi_puts [italic "Last saved on [bold $date]"] + } + p + cgi_puts $::EditInstructions + } + + } + } + ! { # called to generate a page with references cgi_head { ---- [MHo]: Wouldn't it be nice to add this function as a ''standard feature''? [rpr]: Yes, it would. ---- [Category Wikit]