Age | Commit message (Collapse) | Author |
|
* bin/tissue: Import (tissue person).
* tissue/issue.scm: Import (tissue person).
(%aliases, resolve-alias, index-person!): Move to (tissue person).
* tissue/person.scm: New file.
|
|
* tissue/document.scm (document-type): Generalize generic method of
<document> to apply to most child classes. Pass on generic method of
<file-document> to that of <document>.
* tissue/issue.scm (document-type): Remove generic method for <issue>
class.
|
|
* tissue/issue.scm (document->sxml): Hyphenate tag in search query if
it has spaces.
|
|
* tissue/issue.scm (file-details): Allow specifying tags with keyword
and tag singulars.
|
|
We drop the restriction that values in key-value pairs should be 2
words or less. Instead, if the key is a known key such as "keywords:",
"tags:" or "status:", we always accept it as a key.
* tissue/issue.scm (file-details): Parse known keys in list lines even
if they are long.
* tests/issue.scm ("Parse keywords even if they are long"): New test.
|
|
* tissue/issue.scm (list-line->alist): Comment on cond ladder.
|
|
Even hashtable-append! was prepending, not appending. We change its
name to suit.
* tissue/issue.scm (hashtable-append!): Rename to hashtable-prepend!.
(file-details): Call hashtable-prepend! instead of hashtable-append!.
|
|
* tissue/issue.scm (list-line->alist, file-details): Use
string-remove-prefix from (tissue utils).
(file-details): Delete function.
|
|
This also frees us from checking if the file actually exists in the
working tree.
* bin/tissue (tissue-show): Use call-with-file-in-git instead of
call-with-input-file.
(load-config): Use call-with-file-in-git and eval-string instead of
load.
* tissue/document.scm: Import (tissue git).
(document-text, read-gemtext-document): Use call-with-file-in-git
instead of call-with-input-file.
* tissue/issue.scm (file-details): Read from a port instead of from a
file.
(read-gemtext-issue): Call file-details with a port reading the file
committed into the git repository.
* tissue/web/server.scm: Import (tissue git).
* tissue/web/static.scm (exporter): Use call-with-file-in-git instead
of call-with-input-file.
|
|
* tissue/issue.scm (document->sxml): Remove space at the beginning of
search result metadata.
|
|
* tissue/document.scm (document->sxml): Add search result title CSS
class.
* tissue/issue.scm (document->sxml): Add search result title CSS
class.
|
|
* 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.
|
|
* tissue/document.scm (print): Print DOCUMENT identifier.
* tissue/issue.scm (print): Print ISSUE identifier.
|
|
* tissue/document.scm (print): Accept port argument.
* tissue/issue.scm (print): Accept port argument.
|
|
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.
|
|
* 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.
|
|
* tissue/document.scm: Import (htmlprag).
(document-snippet): New public function.
(print): Use document-snippet.
* tissue/issue.scm (print): Use document-snippet.
|
|
* tissue/web/static.scm (sanitize-string): Move to tissue/issue.scm.
|
|
* tissue/issue.scm (index-person): Rename to index-person!.
(document-term-generator): Update invocations of index-person.
|
|
* tissue/issue.scm (unix-time->date): Delete function.
|
|
* 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.
|
|
* 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).
|
|
* 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.
|
|
The authors function, if required in the future, must be reimplemented
using guile-git in (tissue git).
* tissue/issue.scm (authors): Delete public function.
|
|
* tissue/issue.scm (issue->alist): Add (type . issue) pair.
(index-issue): Index type:issue.
|
|
* tissue/issue.scm: Export record type predicates issue? and post?.
|
|
* 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.
|
|
* tissue/issue.scm (date->iso-8601, iso-8601->date): New functions.
(issue->alist, post->alist, alist->issue, alist->post): New public
functions.
|
|
* 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.
|
|
* 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.
|
|
* tissue/tissue.scm: Import (tissue git).
(<tissue-configuration>)[issue-files]: New field.
(gemtext-files-in-directory): New function.
(tissue-configuration): Add #:issue-files keyword argument.
* tissue/issue.scm (%issue-files): New public parameter.
(issues): Read issues only from files in %issue-files.
* bin/tissue (main): Parameterize %issue-files.
|
|
* tissue/git.scm: New file.
* tissue/issue.scm: Import (tissue git).
(issues): Use git-tracked-files.
|
|
* tissue/issue.scm (authors): Sort returned list of authors in
lexicographic order.
|
|
For some reason, `git shortlog' outputs nothing inside a Guix
derivation.
* tissue/issue.scm (file-details): Build list of authors from list of
issues instead of relying on `git shortlog'.
|
|
* tissue/issue.scm (issues): Arrange posts oldest first.
(<issue>)[posts]: Comment on order of contents.
|
|
* tissue/issue.scm (authors): New public function.
|
|
* bin/tissue (main): Load config and parameterize %aliases.
* tissue/issue.scm (%aliases): New public parameter.
(resolve-alias): New function.
(file-details): Resolve authors and assignees using aliases.
|
|
* tissue/issue.scm (memoize-thunk): Move to ...
* tissue/utils.scm (memoize-thunk): ... here.
|
|
* tissue/issue.scm (<post>): New record type.
(file-details): Record all commits affecting a file, not just how
many.
* bin/tissue (print-issue, print-issue-to-gemtext): Apply length on
the output of issue-posts before use.
* tissue/web.scm (issue-list-item-markup-writer-action): Apply length
on posts before use.
|
|
* tissue/issue.scm (issues): Refactor out repeated use of assq-ref.
|
|
* tissue/issue.scm (file-details): Follow file across renames using
`git log --follow'.
|
|
* tissue/issue.scm (issues): Downcase keywords to ignore their case.
|
|
issue-open returns a boolean. So, it makes sense to name it like a
predicate.
* bin/tissue (tissue-list): Replace issue-open with issue-open?.
* tissue/issue.scm (tissue): Export issue-open? instead of issue-open.
(<issue>): Rename issue-open to issue-open?.
* tissue/web.scm (issue-listing): Replace issue-open with issue-open?.
|
|
* tissue/issue.scm (hashtable-append!): Replace delete-duplicates with
lset-adjoin.
|
|
* tissue/issue.scm: Use (srfi srfi-19).
(unix-time->date): New function.
(file-details): Convert date fields created-date and last-updated-date
to SRFI-19.
(issues): Use SRFI-19 time comparison in sort comparator.
|
|
* tissue/issue.scm (<=n-words?, list-line->alist): New functions.
(file-details): Support tagging using "key: value" pairs.
|
|
* tissue/issue.scm (hashtable-append!): Deduplicate after appending
new values.
|
|
* tissue/issue.scm (file-details): Match checklist only if it starts
at the beginning of its line.
|
|
tissue would fail to list issues and throw an exception when a user
deletes a file, or renames a file, but has not committed the changes
to the issue tracker. This commit simply ignores such deletions and
renames, and lists out the other issues that have not changed.
* tissue/issue.scm (file-details): Read the file only if it exists.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
The issues function is disk intensive and will be frequently used in
different parts of the program. Memoize it.
* tissue/issue.scm (memoize-thunk): New function.
(issues): Memoize.
|