* tekuti/page-helpers.scm (post-sidebar): New function, pops up a sidebar
for related posts.
* tekuti/page.scm (page-show-post): Show the post sidebar.
* tekuti/tags.scm (compute-related-posts): New function, computes the set
of related posts based on the number of tags which they share in
common.
* tekuti/page-helpers.scm (top-tags, tag-cloud, main-sidebar): Make the
tag cloud code a bit more modular. Up the number of tags shown to 30.
* tekuti/util.scm: Allow # in the path part of a URL. Yick.
* tekuti/comment.scm (bad-number?, *new-comment-spec*):
* tekuti/page-helpers.scm (comment-form): Lame spam obfuscation.
* tekuti/util.scm (emailish?): Allow _ in the before-@ part of the url.
(urlish?): Don't require a slash after the host.
* tekuti/page-helpers.scm (post-editing-form):
* tekuti/post.scm (munge-post, parse-post-data): Add foo to allow
comments to be opened or closed. Fix date setting.
* tekuti/comment.scm (make-new-comment): Refactor to decouple comment.scm
from post.scm.
* tekuti/git.scm (run): Generalize so it can run any executable.
(git-ls-tree, git-ls-subdirs): Check for a #f treeish, return directly
in that case, avoiding tracebacks in the forked kid.
(git-mktree): Return #f if the tree is empty.
(git-rev-list): New command, something like git log.
(patch-blob): New function; unused, though. Perhaps I should just
delete it.
(git-commit-reverse-operations): New function, constructs munge-tree
operations to revert a commit.
(git-revert): New operator, reverts a commit. Can't use git's revert
because it requires a working tree.
(munge-tree): Rewrite to unify the various commands, and process the
commands in order. Makes a bit more garbage, but is much more
understandable.
* tekuti/page-helpers.scm (post-editing-form): Add a preview.
(admin-post-url): New helper.
(redirect): New helper.
(admin-post-redirect): New helper.
* tekuti/page.scm (page-admin): Show recent changes in the sidebar.
(page-admin-new-post): Redirect to the new post.
(page-new-comment): Rework for make-new-comment changes, and redirect
to the post. Would be nice to redirect to the comment though.
(page-admin-changes): New page, lists recent changes.
(page-admin-change): New page, shows a change, allowing it to be
undone.
(page-admin-revert-change): New page, actually reverts a change. Thus
we have comment deletion.
* tekuti/post.scm (munge-post): New helper, factored out of
make-new-post.
(parse-post-data): Another new helper. Needs to do more validation,
though.
(modify-post): Post editing, yay!
* tekuti/request.scm (parse-www-form-urlencoded): Factored out of
request-form-data.
(*request-initializers*): Initialize 'query to have the parsed query
string data.
* tekuti/url.scm (url:path-part, url:query-part): New somewhat hacky
functions. url.scm needs some love.
(url:path-split): Split on only the "path part" of the URL.
* tekuti/util.scm (foldn): New export. Probably a bad idea.
(match-case): New macro, not used though.
(string-split/trimming): New util.
* tekuti/web.scm (choose-handler): Update the set of pages.
* tekuti/comment.scm (make-new-comment): Better commit log for comments.
* tekuti/git.scm (munge-tree): Fix when creating multiple files in a new
directory.
* tekuti/page-helpers.scm (with-authentication): Resurrect, this got lost
somehow, in that past time place.
(post-editing-form): Frobate a bit.
(admin-post-link): Fix.
* tekuti/page.scm (page-admin): Frobate.
(page-admin-post): Fix for recent change in post-from-key.
(page-admin-new-post): Sortof works, needs some fixage.
* tekuti/post.scm (make-new-post): Implement, yay
* tekuti/util.scm (timestamp->date): New function
* tekuti/web.scm (*status-names*): add 303