From 6ec2fe07a54bcd35c33c6f38abf0774039a8e838 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sun, 26 Jun 2022 10:51:02 +0530 Subject: web: Deprecate all static issue listings. 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. --- bin/tissue | 4 +- tissue/web.scm | 163 --------------------------------------------------------- 2 files changed, 1 insertion(+), 166 deletions(-) diff --git a/bin/tissue b/bin/tissue index 95c1f9a..7bc01f1 100755 --- a/bin/tissue +++ b/bin/tissue @@ -315,9 +315,7 @@ Export the repository as a website to OUTPUT-DIRECTORY. " (command-line-program))) ((output-directory) - (parameterize ((%project-name (tissue-configuration-project (load-config))) - (%tags-path (tissue-configuration-web-tags-path - (load-config)))) + (parameterize ((%project-name (tissue-configuration-project (load-config)))) (build-website (getcwd) output-directory (tissue-configuration-web-css (load-config)) diff --git a/tissue/web.scm b/tissue/web.scm index c811358..0b8be84 100644 --- a/tissue/web.scm +++ b/tissue/web.scm @@ -25,41 +25,28 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-28) #:use-module (srfi srfi-171) - #:use-module (skribilo ast) #:use-module (skribilo engine) #:use-module (skribilo evaluator) - #:use-module (skribilo lib) - #:use-module (skribilo package base) #:use-module (skribilo reader) - #:use-module (skribilo utils keywords) - #:use-module (skribilo writer) - #:use-module (sxml simple) #:use-module (web uri) #:use-module (tissue conditions) #:use-module (tissue issue) #:use-module (tissue utils) #:export (%project-name - %tags-path file file? file-name file-writer - issue-listing replace-extension copier gemtext-reader gemtext-exporter skribe-exporter - tag-issue-lister - tag-pages build-website)) (define %project-name (make-parameter #f)) -(define %tags-path - (make-parameter #f)) - (define-record-type (file name writer) file? @@ -80,46 +67,6 @@ NEW-EXTENSION." (string-append (substring file 0 (1+ (string-index-right file #\.))) new-extension)) -(define-markup (issue-list-item #:rest opts - #:key (ident #f) (class "issue-list-item") - (file #f) (title #f) - (creator #f) (created-date #f) - (last-updater #f) (last-updated-date #f) - (assigned #f) (keywords #f) (open #f) - (tasks #f) (completed-tasks #f) - (posts #f)) - (new container - (markup 'issue-list-item) - (ident (or ident (symbol->string (gensym "issue-list-item")))) - (class class) - (loc &invocation-location) - (required-options '(#:file #:title - #:creator #:created-date - #:last-updater #:last-updated-date - #:assigned #:keywords #:open - #:tasks #:completed-tasks - #:posts)) - (options `((#:file ,file) - (#:title ,title) - (#:creator ,creator) - (#:created-date ,created-date) - (#:last-updater ,last-updater) - (#:last-updated-date ,last-updated-date) - (#:assigned ,assigned) - (#:keywords ,keywords) - (#:open ,open) - (#:tasks ,tasks) - (#:completed-tasks ,completed-tasks) - (#:posts ,posts) - ,@(the-options opts #:ident #:class - #:file #:title - #:creator #:created-date - #:last-updater #:last-updated-date - #:assigned #:keywords #:open - #:tasks #:completed-tasks - #:posts))) - (body (the-body opts)))) - (define (sanitize-string str) "Downcase STR and replace spaces with hyphens." (string-map (lambda (c) @@ -128,92 +75,6 @@ NEW-EXTENSION." (else c))) (string-downcase str))) -(define (issue-list-item-markup-writer-action markup engine) - (sxml->xml - `(li (@ (class "issue-list-item")) - (a (@ (href ,(string-append - "/" (encode-and-join-uri-path - (string-split - (replace-extension (markup-option markup #:file) - "html") - #\/))))) - ,(markup-option markup #:title)) - ,@(map (lambda (tag) - (let ((words (string-split tag (char-set #\- #\space)))) - `(a (@ (href ,(string-append (%tags-path) "/" - (uri-encode (sanitize-string tag)) - ".html")) - (class ,(string-append "tag" - (string-append " tag-" (sanitize-string tag)) - (if (not (null? (lset-intersection - string=? words - (list "bug" "critical")))) - " tag-bug" - "") - (if (not (null? (lset-intersection - string=? words - (list "progress")))) - " tag-progress" - "") - (if (not (null? (lset-intersection - string=? words - (list "chore")))) - " tag-chore" - "") - (if (not (null? (lset-intersection - string=? words - (list "enhancement" "feature")))) - " tag-feature" - "")))) - ,tag))) - (markup-option markup #:keywords)) - (span (@ (class "issue-list-item-metadata")) - ,(string-append - (format " opened ~a by ~a" - (date->string (markup-option markup #:created-date) - "~b ~d ~Y") - (markup-option markup #:creator)) - (if (> (length (markup-option markup #:posts)) - 1) - (format ", last updated ~a by ~a" - (date->string (markup-option markup #:last-updated-date) - "~b ~d ~Y") - (markup-option markup #:last-updater)) - "") - (if (zero? (markup-option markup #:tasks)) - "" - (format "; ~a of ~a tasks done" - (markup-option markup #:completed-tasks) - (markup-option markup #:tasks)))))))) - -(markup-writer 'issue-list-item - (find-engine 'html) - #:options '(#:file #:title - #:creator #:created-date - #:last-updater #:last-updated-date - #:assigned #:keywords #:open - #:tasks #:completed-tasks - #:posts) - #:action issue-list-item-markup-writer-action) - -(define* (issue-listing #:optional (issues (reverse (issues)))) - "Return an issue listing for ISSUES, a list of objects. By -default, all issues are listed newest first." - (itemize (map (lambda (issue) - (issue-list-item #:file (issue-file issue) - #:title (issue-title issue) - #:creator (issue-creator issue) - #:created-date (issue-created-date issue) - #:last-updater (issue-last-updater issue) - #:last-updated-date (issue-last-updated-date issue) - #:assigned (issue-assigned issue) - #:keywords (issue-keywords issue) - #:open (issue-open? issue) - #:tasks (issue-tasks issue) - #:completed-tasks (issue-completed-tasks issue) - #:posts (issue-posts issue))) - issues))) - (define (exporter file proc) "Return a writer function that exports FILE using PROC. PROC is passed two arguments---the input port to read from and the output port @@ -259,30 +120,6 @@ to write to." (evaluate-ast-from-port in #:reader reader) (find-engine 'html)))))) -(define* (tag-issue-lister tag #:key title) - "Return a writer function that writes a issue listing of issues with TAG. - -TITLE is the title to use in the head of the generated HTML, among -other places." - (lambda (port) - (with-output-to-port port - (cut evaluate-document - (document #:title title - (issue-listing - (reverse (filter (lambda (issue) - (member tag (issue-keywords issue))) - (issues))))) - (find-engine 'html))))) - -(define (tag-pages) - "Return a list of objects representing tag pages to be -exported to the web output." - (map (lambda (tag) - (file (string-append (%tags-path) "/" (sanitize-string tag) ".html") - (tag-issue-lister tag - #:title (string-append tag " — " (%project-name))))) - (delete-duplicates (append-map issue-keywords (issues))))) - (define (with-current-directory directory thunk) "Change current directory to DIRECTORY, execute THUNK and restore original current directory." -- cgit v1.2.3