summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-03git: Find git tracked files from HEAD, not from index.Arun Isaac
The index is the staging area. We really only want to look at files already committed into the git repository. In addition, a pleasant side-effect is that this gets rid of many of the additional bindings from libgit2. * tissue/git.scm: Import only %null-pointer from (system foreign). Do not import (bytestructures guile). (pointer->bytestructure, bytestructure->pointer, pointer->index-time, pointer->index-entry, repository-index, index-version, index-entry-count, index-entry, index-entries): Delete functions. (%oid, %index-time, %index-entry): Delete variables. (<index-time>, <index-entry>): Delete types. (head-tree): New function. (git-tracked-files): Find git tracked files from HEAD, not from index.
2022-07-01web: server: Make CSS a host-specific parameter.Arun Isaac
* bin/tissue (tissue-run-web): Pass CSS as a host-specific parameter. * tissue/web/server.scm (handler): Remove css argument. Accept CSS as a host-specific parameter. (start-web-server): Remove css argument.
2022-07-01bin: Do not build index or parameterize for `tissue run-web'.Arun Isaac
* bin/tissue (main): Do not build index or parameterize for `tissue run-web'.
2022-06-30web: server: Support virtual hosts.Arun Isaac
* bin/tissue (tissue-run-web): Add hosts configuration option. * tissue/web/server.scm: Import (tissue utils). (start-web-server): Add host parameters argument. (handler): Read database based on Host header.
2022-06-30web: server: Grant read-write permissions to all on Unix socket.Arun Isaac
* tissue/web/server.scm (start-web-server): Grant read-write permissions to all on Unix socket.
2022-06-30bin: Introduce listen specification for web service.Arun Isaac
The new listen specification unifies unix sockets, IP addresses and ports, all into one string. * bin/tissue (address->socket-address): Delete function. (listen->socket-address): New function. (tissue-run-web): Use listen->socket-address instead of address->socket-address. Specify default listen instead of default address and port.
2022-06-30bin: Read web service parameters from configuration file.Arun Isaac
* bin/tissue (invalid-operand): Delete function. (tissue-run-web): Read address and port from configuration file.
2022-06-30web: server: Make CSS representationally more concise.Arun Isaac
* tissue/web/server.scm (%css): Make CSS representationally more concise by removing blank lines and squeezing one-rule blocks into a single line.
2022-06-30web: server: Do not pad search results.Arun Isaac
* tissue/web/server.scm (%css)[.search-results]: Do not pad.
2022-06-30web: server: Add class to search results ul list.Arun Isaac
* tissue/web/server.scm (make-search-page): Add class "search-results" to search results ul.
2022-06-30web: server: Display estimated number of matches.Arun Isaac
* tissue/web/server.scm: Import (xapian wrap). Import parse-query from (xapian xapian) renaming it to xapian:parse-query. (make-search-page): Display estimated number of matches. (handler): Pass estimated number of matches to make-search-page.
2022-06-30search: Separate out query parsing into public function.Arun Isaac
* tissue/search.scm: Import parse-query from (xapian xapian) renaming it to xapian:parse-query. (parse-query): New public function. (search-fold): Use parse-query.
2022-06-30web: server: Re-indent make-search-page.Arun Isaac
* tissue/web/server.scm (make-search-page): Re-indent.
2022-06-29Makefile: Remove top_level_module_dir suffix from scmdir and godir.Arun Isaac
* Makefile (scmdir, godir): Remove top_level_module_dir suffix.
2022-06-29Makefile: Preserve directory structure during installation.Arun Isaac
* Makefile (install): Preserve directory structure when installing sources and objects.
2022-06-29Makefile: Remove dependencies of phony target `install'.Arun Isaac
* Makefile (install): Remove dependencies.
2022-06-29web: server: Self-document search filters.Arun Isaac
* tissue/web/server.scm (make-search-page): Self-document search filters. (%css)[.search-hint, .search-filter]: New rules.
2022-06-29search: Rename last-updater to lastupdater.Arun Isaac
Xapian doesn't seem to like hyphens. * tissue/search.scm (search-fold): Rename last-updater to lastupdater.
2022-06-29search: Return all results by default.Arun Isaac
* tissue/search.scm (search-fold, search-map): Set default value of #:maximum-items argument to all documents. * bin/tissue (tissue-search): Do not pass #:maximum-items to search-map.
2022-06-29web: server: List search results even on home page.Arun Isaac
* tissue/web/server.scm (handler): List search results even on home page.
2022-06-29web: server: Pre-fill search box with current query.Arun Isaac
* tissue/web/server.scm (make-search-page): Accept query argument. (handler): Pass query argument to make-search-page.
2022-06-29web: server: Add document type identifiers in web output.Arun Isaac
* tissue/web/server.scm (%css)[.search-result-title, .search-result-document, .search-result-issue, .search-result-open-issue, .search-result-closed-issue]: New rules.
2022-06-29issue: Remove space at the beginning of search result metadata.Arun Isaac
* tissue/issue.scm (document->sxml): Remove space at the beginning of search result metadata.
2022-06-29document: Add search result title CSS class.Arun Isaac
* tissue/document.scm (document->sxml): Add search result title CSS class. * tissue/issue.scm (document->sxml): Add search result title CSS class.
2022-06-29document: Add CSS classes identifying document type.Arun Isaac
* tissue/document.scm (document->sxml): Add search-result-document class. * tissue/issue.scm (document->sxml): Add search-result-issue and search-result-open-issue/search-result-closed-issue classes.
2022-06-29search: AND is:open filter with search query.Arun Isaac
* tissue/search.scm (search-fold): AND is:open filter with search query.
2022-06-29document: Print identifier identifying type of search result.Arun Isaac
* tissue/document.scm (print): Print DOCUMENT identifier. * tissue/issue.scm (print): Print ISSUE identifier.
2022-06-29bin: Page search results, and do not limit number of results.Arun Isaac
* bin/tissue (tissue-search): Page results, and do not limit number of results.
2022-06-29document: Accept port argument when printing to text.Arun Isaac
* tissue/document.scm (print): Accept port argument. * tissue/issue.scm (print): Accept port argument.
2022-06-29utils: Add call-with-output-pipe.Arun Isaac
* tissue/utils.scm (call-with-output-pipe): New function.
2022-06-29document: Remove blank line between title and snippet.Arun Isaac
* tissue/document.scm (print): Remove blank line between title and snippet.
2022-06-29web: server: Use div instead of span for snippets and metadata.Arun Isaac
A div is already a block element. There is no need to use a span and then make it a block element. * tissue/document.scm (document->sxml): Use div instead of span for snippets and metadata. * tissue/issue.scm (document->sxml): Use div instead of span for snippets and metadata. * tissue/web/server.scm (%css)[.search-result-metadata]: Remove "display: block" property.
2022-06-29document: Remove blank lines in search snippets.Arun Isaac
Blank lines waste precious space in search snippets. * tissue/document.scm (document-html-snippet): Remove blank lines in search snippets.
2022-06-29document: Abstract out HTML snippet generation.Arun Isaac
* tissue/document.scm (document-html-snippet): New function. (document-snippet, document-sxml-snippet): Use document-html-snippet.
2022-06-29tissue: Add `tissue index' subcommand.Arun Isaac
* bin/tissue (tissue-index): New function. (print-usage): List `tissue index' subcommand. (main): Call tissue-index.
2022-06-29search: Limit number of search results.Arun Isaac
* tissue/search.scm (search-fold, search-map): Accept maximum number of search results and offset as arguments. * bin/tissue (tissue-search): Do not print number of search results. Use search-map instead of search-fold.
2022-06-29search: Accept search query as a single string.Arun Isaac
* tissue/search.scm (search-fold, search-map): Accept search query as a single string instead of a list of strings. * bin/tissue (tissue-search): Pass a single search string to search-fold. * tissue/web/server.scm (handler): Pass a single search string to search-map.
2022-06-29web: server: Add web server for search.Arun Isaac
* tissue/web/server.scm: New file. * tissue/document.scm (document-sxml-snippet): New public function. (document->sxml): New generic method. * tissue/issue.scm: Import (web uri). (document->sxml): New generic method. * bin/tissue: Import (system repl server) and (tissue web server). (address->socket-address, tissue-run-web): New function. (print-usage): List `tissue run-web' subcommand. (main): Call tissue-run-web.
2022-06-29document: Add web-uri slot to <document> class.Arun Isaac
* tissue/document.scm (<document>)[web-uri]: New slot. * bin/tissue (main): Set web-uri slot before indexing document.
2022-06-29document: Abstract out document snippet selection.Arun Isaac
* tissue/document.scm: Import (htmlprag). (document-snippet): New public function. (print): Use document-snippet. * tissue/issue.scm (print): Use document-snippet.
2022-06-28web: static: Move sanitize-string to (tissue issue).Arun Isaac
* tissue/web/static.scm (sanitize-string): Move to tissue/issue.scm.
2022-06-28document: Add slot-set utility.Arun Isaac
* tissue/document.scm (slot-set): New public function.
2022-06-28tissue: Add missing argument to format in tissue-search.Arun Isaac
* bin/tissue (tissue-search): Add missing argument to format.
2022-06-28search: Add search-map.Arun Isaac
* tissue/search.scm (search-map): New function.
2022-06-28document: Override write to print object slots and values.Arun Isaac
* tissue/document.scm: Import (srfi srfi-1). (write): New generic method.
2022-06-28bin: Separate out search into (tissue search).Arun Isaac
* bin/tissue (tissue-search): Separate out search functionality into search-fold in (tissue search). * tissue/search.scm: New file.
2022-06-28issue: Prefix ! to destructive function index-person.Arun Isaac
* tissue/issue.scm (index-person): Rename to index-person!. (document-term-generator): Update invocations of index-person.
2022-06-28issue: Deprecate unix-time->date utility.Arun Isaac
* tissue/issue.scm (unix-time->date): Delete function.
2022-06-28Migrate to GOOPS.Arun Isaac
* tissue/document.scm: Do not import (srfi srfi-9). Import (srfi srfi-19), (ice-9 match) and (oop goops). (<document>): Delete type. (<document>, <file-document>): New classes. (date->alist, alist->date, object->scm, scm->object): New functions. (document->alist, alist->document, print-document): Delete functions. (document-term-generator, document-type, document-id-term, document-text, print): New generic methods. (read-gemtext-document): Return <file-document> object. (index-document): Delete function. * tissue/issue.scm: Do not import (srfi srfi-9) and (srfi srfi-19). Import (oop goops) and (tissue document). (date->iso-8601, iso-8601->date): Move to tissue/document.scm. (<issue>, <post>): Re-implement as class. (issue->alist, post->alist, alist->issue, alist->post, index-issue): Delete functions. (print-issue): Rename to print, a generic method. (print): Use document-title and file-document-path instead of issue-title and issue-file respectively. Accept mset argument. (print-issue-to-gemtext): Use document-title instead of issue-title. (read-gemtext-issue): Return a <issue> object. (document-term-generator): New generic methods. * bin/tissue: Import (tissue document) without a prefix. (print-document, alist->document, document->text, index-document): Delete functions. (tissue-search): Use the print generic function. (main): Use the document-type, document-id-term, document-term-generator generic functions and replace-document! instead of index-document. * tissue/conditions.scm (&unknown-document-type-violation): Delete condition.
2022-06-27web: Move (tissue web) to (tissue web static).Arun Isaac
* tissue/web.scm: Rename to tissue/web/static.scm. * bin/tissue: Import (tissue web static) instead of (tissue web). * Makefile (sources): Add sources in tissue/web/.