summaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* fix locale settingGravatar Andy Wingo2010-11-232-2/+2
| | | | | | * src/tekuti: Use sh, not bash. * tekuti/boot.scm (boot): Doh, actually set the locale.
* fix command-line parsing bugsGravatar Andy Wingo2010-11-231-1/+1
| | | | * src/tekuti: Fix bug processing command-line args.
* fix mod-lisp bugsGravatar Andy Wingo2010-11-231-4/+4
| | | | | | * tekuti/mod-lisp.scm (url, read-request/mod-lisp)a (write-headers/mod-lisp, write-response/mod-lisp): Fix a number of mod-lisp bugs.
* fix post content-type checkGravatar Andy Wingo2010-11-221-1/+1
| | | | * tekuti/request.scm (request-form-data): Fix content-type check.
* don't display doctype if unnecessaryGravatar Andy Wingo2010-11-221-1/+1
| | | | | * tekuti/page-helpers.scm (respond): Don't display a doctype if we aren't given one.
* config refactor so that tekuti knows its public addressGravatar Andy Wingo2010-11-224-34/+48
| | | | | | | | | | | | | | | | | | | | | | * 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.
* expanduser tweaksGravatar Andy Wingo2010-11-181-1/+1
| | | | | * tekuti/util.scm (expanduser): Use passwd:name accessor, and geteuid as cuserid did.
* get username from the password file instead of using ↵Gravatar Ramakrishnan Muthukrishnan2010-11-181-1/+1
| | | | | | | | `cuserid'. * 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.
* Change wordpress import to use the newer wordpress ↵Gravatar Ramakrishnan Muthukrishnan2010-11-151-3/+7
| | | | | | | | database layout. * 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.
* big change to use new (web server) infrastructureGravatar Andy Wingo2010-11-137-454/+515
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change to use (web server) instead of our own loop. This also means that requests are request objects from (web request), and responses are from (web response). * tekuti/boot.scm (boot): Run the main loop from (tekuti web). * tekuti/config.scm (*port*, *backlog*, *public-url-base*) (*private-url-base*): Remove extraneous config vars. * tekuti/mod-lisp.scm: Rewrite to be a (web server) server-impl. Not tested very well. * tekuti/page-helpers.scm (respond): New procedure, now the primary way to respond to a request. (relurl, rellink): Take path components as a list, and encode the parts when making the resulting URL. All callers changed. * tekuti/page.scm: Change all handlers to take an additional `body' argument, to respond using `respond', and to use the new `relurl' / `rellink' protocol. * tekuti/request.scm: Eviscerate, leaving only pieces that deal in request objects from `(web request)'. * tekuti/web.scm: Update to use (weeb server).
* (tekuti tags) uses (web uri)Gravatar Andy Wingo2010-11-131-4/+6
| | | | * tekuti/tags.scm (tag-link): Use (web uri).
* templatize uses (web uri)Gravatar Andy Wingo2010-11-131-7/+9
| | | | | * tekuti/template.scm (templatize): Use define* and keyword args instead of taking a "request" object. Use (web uri) for URI work.
* updates to (tekuti config)Gravatar Andy Wingo2010-11-131-3/+10
| | | | | | | | | | | * tekuti/config.scm (*private-url-base*, *public-url-base*): Change to "/", so that we can serve HTTP directly without having a fetch to e.g. "/foo.css" cause an error. A silly reason, I know. (*public-path-base*, *private-path-base*): New vars, containing lists of path components corresponding to their "url" variants above. We are switching to this, as future commits will show. (*server-impl*, *server-impl-args*): New vars, will be used by the new (web server) main loop.
* remove with-backtrace definition; add date->timestampGravatar Andy Wingo2010-11-131-21/+5
| | | | | * tekuti/util.scm: Remove with-backtrace definition. Add date->timestamp definition.
* remove a couple uses of with-backtraceGravatar Andy Wingo2010-11-132-12/+10
| | | | | | | * tekuti/index.scm (reindex): Don't use with-backtrace, that's not how I want to roll, debugging-wise. * tekuti/post.scm (post-sxml-content): Same
* fix various (tekuti git) errorsGravatar Andy Wingo2010-11-131-4/+5
| | | | | * tekuti/git.scm (git-update-ref, patch-blob, munge-tree1-recursive): Fix various errors caught by the compiler.
* src/tekuti uses -s, not -lGravatar Andy Wingo2010-11-131-2/+2
| | | | | * src/tekuti: Change to use an implicit `-s', so a control-c causes an exit rather than dropping us into a repl.
* use compile warningsGravatar Andy Wingo2010-11-131-1/+2
| | | | | * Makefile.am (GUILE_WARNINGS): Use compile warnings when compiling tekuti.
* fix a number of syncase porting bugsGravatar Andy Wingo2010-11-133-11/+15
| | | | | | | | | | * tekuti/git.scm (with-output-to-blob, with-input-from-blob): Use hygienic macros. * tekuti/match-bind.scm (match-bind): Add a check that the pattern is a literal string. * tekuti/util.scm (match-lines): Fix port from defmacro.
* autotoolize, and compile the scheme filesGravatar Andy Wingo2010-11-1311-8/+957
| | | | | | | | | | | | | * .gitignore: * AUTHORS: * COPYING: * ChangeLog: * Makefile.am: * NEWS: * README: * acinclude.m4: * configure.ac: * env.in: All the needed bits.
* move up let-request definitionGravatar Andy Wingo2010-11-131-18/+18
| | | | * tekuti/request.scm (let-request): Move definition up.
* (tekuti util) fixenGravatar Andy Wingo2010-11-131-32/+19
| | | | | * tekuti/util.scm (unwind-protect): Move definition up. (with-backtrace*): Update to backtrace in the throw handler.
* change uses of define/kwargs to define*Gravatar Andy Wingo2010-11-135-9/+5
| | | | | | | | | | * tekuti/git.scm (git*): * tekuti/request.scm (rref): * tekuti/util.scm (date-increment): Use define* instead of define/kwargs. Remove (scheme kwargs) import. * tekuti/page-helpers.scm (tekuti): * tekuti/page.scm (tekuti): Remove needless (scheme kwargs) imports.
* update to use (tekuti match-bind)Gravatar Andy Wingo2010-11-136-13/+12
| | | | | | | | | * tekuti/comment.scm: * tekuti/filters.scm: * tekuti/git.scm: * tekuti/post.scm: * tekuti/request.scm: * tekuti/util.scm: Update to use (tekuti match-bind).
* import match-bind from guile-libGravatar Andy Wingo2010-11-131-0/+263
| | | | * tekuti/match-bind.scm: Import from guile-lib.
* use a properly exported interface to define parsed entitiesGravatar Andy Wingo2010-11-131-14/+8
| | | | | * tekuti/config.scm: Use the new define-parsed-entity! to define the character entities.
* call setlocaleGravatar Andy Wingo2010-11-131-0/+1
| | | | | * tekuti/boot.scm (boot): Call (setlocale LC_ALL) to pull in locale settings from the environment.
* updates to (tekuti boot)Gravatar Andy Wingo2010-11-131-15/+5
| | | | | | | * tekuti/boot.scm (*option-grammar*): Remove repl and gds args, replaced by `listen'. (parse-options): `listen' causes tekuti to spawn a repl server. (boot): No more repl option; we always sit down into the event-loop.
* base64 efficiency hacksGravatar Andy Wingo2010-11-131-17/+19
| | | | | | | * tekuti/base64.scm (bytevector-map-n-to-m): Use multiple values. (base64-encode): Inline the map-3-to-4 definition, and use multiple values. (base64-decode): Likewise, with map-4-to-3.
* port (tekuti base64) to use (rnrs bytevectors)Gravatar Andy Wingo2010-11-132-63/+93
| | | | | | | | * tekuti/base64.scm: Port to (rnrs bytevectors). All the real work was done by Andreas Rottmann. * tekuti/request.scm (request-authenticated?): Run the decoded user name and password bytevector through utf8->string.
* Revert last, misguided commitGravatar Andreas Rottmann2010-11-061-2/+2
| | | | This reverts commit 8a8e0fadae12cbacaf8474b09c16ee8c01ebfe26.
* post: make `post-comments' and `post-n-comments' work ↵Gravatar Andreas Rottmann2010-11-051-2/+2
| | | | | | | with current git Apparently, at least git 1.7.2.3 ls-files does not understand the SHA1:filename syntax anymore.
* Remove two unnecessary instances of quasisyntaxGravatar Andreas Rottmann2010-11-041-2/+2
|
* Replace several `define-macro' uses with `syntax-rules' ↵Gravatar Andreas Rottmann2010-10-134-101/+93
| | | | and `syntax-case'
* Don't crash generating the atom feed when there are no ↵Gravatar Andreas Rottmann2009-07-032-5/+9
| | | | posts yet
* Convert the mod-lisp headers to lowercaseGravatar Andreas Rottmann2009-07-023-4/+5
| | | | HTTP headers are expected to be treated case-insensitively.
* dewingoizeGravatar Andy Wingo2008-04-233-9/+23
| | | | | | | | | | | * tekuti/boot.scm (boot): Add config option, a file evaluated inside (tekuti config). * tekuti/config.scm: Add *css-file*, *navbar-links*, *navbar-infix*. Change default admin pass. * tekuti/template.scm (templatize): Make the default template less wingo-specific.
* fix starting from scratchGravatar Andy Wingo2008-04-221-1/+4
| | | | | * tekuti/git.scm (ensure-git-repo): Actually create a master ref. Fixes startup when ~/blog.git doesn't exist.
* fix search with no results on deployed tekutiGravatar Andy Wingo2008-04-131-1/+4
| | | | | * tekuti/page-helpers.scm: Be patient with git errors. Dunno why they happen, though.
* whoops, fix searchGravatar Andy Wingo2008-04-122-3/+0
| | | | | * tekuti/page.scm (page-search): * tekuti/web.scm (choose-handler): fix search
* add search capabilitiesGravatar Andy Wingo2008-04-124-3/+32
| | | | | | | | | | | | * tekuti/page-helpers.scm (main-sidebar): Add search box. (find-posts-matching): New function, does a search using git-grep. * tekuti/page.scm (page-search): New page for showing search results. * tekuti/util.scm (match-lines): Capture the match-bind binding. * tekuti/web.scm (choose-handler): Add the search page.
* add related-tags clouds to tag/foo pagesGravatar Andy Wingo2008-04-123-3/+34
| | | | | | | | | | * tekuti/page-helpers.scm (related-tag-cloud): New function, shows a tag-relative tag cloud. * tekuti/page.scm (page-show-tag): Add a cloud of related tags. * tekuti/tags.scm (compute-related-tags): New proc to show related tags.
* better error messages for invalid xhtmlGravatar Andy Wingo2008-04-111-2/+11
| | | | | * tekuti/filters.scm (bad-user-submitted-xhtml?): Add a more informative error message.
* add main tag cloud pageGravatar Andy Wingo2008-04-112-2/+6
| | | | | | | * tekuti/page-helpers.scm: Export top-tags. * tekuti/page.scm (page-show-tags): Implement the main tag cloud page. Yay!
* add "related posts" fooGravatar Andy Wingo2008-04-113-4/+41
| | | | | | | | | | | * 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.
* tweak tag cloud codeGravatar Andy Wingo2008-04-112-24/+28
| | | | | | | | * 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.
* spam spam spamGravatar Andy Wingo2008-03-113-2/+12
| | | | | | | | | * 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.
* don't say I'm not lenientGravatar Andy Wingo2008-03-111-5/+10
| | | | | * tekuti/post.scm (post-sxml-content): Don't throw an exception if a post fails to format.
* fix comment openageGravatar Andy Wingo2008-03-092-2/+8
| | | | | | | * 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.
* comment deletion, post editing.Gravatar Andy Wingo2008-03-0710-203/+374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.