Age | Commit message (Expand) | Author |
2022-06-23 | issue: Lookup commits affecting file using guile-git.•••* 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.
| Arun Isaac |
2022-06-23 | git: Add commit-date utility function.•••* tissue/git.scm: Import (srfi srfi-19).
(commit-date): New public function.
| Arun Isaac |
2022-06-23 | git: Bind git_diff_find_similar from libgit2.•••* tissue/git.scm: Import %null-pointer from (system foreign).
(diff-find-similar!): New function.
| Arun Isaac |
2022-06-23 | git: Pass repository argument to git-tracked-files.•••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.
| Arun Isaac |
2022-06-23 | git: Add current-git-repository utility function.•••* tissue/git.scm (current-git-repository): New public function.
| Arun Isaac |
2022-06-23 | issue: Remove relative date fields.•••* 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.
| Arun Isaac |
2022-06-23 | web: Do not use relative dates.•••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.
| Arun Isaac |
2022-06-23 | bin: Wean off git's relative dates.•••* bin/tissue: Import (srfi srfi-19).
(human-date-string): New function.
(print-issue, print-issue-to-gemtext): Use human-date-string instead
of relative dates captured from git.
| Arun Isaac |
2022-06-22 | bin: Deprecate tissue news subcommand.•••* bin/tissue (git-updated-files, git-first-commit-since, tissue-news):
Delete functions.
* bin/tissue (main): Remove delegation to news subcommand.
* bin/tissue (print-usage): Unlist tissue-news.
| Arun Isaac |
2022-06-22 | git: Implement git-tracked-files using guile-git.•••* tissue/git.scm: Import (rnrs arithmetic bitwise), (srfi
srfi-9), (git), (git types), and selected symbols from (system
foreign) and (bytestructures guile).
(pointer->bytestructure, bytestructure->pointer, pointer->index-time,
pointer->index-entry, repository-index, index-version,
index-entry-count, index-entry, index-entries):
New functions.
(%oid, %index-time, %index-entry): New variables
(<index-time>, <index-entry>): New types.
(git-tracked-files): Implement using guile-git.
| Arun Isaac |
2022-06-22 | bin: Run with the top-level directory as the current directory.•••If we always run with the top-level directory as the current
directory, we don't need to frequently discover the top-level
directory by walking the filesystem. Also, this sits nicer with a
migration from git to libgit2.
* bin/tissue (main): Run all subcommands with the top-level directory
as the current directory.
(load-config): Load tissue.scm without appending the top-level
directory to it.
(tissue-web): Find the top-level directory using getcwd instead of
git-top-level.
| Arun Isaac |
2022-06-22 | utils: Add call-with-current-directory utility function.•••* tissue/utils.scm (call-with-current-directory): New public function.
| Arun Isaac |
2022-04-22 | bin: Add tissue repl subcommand.•••* bin/tissue (tissue-repl): New function.
(print-usage): Print usage of tissue repl subcommand.
(main): Call tissue-repl.
| Arun Isaac |
2022-04-14 | tissue: Add #:issue-files configuration parameter.•••* 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.
| Arun Isaac |
2022-04-14 | gitignore: Add gitignore.•••* .gitignore: New file.
| Arun Isaac |
2022-04-14 | Makefile: Add clean target.•••* Makefile (.PHONY): Add clean.
(clean): New target.
| Arun Isaac |
2022-04-09 | scripts: Do not auto-compile the tissue script.•••* scripts/ccwl: Add --no-auto-compile to shebang.
| Arun Isaac |
2022-04-06 | git: Implement git-top-level independent of the git command.•••* tissue/git.scm (git-top-level): Implement independent of the git
command.
| Arun Isaac |
2022-04-06 | web: Introduce <file> objects for web export.•••With <file> objects specifying the files to export to the web, the
user has ultimate flexibility in their choice of what to export and
how to export.
* bin/tissue (tissue-web): Parameterize %project-name and
%tags-path. Use new signature of build-website.
* tissue/tissue.scm: Import (srfi srfi-1) and (srfi srfi-71).
(<tissue-configuration>)[web-files]: New field.
(tissue-configuration-web-files): New public function.
(tissue-configuration): New macro.
* tissue/web.scm: Import (srfi srfi-9).
(%project-name): New public parameter.
(<file>): New type.
(build-issue-listing): Delete function.
(copier, gemtext-reader, gemtext-exporter, skribe-exporter,
tag-issue-lister, tag-pages): New public functions.
(exporter, with-current-directory): New functions.
(build-website): Simply write <file> objects to files.
(replace-extension): Export.
| Arun Isaac |
2022-04-05 | git: Abstract out git-top-level.•••* tissue/git.scm (git-top-level): New function.
* bin/tissue: Import (tissue git).
(load-config): Use git-top-level.
| Arun Isaac |
2022-04-05 | git: Abstract out `git ls-files'.•••* tissue/git.scm: New file.
* tissue/issue.scm: Import (tissue git).
(issues): Use git-tracked-files.
| Arun Isaac |
2022-04-05 | issue: Sort authors in lexicographic order.•••* tissue/issue.scm (authors): Sort returned list of authors in
lexicographic order.
| Arun Isaac |
2022-03-23 | bin: Pass the tissue -> `tissue list' alias through main again.•••Pass the tissue -> `tissue list' alias through main again so that
parameters and other setup is done correctly.
* bin/tissue (main): Pass the tissue -> `tissue list' alias through
main again.
| Arun Isaac |
2022-03-18 | issue: Build list of authors from list of issues.•••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'.
| Arun Isaac |
2022-03-18 | issue: Arrange posts oldest first.•••* tissue/issue.scm (issues): Arrange posts oldest first.
(<issue>)[posts]: Comment on order of contents.
| Arun Isaac |
2022-03-18 | issue: Add authors function returning all authors.•••* tissue/issue.scm (authors): New public function.
| Arun Isaac |
2022-03-18 | issue: Resolve authors and assignees using aliases.•••* 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.
| Arun Isaac |
2022-03-18 | tissue: Introduce aliases in configuration.•••* tissue/tissue.scm (<tissue-configuration>)[aliases]: New field.
* tissue/tissue.scm (tissue-configuration): Accept aliases as an
argument.
| Arun Isaac |
2022-03-18 | bin: Abstract out the loading of the configuration file.•••* bin/tissue (load-config): New function.
(tissue-web): Use load-config.
| Arun Isaac |
2022-03-18 | utils: Move memoize-thunk to utils.•••* tissue/issue.scm (memoize-thunk): Move to ...
* tissue/utils.scm (memoize-thunk): ... here.
| Arun Isaac |
2022-03-18 | web: Display task lists in web issue listings.•••* tissue/web.scm (issue-list-item-markup-writer-action): Display task
lists.
| Arun Isaac |
2022-03-18 | issue: Record all commits affecting a file, not just how many.•••* 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.
| Arun Isaac |
2022-03-18 | issue: Refactor out repeated use of assq-ref.•••* tissue/issue.scm (issues): Refactor out repeated use of assq-ref.
| Arun Isaac |
2022-03-18 | issue: Follow files across renames.•••* tissue/issue.scm (file-details): Follow file across renames using
`git log --follow'.
| Arun Isaac |
2022-03-18 | issue: Ignore case of keywords.•••* tissue/issue.scm (issues): Downcase keywords to ignore their case.
| Arun Isaac |
2022-03-18 | issue: Rename issue-open to issue-open?.•••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?.
| Arun Isaac |
2022-03-18 | issue: Replace delete-duplicates with lset-adjoin.•••* tissue/issue.scm (hashtable-append!): Replace delete-duplicates with
lset-adjoin.
| Arun Isaac |
2022-03-18 | issue: Use SRFI-19 dates.•••* 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.
| Arun Isaac |
2022-03-18 | web: Parameterize %tags-path when exporting all files.•••User-created files might also need %tags-path. So %tags-path should be
parameterized even when user-created files are being exported.
* tissue/web.scm (build-website): Parameterize %tags-path when
exporting all files, not just the auto-generated files.
| Arun Isaac |
2022-03-18 | web: Join lines when reading gemtext.•••* tissue/web.scm (build-website): Pass `#:join-lines? #t' to the
gemtext reader.
| Arun Isaac |
2022-03-16 | tissue: Fix "#\s pace" typo.•••It should be "#\space", not "#\s pace".
* tissue/web.scm (issue-list-item-markup-writer-action): Fix "#\s
pace" typo.
| Arun Isaac |
2022-03-16 | tissue: Add CSS class specific to each tag.•••This will let users customize the color of their tags.
* tissue/web.scm (issue-list-item-markup-writer-action): Add CSS class
specific to each tag.
| Arun Isaac |
2022-03-16 | tissue: Encode URIs for safety.•••* tissue/web.scm: Import (web uri).
(issue-list-item-markup-writer-action): Encode URIs for safety.
| Arun Isaac |
2022-03-16 | tissue: Support tagging using "key: value" pairs.•••* tissue/issue.scm (<=n-words?, list-line->alist): New functions.
(file-details): Support tagging using "key: value" pairs.
| Arun Isaac |
2022-03-16 | tissue: Deduplicate keywords in hash table.•••* tissue/issue.scm (hashtable-append!): Deduplicate after appending
new values.
| Arun Isaac |
2022-03-16 | tissue: Enforce prefix check on checklist.•••* tissue/issue.scm (file-details): Match checklist only if it starts
at the beginning of its line.
| Arun Isaac |
2022-03-16 | tissue: Sanitize tag names in file paths.•••* tissue/web.scm (sanitize-string): New function.
(issue-list-item-markup-writer-action, build-website): Use
sanitize-string.
| Arun Isaac |
2022-03-15 | bin: Add `tissue web' subcommand.•••* bin/tissue: Import (tissue tissue) and (tissue web).
(tissue-web): New function.
(print-usage): Document web subcommand.
(main): Hook up web subcommand.
| Arun Isaac |
2022-03-15 | tissue: Introduce declarative configuration.•••The <tissue-configuration> record will provide a declarative
configuration interface.
* tissue/tissue.scm: New file.
| Arun Isaac |
2022-03-15 | tissue: Use more specific &issue-file-not-found-error.•••* bin/tissue: Do not import (rnrs conditions). Import (tissue
conditions).
(tissue-edit, tissue-show): Raise &issue-file-not-found-error instead
of &message-condition.
(print-usage): Handle &issue-file-not-found-error instead of
&message-condition.
* tissue/web.scm: Do not import (rnrs exceptions). Import (tissue
conditions).
(build-website): Raise &issue-file-not-found-error instead of
&message-condition.
| Arun Isaac |