summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2022-04-06git: 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-06web: 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-05git: 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-05git: 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-05issue: Sort authors in lexicographic order.•••* tissue/issue.scm (authors): Sort returned list of authors in lexicographic order. Arun Isaac
2022-03-23bin: 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-18issue: 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-18issue: Arrange posts oldest first.•••* tissue/issue.scm (issues): Arrange posts oldest first. (<issue>)[posts]: Comment on order of contents. Arun Isaac
2022-03-18issue: Add authors function returning all authors.•••* tissue/issue.scm (authors): New public function. Arun Isaac
2022-03-18issue: 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-18tissue: 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-18bin: Abstract out the loading of the configuration file.•••* bin/tissue (load-config): New function. (tissue-web): Use load-config. Arun Isaac
2022-03-18utils: Move memoize-thunk to utils.•••* tissue/issue.scm (memoize-thunk): Move to ... * tissue/utils.scm (memoize-thunk): ... here. Arun Isaac
2022-03-18web: Display task lists in web issue listings.•••* tissue/web.scm (issue-list-item-markup-writer-action): Display task lists. Arun Isaac
2022-03-18issue: 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-18issue: Refactor out repeated use of assq-ref.•••* tissue/issue.scm (issues): Refactor out repeated use of assq-ref. Arun Isaac
2022-03-18issue: Follow files across renames.•••* tissue/issue.scm (file-details): Follow file across renames using `git log --follow'. Arun Isaac
2022-03-18issue: Ignore case of keywords.•••* tissue/issue.scm (issues): Downcase keywords to ignore their case. Arun Isaac
2022-03-18issue: 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-18issue: Replace delete-duplicates with lset-adjoin.•••* tissue/issue.scm (hashtable-append!): Replace delete-duplicates with lset-adjoin. Arun Isaac
2022-03-18issue: 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-18web: 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-18web: Join lines when reading gemtext.•••* tissue/web.scm (build-website): Pass `#:join-lines? #t' to the gemtext reader. Arun Isaac
2022-03-16tissue: 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-16tissue: 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-16tissue: Encode URIs for safety.•••* tissue/web.scm: Import (web uri). (issue-list-item-markup-writer-action): Encode URIs for safety. Arun Isaac
2022-03-16tissue: 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-16tissue: Deduplicate keywords in hash table.•••* tissue/issue.scm (hashtable-append!): Deduplicate after appending new values. Arun Isaac
2022-03-16tissue: 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-16tissue: 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-15bin: 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-15tissue: Introduce declarative configuration.•••The <tissue-configuration> record will provide a declarative configuration interface. * tissue/tissue.scm: New file. Arun Isaac
2022-03-15tissue: 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
2022-03-15tissue: Introduce specialized conditions.•••* tissue/conditions.scm: New file. Arun Isaac
2022-03-15tissue: Allow specification of CSS.•••* tissue/web.scm (build-website): Accept #:css argument and set the CSS of generated web pages accordingly. Arun Isaac
2022-03-15tissue: Allow override of auto-generated files in website.•••* tissue/web.scm (build-website): Export auto-generated files first so that user-created files can override them. Arun Isaac
2022-03-15tissue: Use the term "export" instead of "publish".•••* tissue/web.scm (build-website): In comments, use the term "export" instead of "publish". Arun Isaac
2022-03-15tissue: Raise exception on missing file when building website.•••* tissue/web.scm (build-website): Raise exception on missing file. Arun Isaac
2022-03-15bin: Use raise instead of raise-exception.•••raise is from the (rnrs exceptions) standard. * bin/tissue (tissue-edit, tissue-show): Use raise instead of raise-exception. Arun Isaac
2022-03-14bin: Handle message conditions.•••* bin/tissue: Import (rnrs exceptions). (main): Handle message conditions by printing them and exiting with failure. Arun Isaac
2022-03-14bin: Raise exception on missing file.•••* bin/tissue: Import (rnrs conditions). (tissue-edit, tissue-show): Raise exception on missing file. Arun Isaac
2022-03-14tissue: Ignore missing files when listing issues.•••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> Frederick Muriuki Muriithi
2022-03-14Makefile: Install guile libraries.•••* Makefile (project, guile_effective_version, GUILD, libdir, datarootdir, top_level_module_dir, sources, objects, scmdir, godir): New variables. * Makefile (all): Depend on $(objects). (%.go): New target. (install): Install $(sources) and $(objects). Arun Isaac
2022-03-14tissue: Support exporting issues to the web.•••* tissue/web.scm: New file. Arun Isaac
2022-03-14tissue: Memoize the issues function.•••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. Arun Isaac
2022-03-13bin: Remove (ice-9 ftw) import.•••(ice-9 ftw) is no longer used. * bin/tissue: Do not remove (ice-9 ftw). Arun Isaac
2022-03-13tissue: Reorganize code into scheme modules.•••* bin/tissue: Do not import (rnrs hashtables) and (srfi srfi-9). Import (tissue issue) and (tissue utils). (<issue>, issues, hashtable-append!, comma-split, remove-prefix, file-details): Move to tissue/issue.scm. (call-with-input-pipe, get-line-dos-or-unix): Move to tissue/utils.scm. * tissue/issue.scm, tissue/utils.scm: New files. Arun Isaac
2022-02-05guix.scm: Add guix.scm.•••* guix.scm: New file. Arun Isaac
2022-02-05Add text of GPLv3.•••* COPYING: New file. Arun Isaac
2022-02-05Initial commitArun Isaac