* tekuti/page.scm (page-feed-atom): Reimplement Brian's thing with
"with" and "without" query args, to allow for multiple tags to be
included or excluded.
* tekuti/request.scm (request-query-ref-all): New helper.
* tekuti/util.scm (with-output-to-string*, with-input-from-string*): New
hacky helpers, which close the port before returning the string or
result. Hopefully reduce pressure on the GC.
(shell:quote):
* tekuti/git.scm (git-commit-reverse-operations, with-output-to-blob*)
(with-input-from-blob*):
* tekuti/filters.scm (wordpress->sxml): Use the string* procedures.
* tekuti/cache.scm (update-cache): Expand cache size back to 20.
(cached-response-and-body, make-entry): Entries are now procedures
that return the cached pair. They also have some more smarts regarding
etags, last-modified, and conditional requests.
* tekuti/page-helpers.scm (respond): Add etag arg. Set a date.
* tekuti/page.scm: Set etags on a number of pages.
* tekuti/cache.scm: Update with more structure. Use take-max, not
list-head. Only cache cacheable request-response pairs.
* tekuti/index.scm: Add cache as index entry. Also return the index ref
within the index itself, instead of at the head.
* tekuti/web.scm: Don't pass cache around, it's part of the index
now. Adapt to new API.
* tekuti/config.scm (*public-host*, *public-port*)
(*private-host*, *private-port*): Use these instead of *host* and the
recently removed *port*. A web app needs to know its public address,
and the private ports are part of its config.
(*server-impl-args*): Redefine as a thunk to delay the dereferencing
of config parameters like *private-host*.
* tekuti/page-helpers.scm (ensure-public-uri): New helper, uses the new
conf vars to ensure that a value is a URI.
(build-headers): New helper, like the old acons* without consing a
rest list.
(respond): Use the two new helpers.
(atom-header, atom-entry): No need for server-name arg, as we know how
to make a public URI.
* tekuti/page.scm (page-feed-atom): Adapt to no need to guess at the
server-name.
* tekuti/web.scm (main-loop): Allow *server-impl-args* to be a thunk.
* tekuti/util.scm (expanduser): Use the user id to fetch the
username from the /etc/passwd file, so that the username is
not chopped at eight characters.
* wordpress_to_dir.py (all_posts): select only published posts.
(post_categories): get the post category based on the new set
of tables wp_terms, wp_term_relationships and wp_term_taxonomy.