summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* site: Change post-filter to file-filter.David Thompson2015-08-082-24/+25
| | | | | | | | | | | | | | | Genericized name because the predicate procedure may be used on any file, not just posts. * haunt/site.scm (<site>)[post-filter]: Delete. [file-filter]: New field. (site): Replace #:post-filter with #:file-filter. (build-site): Use 'site-post-filter'. (make-file-name-filter): Delete. (make-file-filter): New procedure. (default-file-name-filter): Delete. (default-file-filter): New procedure. * haunt/reader.scm (read-posts): Flip predicate around.
* example: Remove unnecessary module import.David Thompson2015-08-061-2/+1
|
* builder: blog: Add concept of "collections".David Thompson2015-08-061-15/+19
| | | | | | | | | | | | | | | | Rather than having a hardcoded index page, a blog now accepts a variable number of "collection" tuples that describe the page title, file name, and the filter procedure for the posts that will appear on that page. * haunt/builder/blog.scm (<theme>) [list-template]: Delete. [collection-template]: New field. (theme-list-template): Delete. (theme-collection-template): New accessor. (make-theme): Replace #:list-template with #:collection-template. (render-list): Delete. (render-collection): New procedure. (ugly-theme): Use #:collection-template argument. (blog): Add #:collections argument.
* builder: blog: Export date->string*.David Thompson2015-08-051-0/+2
| | | | * haunt/builder/blog.scm: Export date->string*.
* site: Don't crash if there is no posts directory.David Thompson2015-08-051-4/+6
| | | | | * haunt/site.scm (build-site): Test for the existence of posts directory.
* site: Update default file filter.David Thompson2015-08-051-1/+1
| | | | | * haunt/site.scm (default-file-filter): Ignore files that begin with "." or "#".
* ui: serve: Add --watch option.David Thompson2015-08-031-3/+49
| | | | | | | * haunt/ui/serve.scm (show-help): Add help text for --watch. (%options): Add --watch option. (watch): New procedure. (haunt-serve): DTRT when --watch is specified.
* site: Add a way to ignore post files that match a pattern.David Thompson2015-08-032-10/+36
| | | | | | | | | | | | This allows one to ignore files that would otherwise match a reader's file extension, such as an Emacs temporary file like ".#foo.html". * haunt/site.scm (<site>)[post-filter]: New field. (site-posts-filter): New accessor. (site): Add #:post-filter argument. (build-site): Pass post filter procedure to 'read-posts'. (make-file-name-filter, default-file-name-filter): New procedures. * haunt/reader.scm (read-posts): Add 'ignore?' argument.
* site: Fix procedure name in doc string.Ricardo Wurmus2015-07-281-1/+1
| | | | | * haunt/site.scm (site): Change "POST-SLUG" to "MAKE-SLUG" in doc string.
* site: Add site-wide slug procedure setting.Ricardo Wurmus2015-07-273-9/+22
| | | | | | | | | | | | | Co-Authored-By: David Thompson <davet@gnu.org> * haunt/site.scm (<site>)[make-slug]: New field. (site-make-slug, site-post-slug): New procedures. (site): Add #:make-slug keyword argument. * haunt/builder/blog.scm (render-list): Pass site to theme's list template. (ugly-theme): Add 'site' argument to #:list-template procedure. (blog): Use 'site-post-slug'. * haunt/builder/atom.scm (atom-feed, post->atom-entry): Likewise.
* example: Add image asset.David Thompson2015-07-273-2/+8
| | | | | | * example/haunt.scm: Add static directory builder. * example/images/guile-banner.small.png: New file. * example/posts/foo.sxml: Render Guile banner image.
* web-server: Bypass response sanitization for static files.David Thompson2015-07-271-11/+2
| | | | | | | Just copy the raw bytes. * haunt/serve/web-server.scm (dump-file): Delete. (render-file): Return a bytevector instead of a writer procedure.
* Remove code that was accidentally committed.David Thompson2015-07-271-3/+0
|
* site: Display unicode arrow when printing asset copy actions.David Thompson2015-07-261-1/+1
| | | | * haunt/site.scm (build-site): Replace '->' with '→'.
* ui: Set default locale for all commands.David Thompson2015-07-261-0/+1
| | | | * haunt/ui.scm (haunt-main): Set LC_ALL.
* utils: file-name-components: Handle empty string.David Thompson2015-07-261-1/+3
| | | | | * haunt/utils.scm (file-name-components): Return the empty list when given the empty string.
* asset: Add brief documentation.David Thompson2015-07-263-2/+10
| | | | | * haunt/asset.scm: Add introductory comment. * README.md (Example Configuration): Add 'directory-assets' example.
* builder: Add assets builder.David Thompson2015-07-262-0/+40
| | | | | * haunt/builder/assets.scm: New file. * Makefile.am (SOURCES): Add it.
* Rename (haunt build html) to (haunt html).David Thompson2015-07-265-4/+7
| | | | | | | | | * haunt/build/html.scm: Delete it. * haunt/html.scm: New file. * Makefile.am (SOURCES): Remove old file. Add new file. * haunt/builder/atom.scm: Use new module. * haunt/builder/blog.scm: Likewise. * haunt/ui/serve.scm: Likewise.
* html: Add punctuation to comment.David Thompson2015-07-261-1/+1
|
* html: Remove gratuitous escape codes.David Thompson2015-07-262-244/+2
| | | | | | | | | UTF-8 encoded HTML pages are much better than maintaining a giant lookup table. * haunt/build/html.scm (%escape-chars): Remove all but the absolutely necessary escape codes. * haunt/builder/blog.scm (ugly-theme)[#:layout]: Add UTF-8 meta tag.
* Remove hardcoded Guile executable path.David Thompson2015-07-263-1/+3
| | | | | | * scripts/haunt: Now a build artifact. * scripts/haunt.in: New file. * configure.ac: Pre-process haunt.in.
* Add GNU Guix development environment helper.David Thompson2015-07-192-3/+57
| | | | | * package.scm: New file. * README.md: Document it.
* README: Add building instructions.David Thompson2015-07-191-0/+15
| | | | * README.md (Requirements, Building): New sections.
* Add autotools bootstrap script.David Thompson2015-07-191-0/+3
| | | | * bootstrap: New file.
* builder: blog: Add theme type.David Thompson2015-04-151-28/+73
| | | | | | | | | * haunt/builder/blog.scm (<theme>): New record type. (theme, theme?, theme-name, theme-layout, theme-post-layout, theme-list-template, with-layout, render-post, render-list, date->string*): New procedures. (ugly-theme): Redefine as <theme>. (blog): Use <theme> object.
* Add static asset support.David Thompson2015-04-134-3/+101
| | | | | | | | * haunt/asset.scm: New file. * Makefile.am (SOURCES): Add it. * haunt/site.scm (build-site): Add support for assets. * haunt/utils.scm (file-name-components, join-file-name-components): New procedures.
* example: Remove personal details.David Thompson2015-04-131-3/+3
| | | | * example/haunt.scm: Use made up metadata.
* README: Remove personal details from example configuration.David Thompson2015-04-131-3/+3
| | | | * README.md (Example Configuration): Use made up domain/name/email address.
* README: Remove srfi-19 import from example configuration.David Thompson2015-04-131-2/+1
| | | | * README.md (Example Configuration): Remove (srfi srfi-19).
* Add example site.David Thompson2015-04-134-0/+46
| | | | | | | * .gitignore: Ignore example build artifacts. * example/haunt.scm: New file. * example/posts/foo.sxml: New file. * example/posts/bar.html: New file.
* builder: Add primitive blog builder.David Thompson2015-04-132-0/+82
| | | | | * haunt/builder/blog.scm: New file. * Makefile.am (SOURCES): Add it.
* post: Add post-date procedure.David Thompson2015-04-133-5/+13
| | | | | | | * haunt/post.scm (%default-date): New variable. (post-date): New procedure. * haunt/builder/atom.scm (post->atom-entry): Use post-date. * README.md (Example Configuration): Remove date from default metadata.
* post: Rename post->time to post-time.David Thompson2015-04-131-2/+2
| | | | | * haunt/post.scm (post->time): Rename to... (post-time): ...this.
* README: Fix date in example config.Arne Babenhauserheide2015-04-131-2/+2
| | | | | * README.md: Add missing argument to make-date. Use quasiquote and unquote to apply make-date.
* Update README.David Thompson2015-04-121-5/+39
| | | | * README.md: Update intro. Add example configuration and usage.
* builder: Add Atom feed builder.David Thompson2015-04-112-0/+105
| | | | | * haunt/builder/atom.scm: New file. * Makefile.am (SOURCES): Add it.
* html: Add sxml->html-string.David Thompson2015-04-111-1/+8
| | | | * haunt/build/html.scm (sxml->html-string): New procedure.
* post: Add posts/group-by-tag.David Thompson2015-04-111-0/+15
| | | | * haunt/post.scm (group-by-tag): New procedure.
* serve: web-server: Fix directory rendering.David Thompson2015-04-111-2/+2
| | | | | | Paths were not being concatenated properly. * haunt/server/web-server.scm (render-directory): Fix concat+uri-encode.
* site: Fix cleaning step before building.David Thompson2015-04-112-9/+27
| | | | | | | | Cleaning the build directory failed when a subdirectory existed. * haunt/utils.scm (clean-directory): Remove. (delete-file-recursively): New procedure. * haunt/site.scm (build-site): Use delete-file-recursively.
* site: Add 'domain' field.David Thompson2015-04-111-3/+6
| | | | | | | * haunt/site.scm (<site>): Add 'domain' field. (make-site): New argument. (site-domain): New accessor. (site): Add 'domain' keyword argument.
* reader: Export html-reader and fix style.David Thompson2015-04-111-4/+4
| | | | | * haunt/reader.scm (html-reader): Export. Use alist-cons to neaten up code.
* post: Add metadata parsers.David Thompson2015-04-111-1/+28
| | | | | | | * haunt/post.scm (%metadata-parsers): New variable. Register parser for 'tags and 'date. (metadata-parser, register-metadata-parser!, parse-metadata): New procedures.
* post: Add helper procedures.David Thompson2015-04-111-1/+21
| | | | * haunt/post.scm (post-slug, posts/reverse-chronological): New procedures.
* utils: Add take-up-to.David Thompson2015-04-111-0/+11
| | | | * haunt/utils.scm (take-up-to): New procedure.
* utils: Add string->date*.David Thompson2015-04-111-1/+8
| | | | * haunt/utils.scm (string->date*): New procedure.
* config: Remove unneeded things.David Thompson2015-04-111-15/+1
| | | | | * haunt/config.scm.in (%haunt-cwd, haunt-file-name, haunt-output-directory): Remove.
* ui: Add "build" to command list.David Thompson2015-04-111-1/+1
| | | | * haunt/ui.scm (commands): Add "build".
* ui: Add 'build' subcommand.David Thompson2015-04-112-0/+62
| | | | | * haunt/ui/build.scm: New file. * Makefile.am (SOURCES): Add it.