summaryrefslogtreecommitdiff
path: root/tissue
AgeCommit message (Collapse)Author
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-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-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-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/.
2022-06-27issue: Move issue printing functions to (tissue issue).Arun Isaac
* bin/tissue: Do not import (srfi srfi-19). (print-issue, print-issue-to-gemtext): Move to tissue/issue.scm. (human-date-string): Move to tissue/utils.scm. * tissue/issue.scm: Import (term ansi-color). * tissue/utils.scm: Import (srfi srfi-19).
2022-06-27issue: Replace issues thunk with read-gemtext-issue reader.Arun Isaac
* tissue/issue.scm (%issue-files): Delete parameter. (issues): Delete function. (read-gemtext-issue): New public function. (file-modification-table-for-current-repository): New function. * bin/tissue (main): Do not parameterize %issue-files.
2022-06-27tissue: Generalize issue-files to indexed-documents.Arun Isaac
* tissue/tissue.scm (<tissue-configuration>)[issue-files]: Delete field. [indexed-documents]: New field. * tissue/tissue.scm (tissue-configuration): Remove issue-files argument. Add indexed-documents argument. * bin/tissue: Import (tissue document) with doc: prefix. (print-document, alist->document, document->text, index-document): New functions. (tissue-search): Display search results for generalized documents using print-document, alist->document and document->text. (main): Index generalized documents using index-document.
2022-06-27conditions: Add &unknown-document-type-violation.Arun Isaac
* tissue/conditions.scm (&unknown-document-type-violation): New condition type.
2022-06-27conditions: Suffix -error to &issue-file-not-found condition.Arun Isaac
* tissue/conditions.scm (&issue-file-not-found): Rename to &issue-file-not-found-error.
2022-06-27document: Add <document> object.Arun Isaac
* tissue/document.scm: New file.
2022-06-27utils: Add string-remove-prefix.Arun Isaac
* tissue/utils.scm (string-remove-prefix): New public function.
2022-06-27issue: Deprecate authors function.Arun Isaac
The authors function, if required in the future, must be reimplemented using guile-git in (tissue git). * tissue/issue.scm (authors): Delete public function.
2022-06-27web: Deprecate all static issue listings.Arun Isaac
We are moving to a dynamic web interface with issue searches. Static issue listings are therefore obsolete. * tissue/web.scm: Do not import (skribilo ast), (skribilo lib), (skribilo package base), (skribilo utils keywords), (skribilo writer) and (sxml simple). (%tags-path): Delete parameter. (issue-list-item): Delete markup. (issue-listing, issue-list-item-markup-writer-action, tag-issue-lister, tag-pages): Delete functions. * bin/tissue (tissue-web): Do not parameterize %tags-path.
2022-06-27git: Optionally accept repository argument in git-tracked-files.Arun Isaac
While making the repository argument mandatory makes git-tracked-files more of a pure function, users would still prefer to implicitly refer to the current repository in their tissue.scm configuration files. * tissue/git.scm (git-tracked-files): Make repository argument optional.
2022-06-26issue: Index issues with type:issue.Arun Isaac
* tissue/issue.scm (issue->alist): Add (type . issue) pair. (index-issue): Index type:issue.
2022-06-26issue: Export predicates issue? and post?.Arun Isaac
* tissue/issue.scm: Export record type predicates issue? and post?.
2022-06-25bin: Index issues using xapian.Arun Isaac
* bin/tissue: Import (ice-9 ftw), (git), (xapian wrap) and (xapian xapian). (delete-xapian-index): New function. (%state-directory, %xapian-index): New variables. (main): Build index if it does not exist. * tissue/issue.scm: Import (xapian xapian). (index-person): New function. (index-issue): New public function.
2022-06-25issue: Add serialization and deserialization functions.Arun Isaac
* tissue/issue.scm (date->iso-8601, iso-8601->date): New functions. (issue->alist, post->alist, alist->issue, alist->post): New public functions.
2022-06-23utils: Deprecate call-with-input-pipe.Arun Isaac
* tissue/utils.scm (call-with-input-pipe): Delete function.
2022-06-23issue: Lookup commits affecting file using guile-git.Arun Isaac
* tissue/git.scm: Import (rnrs hashtables) and (ice-9 match). (commit-deltas): New function. (file-modification-table): New public function. * tissue/issue.scm: Import (git). (file-details): Do not lookup git history for file using `git log'. (issues): Use file-modification-table to lookup git history.
2022-06-23git: Add commit-date utility function.Arun Isaac
* tissue/git.scm: Import (srfi srfi-19). (commit-date): New public function.
2022-06-23git: Bind git_diff_find_similar from libgit2.Arun Isaac
* tissue/git.scm: Import %null-pointer from (system foreign). (diff-find-similar!): New function.
2022-06-23git: Pass repository argument to git-tracked-files.Arun Isaac
Accepting a repository argument makes git-tracked-files a better stand-alone utility. * tissue/git.scm (git-tracked-files): Accept repository argument. * tissue/tissue.scm (gemtext-files-in-directory): Pass repository argument to git-tracked-files.
2022-06-23git: Add current-git-repository utility function.Arun Isaac
* tissue/git.scm (current-git-repository): New public function.
2022-06-23issue: Remove relative date fields.Arun Isaac
* tissue/issue.scm (<issue>)[created-relative-date, last-updated-relative-date]: New fields. * tissue/issue.scm (<post>)[post-relative-date]: New field. * tissue/issue.scm (file-details): Do not collect relative dates. (issues): Do not initialize created-relative-date and last-updated-relative-date fields.
2022-06-23web: Do not use relative dates.Arun Isaac
The web subcommand generates static sites which may have to live on for a long time. Relative dates are meaningless in such a context. * tissue/web.scm: Import (srfi srfi-19). (issue-list-item): Do not accept #:created-relative-date and #:last-updated-relative-date. (issue-listing): Do not pass #:created-relative-date and #:last-updated-relative-date. (issue-list-item-markup-writer-action): Do not use #:created-relative-date and #:last-updated-relative-date.