diff options
author | Arun Isaac | 2022-04-14 16:22:23 +0530 |
---|---|---|
committer | Arun Isaac | 2022-04-14 16:22:23 +0530 |
commit | 85811ab5e6dfbfbcd772eba8a2219061db4c3991 (patch) | |
tree | e8045206725e9538625b56ce0ea28138323ae915 /tissue/issue.scm | |
parent | 19bd6994abf5f13a474fdbaba233dd073ee8284e (diff) | |
download | tissue-85811ab5e6dfbfbcd772eba8a2219061db4c3991.tar.gz tissue-85811ab5e6dfbfbcd772eba8a2219061db4c3991.tar.lz tissue-85811ab5e6dfbfbcd772eba8a2219061db4c3991.zip |
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.
Diffstat (limited to 'tissue/issue.scm')
-rw-r--r-- | tissue/issue.scm | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/tissue/issue.scm b/tissue/issue.scm index f7dcef9..72d3d9c 100644 --- a/tissue/issue.scm +++ b/tissue/issue.scm @@ -29,7 +29,8 @@ #:use-module (ice-9 regex) #:use-module (tissue git) #:use-module (tissue utils) - #:export (%aliases + #:export (%issue-files + %aliases issue issue-file issue-title @@ -52,6 +53,9 @@ authors issues)) +(define %issue-files + (make-parameter #f)) + (define %aliases (make-parameter #f)) @@ -268,34 +272,31 @@ in (tissue tissue). If no alias is found, NAME is returned as such." ;; editors tend to create hidden files while editing, and we want to ;; avoid them. (sort (filter-map (lambda (file) - (and (string-suffix? ".gmi" file) - (not (string=? (basename file) "README.gmi")) - (not (string-prefix? "." (basename file))) - (let* ((file-details (file-details file)) - ;; Downcase keywords to make them - ;; case-insensitive. - (all-keywords (map string-downcase - (hashtable-ref file-details 'keywords '())))) - (issue file - ;; Fallback to filename if title has no alphabetic - ;; characters. - (let ((title (hashtable-ref file-details 'title ""))) - (if (string-any char-set:letter title) title file)) - (hashtable-ref file-details 'creator #f) - (hashtable-ref file-details 'created-date #f) - (hashtable-ref file-details 'created-relative-date #f) - (hashtable-ref file-details 'last-updater #f) - (hashtable-ref file-details 'last-updated-date #f) - (hashtable-ref file-details 'last-updated-relative-date #f) - (hashtable-ref file-details 'assigned '()) - ;; "closed" is a special keyword to indicate - ;; the open/closed status of an issue. - (delete "closed" all-keywords) - (not (member "closed" all-keywords)) - (hashtable-ref file-details 'tasks 0) - (hashtable-ref file-details 'completed-tasks 0) - (hashtable-ref file-details 'posts #f))))) - (git-tracked-files)) + (let* ((file-details (file-details file)) + ;; Downcase keywords to make them + ;; case-insensitive. + (all-keywords (map string-downcase + (hashtable-ref file-details 'keywords '())))) + (issue file + ;; Fallback to filename if title has no alphabetic + ;; characters. + (let ((title (hashtable-ref file-details 'title ""))) + (if (string-any char-set:letter title) title file)) + (hashtable-ref file-details 'creator #f) + (hashtable-ref file-details 'created-date #f) + (hashtable-ref file-details 'created-relative-date #f) + (hashtable-ref file-details 'last-updater #f) + (hashtable-ref file-details 'last-updated-date #f) + (hashtable-ref file-details 'last-updated-relative-date #f) + (hashtable-ref file-details 'assigned '()) + ;; "closed" is a special keyword to indicate + ;; the open/closed status of an issue. + (delete "closed" all-keywords) + (not (member "closed" all-keywords)) + (hashtable-ref file-details 'tasks 0) + (hashtable-ref file-details 'completed-tasks 0) + (hashtable-ref file-details 'posts #f)))) + (%issue-files)) (lambda (issue1 issue2) (time<? (date->time-monotonic (issue-created-date issue1)) (date->time-monotonic (issue-created-date issue2)))))))) |